找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4440

积分

1

好友

606

主题
发表于 1 小时前 | 查看: 2| 回复: 0

Webshell 是一种 Web 服务器上的恶意代码,可以使攻击者远程控制服务器,并执行各种命令、上传下载文件等操作。

以下是处理服务器存在 Webshell 的一些方法:

  1. 扫描和确认 Webshell
    可以通过查看 Web 服务器日志或使用安全扫描工具来确认是否存在 Webshell。找出所有可疑文件并进行彻底检查,以确定是否存在 Webshell。
  2. 删除 Webshell
    如果确定存在 Webshell,需要立即将其删除,并对系统进行全面清理。删除 Webshell 时,应同时清除与 Webshell 相关的文件和目录,并且应用程序代码也需要进行更新和修复。
  3. 加强安全防护措施
    为了避免服务器再次被感染,需要加强安全防护措施,包括加强服务器的监控和日志审计、安装杀毒软件并定期更新、限制非管理员用户权限等。
  4. 修改密码
    修改服务器管理员的账户密码,并确保强密码策略得到实施,建议使用包含大写字母、小写字母、数字和特殊字符等不同类型字符组成的复杂密码,并设置密码长度要求。
  5. 更新和修复应用程序代码
    Webshell 通常是由于应用程序存在漏洞或安全问题而被植入的。因此,为了防止类似问题再次发生,需要及时更新并修复应用程序代码中的安全漏洞。
    总之,在处理服务器存在 Webshell 的问题时,需要快速准确地识别和清除 Webshell,并加强服务器和应用程序的安全防护措施。同时,也需要定期进行巡检和审计,及时发现和排除漏洞,以确保系统的完整性和安全性。

要排查 shell 的问题,可以使用以下命令:

  1. echo :用于打印变量或字符串,可以用来检查变量的值是否正确。
  2. set :用于显示所有的 shell 变量和函数,包括环境变量。
  3. env :用于显示当前 shell 环境下的所有环境变量。
  4. source.:用于读取并执行指定文件中的命令,通常用于重新加载配置文件。
  5. sh -x script.sh:用于以调试模式执行脚本,并输出每个执行的命令及其参数。
  6. ps :用于列出当前正在运行的进程,可以使用 ps aux 查看详细信息。
  7. top :用于实时查看系统资源的使用情况,可以用来定位占用 CPU 或内存过高的进程。
  8. grep :用于搜索指定的文本内容,可以用来查找特定日志文件中的错误信息等。
    这些命令可以帮助您快速诊断 shell 中的问题。

如何检测 webshell?
Webshell 是指嵌入到 Web 服务器上的一种命令执行环境,可以通过 Web 页面或 HTTP 协议与其进行交互,攻击者可以利用 Webshell 来执行各种恶意操作。检测 Webshell 可以使用以下几种方法:

  1. 查看 Web 服务器访问日志:Webshell 通常会产生异常的网络流量,例如向非标准端口发送 POST 请求等。查看 Web 服务器的访问日志,观察是否存在异常的请求。
  2. 安全扫描工具:使用安全扫描工具对 Web 服务器进行扫描,以检测是否存在 Webshell。常用的安全扫描工具包括 Nessus、OpenVAS 等。
  3. 文件监控:Webshell 通常会将恶意代码写入某个文件中,因此可以通过文件监控工具来检测 Webshell。例如,当文件被修改时,文件监控工具会立即发送警报。
  4. 内存监控:有些高级的 Webshell 可能不会在磁盘上留下任何痕迹,而是直接将代码注入到内存中。因此,可以使用内存监控工具来检测是否存在 Webshell。
  5. 安全审计:对 Web 服务器进行安全审计,检查是否存在安全漏洞,例如文件上传漏洞、命令注入漏洞等。攻击者通常会利用这些漏洞来上传 Webshell。
    以上方法并不能完全保证检测到所有的 Webshell。

主机后门 Webshell 的排查思路

Windows 主机后门排查思路
针对主机后门 windows,linux,在对方植入 webshell 后,需要立即响应,排查出后门位置,以及排查对外连接,端口使用情况等等。

排查对外连接状态:
借助工具:pchunter 火绒剑 均可,不方便情况下 cmd 查看对外连接状态,进程状态,端口信息等

思路 1:pchunter 查看到异常的对外连接
定位该 exe 文件,上传微步沙箱显示异常

思路 2:cmd 窗口查看对外链接状态:

netstat -anpt

cmd 查看进程状态:

tasklist

思路 3:pchunter 查看进程, 大多数木马文件在没有做屏蔽等措施,在厂商归属,指纹信息会显示异常,或者无任何厂商归属信息,可以借助为参考
火绒剑查看网络情况:系统监控存在连接状态。

启动项后门的排查
启动项后门命令:

REG ADD “HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” /V “backdoor” /t REG_SZ /F /D “C:\shell.exe”

这是一个用于在 Windows 注册表中添加启动项的命令。该命令将在当前用户的注册表路径下的 "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" 键中添加一个名为 "backdoor" 的值,其值数据为 "C:\shell.exe"。
pchunter,火绒剑等均可查看启动信息

映像劫持,隐藏账户,均可借助工具查看。

Linux 的后门排查也可以 netstat -anpt 查看连接状态研判 ,发现异常连接 kill 进程。

