本篇文章共7000字,完全阅读全篇约8分钟,州弟学安全,只学有用的知识
0x01 前言
那么好,本篇文章我们细致的去学习一下研判的那些事,我们肯定有在日常工作和攻防中遇到安全设备告警的攻击事件,事件命中并不是全部正确,有时候会存在误报,对于存在误报的经过研判后进行优化策略,防止后续再次出现此情况,因为安全设备策略也是根据漏洞特征进行匹配的
本篇文章非常受用,希望帮助各位尽快成为"秒男快女"进行快速研判及应急响应
以上为我用docker搭建的ARL日志,一看就是nginx中间件,日志的作用就是让我们快速定位找出问题,但是日志的弊端就是只能看URL和请求方式等一些基础信息,此时我们进一步研判就需要查看对应流量了
这是朋友之前发我的一个研判流量包,流量不多,打开后筛选http流量,明眼就是文件+漏洞扫描特征,无法判断出扫描器,至于为什么是扫描特征
筛选POST传参方式,可以看到有致远OA的命令执行和其它漏洞文件上传的特征
其实最有意思的就是,本来想通过状态码去分析,结果是啥也没有
这是什么原因呢?各位可以思考一下,答案在文末揭晓!
其实分析流量包(HTTP协议),1. 主要侧重去看请求URL和请求方式、2. 请求包内的请求头(header)中是否有其它特征(如打JNDI/log4j)等出现的DNSLOG地址或UA特征等、3. 请求体内容(POST/PUT请求方式)请求内容中是否存在非常规加密、可疑文件上传、常规漏洞利用payload等
本次我们以常规漏洞流量分析(OWASP)->漏洞扫描特征->Webshell流量研判->其它类型流量概念研判进行书写,其中有些方向已经在历史文章中提及的,我们为了不再重复造轮子,一笔带过,只提供附件和特征进行分析
* 本篇文章仅供学习参考,如需转载请联系加白
* 如您认为文章有用,麻烦点个关注点赞并转发共同学习
0x02 流量分析研判
链接:https://pan.quark.cn/s/a34f767dbc8e
提取码:F3rJ
百度:https://pan.baidu.com/s/1J2S06vkMiW7N5_VFAG0x9A?pwd=lp5e
1. 常规漏洞流量
对于传统网络安全,进行流量分析之前,我们必然要学会漏洞扫描的基础,也就是常规漏洞,这些漏洞都存在基础特征,对应的特征在蓝队设备中会被加入到策略中进行流量匹配,事件进行匹配策略,就是你所看到的告警信息,在这之前发过一篇常规漏洞的流量分析,后面又用长亭雷池WAF进行流量抓包来解释策略匹配
学习干货|小白女友看完这篇文章后,面试工作和护网蓝队初级竟然秒通过!建议收藏
所以此处我们避免重复造轮子就不进行再次解释,详细文章可移步^
当时写完这篇文章,雷池还给了点周边作为奖励,俗称激励计划
其次就是雷池WAF在免费版和企业版上并不能有效检出shiro反序列化检测及命令执行,我们之前通过异构的方式结合了启明的WAF进行有些拦截绝大部分事件,希望雷池可以增加一下这个方向漏洞检出
1. 暴力破解
通过观察数据包,登录为GET方式,筛选登录条件后看到特征
http.request.method=="GET"
当安全设备产生告警,存在暴力破解事件时,我们应逐步分析详细日志进行研判(POST分析流量包或大概接口)
研判依据
1. 分析接口(Login、login.php、user_longin)等字眼,在短时间存在大量请求的
2. 账号一样,密码不一样在短时间大量请求登录的或账号密码不一,短时间大量登录(同IP请求或登录失败过多的),这里都可以根据特征进行分析,如某网站登录失败进行302跳转,可对"status_code&&IP||URL"的方式筛选
密码喷洒
在实战中往往会出现密码喷洒的告警,特征很明显,同密码(密码复用/系统默认密码的方式)导入用户字典进行爆破
这种情况可能因为系统存在防止暴力破解机制,如用户名X分钟内登录失败x次进行冻结,此时使用密码喷洒较多,对于非WEB的,在内网使用密码喷洒目的为了继续横向
研判依据
直接观察接口中请求次数和账号密码,它和暴力破解是相反的,密码重复度大于用户数量,基本就是喷洒
2. 任意文件上传
这种情况一般误报率很高,一般安全设备匹配关键词会有以下特征
1. 在上传文件中模糊匹配到敏感函数或关键词(如上传的XML或者XLS文件,在传输过程中安全设备会识别流量中的敏感函数,如果匹配到某个规则库内的函数,则可能触发告警,这种情况误报比较多)
2. 在上传文件中存在多次编码或加密的文件,这时安全设备会进行告警,存在可疑行为(此处仅为可疑,没有明显webshell特征)
3. 在上传文件中存在明显的Webshell特征(常见webshell工具程序),一般这种告警误报率低,具体这种特征,下面会说到
那么我们打开流量包可以发现,文件上传基本上都是POST请求方式,其次也有部分PUT
通过筛选请求方式后,可以查看到准确的流量包,然后追踪HTTP或TCL流量即可看到上传内容
可以看到就是上传了一个正常PNG文件,但是文件mine是JPG,这里有个小知识,当使用微信截图时,微信会默认以当前时间戳命令,正常默认截图可能是JPG,但是如果我们发送给别人,然后再复制,此时文件格式可能变成PNG
研判依据
仔细观察告警流量包,上传的文件包有没有可疑(非告警站点使用的编码/密码,有没有Webshell特征、安全设备对告警标注处研判)
3. 命令执行/命令注入
先说原理,之前文章中有提到过命令注入是因为WEB程序在进行调用系统功能时,所用到的函数,这是正常操作,但是由于开发在进行代码编写时,没有进行严格过滤,可进行任意命令执行或命令注入的方式,绕过等方式进行执行系统命令、反弹Shell等操作
此处命令注入,看HTTP流量,请求方式为POST,筛选一下条件,在请求体处可看到执行的系统命令
非常常规的WEB自定义功能调用系统命令连接符进行的反弹shell命令执行
研判依据
1. 在流量中请求有没有命令下系统命令关键词,结合响应包查看,可能是开发定义的关键词和系统命令重名造成了误报,这种问题之前问过长亭运营和研发,因误报率高,所以不入库
像:whoami,id,ls,ps,echo等短命令误报率比较高
2. 拿着告警数据包自行测试(因为告警后可能会被安全设备拦截,没法结合响应包查看,自己在内网或白名单中测试,响应包如确实返回对应命令结果,则为攻击事件)
3. 最让人头疼的就是,命令注入绕过,这种在CTF比赛训练时经常用到,绕过成功则不触发安全设备告警,无感出局也是常有的事,这时候就考验安全设备和应急能力了
4. SQL注入
和命令注入一样,深受大家的喜爱,在安全设备中告警也比较多,原理很简单,某接口和数据库进行交互,无论增删改查,只要没有做严格过滤和方式,都可能存在注入,参考之前文章
学习干货|万字总结-速看!当CTF与实战结合,一篇成为CTFer
SQL注入有很多种方式:SQL盲注、字符型注入、宽字节注入等等,但是他们都有一个共同特点,必须要使用SQL语句,那么安全设备就是根据SQL语句去匹配,但是光匹配语句误报率又太高,所以需要结合其它,比如是否设计到库名:database_schema,是否涉及到特殊符号,不过安全厂商并不能去根据环境定制规则库,浪费人力,所以只能边使用边优化,误报也是常有的事
老样子,已知本次SQL传参为GET方式,直接筛选GET请求,着重看URL即可
攻击者(州弟)试图在测试用永真SQL语句进行注入的攻击方式,一眼判定为攻击行为
研判依据
1. 着重注意告警事件中的SQL语句,如果单纯只有select之类的查询语句,且语句非常丝滑,可能只是开发定义的语句,传输过程中在前端显示
2. 查看语句中是否存在敏感库和表名,其次就是是否有特殊符号等
3. 查看请求速度,如果大量的请求可能对方使用sqlmap在测试,类似于爆破,这种大量请求并且确认IP并未进行备案测试的,直接封禁,因为做渗透测试或压力测试需要提前沟通备案
4. 最后也就是绕过,因为攻击方知道有安全设备,在轻微进行测试后,通过特征知道了我们的WAF是什么厂商的,这个时候可能会进行绕过:不限于修改请求方式、垃圾字符填充、特殊符号/编码绕过,安全设备不告警就看我们能不能在一开始发现测试行为,其实如果有条件的,在自家防火墙联动阻断加黑IP最好
5. XSS注入
XSS注入较为常见,不管是否与数据库交互,凡是可以输入的地方及路径(URL),都可以打一下XSS,但是反射型XSS在大部分厂商都不收录了,存储型还收,随着安全机制的完善,反射型的利用条件难度增加
我们在日常或攻防中遇到此类事件,主要就观察标注位置,因为误报率也比较多,规则策略大多数是模糊匹配
根据追踪safeline流量包中的URL,看到传入的XSS注入payload,看回显是给拦截了的,XSS其实就是去匹配关键词、符号
研判依据
1. XSS误报率高,主要看告警事件中标注位置是否带有XSS payload参数,有时候可能因为上传的文件(pdf、xml、xls)转码会引起误报
2. 多注意数据交互的地方,如果是几次XSS事件,且payload明显,大概率是攻击行为了
3. 一般XSS会伴随漏扫进行,单纯挖XSS的人基本上都是挖SRC和攻防的
6. XXE注入
本次使用XEE-lab进行复现,使用docker镜像(tutum/lamp)进行复现,复现语言为PHP,场景已搭建完成
https://github.com/c0ny1/xxe-lab
作者使用file_get_contents进行获取发送的XML文档
紧接着进行创建XML对象,然后进行生成文档到实例化
然后我们再了解什么是XML?它的作用是什么
XML 被设计用来传输和存储数据,不用于表现和展示数据,HTML 则用来表现数据
什么又是XXE,它又能被用来干什么?有什么危害
XML 外部实体注入(也称为 XXE)是一种 Web 安全漏洞,允许攻击者干扰应用程序对 XML 数据的处理。它通常允许攻击者查看应用程序服务器文件系统上的文件,并与应用程序本身可以访问的任何后端或外部系统进行交互。
在某些情况下,攻击者可以利用 XXE 漏洞执行服务器端请求伪造(SSRF) 攻击,升级 XXE 攻击以危害底层服务器或其他后端基础设施。
构造payload参数进行调用后,读取到passwd文件内容成功
研判依据
常规的XXE注入必然是默认框架,关于其它类型的注入知识,各位可以自行搜索学习一下
多关注一些存在的系统命令,敏感文件名,XML注入和常规攻击没两样
关于其它类型的攻击方式,有些没必要去讲解,大家也可以加好友共同学习交流,去学习上面标注的文章即可
漏扫流量
漏扫特征非常明显:
1. 扫描速度快,各种语言POC都有,和当前站点对不上
2. 可能带有本身DNSLOG地址用于返回数据(盲注、bind命令执行等)
3. UA固定或变化无常
1. AWVS漏洞扫描
Acunetix是国外的一款漏洞扫描器,在国内也有不少被破解了的版本,深受安服们的喜爱,没事扫一扫,有可能捡几个洞,同时AWVS的特征也非常明显
等待扫描完成后,分析流量包可以看到确实各种文件扫描+POC应有尽有,但是按照这个无法判断出哪个漏洞扫描器,只能知道是漏扫
在AWVS扫描时,自身会生成一个DNSLOG地址进行回连用于测试响应一些盲注POC,因是DNSLOG所以会进行DNS解析,走DNS协议,去排查DNS流量缩小范围,但是这个方法并不了每次可以
因为逻辑关系,AWVS有些POC可能并不会用到,我们可以直接在流量包内搜索字符串"bxss.me",也就是它的dnslog地址
这个有点远程文件包含的意思了,通过这个特征可以确定AWVS扫描器
有些朋友可能会奇怪,安全设备是怎么判断出是哪个扫描器的
首先,我们已只AWVS的DNSLOG域名为bxss,那么我们可以在流量包内直接正则表达式筛选
http matches "bxss.me"
得到了所有包含此字段的流量包,安全设备也是如此,定义好规则以后进行流量匹配(高并发)
2. Goby扫描
Goby是国内开发的一款漏洞扫描、资产管理绘测工具,支持自定义插件、POC且内置了POC和插件,在国内同样也很受欢迎,适合日常捡洞
本次我们还是同样使用XXE-lab进行实验Goby,进行抓取流量
先查看流量包能看到,是有端口扫描的特征,因为我没有抓22端口和只开放了80和5003端口,但是5003没有在扫描名单中,所以只扫通了80端口
然后80端口是HTTP端口,这里直接筛选协议看一下,非常标准的扫描特征
在上面我们谈到了仔细观察流量头,其中包含了dnslog地址,这是一个细节,这也是攻击行为
其次就是不断变化的UA头,一个IP频繁访问不同的页面,404居多,UA还不一样?或挂代理的情况下,不同IP频繁访问一个站点不同页面,404居多,打出的攻击特征明显
其次就是goby可能内置dnslog外,还有自己的dnslog回连地址:gobygo.net
此处POC意味:远程下载DNSLOG,回连地址检测到有请求,则为存在漏洞,漏洞模块则触发规则并提醒告知
同样的方法,我们可以使用正则表达式进行筛选判定,其次还有一个好玩的,就是在国护时,对方一直在用dnslog打jndi注入,然后我们可以写个脚本或者全国ping的方式进行ping他的dnslog,以此来迷惑他,非常好玩
无域名扫描流量
通俗易懂的来讲,这种工具没有什么特别的特征,只有POC,比如xray,某些burp插件,xpoc等,验证性的漏洞扫描器,我们本次使用xray进行实验
对于xray来讲,在快速检出WEB漏洞还是非常好用的,尤其是联动爬虫
对于xray大部分针对于指纹和敏感文件扫描,比如敏感API和文件字典文件,其次就是部分POC(OA、CMS历史漏洞等)
研判依据
因为这种没有什么特别的特征,只要看到大量扫描和404页面,浏览器UA很老,敏感文件路径多,扫描无疑,直接封
专项漏洞扫描
专项漏洞扫描器一般为个人作者开发,开发语言和UI不一,一般用Java,python,GO开发较多,此处使用thinkphp专项漏洞工具进行测试
这种流量显而易见的全部都是ThinkPHP的漏洞POC,如果你在日常遇到这种流量,说明对方大概率对你当前站点指纹框架等都识别清楚了
此截图非常显而易见的为用友合集历史漏洞专项利用工具,非常明显,短时间高并发
Webshell流量
关于Webshell流量,在今年国护前我曾写过相关的远程控制工具流量特征,通过抓包的方式逐一分析,及配套了弱特征和强特征,包括流行面试题,为了不在重复造轮子,我们进行此处不在赘述 ↓↓↓↓↓↓
学习干货|HVV必学远控工具及Webshell流量合集分析(建议收藏+附面试题)
其它流量特征
DDOS流量
在日常巡检中,安全设备可能会告警DDOS攻击或慢速防护攻击(攻击告警曾取自启明星辰IPS),曾经问过启明做安全运营的大哥,大概是这么说的
因为防火墙是在IPS前,这个IP能访问到或IPS等安全设备能监控到流量代表没有加黑
1. 该IP运营商网络波动导致网速变慢,与我方进行TCP交互时超时导致安全设备告警
此处可以参考常规UDP DDOS,消耗系统资源带宽
2. 此IP确实再打DDOS,但是可能性不大,因为在抗DDOS设备没看到什么流量
客户那里还有2台主备抗DDOS接入到运营商服务器
因为本地无法复现大流量攻击,我们使用hping3进行抓包查看原理
我们此处伪造源IP为192.168.99.3对192.168.88.3攻击,实际上kali攻击机的IP为192.168.88.4,当对88.3的IP进行握手访问时,88.3需要进行回包,但是99.3这个IP目标并不存在,流量不可达,被攻击机会再次尝试,然后hping3是多线程每隔10毫秒发送一个SYN包,总共发送10万个包,这样去消耗机器资源
从此处是可以看到攻击详情,具体可自行深入分析
ARP欺骗攻击
ARP就是用于将网络地址,如IP地址,映射到本地网络的物理(MAC)地址的协议,在我们初次对网络进行连接比如ping时,需要将你的MAC记录到路由表
ARP欺骗的完成的条件需要二者在同一局域网,欺骗被攻击机你伪装的网关是真正的网关,以往使用此方法实现ARP断网(之前上网的时候同学正打游戏兴起,我直接ARP欺骗断网,这个方法不建议使用,因为会被打)
比如今年国护的时候实在无聊,我直接一发ARP
我们本次继续抓包测试,使用arpspoof进行测试
此时可以看到流量包内192.168.88.4发送了大量的ARP包,后面我进行了对互联网进行ping,DNS可以解析,但是ping执行超时
当我停止了ARP攻击后,再次对互联网ping命令,成功互通
APT攻击?
周六一位朋友找我说,自己客户那里意思被APT攻击了,我直呼NB,因为他们客户是做国际业务的,这种也很正常
当我们遇到这个问题怎么办呢,假如真的怀疑是APT,傻瓜式方法
1. 丢沙箱跑IP,拿着外联IP去威胁情报查是不是APT
弊端:众所周知的反沙箱机制
2. 准备一个要刷机的设备,抓外联IP,用火绒剑等工具
3. 脱壳逆向,找逆向大手子
这里后面有最新情况我会及时更新,为各位汇报情况
1. 时刻提防网络安全事件,做好应急响应准备
2. 注意网络安全泄密风险,做好人人有责准备
3. 常态化资产排查渗透规律,时刻守住最后防线
0x03 结语
本次暂时为各位总结以上知识点,希望能为大家在比赛、实战中起到帮助,学以致用不写水文,有相关网络安全学习意愿可以关注后加好友共同交流学习
最后解密一下最上方的问题答案:为什么没有状态码和响应包
因为他是从防火墙导出的流量包,所以请求都在此前被拦截了,没有到达服务端,自然没有响应
实习/校招/社招
安全服务工程师、安全攻防工程师、安全研发工程师、前后端开发工程师、测试工程师等等,所有岗位均可内推 |
推荐阅读
渗透实战|记一次简单的Docker逃逸+反编译jar接管云主机