当企业发生web应用发生网络异常、可能存在web攻击的时候,需要排查分析web服务器和相关web日志,确认web应用是否被黑客攻击了,攻击类型有哪些类型、攻击IP是多少、是否可能被植入webshell、甚至控制系统等一系列溯源分析。
Web访问日志记录了Web服务器接收处理请求及运行时错误等各种原始信息。通过对WEB日志进行的安全分析,不仅帮助我们定位攻击者,还有助我们还原攻击路径,找到网站存在的安全漏洞并进行修复。
我们来看一条Apache的访问日志:
127.0.0.1 - - [11/Jun/2018:12:47:22 +0800] "GET /login.html HTTP/1.1" 200 786 "-" "Mozilla/5.0
(Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"
通过这条Web访问日志,我们可以清楚的得知用户在什么IP、什么时间、用什么操作系统、什么浏览器的情况下访问了你网站的哪个页面,是否访问成功。
本文通过介绍Web日志安全分析时的思路和常用的一些技巧。
在对WEB日志进行安全分析时,一般可以按照两种思路展开,逐步深入,还原整个攻击过程。
第一种:确定攻击的时间范围,以此为线索,查找这个时间范围内可疑的日志,进一步排查,最终确定攻击者,还原攻击过程。
第二种:攻击者在攻击网站后,通常会留下后门维持权限,以方便再次访问,我们可以找到该文件,并以此为线索来展开分析。
常用分析工具:
Window下,推荐用 EmEditor 进行日志分析,支持大文本,搜索效率还不错。
Linux下,使用Shell命令组合查询分析,一般结合grep、awk等命令等实现了几个常用的日志分析统计技巧。
1、列出当天访问次数最多的IP命令:
cut -d- -f 1 log_file|uniq -c | sort -rn | head -20
2、查看当天有多少个IP访问:
awk '{print $1}' log_file|sort|uniq|wc -l
3、查看某一个页面被访问的次数:
grep "/index.php" log_file | wc -l
4、查看每一个IP访问了多少个页面:
awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file
5、将每个IP访问的页面数进行从小到大排序:
awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n
6、查看某一个IP访问了哪些页面:
grep ^111.111.111.111 log_file| awk '{print $1,$7}'
7、去掉搜索引擎统计当天的页面:
awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l
8、查看2018年6月21日14时这一个小时内有多少IP访问:
awk '{print $4,$1}' log_file | grep 21/Jun/2018:14 | awk '{print $2}'| sort | uniq | wc -l
根据web攻击特征,检索分析日志是否包含攻击特征,如果检索结果里面包含攻击日志,证明web正在遭受攻击。
grep -E -i "select|%20and%201=1|%20and%201=2|exec|%27exec| information_schema.tables|information_schema.tables|where%20|union|%2ctable_name%20|cmdshell|%20table_schema" /www/logs/access.2020-07-09.log
grep -E -i " (S)%3C(S+)%3E|(S)%3C(S+)%2F%3E|(S+)<(S+)>|(S+)<(S+)/>|onerror|onmouse|expression|alert|document.|prompt()" /www/logs/access.2020-07-09.log
grep -E -i "*.zip|*.rar|*.mdb|*.inc|*.sql|*.config|*.bak|/*login.inc.php|*.svn|/*mysql/|config.inc.php|*.bak|wwwroot|网站备份|/gf_admin/|/DataBackup/|/*Web.config|/web.config|/1.txt|/test.txt" /www/logs/access.2020-07-09.log
grep -E -i "ping%20-c%20|ls%20|cat%20|%20pwd|net user"
/www/logs/access.2020-07-09.log
grep -E -i "struts|jmx-console|ajax_membergroup.php|iis.txt|phpMyAdmin|getWriter|dirContext|phpmyadmin|acunetix.txt|/e/|/SouthidcEditor/|/DatePicker/" /www/logs/access.2020-07-09.log
grep -E -i "/passwd|win.ini|/my.ini|/MetaBase.xml|/ServUDaemon.ini|cmd.exe"
/www/logs/access.2020-07-09.log
grep -E -i "eval|%eval|%execute|%3binsert|%20makewebtaski|/1.asp|/1.jsp|/1.php|/1.aspx|/xiaoma.jsp|/tom.jsp|/py.jsp|/k8cmd.jsp|/k8cmd|/ver007.jsp|/ver008.jsp|/ver007|/ver008|.aar|%if" /www/logs/access.2020-07-09.log
grep -E -i "POST.*login" /www/logs/access.2020-07-09.log
grep -E -i "login.*200" /www/logs/access.2020-07-09.log
grep -E -i "login" /www/logs/access.2020-07-09.log | grep -E -i "POST" | grep -E -i "200"
grep -E -i 'Googlebot|Baiduspider' /www/logs/access.2020-07-09.log | awk '{ print $1 }' | sort | uniq
grep '23/May/2019' /www/logs/access.2020-07-09.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -r -n | head -n 10
cat /www/logs/access.2020-07-09.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200
cat /www/logs/access.2020-07-09.log |awk '{print $2}'|sort|uniq -c|sort -rn|more
cat /www/logs/access.2020-07-09.log |awk '{print $9}'|sort|uniq -c|sort -rn|more
cat /www/logs/access.2020-07-09.log |awk '{print $7}'|sort|uniq -c|sort -rn|more
cat /www/logs/access.2020-07-09.log | awk '{print $7}' | egrep '\?|&' | sort | uniq -c | sort - rn | more
cat /www/logs/access.2020-07-09.log |awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}'|sort -rn|more
grep ' 200 ' /www/logs/access.2020-07-09.log |awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}'|sort -rn|more
咨询安全人员或者通过百度网盘下载
链接:https://pan.baidu.com/s/1gCeDrABYw0nsXHAzi3yaUg 提取码:qma0
使用方法:按照【星图使用常见问题及解决】说明进行使用。
咨询安全人员或者通过百度网盘下载
链接:https://pan.baidu.com/s/1IFtDktwDDL3pwjJlMNPMwA 提取码:ggv7
使用方法:按照工具的界面说明要求。
利用威胁情报平台对将日志分析得到的文件或者IP进行分析。
地址:https://x.threatbook.cn/
可以对IP、域名、文件HASH(MD5/SHA1/SHA256)、邮箱、文件、URL进行威胁情报分析。
利用威胁情报平台对将日志分析得到的文件或者IP进行分析。
地址:https://ti.qianxin.com/
可以对域名、IP、邮箱、文件HASH(MD5/SHA1)、证书指纹(SHA1)或其他字符串、文件进行威胁情报分析。
工具下载地址:http://www.shellpub.com
工具下载地址:链接:https://pan.baidu.com/s/1t_QPDDp2V0-jfWYvb4sSnw 提取码:eckv
一款优秀的检测webshell和恶意软件混淆代码的工具
github项目地址:https://github.com/jvoisin/php-malware-finder
阿D出品,使用自行研发不分扩展名的代码分析引擎,能分析更为隐藏的WebShell后门行为。兼容性:只提供Windows版本。
工具下载地址:http://www.d99net.net/down/WebShellKill_V2.0.9.zip
专注webshell查杀研究,拥有海量webshell样本和自主查杀技术,采用传统特征+云端大数据双引擎的查杀技术。查杀速度快、精度高、误报低。
兼容性:支持Windows、linux,支持在线查杀。官方网站:https://www.shellpub.com/
Sangfor WebShellKill(网站后门检测工具)是一款web后门专杀工具,不仅支持webshell的扫描,同时还支持暗链的扫描。是一款融合了多重检测引擎的查杀工具。能更精准地检测出WEB网站已知和未知的后门文件。
兼容性:支持Windows、linux
工具下载地址:http://edr.sangfor.com.cn/backdoor_detection.html(已停止访问)
百度网盘地址:链接:https://pan.baidu.com/s/1f61sfEkQi1KoWLWH77bpCg 提取码:ts3m
VirSCAN.org 是一个非盈利性的免费为广大网友服务的网站,它通过多种不同厂家提供的最新版本的病毒检测引擎对您上传的可疑文件进行在线扫描,并可以立刻将检测结果显示出来,从而提供给您可疑程度的建议。
官方网址:https://www.virscan.org/language/zh-cn/
下一代WebShell检测引擎,采用先进的动态监测技术,结合多种引擎零规则查杀。
兼容性:提供在线查杀木马,免费开放API支持批量测。
在线查杀地址:https://scanner.baidu.com/
免费, 独立的服务使用40种以上反病毒引擎,每15分钟更新一次病毒资料库。
官方网址:https://www.virustotal.com/gui/