应急响应之公交车系统应急排查

分析环境内的中间件日志,找到第一个漏洞(黑客获取数据的漏洞),然后通过分析日志、流量,通过脚本解出黑客获取的用户密码数据,提交获取的前两个用户名

正向思维排查:端口、进程、相关服务日志

1
netstat -lntp

寻找开放端口

image-20251010153023993

通过查看开放端口看到,目前是开放了:SSH、MySQL、WEB

1
cat -n /var/log/apache2/access.log

执行查看access.log中间件日志

1
awk '{print $1,$6,$7}' access.log

进行筛选,可以看到除base64请求外还有shell1.php的文件请求

image-20251010153125390

使用zui进行pcap流量包的流量分析并执行以下语句

1
count() by _path|sort -r count

image-20251010151106779

可以看到服务类协议有ftp和http

1
2
count () by id.orig_h,status_code,uri|status_code==200 | sort -r count  
// 可以理解为select id.orig_h,status_code,uri from result1.pcap where status_code==200

image-20251010152707097

可以看到请求了多条search.php 判断漏洞点与其有关

复制其中一条日志 直接浏览器访问 发现需要加载五秒 判断为sql注入中的时间盲注

image-20251010153329298

需要先获取数据库->然后表名->字段->数据

URL解码->BASE64解码->判断注入了哪些库->判断注入了哪些表->判断注入了哪些字段->最终获取了哪些数据

使用ai编写脚本…

黑客通过获取的用户名密码,利用密码复用技术,暴破了FTP服务,分析流量以后找到开放的FTP端口,并找到黑客登录成功后获取的私密文件,提交其文件中内容

wireshark分析流量包

由描述得ftp为2121端口 直接用tcp.port == 2121过滤发现wireshark把它当作了TCP协议

那么使用ftp登录成功特征过滤successfully字段

1
tcp.port==2121&&tcp contains "successfully"

选取一条数据追踪tcp流

image-20251010163809217

发现攻击者获取的私密文件为sensitive_credentials.txt

上机排查并查看相关文件

1
cat /home/wangqiang/ftp/sensitive_credentials.txt

可恶的黑客找到了任意文件上传点,你需要分析日志和流量以及web开放的程序找到黑客上传的文件,提交木马使用的密码

通过前面zui对流量包的分析

发现对/uploads/shell1.php访问了27次 上机排查

1
cat /var/www/html/public/uploads/shell1.php

image-20251010154132818

发现有密码还有key,确认是默认的哥斯拉木马

.删除黑客上传的木马并在/var/flag/1/flag查看flag值进行提交

image-20251010154639396

分析流量,黑客植入了一个web挖矿木马,这个木马现实情况下会在用户访问后消耗用户的资源进行挖矿(本环境已做无害化处理),提交黑客上传这个文件时的初始名称

wireshark分析流量包,过滤关键字

1
http.request.uri=="/uploads/shell1.php"

从下往上看,,一般最上方执行命令比如查看权限、当前目录下文件,最后做的操作可能会很重要,比如:清除痕迹,维持权限,上传文件等

image-20251010170203393

使用工具箱进行webshell解密

image-20251006171657064

最后一条流量中解密得到,黑客移动uploads/map.php文件替换index.php文件,再往上看

image-20251006173613265

成功删除了index.php

再往上接着翻,7105条流量中,有一段比较长的请求内容,解密后看到,这个正是map.php的上传, 所以黑客上传的文件初始名称为:map.php(没找到这条流量)

分析流量并上机排查,黑客植入的网页挖矿木马所使用的矿池地址是什么,提交矿池地址(排查完毕后可以尝试删除它)

黑客上传的map.php变成了index.php,所以先排查这个index.php,上机或访问web页面看一下

通过view-source查看前端源代码

发现底部有混淆的js代码段

image-20251010170939239

1
_0x1b1f8e['p'] = String.fromCharCode(103,117,108,102,46,109,111,110,101,114,111,111,99,101,97,110,46,115,116,114,101,97,109,58,49,48,49,50,56);  

由上述代码可推出拼接字段为gulf.moneroocean.stream:10128

清除掉混淆的web挖矿代码后在/var/flag/2/flag查看flag值

web前端查看到html代码中的js字段(网页挖矿,一般使用混淆的js