2023陇剑杯初赛复现
Wireshark的使用
不论是是ctf还是其他比赛的流量分析题目,或多或少都会用到Wireshark来做,因此这里简单记录一下Wireshark的使用方法,方便下次直接拿来用
过滤器表达式
IP过滤
- ip
1 |
|
- 源ip过滤
1 |
|
或者,选中一个源IP是筛选条件的数据包,找到Internet Protocol Version 4
下的Source
字段。
右击Source
字段,再选择作为过滤器应用
–-> 最后点击选中
,就可筛选出该源IP的所有包了
- 目的ip
1 |
|
协议过滤
1 |
|
HTTP协议过滤
1 |
|
mac地址过滤
1 |
|
端口过滤
srcport是源地址,dstport是目的地址,与tcp和udp搭配使用就可以了
1 |
|
过滤包长度
1 |
|
连接符
1 |
|
数据内容搜索
在wireshark界面按“Ctrl+F”,可以进行关键字搜索,支持正则表达式、字符串、十六进制等方式进行搜索,通常情况下直接使用字符串方式进行搜索。
搜索栏的左边下拉,有分组列表、分组详情、分组字节流三个选项,分别对应wireshark界面的三个部分,搜索时选择不同的选项以指定搜索区域:
数据流的追踪
一个完整的数据流一般都是由很多个包组成的;
所以当我们想查看某条数据包对于的数据流的话。可以选中数据,右键选择追踪流;
里面就会有tcp流、udp流、ssl流、http流。数据包属于哪种流就选择对应的流;
当我们选择了追踪流时,会弹出该流的完整的数据流还有这个数据流中包含的数据包,对话框下面可以选择数据流方向,顶部的过滤器就是该流的过滤规则
数据提取
Wireshark支持提取通过http传输(上传/下载)的文件内容,方法如下:
自动提取:
文件->导出对象->HTTP
在打开的对象列表中找到有价值的文件,如压缩文件、文本文件、音频文件、图片等,点击Save
进行保存,或者Save All
保存所有对象再进入文件夹进行分析。
手动提取:
选中http文件传输流量包,在分组详情中找到data
,Line-based text
, JPEG File Interchange Format
, data:text/html
层,鼠标右键点击 – 选中 导出分组字节流。
如果是菜刀下载文件的流量,需要删除分组字节流前开头和结尾的X@Y字符,否则下载的文件会出错。鼠标右键点击 – 选中 显示分组字节
在弹出的窗口中设置开始和结束的字节(原字节数开头加3,结尾减3)
最后点击Save as
按钮导出。
参考:
https://jwt1399.top/posts/29176.html#toc-heading-10
Wireshark流量分析_H3rmesk1t的博客-CSDN博客
陇剑杯初赛复现
之前并没有过多的接触过流量分析,就借这次机会好好学学吧,看wp复现一下流量分析的题目
WS
Wireshark1_1
题目内容:被入侵主机的IP是?
Telnet是Internet远程登录服务的标准协议和主要方式,它可以让用户通过Internet网络登录到另一台远程计算机上,享受远程计算机本地终端同样的操作权限
一打开就可以很明显的看出来被TELNET登陆的IP是:192.168.246.28
所以被入侵主机的IP是192.168.246.28
Wireshark1_2
题目内容:被入侵主机的口令是?
右键telnet
的登录流量->追踪流->tcp流
口令是youcannevergetthis
Wireshark1_3
题目内容:用户目录下第二个文件夹的名称是?
可以看到执行了ls的结果,第二个就是Downloads
Wireshark1_4
题目内容:/etc/passwd中倒数第二个用户的用户名是?
还是刚才那个tcp流
HW
hard_web_1
题目内容:服务器开放了哪些端口,请按照端口大小顺序提交答案,并以英文逗号隔开(如服务器开放了80 81 82 83端口,则答案为80,81,82,83)
[SYN, ACK]的是正常建立了链接
[RST, ACK]是如果主机需要尽快关闭连接或连接超时,端口或主机不可达时发送的
TCP扫描确认端口开放的标志就是返回SYN+ACK
的包,所以只需要过滤SYN、ACK
状态都为1
的包即可
1 |
|
这个也行
1 |
|
所以开放了端口80、888、8888
hard_web_2
题目内容:服务器中根目录下的flag值是多少?
翻到这个路径有shell.jsp,追踪http流看看
不了解没关系,直接复制粘贴去谷歌搜索,
1 |
|
能发现这是哥斯拉jsp木马的内容哥斯拉jsp马分析_<%! string xc=”748007e861908c03”; class x extends _zeros__的博客-CSDN博客,AES加密
密钥已知:748007e861908c03
,这个的明文也就是木马连接密码
在tcp.stream eq 20053 ,AES解密内容得到flag
选择原始数据,以0d0a0d0a
为请求体/响应体
和请求头/响应头
的界限
1 |
|
注意选对相应的参数
flag{9236b29d-5488-41e6-a04b-53b0d8276542}
hard_web_3
题目内容:该webshell的连接密码是多少?
将748007e861908c03
放cmd5解密(但是需要付费),得到14mk3y
也可以用工具撞一下playGitboy/bruteHASH: 为CTF而生,随机或穷举指定格式HASH值,支持Fuzz MD系列、SHA系列等常见HASH类型 (github.com)
SS
sevrer save_1
黑客是使用什么漏洞来拿下root权限的。格式为:CVE-2020-114514
直接看http流量,前面的都是一下爆破响应404的请求,就看后面,/helloworld/greeting->追踪tcp流
看到了个奇怪的post数据,不认识,丢搜索引擎看看
第一个就是
sevrer save_2
黑客反弹shell的ip和端口是什么,格式为:10.0.0.1:4444
在tcp.stream eq 106
可以直观的看到
sevrer save_3
黑客的病毒名称是什么? 格式为:filename
在它给的文件夹查找,/home/guest中发现应该main文件
是ELF
可执行文件,那应该就是这个了
sevrer save_4
黑客的病毒运行后创建了什么用户?请将回答用户名与密码:username:password
这个可以去看看那些敏感文件里有没有,shadow和passwd
/etc/passwd、/etc/shadow,最后一个应该就是最新生成的
1 |
|
sevrer save_5
服务器在被入侵时外网ip是多少? 格式为:10.10.0.1
在刚才的/home/guest中有一个.log.txt查看
1 |
|
sevrer save_6
病毒运行后释放了什么文件?格式:文件1,文件2
就是/home/guest/.idea中的俩文件,根据main和这两个文件的修改日期就可以推出了
1 |
|
sevrer save_7
矿池地址是什么? 格式:domain:1234
打开mine_doge.sh
矿池地址:doge.millpools.cc:5567
sevrer save_8
黑客的钱包地址是多少?格式:xx:xxxxxxxx
1 |
|
SSW
SmallSword_1
连接蚁剑的正确密码是__?(答案示例:123asd)
直接看http协议,一眼就能看到一句话木马的请求
1 |
|
SmallSword_2
从后面看过来
在tcp.stream eq 142
发现写入的内容
base64解码得到
1 |
|
SmallSword_3
攻击者下载到的flag是______________?(答案示例:flag3{uuid})
数据提取,文件->导出对象->HTTP->save all
一个一个看,可以先看一下文件大小比较大的
看别人wp一眼就看出来是exe文件格式(自己并不知道,还是见识太少了)EXE文件结构及原理_leopardpals的博客-CSDN博客
删掉前面的 2D 3E 7C
,也就是让MZ成为文件头,然后把文件改后缀成exe
在桌面看到了一张test.jpg
发现是png格式,修改后缀为png,再次打开发现报错
crc爆破,tweakpng打开
跑脚本,爆破高为800,修改并保存
EW
ez_web_1
服务器自带的后门文件名是什么?(含文件后缀)
直接看http,从后面开始看,发现可以通过d00r.php
来执行各种命令,但是这个却不是答案
1 |
|
发现是ViewMore.php
写入的d00r.php
ez_web_2
服务器的内网ip是多少?
最后的d00r.php
执行了命令ipconfig
ez_web_3
攻击者往服务器写入的key是什么?
还是刚才那个流,可以看到写入了一个key_file压缩包,转化一下
1 |
|
在线Base64转文件工具 - 在线工具网 (hiofd.com)
再往上翻,找到解压密码
解压得到key
TP
tcpdump_1
题目内容:攻击者通过暴力破解进入了某Wiki 文档,请给出登录的用户名与密码,以:拼接,比如admin:admin
类似burpsuite爆破一样,直接看http,找到爆破的那一段流量,根据回显字典来找到成功登录的流量
1 |
|
过滤掉登录失败字段237的那些协议,再去看那段登录流量
但这个过滤依旧有点弱智,看别人wp是直接根据登陆失败的回显来,推出正确的回显并过滤的
1 |
|
tcpdump_2
题目内容:攻击者发现软件存在越权漏洞,请给出攻击者越权使用的cookie的内容的md5值。(32位小写)
题目说的是软件存在越权漏洞,那就重点看类似软件路径的流量
1 |
|
一共就这俩个,都MD5试试
1 |
|
1 |
|
最后是
1 |
|
tcpdump_3
题目内容:攻击使用jdbc漏洞读取了应用配置文件,给出配置中的数据库账号密码,以:拼接,比如root:123456
1 |
|
1 |
|
tcpdump_4
题目内容:攻击者又使用了CVE漏洞攻击应用,执行系统命令,请给出此CVE编号以及远程EXP的文件名,使用:拼接,比如CVE-2020-19817:exp.so
1 |
|
刚才在翻上一题的时候好像找到过
1 |
|
1 |
|
tcpdump_5
题目内容:给出攻击者获取系统权限后,下载的工具的名称,比如nmap
1 |
|
从后面开始看
1 |
|
HD
hacked_1
题目内容:admIn用户的密码是什么?
1 |
|
继续往下翻
推出正确的用户名和密码应该是:
1 |
|
但显然都是加密过的,再往下翻
1 |
|
尝试AES解密
hacked_2
题目内容:app.config[‘SECRET_KEY’]值为多少?
1 |
|
一下子就找到了
1 |
|
hacked_3
题目内容:flask网站由哪个用户启动?
知道了SECRET_KEY
,可以解密JWT,找到执行命令的包
参考flask session伪造admin身份_flask_session_cookie_manager3.py_white_&_black的博客-CSDN博客
1 |
|
返回
1 |
|
1 |
|
返回
1 |
|
所以用户应该是red
hacked_4
题目内容:攻击者写入的内存马的路由名叫什么?(答案里不需要加/)
1 |
|
路由是Index
IR、BF
有点类似取证的题目,看wp看得迷迷糊糊的,还是之后再补上吧