CTF流量分析wp

CTF流量分析wp
Linstars2021湖南.pcapng
过滤多次握手
查看哪些IP建立的连接最多
⽬前⼤多数的连接都是基于TCP的,那么TCP在建⽴连接之前会进⾏三次握⼿
TCP协议位于传输层,作用是提供可靠的字节流服务,为了准确无误地将数据送达目的地,TCP协议采纳三次握手策略。
三次握手原理:
- 第1次握手:客户端发送一个带有SYN(synchronize)标志的数据包给服务端;
- 第2次握手:服务端接收成功后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了;
- 第3次握手:客户端再回传一个带有ACK标志的数据包,表示我知道了,握手结束。其中:SYN标志位数置1,表示建立TCP连接;ACK标志表示验证字段。
过滤所有带SYN标志位
1 | tcp.connection.syn |
通过这个过滤规则,可以知道哪些IP向哪些端口建立连接最多
上面是192.168.100.88这个向192.168.100.154这个IP建立的连接最多,并且连接的端口都是些易受攻击的端口,由此可以判断是恶意攻击者
找到黑客在网站中下载的私钥文件
可以通过wireshark自带的协议分级功能去找
可以发现,IPV4走的流量比IPV6多,优先看IPV4,展开IPV4后发现http占比最多。由此先推断是走的HTTP协议
协议简介
Hypertext Transfer Protocol (HTTP)
- MIME类型:
text/html
(HTML文档)、application/json
(JSON数据)等,具体取决于传输内容。 - 说明:HTTP本身不直接关联固定MIME类型,但通过
Content-Type
头字段指定传输内容的类型,如网页用text/html
,图片用image/jpeg
或image/png
。
- MIME类型:
Portable Network Graphics (PNG)
- MIME类型:
image/png
- 说明:PNG是一种无损压缩图像格式,支持透明背景,适合网络传输。
- MIME类型:
JPEG File Interchange Format (JFIF)
- MIME类型:
image/jpeg
- 说明:JFIF是JPEG的存储格式之一,MIME类型与JPEG共享,用于标识压缩图像文件。
- MIME类型:
JavaScript Object Notation (JSON)
- MIME类型:
application/json
- 说明:JSON是一种轻量级数据交换格式,广泛用于前后端数据传输和API接口。
- MIME类型:
HTML Form URL Encoded
- MIME类型:
application/x-www-form-urlencoded
- 说明:用于HTML表单提交的默认编码类型,将键值对编码为URL格式(如
key1=value1&key2=value2
)。
- MIME类型:
eXtensible Markup Language (XML)
- MIME类型:
application/xml
或text/xml
- 说明:XML是一种可扩展标记语言,用于存储和传输结构化数据,如配置文件或Web服务消息。
- MIME类型:
总结:
MIME类型(如image/png
或application/json
)是服务器通过HTTP头(如Content-Type
)告知客户端如何处理数据的标准方式。正确设置MIME类型能确保浏览器或应用程序正确解析内容。
所以我们先过滤出http数据包内包含key关键字的
1 | http contains "key" |
最后发现明文请求的key文件
找到⿊客通过 SQL 注⼊攻击时的软件名称及软件版本号
在此之前需要先将上面的key密钥进行复制保存到txt文件后面会用的到。
右键追踪TCP流
发现给了一个mars-server.key的密钥,我们选中后右键进行复制保存到txt文件中
题⽬让我们提价sql注⼊时所使⽤的⼯具 ,sql注入其实是走的http协议
SQL注入攻击通常利用HTTP和HTTPS协议进行,以下是具体说明:
点击展开
1. HTTP协议
- 攻击原理:攻击者通过构造恶意的HTTP请求(如修改URL参数、表单字段、Cookie或HTTP头部),将恶意SQL代码注入到Web应用程序的输入中。
- 示例:
- URL参数注入:在URL中插入恶意代码,如:
1
http://example.com/user?id=1' OR '1'='1
- 表单字段注入:在登录表单的用户名或密码字段中输入:
1
' OR '1'='1' --
- Cookie注入:篡改Cookie值,注入恶意SQL代码。
- URL参数注入:在URL中插入恶意代码,如:
- 风险:HTTP协议本身无加密,攻击者更容易截获和篡改请求内容。
2. HTTPS协议
- 攻击原理:与HTTP类似,但攻击者需通过HTTPS加密通道注入恶意代码。虽然HTTPS加密了传输数据,但:
- 如果Web应用程序未对用户输入进行严格的验证和过滤,攻击者仍可通过注入恶意SQL代码绕过安全措施。
- 示例:通过HTTPS提交的表单中注入:
1
'; DROP TABLE users; --
- 风险:HTTPS仅保证传输过程的安全,无法防御应用程序逻辑漏洞导致的SQL注入。
总结
SQL注入攻击主要利用HTTP/HTTPS协议的漏洞,通过注入恶意SQL代码操纵数据库。防御需结合代码安全、输入验证和加密传输,而非仅依赖协议本身的安全性。
因此我们过滤http协议,通过翻找,发现get传⼊的参数可疑
查看其请求头,在user-agent字段发现了⼯具名称
找⿊客登陆⽹站后台所⽤的账号密码
由于登录功⻚⾯提交数据表单⽤的都是POST请求,所以我们过滤所有POST请求即可,通过检索发现并未向内⽹服务器的登录⻚⾯提交⻚⾯,也没有提交成功等表单和用户名及密码等字样
1 | http.request.method == POST |
所以猜测是HTTPS,所以前面保存的key密钥起到了关键作用,用于解密HTTPS的数据包。
在wireshark中打开设置-⾸选项,在Protocol中找到SSL或者 TLS,新版本中叫TLS,旧版本中叫SSL
点击 RSA keys list 旁边的 edit ,然后将key⽂件导⼊到⾥⾯
然后重启wireshark,再次打开该流量包
使用该过滤规则,过滤出带有password关键字的,并且登录⻚⾯提交数据使⽤的都是POST⽅法
1 | http contains "password" and http.request.method == POST |
在追踪流里搜索username字段,发现客户端向服务器提交的POST数据,其中用户名为admin密码为123456,服务器所返回的状态码是302,并且跳转到system_wws/index.php⻚⾯,疑似⽹站后台⾸⻚,此处是登录成功的 。
找到⿊客上传到我们服务器上的⼀句话⽊⻢
上传⼀般都有upload关键字,并且都是使⽤POST的⽅法,因此有了如下过滤规则:
1 | http contains "upload" and http.request.method == POST |
搜索关键字upload
这里上传的是图片马,正常的图片中包含了php代码,可以看到一句话木马的名称是aa.php
找到⿊容扫描我们服务器开放了哪些端⼝
前⾯我们已经知道攻击者的IP是192.168.100.88,服务器的IP为 192.168.100.154,题⽬说的是服务器所开放的端⼝,我们在前⾯了解完TCP的三次握⼿,要建⽴连接的前提是SYN,如果服务器上被连接的端⼝是开放的,则会返回SYN,ACK
因为是服务器返回SYN,ACK,所以过滤规则为服务器是src(发送方)攻击者是dst(接收方)
,因此我们有了如下过滤规则:
1 | ip.src == 192.168.100.154 and ip.dst == 192.168.100.88 and tcp.flags.syn ==1 and tcp.flags.ack ==1 |
找出⿊客曾经利⽤服务器中最⼤的端⼝提权所保存的⽂件名
目前开放的最大端口是6379
端口,运行的是readis
数据库服务,而readis 服务提权存在多种思路,每种思路都需要使用save
命令保存配置。因此过滤语句为如下:
于是有了如下过滤规则:
1 | tcp.port == 6379 and tcp contains"save" |
通过搜索发现
# 这⾥在redis服务中执⾏的命令是:
config set dir /root/.ssh # 设置操作的⽬录为
/root/.ssh
config set dbfilename authorized_keys # 在操作⽬录下创建⼀个⽂件名为
authorized_keys
save # 执⾏操作
# 最终就是在/root/.ssh⽬录下创建⼀个秘钥⽂件,⽤于替换原有秘钥⽂件,从⽽实现免密登录