Rootkit 情况说明
Linux 被 rootkit 上线:无法查看到对外连接,在受害机执行命令可以做到隐藏进程,文件等
处置:Gscan 上传受害机环境直接运行(包含检测 rootkit,可以作为其他的 Linux 应急)(未检测出 rootkit)
目前开源自动化工具均无法检测 rootkit
目前内存马和 rootkit 对于蓝队无法百分百解决检测。

不给你工具,怎么进行 webshell 排杀
要进行 Webshell 排查和清除,需要在服务器上执行以下步骤:

  1. 扫描服务器,寻找异常进程、文件和网络连接。可以使用诸如 lsofnetstatps 等命令来查找可疑的进程和网络连接。
  2. 检查服务器中是否存在任何未知文件或目录,特别是具有隐藏属性的文件和目录。可以使用 find 命令查找所有文件和目录,并检查其中是否存在可疑的文件和目录。
  3. 检查服务器上是否存在未知用户和组。可以使用 cat /etc/passwdcat /etc/group 命令来查看系统中的用户和组,并检查其中是否存在可疑的用户和组。
  4. 检查服务器上的系统日志,包括 /var/log/messages/var/log/secure 等文件,以查找异常事件。
  5. 如果发现可疑的 Webshell 文件,需要立即将其删除,并检查相关的网站和数据库是否被入侵。
  6. 更新服务器上的操作系统和应用程序,并安装最新的防病毒软件和安全补丁,以提高服务器的安全性。

响应状态码都有哪些?

不管是对于什么 WEB 漏洞攻击的研判,响应状态码都是研判成功与否的首要研判依据,如果响应状态码为 404 基本可以研判攻击失败,也就无需再根据请求响应等进一步研判了。(当然,这并不是绝对的,也有例外的情况,攻击者在一些情况下也可以篡改响应状态码,如 WebShell 的响应状态码。现在这种情况不多见,暂时可以先不考虑)

  • 404:404 状态码表示请求资源不存在,即表示攻击失败;
  • 200:200 状态码表示请求成功,但是请求成功并不代表攻击成功,具体需要结合请求与响应进行判断;如下图攻击中,攻击者尝试利用 Struts2 远程代码执行漏洞(S2-045)对目标系统进行攻击,响应状态码为 200。该漏洞攻击载荷在 HTTP 请求头部的 Content-Type,分析该攻击载荷,如果漏洞存在的话会在响应的头部添加 testvuln 字段,值为 1234x1234 即 1522756。分析响应的头部,并未发现存在 testvuln 字段,因此研判该漏洞攻击未成功。
  • 401:401 状态表示未授权状态。该状态码返回常见于 HTTP 的 Basic 认证。
  • 500:500 状态码表示服务器内部错误,通常漏洞攻击也会导致出现 500 错误,但是出现 500 错误并不表示攻击失败,需要根据实际情况研判。
  • 301:本状态码将浏览器【永久重定向】到另外一个在 Location 消息头中指定的 URL。以后客户端应使用新 URL 替换原始 URL。
  • 302:本状态码将浏览器【暂时重定向】到另外一个在 Location 消息头中指定的 URL.客户端应在随后的请求中恢复使用原始 URL.

Webshell 工具流量特征?

菜刀特征:

默认的 webshell 中链接密码都是 caidao,ua 头为百度爬虫、请求体中存在 eavl,base64 等特征字符
响应包中包含 X@Y、php 的 webshel 中流量参数 z0、z1、z2

冰蝎和菜刀等 webshell 工具有什么区别?

答:冰蝎有流量动态加密

冰蝎 4.0
HTTP 请求头
冰蝎的几个 HTTP 请求头通常是固定的
Content-Length
显然其数值相对常规的较大,可以作为辅助特征进行检测:Content-Length: 5824
长连接
冰蝎通讯默认使用长连接,避免了频繁的握手造成的资源开销。默认情况下,请求头和响应头里会带有 Connection: Keep-Alive,可将其作为辅助特征进行检测。
PHP webshell 中存在固定代码
可以将 eval($post) 作为流量特征纳入。

冰蝎 3.0

默认内置 16 个 user-agent,content-type为application/octet-stream** 
请求包中 content-length 为 5740 或 5720(可能会根据 Java 版本而改变)
**每一个请求头中存在 Pragma: no-cache,Cache-Control: no-cache**

冰蝎 2.0

建立连接后 所有请求 **Cookie 的格式都为: Cookie: PHPSESSID=; path=/;**
静态分析:
各种语言的 webshell 中都会存在**16 位数的连接密码**,默认变量为 key

冰蝎 3.11 流量特征

1、header 头顺序是颠倒的
2、发送包是 base64,返回包是字节数组,所以会乱码
3、如果冰蝎密码不对,会出现两个连接,第一个是 post 第二个是 get
4. content-type 为 application/octet-stream ,请求包中 content-length 为 5740 或 5720(可能会根据 Java 版本而改变),每一个请求头中存在 Pragma: no-cache,Cache-Control: no-cache
5.异常 User-Agent---- 出现 WOW64 等
6. 频繁访问默认的路径 /conn.jsp

蚁剑

PHP 类 WebShell 流量最中明显的特征为 @ini_set ("display_errors","0");
同时会带有 base64 编码解码等字符特征, **每个请求体都存在 @ini_set(“display_errors”, “0”);@set_time_limit(0) 开头**。并且存在 base64 等字符,响应包的结果返回格式为 随机数 结果 随机数

