安恒八月月赛流量分析writeup
题目背景
某公司内网网络被黑客渗透,简单了解,黑客首先攻击了一台web服务器,破解了后台的账户密码,随之利用破解的账号密码登陆了mail系统,然后获取了vpn的申请方式,然后登陆了vpn,在内网pwn掉了一台打印机,请根据提供的流量包回答下面有关问题
关卡列表
- 某公司内网网络被黑客渗透,请分析流量,给出黑客使用的扫描器
- 某公司内网网络被黑客渗透,请分析流量,得到黑客扫描到的登陆后台是(相对路径即可)
- 某公司内网网络被黑客渗透,请分析流量,得到黑客使用了什么账号密码登陆了web后台(形式:username/password)
- 某公司内网网络被黑客渗透,请分析流量,得到黑客上传的webshell文件名是,内容是什么,提交webshell内容的base编码
- 某公司内网网络被黑客渗透,请分析流量,黑客在robots.txt中找到的flag是什么
- 某公司内网网络被黑客渗透,请分析流量,黑客找到的数据库密码是多少
- 某公司内网网络被黑客渗透,请分析流量,黑客在数据库中找到的hash_code是什么
- 某公司内网网络被黑客渗透,请分析流量,黑客破解了账号ijnu@test.com得到的密码是什么
- 某公司内网网络被黑客渗透,请分析流量,被黑客攻击的web服务器,网卡配置是是什么,提交网卡内网ip
- 某公司内网网络被黑客渗透,请分析流量,黑客使用了什么账号登陆了mail系统(形式: username/password)
- 某公司内网网络被黑客渗透,请分析流量,黑客获得的vpn的ip是多少
解题过程
黑客使用的扫描器
打开webone.pcap数据包,按照协议类型排序一下,看到http协议的时候,发现了明显的awvs的特征
黑客扫描到的登陆后台
登陆后台99%使用的是POST方法,直接使用过滤器过滤一下,然后追踪TCP流,看到302重定向,基本就是登陆成功了
http.request.method=="POST"
黑客登陆后台所使用的账号密码
根据上一步我们看到的后台登陆302重定向结果可以判断已经登陆成功了,直接查看数据即可获得账号密码
但是查看过后我发现有很多302重定向登陆成功的结果,发现了很多账号密码,为了确定黑客所使用的,我找了一下黑客的ip地址,就是刚刚看到使用awvs进行扫描的源地址一定就是黑客的ip。然后使用过滤器再次过滤一下。
http.request.method=="POST" and ip.src==192.168.94.59 and http contains "rec=login"
终于在最后一条数据被我找到了..
webshell文件名和内容
通过下面的语句过滤一下数据,翻阅数据包后发现了一个a.php可能有点蹊跷,但是没有发现他是如何上传的,不过追踪一下TCP流,发现1234为传递值,并有base64加密过的内容,解密一下发现是php代码,以z1为传递值,z1也是使用了base64加密过的内容,再次解密一下得到了一个目录。总结上面的东西发现好像并没有什么作用。。。
http.request.method=="POST" and ip.src==192.168.94.59 and http
不过从上面的发现基本可以断定webshell是php写的,盲猜一下是php一句话木马,使用下面的语句过滤一下,没有发现数据,考虑到可能是tcp重传的原因,导致http中没追踪到,把http换成tcp再次过滤一下查看,最终找到了webshell的内容
http contains "<?php @eval"
tcp contains "<?php @eval"
robots.txt中的flag
直接导出http对象,在文本过滤器中选择robots.txt,将文件保存下来,即可获得flag
数据库密码
直接过滤http数据包,查看数据包的末尾,如果数据库登陆成功,那么http响应码应该为200,逐一查看响应码为200的数据包,即可找到数据库密码
hash_code
打开webtwo.pacp,查看前几条MySql的请求和响应,发现第17条数据发送了以下命令:
SELECT value FROM `dou_config` WHERE name = 'hash_code'
那么查看他的响应应该就可以获得结果了,直接查看第18条数据,发现了hash_code的值
hash_code:d1c029893df40cb0f47bcf8f1c3c17ac
账号ijnu@test.com的密码
在分组详情中直接搜索邮箱名称,即可获取密码,密码以md5加密形式传递,解密一下即可
网卡配置ip
这里回到webone.pcap,直接过滤 tcp contains "eth0"
然后追踪一下TCP流即可
黑客使用什么账号登陆了mail系统
这题需要综合来看mailtwo.pcap和mailtwo1.pcap两个数据包。
首先在mailtwo.pcap中过滤http,第三条数据的Cookie中发现了 login_name=wenwenni字段,并且是action=logout。
继续向下读取数据,发现下一个mail系统的数据是28号,然后又到了登陆界面的35号数据,在其中发现了密码的加密函数:
取出来发现是AES的CBC加密,填充格式为ZeroPadding,密钥为字符串1234567812345678的hash值,偏移量为1234567812345678
var key_hash = CryptoJS.MD5('1234567812345678');
var key = CryptoJS.enc.Utf8.parse(key_hash);
var iv = CryptoJS.enc.Utf8.parse('1234567812345678');
form.password.value = CryptoJS.AES.encrypt(form.password.value, key, { iv: iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});
在下一次的42号数据请求中,发现登录用户依然为wenwenni,因为这个用户刚刚推出,所以猜测是使用cookie登录的,查看一下返回数据44号中出现{"success":true},代表登陆成功。
]
既然这样的话,我们使用以下语句过滤一下,
(http contains "{\\"success\\":true}" or http.request.method=="POST") and ip.addr==192.168.94.59
显示出post请求成功的返回结果,发现是在爆破,并且直到mailtwo.pcap的最后也未爆破成功。于是打开mailtwo1.pcap,用相同的过滤条件试试,发现几条数据,从后往前看,发现No.18152是登陆成功的返回结果,那对应的No.17126则就是正确的加密后的密码。
进行aes解密即可得到admin账号的密码
黑客获得的vpn,ip是多少
第一个包在尝试登陆vpn,第二个包登陆上了vpn,然后第二个包 从 统计->对话 发现10.3.4.3和10.3.4.96发出的包比较多,而且过滤一下smb发现10.3.4.96是smb服务器,筛选10.3.4.55(另一个流量大点的地址)发现是10.3.4.3先ping它的,基本可以确定10.3.4.3就是黑客的vpn IP。