0x01 前言
总结了上一年的内容,整理资料的时候有个去年比较特殊的一场CTF,刚刚好一个流量包,很有意思的一个题目,拿出来跟大家分享一下,,,大佬请绕过,师傅们请多多关照,烦请留个赞或者评论 🤣,流量包的下载地址留下了,有兴趣的可以分析一下
0x02 正文
题目
附件下载地址
题目问题
1、失陷主机一共开放哪几个端口
2、攻击者登录成功所使用的账号密码是?
3、成功上传的后门文件名为?
4、攻击者通过某个页面读取了/etc/下的文件?给出页面的相对路径,例如:/cat/file/cat_file.php
5、后门文件上传的绝对路径是?例如/var/share/webshell.php
6、攻击者在获取shell后执行的第一个命令的回显内容是?
分析
使用wireshark分析流量包,可以确定使用的协议不是很多,简单分析一下,发现使用的有arp协议探测存活主机,
当然,发现有回应的ip地址不止这一个,应该有四个,但是其它ip地址根据语法搜索
arp and ip.dst==192.168.222.2
根据题目分析其它协议,那么利用webshell或者说是登录都需要涉及到http协议
那么源地址和目的地址都比较清晰了
192.168.222.200
192.168.222.240
nmap做扫描时涉及的扫描协议有哪些,有基于ping的,基于SYN的,也就是基于icmp或者是基于tcp协议的
所以这里需要修改一下搜索语法
tcp and ip.dst eq 192.168.222.240
选择tcp协议,且目的ip为目标主机的所有流量包,直接点击查看dst_port
插曲拓展
那么基于tcp的SYN扫描,正常情况下的流量包是什么形式呢?
TCP三次握手:
这里直接拿流量包中的3306端口作为演示,这里我直接追踪了tcp流
由于3306端口未开放,所以并没有完成完整的三次握手
正常情况下开放端口以22端口为例
完成了一个正常的三次握手的步骤。
第一个问题解决,开放端口情况
其实还有另外的查询方式也是比较简单的,我们可以根据length去排列,或者根据Info去排列比较简单的就可以根据流量报找到开放端口。
要解决第二个问题,用户名登录的绝对路径,涉及的协议就要考虑到涉及的web服务,那么自然涉及到http协议
当然,登录的时候很自然的想到两种http请求的方法,自然大多数都是GET和POST,语法搜索之后没看到数据值,采用POST的方法去搜索自然在请求包中可以看到用户名以及密码的哈希值。
第四个问题解决,通过某个页面读取只有两种方式,利用任意文件读取GET,或者利用文件内容读取POST方式
ip.src eq 192.168.222.200 and http.request.method == "POST"
ip.src eq 192.168.222.200 and http.request.method == "GET"
要解决后面的第五个和第六个问题也并不难,文件上传路径可以确定之后,追踪流,就可直接解决
0x03 结语
有问题或者有不当的地方,各位师傅欢迎交流 😅