哥斯拉:

不修改 User-Agent,User-Agent 会类似于 Java/1.8.0_121(具体什么版本取决于 JDK 环境版本)
在请求包的 Cookie 中有一个非常致命的特征,最后的分号
标准的 HTTP 请求中最后一个 Cookie 的值是不应该出现 ; 的
**请求包的特征**
1. “pass=” 起始
2. 请求包较长 响应包为 0
3. 一个 tcp 包里面有三个 http
**响应包特征**
整个响应包的结构体征为:md5 前十六位 + base64 + md5 后十六位

哥斯拉 4.0.1 中 JAVA_AES_BASE64 特征流量特征

host 头
密码和 base64 字符串是密码 = base64 字符串的形式
发送包是密码 = bae64 字符串的形式,返回包是类 base64 字符串的格式
1. 对称加密算法:JAVA_AES_BASE64 是哥斯拉 4.0.1 使用的对称加密算法;因此可以根据哥斯拉 4.0.1 的流量中是否包含 JAVA_AES_BASE64 来判断是否为哥斯拉 4.0.1 攻击流量
2. 长度固定:哥斯拉 4.0.1 使用 JAVA_AES_BASE64 算法对数据进行加密后,加密后数据的长度是固定的因此,可以根据攻击流量的长度是否固定来判断是否为哥斯拉 4.0.1 攻击流量
3. 常见数据前缀:哥斯拉 4.0.1 加密的数据在明文数据前会添加特定的前缀;因此,可以根据攻击流量中是否包含常见的数据前缀来判断是否为哥斯拉 4.0.1 攻击流量。

Cobalt Strike 攻击流量?

1、http-beacon 通信中,默认使用 get 方法向 /dpixel、/__utm.gif、/pixel.gif 等地址发起请求,同时请求头存在 cookie 字段并且值为 base64 编码
2、dns-beacon 通信中,默认使用 cdn.、www6.、api.、www.、post. 为开头发起 dns 请求,并且查询结果伴随 0.0.0.0、0.0.0.80、0.0.0.241 等非常规 IP
3、心跳包间隔一定时间,均有通信,且流级上的上下行数据长度固定
4、常见 User-Agent:Cobalt Strike 通常使用自定义的 User-Agent 字符串,例如 Mozilla/5.0 (Windows NT 10.0; Win64; x64) Cobalt Strike
5、命令和控制流量:Cobalt Strike 的 HTTP 请求中可能包含与 C2 服务器通信的命令和控制信息,这些信息在正常的 Web 请求中不会出现。

分析 shiro 反序列化漏洞是否攻击成功?

1. 在 HTTP 请求头 Cookie 里出现 rememberMe 字段以及可能出现自定义类型例如 c: aWQ=,响应体中出现大量编码字符串,若需要判断是否攻击成功,需对请求数据和响应体内容进行解密判断
2. 检查请求头中的 "rememberMe" cookie。攻击者可能会在此处插入恶意序列化数据
3. 观察服务器响应。如果服务器返回了异常错误信息,如 Java 反序列化异常,可能表明攻击成功分析应用程序日志:如果日志中出现了异常堆栈跟踪,可能表明攻击成功例如,攻击者发送了一个包含恶意序列化数据的请求,服务器响应了一个包含 Java 反序列化异常的错误信息这可能表明攻击成功。

分析 struts2 漏洞执行命令是否攻击成功?

