蓝队必知秘诀-攻击链还原

前言

       上一篇文章《蓝队必知秘诀-溯源技术》当中讲到工作流当中有一个关键节点“还原攻击链”,还原攻击链需要需要一些研判的经验,来识别、归纳、总结出攻击的方式,使用的扫描工具,常规的打点攻击如SQL注入、文件上传、文件包含以及命令执行,安全设备一般都可以检测到,如果检查不到使用了waf绕过的手法,或者是0day类型,则需要全流量设备或基于行为检测的设备来识别,基于行为检测的设备可以在告警界面看到这个无需多说,而全流量设备则是需要提前设置好告警规则,以免边界的waf被绕过然后被无感入侵。

基础漏洞规则编写:

SQL注入防护规则:

              SQL注入的关键字:select, update, delete, drop, union, insert, alter, create

              SQL注入注释符:--, /*, */, #

              特殊操作符:' OR 1=1 --, " OR "1"="1, ' OR 'a'='a, ;

              常见的函数调用:sleep(, benchmark(, load_file(

       设置告警的规则的时候要注意运用分层防御的思想,举个例子,设置基础的SQL注入规则,检测到关键字select就产生告警,然而select也可能是正常的查询业务导致的,这样流量会很庞大驳杂,这时候进一步过滤添加第二条规则有关键字的同时还存在注释符则证明此条流量必然是攻击流量。因此规则如下

规则名称:SQL注入(select关键字配合注释符)

优先级:高

协议:HTTP/HTTPS

检测位置:URL、参数、Cookie、Header、Body

匹配方式:(?i)(?=.*\bselect\b)(?=.*(--|#|/\*|\*/)).*

动作:告警并阻断

文件上传防护规则:

  1. 明确文件上传攻击的特征
    1. Webshell(.asp\.aspx\.jsp\.php)
    2. 双重扩展名称(test.php.jpg)
    3. 配置文件、绕过文件(如.htaccess、web.config)
  2. 检测Content-Type与实际文件类型不符的请求
    1. 这里给出一个正则表达式

(?i)Content-Type:\s*(image|text|application)/(jpeg|png|gif|bmp|plain|pdf|msword|zip|rar).*\.(php|asp|jsp|exe|sh|dll|phtml|aspx)

      

文件包含防护规则:

              文件包含分为两种,一是本地文件包含、二是远程文件包含因此这样写告警规则

                     1、检测文件遍历  (../、..\\):

2、进一步过滤检测敏感文件

(etc/passwd|boot.ini|win.ini|system32|shadow|hosts|proc/self/environ)

  1. 远程文件包含,设置白名单,非业务主域产生告警

命令执行防护规则:

       命令执行关键字:cat, ls, whoami, id, uname, ping, sleep, wget, curl, nc, netcat, bash, sh, powershell(Linux)

       systeminfo,whoami,ver,hostname,ipconfig,netstat,dir,type,echo,erase,certutil,bitsadmin,mshta,curl,wget(windows)

       命令执行连接符:|, ||, &, &&, ;, %0a

       同样注意运用分层防御的思想,不要忽略了大小写的问题,尽量使用正则表达式来写告警规则。

说完了基础的打点漏洞,来讲一下比较知名的一些框架漏洞、中间件漏洞的流量特征。

框架漏洞、中间件攻击流量特征

Struts2攻击特征

Ognl表达式

%{(#_='multipart/form-data').(#[email protected]@DEFAULT_MEMBER_ACCESS).(#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('X-Test','test'))}

OGNL表达式特征明显,如:

%{} 结构

#context、#_memberAccess、#request、#parameters、#session、#application 等关键字

Java类名及方法如:

java.lang.Runtime, java.lang.System, @java.lang.Runtime@getRuntime().exec('cmd')

mamberaccess字段

Weblogic攻击特征

开放7001端口,传递xml数据到wls-wsat,数据包内容有bash或者dnslog字段,如果基于T3协议,数据包内有“T3”关键字,如可以查看日志(域目录/servers/AdminServer/logs)则有反序列化特征InvokerTransformer、ChainedTransformer,socket(base_domain.log或

AdminServer.log)、文件操作则有FileOutputStream(base_domain.log)

SpringBoot攻击特征

关键字:

class.module.classLoader.resources.context.parent.pipeline.first.pattern

spring.cloud.function.routing-expression

接口路径:/actuator, /env, /heapdump, /trace, /metrics, /actuator

SpEL表达式注入:${T(java.lang.Runtime).getRuntime().exec(...)}

配置文件篡改/敏感信息读取:application.yml, application.properties, /actuator/env

Log4j攻击特征

数据包存在关键字”jndi:ldap://”、”jndi:rmi”等类似字符的特征,通常会使用DNS外带检测的方式,所以检测非业务主域,域名也是一个好办法。

Shiro攻击特征

       Cookie-rememberme的值正常值较短,攻击时的base64值较长(攻击机制导致的)

       需要运用DNSlog和urldns进行检测,所以有大量的DNS流量

       爆破key值(shrio550(<1.2.5)key值固定,721(>1.2.5&<1.4.2)key值不固定需要登录)

Fastjson攻击流量特征

       发送json数据,数据包内有关键字“datesourcename”且一般带有@type

OK,到这里攻击特征的流量就算是梳理完成了,接下来说一下扫描工具的特征,扫描工具的特征比较少且一般集中在user-agent这个地方,通常user-agent都是可以自定义的,但是如果存在相同的user-agent的话,那基本就百分百确定是扫描器的流量了。

扫描器特征:

RSAS(瑞数动态安全)

       User-agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4

       特殊扫描路径:/rsas、/rsas/、/rsagent、/rsa/、/rsc/、/rssignature、/rsstatic

       特殊的参数:rsas_token、rs_timestamp、rsa_token、rsa_sign、callback

       Cookie头:rsas_session、rsas_verify、rsa_sid、rsa_cookie

Goby

       User-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, likeGecko) Version/12.0.3 Safari/605.1.15

                                   Mozilla/5.0 (compatible; Goby/1.8.255;)

       特定的请求头:Connection: close

                                Accept-Encoding: gzip

                                Pragma: no-cache

                                Cache-Control: no-cache

Xray

              User-agent:Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0

                                   Xray

                                   Mozilla/5.0 (compatible; Xray)

              特定的请求头:X-Scanner: Xray

EZ(长亭 EZ-Scanner)

              User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)

                                   Chrome/108.0.0.0 Safari/537.36

                                   ezscan

                                   Mozilla/5.0 (compatible; ezscan)

              特定的请求头:X-Scanner: ezscan

                                        X-Scan-Memo: ezscan

Fscan

              User-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)

                                    Chrome/104.0.0.0 Safari/537.36

              扫描MS17-010 漏洞时会使用anonymous作用用户名

Name

       User-agnet会包含Name关键字

       扫描MS17-010漏洞时会使用WIN7\guest

       特定的请求头:X-Nmap-Scan

Metasploit

       User-agnet:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

                            Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

                            Ruby

       扫描ms17-010时会使用”.\”这个用户名

Awvs

       User-agent:Acunetix

                            Mozilla/5.0+(compatible;+Acunetix)

                            Mozilla/5.0 (Windows NT 10.0; Win64; x64) Acunetix

       特定的请求头:    Acunetix-Aspect

                                    Acunetix-Scanning

                                    X-Acunetix-Product

                                    acunetix_cookie_test

Nessus

       User-agnet:Nessus

                            Mozilla/5.0 (compatible; Nessus)

       特定的请求头:X-Nessus-Scan

                                X-Nessus-Id

                                nessus_cookie_test

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值