前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >应急靶场(7):Linux2

应急靶场(7):Linux2

作者头像
OneMoreThink
发布2024-10-15 11:47:15
650
发布2024-10-15 11:47:15
举报
文章被收录于专栏:用户2967688的专栏

一、提交攻击者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。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OneMoreThink 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、提交攻击者IP
    • 1.1、nginx
      • 1.2、bt-panel
      • 二、提交攻击者修改的管理员密码(明文)
      • 三、提交第一次Webshell的连接URL
      • 四、提交Webshell连接密码
      • 五、提交数据包的flag1
      • 六、提交攻击者使用的后续上传的木马文件名称
      • 七、提交攻击者隐藏的flag2
      • 八、提交攻击者隐藏的flag3
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档