1. 在请求头中存在 OGNL 表达式,一般在 url 中会出现的攻击特征主要是:.action?method | ?redirect:$ 在 conten-type 中出现的攻击特征主要有:%{<a href="javascript:;">#context</a> 、在报文体中出现的攻击特征主要有:#_memberAccess 等
2. 判断请求中是否包含特定的 Struts2 关键字,如 "method:"、"redirect:" 等,这些关键字可能是用于执行命令的操作;
3. 检查请求中是否包含 "Content-Type" 头字段,并且值为 "application/x-www-form-urlencoded",这是 Struts2 框架默认的 Content-Type 值,用于处理 POST 请求;
4. 检查请求参数中是否包含 OGNL 表达式,如 "${}"、"\%{}" 等字符;
5. 检查请求是否包含一个名为 "class" 的参数,值为 "java.lang.Runtime",这个参数可以用于执行系统命令

struts2 命令执行的流量特征

一般 Struts2 框架的接口会以 .do.action 结尾;struts2 一些常见的关键字:memberAcecess,getRuntime,println,双引号,单引号,等号,括号之类的符号。


如何分析文件上传告警是否攻击成功?

1、查看响应体响应结果判断服务器是否接受了该上传请求,上传成功通常状态码为 200,查看响应体中是否响应了上传路径,访问该上传路径查看文件是否被解析是否存在
2、通过查看态势感知日志判断文件是否落地
3、登陆受害者主机全局搜索上传文件

文件上传的攻击特征是什么

文件上传首先是 POST 的数据包,且 content-type 为 multipart/form-data,如果为恶意的文件上传漏洞攻击,则数据包中 filename 属性的后缀为 jsp,php,asp 等恶意后缀,且文件内容一般为 Webshell 内容


发生挖矿木马事件通过流量层面如何判断真实性?

1. 通信端口:挖矿木马可能会使用特定的端口进行通信。例如,Monero 挖矿木马通常会使用 TCP 端口 3333 或 5555 进行通信
2. 通信流量:挖矿木马的通信流量可能会具有特定的特征,例如大量的高速数据传输和周期性的通信,在数据包中可以看到大量的计算资源使用信息和挖矿结果信息
3. 进程和文件系统:挖矿木马可能会创建特定的进程和文件来执行挖矿操作。例如,Monero 挖矿木马通常会在操作系统上创建名为 "xmrig" 的进程,并在文件系统上创建名为 "config.json" 的配置文件
4. 系统资源:挖矿木马可能会占用系统资源,例如 CPU 和内存,并可能导致系统崩溃或变得缓慢。
5. 判断流量的数据:挖矿木马通常会在通信中发送一些特定的数据,例如挖矿难度、钱包地址、挖矿程序版本等如果流量中存在这些数据,就可能存在挖矿木马
6. 看数据包的详细信息,看终端或者服务器是否有与矿池交互的信息,判断是否存在登录到矿池(method“:”login“)、从矿池接收任务(”method“:”job“)字段,在载荷内容中是否存在 ok、success 等字段

分析 Apache Log4j2 远程代码执行漏洞是否攻击成功?

1、dnslog 类:查看是否存在源 ip 与 dnslog 的外联日志记录 2、命令执行攻击 2.1 有回显:响应体中存在命令执行结果 2.2 无回显 :存在源 ip 与 ldap 服务 ip 的外联日志记录

分析 sql 注入类型告警是否成功?

1. 排除 302、404、301、502,非 200 状态码
2. 判断请求包内相关的 sql 语句是否为恶意的 SQL 语句
3. 判断响应体内是否包含数据库敏感信息,或者系统信息。

如果看到一条 sql 注入告警,怎么判断是否是攻击成功?
对请求包的内容进行检查,检查是否存在 sql 注入的利用语句,同时检查响应包内容有执行成功的回显,若相应包中存在 sql 注入攻击成功的回显,则可判断攻击成功。

SQL 注入攻击通常具有以下特征:
基于输入参数的攻击:SQL 注入攻击是基于 Web 应用程序的输入参数进行的。攻击者通常通过修改输入参数中的某些值来注入恶意 SQL 语句。
错误提示信息:SQL 注入攻击可能会导致 Web 应用程序返回错误提示信息。攻击者可以根据这些错误提示信息,获得 Web 应用程序的数据库结构和其他敏感信息。
时间延迟:攻击者可能会在恶意 SQL 语句中添加时间延迟语句,以便测试数据库的响应时间,从而获取敏感信息。
数据库操作:SQL 注入攻击可以让攻击者执行未经授权的数据库操作,例如删除、修改、添加数据等。
为了判断 SQL 注入攻击是否成功,可以注意以下几点:
检查 Web 应用程序的日志和错误提示信息,是否包含异常的 SQL 语句和错误信息。
检查数据库的日志,是否存在异常的数据库操作记录。
检查 Web 应用程序的用户数据和操作结果,是否存在异常情况,例如修改、删除、添加了未经授权的数据。
进行代码审计,检查 Web 应用程序的代码是否存在漏洞,例如没有对输入参数进行充分的过滤和验证。

原理(口头语言):用户的输入嵌入到 SQL 语句中,然后被当做代码执行
成因:未对用户输入的数据做验证或者处理(预编译)
可有看设备报警,SQL 注入的报警,能看到攻击时间,攻击 ip,payload,如何判断是误报还是真是攻击,如果是真实攻击,怎么判断他攻击是否成功,如果成功怎么处理
先看 ip,如果 ip 是公司内部的再看内部人员有没有相关操作,如果不是公司人员业务的操作那就是攻击了,
然后分析 payload,分析它写的 payload 安全设备能否它进行过滤拦截,如果它确实能绕过,那就应该攻击成功了,
成功的话赶紧上报,做应急响应,做出相应处理,添加过滤规则,修改数据库中能修改的数据比如管理员账号密码啥的


分析 JBOSS 反序列化是否攻击成功?

1.在访问 JBOSS 漏洞页面 /invoker/readonly 后,返回值为 500
2.请求体有 llections.map.LazyMap、keyvalue.TiedMapEntry 攻击链特征并且有明显的命令执行行为比如 whoami
3.在返回 500 堆栈报错页面内容中包含了系统返回内容 比如系统用户:root

分析 Fastjson 反序列化是否攻击成功?

1.请求头:method: POST content_type: application/json
2.请求体:data:com.sun.rowset.JdbcRowSetImpl,dataSourceName,@type
3.请求体:包含攻击者 C2 服务器地址
4.状态码为:400  也可能是 500
5.通过态势感知平台进行回溯分析,在分析中心输入语法:(sip:(失陷服务器 IP) OR sip:(攻击者 C2IP)) AND (dip:(失陷服务器 IP) OR dip:(攻击者 C2IP))

分析 log4j 是否攻击成功?

以下是 Log4j 漏洞的一些特征:
攻击者使用恶意请求中的特定参数名称和值来触发 Log4j 漏洞。这些参数包括 JNDI 名称和恶意 JNDI URL。
攻击者通常会使用反向 Shell 或远程访问工具来执行任意命令或控制受感染的系统。
攻击者的攻击可能被记录在受感染应用程序的日志中。这些日志通常会显示异常或错误信息,或者包含关于漏洞攻击的详细信息。
受感染的应用程序通常会发起大量的网络请求,尝试将攻击者的命令或代码发送到攻击者的服务器。
要判断 Log4j 漏洞攻击是否成功,可以采取以下措施:
监视受感染应用程序的日志,查看是否有异常或错误信息,或者是否包含与攻击相关的信息。
监视网络流量,查看是否有大量的请求被发送到攻击者的服务器。
检查系统中的异常或警告信息,例如系统崩溃、不正常的 CPU 使用率或内存使用率等。
在受感染的系统中进行代码审查,查看是否有与攻击相关的代码或配置文件。
如果发现应用程序受到了 Log4j 漏洞攻击,应立即采取措施来解决漏洞,并且必须对系统进行全面检查,以确保没有其他漏洞或后门存在。同时,建议采取安全措施,例如升级 Log4j 版本、禁用 JNDI 功能、限制应用程序的输入等,以防止类似漏洞的再次出现。


Linux 的 Selinux

SELinux(Security-Enhanced Linux)是一个针对 Linux 内核的安全模块,它可以限制进程和用户的访问权限,并提供更加细粒度的访问控制。SELinux 基于强制访问控制(MAC)模型,将每个进程/对象分配到不同的安全上下文中,并通过策略文件来定义这些上下文之间的关系。

在 Linux 中,SELinux 可以通过以下步骤进行设置:

  1. 检查 SELinux 状态:使用命令 getenforce 或者 sestatus 来检查当前 SELinux 的状态,例如 enforcing、permissive 或者 disabled 等。
  2. 修改 SELinux 配置文件 /etc/selinux/config:可以修改 SELINUX 参数的值为 enforcing(强制模式)、permissive(宽容模式)或者 disabled(禁用 SELinux)等。
  3. 安装和管理 SELinux 策略包:使用 yum 命令安装和管理 SELinux 相关的策略包,例如 policycoreutils 和 selinux-policy 等。
  4. 设定 SELinux 上下文:使用 chconsemanagerestorecon 等命令来更改文件或目录的安全上下文。
  5. 确认 SELinux 日志:在排除 SELinux 相关问题时可以使用命令 ausearchausearchauditctl 等来确认 SELinux 日志。
    需要注意的是,在对 SELinux 进行设置和管理时,需要有一定的 Linux 系统管理经验和 SELinux 相关知识。因为错误的配置可能会导致系统不稳定或者无法启动,所以在操作前应仔细阅读相关文档并进行备份。

安全基线规范检查

Linux 基线规范
Linux 基线规范是指为了保证 Linux 系统安全性和可靠性,制定的一系列最佳实践和标准化要求。Linux 基线规范通常包括以下几个方面:

  1. 安全加固:禁用不必要的服务、配置防火墙、强化密码策略等。
  2. 用户和权限管理:创建普通用户账号、限制 root 账号访问、使用 sudo 进行授权等。
  3. 日志管理:启用系统日志、日志文件备份和归档、监控日志信息等。
  4. 文件系统和目录结构规范:对重要数据进行加密、使用 ext4 文件系统、分区管理等。
  5. 网络安全:检查网络连接状态、限制入站和出站流量、使用 SELinux 或 AppArmor 等。
  6. 软件更新与安全漏洞修复:定期更新操作系统和软件补丁、及时处理已知漏洞等。
  7. 数据备份与恢复:定期备份和恢复系统数据和设置等。

需要注意的是,不同的公司或组织可能会有不同的基线规范要求。在实践中,我们可以根据自己的需求和安全风险评估情况,设计并实施相应的基线规范,并定期进行评估和调整。这样可以帮助我们规范化 Linux 系统的管理和维护,并提高系统的可靠性和安全性。

Windows 安全基线检查
Windows 安全基线检查是指通过对 Windows 操作系统进行安全配置和最佳实践检查,来评估系统的安全性和完整性。Windows 安全基线包括以下几个方面:

  1. 用户和权限管理:创建普通用户账号、限制管理员账号访问、使用 UAC 进行授权等。
  2. 密码策略:设置强密码策略,并启用多因素身份验证。
  3. 网络安全:配置防火墙、禁用不必要的服务、加密敏感数据传输等。
  4. 软件更新与安全漏洞修复:定期更新操作系统和软件补丁、及时处理已知漏洞等。
  5. 日志管理:启用系统日志、监控日志信息、建立日志归档等。
  6. 文件和目录权限:配置文件系统和目录结构规范、限制文件和目录访问权限等。
  7. 数据备份与恢复:定期备份和恢复系统数据和设置等。

为了进行 Windows 安全基线检查,可以使用 Microsoft Security Compliance Toolkit 工具,该工具包含安全基线和最佳实践检查工具,并提供安全配置模板和分析报告。此外,还可以使用第三方商业化工具,例如 SolarWinds、McAfee 等,来帮助进行 Windows 安全基线检查。


中间件基线规范(APACHE)

Apache 是一款常用的 Web 服务器软件,为了保障其安全可靠地运行,可以制定中间件基线规范。以下是 Apache 中间件基线规范的一些重要措施:

  1. 版本号管理:定期检查并更新 Apache 版本,及时安装最新版本的补丁与安全更新。
  2. 配置文件规范:对 Apache 的配置文件进行规范化和审计,限制网站访问权限、禁止目录浏览等。
  3. 日志管理:启用 Apache 访问日志和错误日志,定期清理日志文件并做好备份、归档等工作。
  4. 安全加固:如禁用不必要的模块、关闭 TRACE 请求响应、限制 HTTP 方法等。
  5. SSL/TLS 加强:设置 TLS 选项、开启 HSTS、使用证书身份验证等。
  6. 防火墙和反向代理策略:通过防火墙等技术来过滤恶意流量,使用反向代理策略限制直接连接到 Web 服务器的 IP 地址。
  7. 应用安全:对 Web 应用程序进行安全审计,确保程序的漏洞被修复、未受到攻击等。
    需要注意的是,以上这些措施只是 Apache 中间件基线规范的一部分,实际操作中还需要根据具体情况进行评估和调整。同时,要保障 Apache 服务器的安全性和可靠性,还需要定期备份数据、优化性能等工作。

中间件常见漏洞

中间件:指位于操作系统和应用程序之间的软件组件,它有助于应用程序和不同操作系统之间的通信和互操作性。

IIS
概念:IIS 是一种服务,是 Windows 2000 Server 系列的一个组件。不同于一般的应用程序,它就像驱动程序一样是操作系统的一部分,具有在系统启动时被同时启动的服务功能。(IIS 就相当于把你的机器变成一个服务器用来浏览网页。)
1、目录解析漏洞
在 IIS.x/6.0 中,默认会将*.asp(*.asa,*.cer,*.cdx) 目录下的所有文件当成 Asp 解析。
2、文件名解析漏洞
在 IIS5.x/6.0,默认会将*.asp;(*.asp;.jpg,*.cer;.jpg) 这中格式的文件名,当成 Asp 解析,因为服务器默认不解析 ; 号及其后面的内容,相当于截断。
3、短文件名猜解漏洞
IIS 的短文件名机制,可以暴力猜解短文件名,访问构造的某个存在的短文件名,会返回 404,访问构造的某个不存在的短文件名,返回 400。

nginx
概念:Nginx 是一个 http 服务器,是一个使用 c 语言开发的高性能的 http 服务器及反向代理服务器。
1、解析漏洞:
影响版本为:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7
原理:主要原因是错误地解析了请求的 URI,错误地获取到用户请求的文件名,导致出现权限绕过、代码执行的连带影响。
2、%00 截断解析
影响版本:0.5,0.6 ,0.7<=0.7.65,0.8<=0.8.37
原理:php-fastcgi 在执行 php 文件时,url 在处理 %00 空字节与 fastcgi 处理不一致,使得我们在其他文件插入 php 代码,访问 url+%00.php 即可执行其中 php 代码。

apache
概念:Apache HTTP Server(简称 Apache)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编译到服务器中。
1、换行解析漏洞(CVE-2017-15715)
原理:它可以通过 mod_php 来运行 PHP 网页。其 2.4.0~2.4.29 版本中存在一个解析漏洞,在解析 PHP 时,1.php\x0A 将被按照 PHP 后缀进行解析,导致绕过一些服务器的安全策略。
2、路径穿越漏洞(CVE-2021-41773)
利用条件:
版本等于 2.4.49
穿越的目录允许被访问(默认情况下是不允许的)
原理:攻击者利用这个漏洞,可以读取位于 Apache 服务器 Web 目录以外的其他文件,或者读取 Web 目录中的脚本文件源码,或者在开启了 cgi 或 cgid 的服务器上执行任意命令。

tomcat
概念:Tomcat 是一个应用服务器。他可以运行你按照 J2EE 中的 Servlet 规范编写好的 Java 程序。
日志路径:包括 catalina.out 和其他访问日志,通常位于 Tomcat 安装目录下的 logs 目录中
1、后台弱口令漏洞
进入网站后点击登录然后使用 burp 进行爆破测试,可以发现账户密码是利用 Authorization 该授权字段以 base64 方式传递账户信息的发现加密方式后,拿去解密后发现他的数据传输是将账户与密码用冒号进行组合之后在用 base64 加密所传递的。构造字段进行爆破使用 burp 抓包后发送到 Intrude 模块进行暴力破解。
2、文件包含漏洞
影响版本:
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31
原理:Tomcat AJP 协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器 webapp 下的任意文件,如:webapp 配置文件或源代码等。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。
3、文件上传漏洞
漏洞影响全部的 Tomcat 版本:Apache Tomcat 7.0.0 - 7.0.79 (windows 环境)
原理:在一定条件下,攻击者可以利用这个漏洞,获取用户服务器上 JSP 文件的源代码,或是通过精心构造的攻击请求,向用户服务器上传恶意 JSP 文件,通过上传的 JSP 文件,可在用户服务器上执行任意代码,从而导致数据泄露或获取服务器权限,存在高安全风险。

weblogic
概念:是一个基于 JAVAEE 架构的中间件,WebLogic 是用于开发、集成、部署和管理大型分布式 Web 应用、网络应用和数据库应用的 Java 应用服务器。将 Java 的动态功能和 Java Enterprise 标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
通俗的讲 weblogic 是一种 web 容器。
1、任意文件上传 (CVE-2018-2894)
影响到的版本:weblogic 10.3.6、12.1.3、12.2.4、12.2.1.3
Weblogic 开启了 Web Service Test Page(web 服务测试页面),这个配置默认在生产模式下是不开启的,由于管理员没注意开启了这个页面就可能造成任意文件上传。
2、管理控制台未授权远程命令执行漏洞(CVE-2020-14882,CVE-2020-14883)
影响版本:Oracle:Weblogic 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0
cve-2020-14882(代码执行漏洞) ,在打完补丁后又出现了补丁被绕过的漏洞 cve-2020-14883(权限绕过漏洞),远程攻击者可以配合这两个漏洞构造特殊的 HTTP 请求,在未经身份认证的情况下接管 Weblogic Server Console,在控制台中执行任意代码。
CVE-2020-14882 允许远程用户绕过管理员控制台组件中的身份验证,CVE-2020-14883 允许经过身份验证的用户在管理员控制台组件上执行任何命令。利用这两个漏洞的链,未经身份验证的远程攻击者可以通过 HTTP 在 Oracle WebLogic 服务器上执行任意命令,并完全控制主机。
3、SSRF 漏洞 (CVE-2014-4210)
Weblogic 中存在一个 SSRF 漏洞,利用该漏洞可以发送任意 HTTP 请求,进而攻击内网中 redis、fastcgi 等脆弱组件。

Docker
概念:一个运行与 linux 和 windows 上的软件,用于创建、管理和编排容器;docker 平台就是一个软件集装箱化平台,是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,也可以实现虚拟化,并且容器之间不会有任何接口。
1、Docker-RunC 漏洞致容器逃逸 (CVE-2019-5736)
利用条件:Docker Version < 18.09.2
RunC Version <1.0-rc6
攻击者具有容器文件上传权限 & 管理员使用 exec 访问容器 || 攻击者具有启动容器权限
漏洞原理:攻击者可以将容器中的目标文件替换成指向 runC 的自己的文件来欺骗 runC 执行自己。比如目标文件是 /bin/bash,将它替换成指定解释器路径为 #!/proc/self/exe 的可执行脚本,在容器中执行 /bin/bash 时将执行 /proc/self/exe,它指向 host 上的 runC 文件。然后攻击者可以继续写入 /proc/self/exe 试图覆盖 host 上的 runC 文件。但是一般来说不会成功,因为内核不允许在执行 runC 时覆盖它。为了解决这个问题,攻击者可以使用 O_PATH 标志打开 /proc/self/exe 的文件描述符,然后通过 /proc/self/fd/ 使用 OWRONLY 标志重新打开文件,并尝试在一个循环中从一个单独的进程写入该文件。当 runC 退出时覆盖会成功,在此之后,runC 可以用来攻击其它容器或 host。
2、Docker-cp 漏洞致容器逃逸 (CVE-CVE-2019-14271)
利用条件:Docker Version == 19.03 && <19.03.1
原理:Docker 采用 Golang 编写,更具体一些,存在漏洞的 Docker 版本采用 Go v1.11 编译。在这个版本中,包含嵌入式 C 代码(cgo)的某些 package 会在运行时动态加载共享库。这些 package 包括 net 及 os/user,docker-tar 都用到了这两个 package,会在运行时动态加载一些 libnss
*.so 库。正常情况下,程序库会从宿主机的文件系统中加载,然而由于 docker-tar 会 chroot 到容器中,因此会从容器的文件系统中加载这些库。这意味着 docker-tar 会加载并执行受容器控制的代码。
3、Docker-Containerd 漏洞致容器逃逸 (CVE-2020-15257)
利用条件:
containerd < 1.4.3
containerd < 1.3.9
使用 hostnetwork 网络模式启动容器 && 使用 root 用户 (UID:0) 启动容器
漏洞原理:使用 hostnetwork 网络模式中,容器和主机共享网络命名空间,因此在容器内可以访问 host 特定的 socket 文件 (shim.sock)。可通过启动一个新的容器,该容器挂在 host 目录到容器的 /host 目录,即可实现对 host 完全的读写。


DDOS CC 等攻击应急思路以及如何防范

DDoS(分布式拒绝服务攻击)和 CC(HTTP)攻击是目前比较普遍的网络攻击方式之一。以下是应急响应思路以及如何防范这些攻击的建议:

  1. 应急响应思路
    在受到 DDoS 和 CC 攻击时,应采取以下措施来降低攻击对系统的影响:
    快速检测并确认攻击类型和攻击源;
    提高带宽和资源利用率,以提供更强的承载能力;
    实施流量清洗、流量限制和 IP 封堵等措施,清除恶意攻击流量;
    配合 ISP 进行攻击源 IP 的追踪和协助;
    在攻击持续期间,保持实时监控和跟进,随时更新应急响应策略。
  2. 如何防范
    为了预防 DDoS 和 CC 攻击,可以采取以下方法:
    增加网络带宽,并提高硬件设备的承载能力,以抵御较小规模的攻击;

实现 DDoS 和 CC 攻击的检测和防御机制,如基于流量和行为的检测技术和防御技术;
确保服务器和网站软件及时更新,以弥补已知漏洞;
实施流量清洗、流量限制和 IP 封堵等措施;
配置合理的防火墙规则和入侵检测系统(IDS)等安全设备;
加强网络安全教育,提高用户密码安全性,并定期对敏感数据进行备份和加密。
总之,在防范 DDoS 和 CC 攻击方面,需要综合考虑多种因素,包括增加带宽、提高硬件承载能力、实现攻击检测和防御机制、确保服务器和网站软件及时更新、加强网络安全教育等。同时,应该建立完善的应急响应机制和紧急处理预案,以做好应急响应准备和快速响应。


挖矿病毒判断以及处理方式

挖矿病毒是指利用受感染的计算机进行加密货币挖矿的恶意软件。以下是判断和处理挖矿病毒的一些方法:

  1. 判断挖矿病毒
    通过以下迹象可以判断计算机是否被感染了挖矿病毒:
    计算机运行速度变慢,CPU 占用率高;
    电脑风扇声音变大,温度升高;
    安全软件报告未知病毒或恶意软件;
    系统出现闪退或死机等异常情况。
  2. 处理方式
    如果怀疑计算机已经被感染了挖矿病毒,可以采取以下措施:
    及时更新杀毒软件,并开启实时保护模式;
    扫描整个系统,清除所有恶意文件和注册表项;
    禁止不明程序自启动,及时关闭被感染的进程;
    在安装软件时仔细阅读许可协议,禁止安装未知来源的软件;
    加强账户权限管理,限制非管理员用户对系统的操作权限;
    及时备份重要文件,以便在恶意软件攻击后恢复数据。
    总之,在处理挖矿病毒方面,需要及时发现和清除感染,并加强系统的安全防护措施,如升级杀毒软件、限制非管理员用户权限、备份重要文件等。同时,也需要加强网络安全教育,提高用户对于计算机安全的意识和防范能力。

威胁情报库

  1. 微步在线(ThreatBook):微步在线是国内领先的网络安全威胁情报服务提供商,其威胁情报库包括恶意软件、攻击源 IP、域名等方面的信息。
  2. 国家互联网应急中心(CNCERT):CNCERT 是中国政府统一组织和协调全国互联网安全工作的部门,其威胁情报库包括漏洞、恶意代码、攻击事件等方面的信息。
  3. 安恒威胁情报中心(ATIS): ATIS 是安恒信息安全研究院旗下的威胁情报中心,其威胁情报库涵盖了 APT 攻击、Web 攻击、恶意邮件、移动恶意软件等方面的信息。
  4. 漏洞盒子(KnownSec):漏洞盒子是一家致力于网络安全防御和攻防技术研究的公司,其威胁情报库包括漏洞、恶意代码等方面的信息。
  5. 360 威胁情报中心(360 TI Center):360 威胁情报中心聚焦于威胁情报、安全事件响应和恶意代码研究等领域,其威胁情报库包括 APT 攻击、恶意 URL 等方面的信息。
    需要注意的是,以上威胁情报库只是其中一部分,实际应用中还有很多其他的威胁情报库。在使用威胁情报库时,需要根据具体需求进行评估和选择,并确保数据来源可靠、及时和准确。

怎么发现有没有被攻击?

发现自己是否被攻击是网络安全管理中非常重要的一环。以下是几种常见的发现被攻击的方法:

  1. 安全日志监控:对系统和应用程序的安全日志进行监控,可以及时发现异常活动和安全事件。例如,登录失败、异常访问、恶意软件入侵等。
  2. 网络流量分析:通过对网络流量进行监控和分析,可以发现可能存在的攻击行为。例如,大量来自某个 IP 地址或特定端口的流量、恶意脚本和代码注入等。
  3. 主机基线监测:通过对应用程序、操作系统和数据文件等资源进行基线监测,可以及时发现可能存在的异常变化和不正常的活动。
  4. 脆弱性扫描:通过使用脆弱性扫描工具,可以发现系统中可能存在的漏洞,并提供修补建议。
  5. 威胁情报监测:通过使用威胁情报库和服务,可以了解到当前存在的威胁活动,及时采取防御措施。
  6. 安全演练:通过进行安全演练,可以模拟真实的攻击场景,评估自身的安全状态,及时发现和修复存在的问题。
    需要注意的是,以上方法只是其中一部分,实际应用中还有很多其他的发现被攻击的方法。在进行网络安全管理时,需要综合使用多种方法,并不断更新和完善自身的防御措施,以提高安全水平和减少被攻击的风险。

同源策略是什么

同源策略(Same Origin Policy)是一种 Web 安全策略,它是浏览器中的一项重要特性,用于限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。同源指的是三个关键元素:协议、主机和端口号,只有这三者完全相同的两个 URL 才被认为是同源的。同源策略可以防止恶意网站访问其他网站的敏感数据,例如 Cookie、LocalStorage 和请求响应等信息,从而保护用户的隐私和安全。

例如,假设您正在访问一个银行的网站,该银行使用 Cookie 来存储您的登录凭据。如果攻击者能够在他们的网站上注入一些 JavaScript 代码并通过某种方式将其转移到您正在访问的银行网站上,那么该攻击者就可以访问您的 Cookie,以便窃取您的个人信息。然而,由于同源策略的存在,攻击者无法访问您正在访问的银行网站的 Cookie,因为它们不属于同一个源。尽管同源策略对 Web 安全至关重要,但在某些情况下,它可能会成为开发过程中的挑战。为了解决这些问题,Web 开发人员可以使用一些技术和标记,如跨域资源共享(CORS)和 JSONP 等来解决这些限制。

渗透测试安全运维的面试中,深刻理解同源策略及其绕过方式是评估 Web 应用安全风险的基础。更多网络安全实战技巧,欢迎在云栈社区与同行交流探讨。




上一篇:Qt Creator 19 正式发布:代码缩略图、多项目支持与性能优化来袭
下一篇:OpenAI Codex 高效使用指南:七个实用技巧帮你提升AI编程效率
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-15 05:49 , Processed in 0.554439 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表