最做流量分析的题目感觉还是不太熟悉,所以最近几篇博客都应该都是练习流量分析的题目了,就从安恒8月赛这个应急响应讲起吧,记录一下加深印象,顺便小结一下自己的做题领悟。
题目地址 https://pan.baidu.com/s/13SoD6xB7YBiqpUDCIcb8mg
1、给出黑客使用的扫描器
2、得到黑客扫描到的登陆后台是(相对路径即可) /admin/login.php
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是多少
还得了解一下一些前置的知识
过滤IP,如源IP或者目标 x.x.x.x
ip.src == x.x.x.x or ip.dst eq x.x.x.x 或者 ip.addr == x.x.x.x
过滤端口
tcp.port eq 80 or udp.port eq 80
过滤MAC
eth.dst ==A0:00:00:04:C5:84
http模式过滤(就是一种模糊匹配)
http.request.method== "GET"
http.request.method== "POST"
http.request.uri =="/img/logo-edu.gif"
http contains"GET"
http contains"HTTP/1."
http.request.method== "GET" && http contains "User-Agent:"
一些常见的自动化工具的指纹
Awvs(Acunetix Web Vulnerability Scanner )
acunetix_wvs_security_test acunetix
acunetix_wvs acunetix_test
Acunetix-Aspect-Password: Cookie:
acunetix_wvs_security_test X-Forwarded-Host:
acunetix_wvs_security_test X-Forwarded-For:
acunetix_wvs_security_test Host:
acunetix_wvs_security_test
感觉我们只需要http contains “wvs” 或者是 http contains “acunetix”就可以把包给筛选出来
Netsparker
X-Scanner: NetsparkerLocation:
NetsparkerAccept: netsparker/checkCookie:
netsparkerCookie: NETSPARKER
Appscan
Headers Content-Type: Appscan
Content-Type: AppScanHeaderAccept: Appscan User-Agent:Appscan
Nessus
x_forwarded_for: nessus
referer: nessus
host: nessus
Sqlmap
User-Agent: sqlmap1.2.8#stable
竟然是黑客攻击,就应该把把http过滤看一下或者直接搜就行
所以这一题的答案是awvs
通常后台的名字包括
admin
manager
login
system
所以我们直接搜其中的一个输入命令http contains "login" && http.request.method == "POST"
前面的都是登陆的页面,那个password_reset应该是密码重置
所以这一题的答案应该是/admin/login.php?rec=login
也是同样的套路
输入
http contains "password"
这个我找得有点久,因为答案在最后,中间还有其他可以登陆上去的用户有一个还像是人事,还有两外一个好像是设么simple啥的,看了这整个包,发现simple这个账号有好几次改密码的操作,人事也登陆了几次,这些混淆都给这题提高难度,如果你真的仔细分析这个包的话就会发现,这里面黑客是大概爆破了几次,中间还尝试了一波SQL注入,而且爆破的过程都是用的admin账户,这也暗示了为什么最后的登陆的用户名是admin了,这里的话登陆成功可以看长度,对比爆破跟正常人事的登录,成功的话一般长度都是750+,没成功的话一般都是730+
所以第三题的答案是admin/admin!@#pass123
通常webshell都会有明显的关键字比如eval、assert之类的,还有各种回调函数就不多说了。
我们这里也是一样的套路
ip.src == 192.168.94.59 and http contains "eval"
一看这不太正常的文件名,有很大机会就是webshell了,而且里面的内容含有z1这样的参数很大可能性就是菜刀连接的流量,所以文件名是/image/article/a.php
所以这题的答案是
的base64编码
正常操作http contains "robots.txt"
然后追踪流就好了
这题的答案就是上图的flag
对于这题的数据库操作,先把马给过滤出来,然后再从里面找他的response,因为这里黑客是通过马对数据库操作的
可以先标记一下a.php
第一次出现的地方,然后过滤http一条条去看他们的response就可以了,要是想详细一点的话可以加上db等字样,这就是做题时候的一些小技巧了。。可能恰好一样的效率有点低
所以这题的答案就是e667jUPvJjXHvEUv
这个题目明显的就是说在数据库里面找到的hash_code,但是在第一个包里面使用http contains "hsah_code"
只找到一个响应报文,里面什么都找不到,这时候我们别忘了有第二个包的存在,我就是经常忘了。。这种做题习惯得改改,太浮躁,一旦发现没有就不做了。。。
我们来对比一下两个包的协议分级,很明显第二包里面大多数都是mysql的操作,所以很大可能性就是这个包里面存在我们要的答案
第一个包应用层大部分都是html的响应
而第二个包明显了,直接在tcp协议上执行的Mysql操作
我们可以在第二个包里面用mysql的过滤,如果是想搜索执行语句的话最好这样子,如:mysql.query contains “SELECT”
类似的模糊匹配
mysql contains "hash_code"
然后随便找个response追踪流看一下,发现答案
这题答案是d1c029893df40cb0f47bcf8f1c3c17ac
这一题一开始我还以为答案在mail的那两个包里面,结果还是在对sql操作的那个包上面,上来就直接http contains "[email protected]"
啥都没发现,这题目感觉出题没说得太明白。。
后面就用tcp contains "[email protected]"
把包筛出来,并且追踪流就行了,当然这题也可以用mysql contains "[email protected]"
把包筛出来
一样的效果
这题明显密码经过MD5加密的,所以这题得去somd5上解密
这题的答案是edc123!@#
在webone的那个包里面直接搜索就可以得到
http contains "eth"
或者你也可以直接从webtwo的包里面直接看到内网ip,这也对应了题目后面内网渗透之后,用连接的过程
也就是从192.168.32.189(内网地址)->10.3.3.100(连接后重新分配的内网地址)
所以这题的答案就是10.3.3.100
既然说是mail系统那我们就在mail的两个包里面寻求答案,在mailtwo里面输入http.request.method == "POST" and http contains "password"
出现很多相同username不同密码的请求,很有可能是在爆破mail系统,在mailtwo1这一个包里面同样的过滤还存在几条成立请求,对比一下时间,这应该是mailtwo还没爆破完mailtwo1这个包继续爆破,在mailtwo包里面的序号28的信息里面对应下面的几条response,发现一名叫wenwenni的人应该是登录成功的,经过了一个check的过程,
var loginCheck = function(form) {
if(form.username.value == "") {
alert("...........................");
form.username.focus();
return false;
}
if(form.password.value == "") {
alert("...........................");
form.password.focus();
return false;
}
else{
var key_hash = CryptoJS.MD5('1234567812345678');
var key = CryptoJS.enc.Utf8.pars
http contains "{\"success\":true}" and ip.addr==192.168.94.59
于是乎过滤,但是第一个包里面太多了,这一题其实我也不怎么确定,为什么与这么多success的还得继续爆破下去?希望有大佬能讲一讲。。。。
之鞥按照常规套路,把在mailtwo1包里面的筛出来的最后一个标记一下,再过滤回http,再来ctrl+shift+N
跳到标记处,然后往回找有关登录的请求,找到的第一个请求。。。
那个密码需要AES解密,利用上面的算法求出key大概是。。。个人感觉这题最有难度
http://encode.chahuo.com/
解密出来的结果跟第三题的答案一样。。。。。后来看到有人说这是社工手段,直接套第三题答案,有意思有意思。。。。
最后一题在two这个包里面直接点击统计->端点,又学到了一种方法
看到发包最多的是10.3.4.3
所以这个答案就是10.3.4.3
感觉流量分析还是有点套路的,第一点就是多用点contains语句,模糊匹配一下,关键字靠自己的灵活性以及分析过程得出的结论,个人感觉大部分题目会给出,比如的话有小马上传的时候,你会想到会存在关键字,比如eval,assert之类的东西吗,别人用拼接方式传的马那就另当别论了。。但是还是可以通过菜刀的一些标志来识别的,例如>||<之类符号,2333
第二就是各种自动化扫描器的指纹特征,还是得记一下,有点用,第三就是可以通过统计去发现某些ip的发包次数,从而确定可疑ip