目录
-
提交攻击者IP -
nginx -
bt-panel -
提交攻击者修改的管理员密码(明文) -
提交第一次Webshell的连接URL -
提交Webshell连接密码 -
提交数据包的flag1 -
提交攻击者使用的后续上传的木马文件名称 -
提交攻击者隐藏的flag2 -
提交攻击者隐藏的flag3
下载好靶场(应急响应靶机-Linux(2))并搭建好环境,使用帐号密码(root / Inch@957821.)登录靶机。
一、提交攻击者IP
本次应急的背景,是监控到了webshell告警,需要上机排查。因此首先需要定位web应用,再定位web日志,才能排查攻击者IP。使用命令netstat -tunlap
查看网络进程,暴露面还挺大,其中web应用的进程有PID是1213端口是80和888的nginx,以及PID是2201端口是12485的bt-panel。
1.1、nginx
先排查nginx的web日志,使用命令lsof -p 1213 | grep log
查看nginx打开的文件,并筛选日志文件,发现nginx的日志文件在/www/wwwlogs/目录下。
使用命令ls -laS /www/wwwlogs/
按文件大小排序,定位到web日志文件access.log和127.0.0.1.log。
使用cat /www/wwwlogs/access.log | cut -d ' ' -f 1 | sort | uniq -c | sort -n
等命令,分别查看两份日志文件,发现IP地址192.168.20.1和192.168.20.131。
使用cat /www/wwwlogs/access.log | grep 192.168.20.1 | cut -d ' ' -f 7 | grep -v "js|css|img" | less
等命令,分别查看两个IP地址访问的URL路径。
access.log记录的192.168.20.1访问的URL路径,没有明显攻击行为。
127.0.0.1.log记录的192.168.20.1访问的URL路径,存在明显攻击行为。
127.0.0.1.log记录的192.168.20.131访问的URL路径,存在明显攻击行为。
但是最终题目的答案只是192.168.20.1,没有192.168.20.131,感觉不太准确。
1.2、bt-panel
再排查bt-panel的web日志,使用命令ls -l /proc/2201/exe
查看bt-panel的程序路径,定位到bt-panel部署在/www/server/panel/路径下。
使用命令find /www/server/panel/ -name *log 2>/dev/null
定位到日志文件存放在/www/server/panel/logs/路径下。
使用命令ls -laS /www/server/panel/logs/
按文件大小排序,并未发现web日志文件。逐个查看这些日志文件,也未发现入侵行为。
二、提交攻击者修改的管理员密码(明文)
既然攻击者攻击的是nginx上的web应用,那么这个管理员密码应该就是指nginx上web应用的管理员密码。
日志层面,web应用一般不会记录xx用户将密码修改成了xx,顶多记录xx用户修改了密码。因此想要查看攻击者修改后的管理员密码,需要登录数据库查看。
这里选择通过宝塔面板的管理后台,登录nginx上web应用的数据库,查看被攻击者修改后的管理员密码。使用命令bt
并选择5
修改宝塔面板管理后台的密码,然后使用命令bt default
获得宝塔面板管理后台的登录地址。
登录宝塔面板后找到nginx的web应用的数据库,点击管理
进入phpMyAdmin。
既然是查找用户的密码,那就搜索user关键字相关的表。在x2_user_group表中,得知groupid是1代表管理员组。
在x2_user表中,通过usergroupid是1,得知peadmin是管理员,密码哈希是:f6f6eb5ace977d7e114377cc7098b7e3。
对密码哈希进行解密后,获得管理员peadmin的密码:Network@2020。
三、提交第一次Webshell的连接URL
使用命令cat /www/wwwlogs/127.0.0.1.log | grep 192.168 | cut -d ' ' -f 6,7 | sort | uniq -c | sort -nr | head
查看攻击者访问的URL地址,发现访问最多是/index.php?user-app-register,其次是/version2.php。
/version2.php不像是正常业务会提供的URL地址,使用命令cat /www/wwwlogs/127.0.0.1.log | grep 192.168 | cut -d ' ' -f 6,7 | uniq -c | grep -C 10 version2.php
查看攻击者访问/version2.php时的情况,发现攻击者大量访问/version2.php前,先大量访问了/index.php?user-app-register。
在Wireshark中使用语法http.request.uri contains version2.php
查看攻击者访问/version2.php的情况,发现请求体和响应体都是经过编码的内容,疑似加密通信隧道。
在Wireshark中使用语法http.request.uri contains index.php?user-app-register
查看攻击者访问/index.php?user-app-register的情况,发现请求体和响应体都是经过编码的内容,意思webshell通信。
问了下GPT,也说是webshell。
由此判断,/index.php?user-app-register是攻击者首先使用的webshell,/version2.php是攻击者后续使用的后门木马。
四、提交Webshell连接密码
查看/version2.php的通信内容,可知Network2020是webshell的连接密码。
五、提交数据包的flag1
使用命令cat /www/wwwlogs/127.0.0.1.log | grep 192.168. | cut -d ' ' -f 7 | uniq -c | less
查看攻击者访问的URL情况。
发现攻击者访问过/flag1这个文件。
但是web路径下并没有flag1文件,后续查看history得知是被删了。
从服务器下载数据包“/root/数据包1.pcapng”到本机,打开Wireshark使用语法http.request.uri contains flag1
搜索攻击者访问的flag1文件,并追踪流
获得flag1文件的内容:flag1{Network@_2020_Hack}。
六、提交攻击者使用的后续上传的木马文件名称
在第3题时,已经确认后续上传的木马文件名称是:version2.php。
七、提交攻击者隐藏的flag2
使用命令history | grep vi
查看历史命令,并通过grep vi筛选编辑过的文件,发现以下被编辑过的文件值得关注:.api、mpnotify.php、alinotify.php、/etc/profile。
使用find / -name .api 2>/dev/null
等命令查看文件路径,再使用less /www/wwwroot/127.0.0.1/.api
等命令查看文件内容。
最终在/www/wwwroot/127.0.0.1/.api/alinotify.php文件发现flag2:flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}。
八、提交攻击者隐藏的flag3
使用命令less /etc/profile
查看题目7发现的被编辑过的/etc/profile文件,发现flag3:flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}。
使用命令history
查看历史命令,同样获得flag3。
原文始发于微信公众号(OneMoreThink):应急靶场(7):Linux2
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论