Tags:流量分析
, 应急响应
, http
, ssh
, icmp
, ftp
, telnet
, 信安一把梭
0x00. 题目
某集团的路由器设备被黑客攻击了,运维工程师小辉辉正在打王者走不开,委托你帮他分析流量找出下列flag。
-
使⽤ Wireshark分析数据包找出telnet服务器(路由器)的
⽤⼾名和密码
,并将密码作为Flag值提交。flag格式:flag{密码}
-
telnet服务器是⼀台路由器,找出此台路由器的特权密码,并将密码作为Flag值提交。flag格式:
flag{密码}
-
telnet服务器是⼀台路由器,正在被 192.168.181.141这台主机进⾏密码爆破,将此主机进⾏密码爆破的次数作为Flag值提交。
flag格式:flag{爆破次数}
-
ftp服务器已经传输⽂件结束,将登陆服务器后的第⼀条指令作为Flag值提交。flag格式:
flag{第⼀条指令}
-
ftp服务器已经传输⽂件结束,将建⽴FTP服务器的数据连接的次数作为Flag值提交。flag格式:
flag{连接次数}
-
ftp服务器已经传输⽂件结束,将登陆服务器后第⼀次使⽤数据连接的端⼝号作为Flag值提交。flag格式:
flag{第⼀次连接端⼝}
-
web服务器地址是192.168.181.250,其使⽤的脚本语⾔为php,将服务器使⽤php的版本号作为Flag值提交。flag格式:
flag{php版本号}
-
web服务器地址是192.168.181.250,将web服务器软件的版本号作为Flag值提交。flag格式:
flag{web软件版本号}
-
找出数据包当中所有HTTP状态码为404的报⽂,将这些报⽂的数量作为Flag值提交。flag格式:
flag{报⽂数量}
-
这些数据中有⾮常多的ICMP报⽂,其中有⼀个设备是路由器,IP地址为192.168.181.25,将路由器上主动发出的ping请求的数量作为Flag值提交。flag格式:
flag{请求数量}
-
这些数据中有⾮常多的ICMP报⽂,这些报⽂中有⼤量的⾮正常ICMP报⽂,找出类型为重定向的所有报⽂,将报⽂重定向的数量作为Flag值提交。flag格式:
flag{重定向数量}
-
这些数据中有ssh报⽂,由于ssh有加密功能,现需要将这些加密报⽂的算法分析出来,将ssh客⼾端⽀持的第⼀个算法的名称作为 Flag值提交。flag格式:
flag{第⼀个算法名称}
-
这些数据中有ssh报⽂,由于ssh有加密功能,现需要将这些加密报⽂的算法分析出来,将ssh服务器⽀持的第⼀个算法的密钥⻓度作为Flag值提交。flag格式:
flag{第⼀个算法密钥⻓度}
附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件
附件名称:20250330_信安一把梭_考试篇.zip
0x01. WP
1. 使⽤ Wireshark分析数据包找出telnet服务器(路由器)的⽤⼾名和密码
,并将密码作为Flag值提交。flag格式:flag{密码}
过滤telnet协议请求,追踪流看下一个对话,这里看到黑客通过admin
用户登录成功了密码是Cisc0
然后R1路由器的特权密码是cisco123
(玩过ensp的都知道,如何判断R1是否登陆成功看到R1>变成了R1#)
所以问题1的flag为flag{Cisc0}
2. telnet服务器是⼀台路由器,找出此台路由器的特权密码,并将密码作为Flag值提交。flag格式:flag{密码}
同步骤1
,flag为flag{cisco123}
3. telnet服务器是⼀台路由器,正在被 192.168.181.141这台主机进⾏密码爆破,将此主机进⾏密码爆破的次数作为Flag值提交。 flag格式:flag{爆破次数}
telnet && (ip.dst == 192.168.181.141) && telnet contains "User Access"
发现该主机对telnet服务器访问了11次,flag为flag{11}
4. ftp服务器已经传输⽂件结束,将登陆服务器后的第⼀条指令作为Flag值提交。flag格式:flag{第⼀条指令}
通过过滤ftp协议
,发现登录成功后的第一条指令,所以flag为flag{PORT 192,168,181,1,235,130}
追踪TCP流可以看到具体交互内容,说明如下:
220 ........ Slyar FTPserver!
# FTP服务器返回的欢迎消息,表示服务器名称为 "Slyar FTPserver"。OPTS UTF8 ON
# 客户端请求服务器启用UTF-8编码,这通常用于处理文件名中的多字节字符。530 Please login with USER and PASS.
# 服务器要求客户端进行登录,并提供用户名(USER)和密码(PASS)。USER anonymous
# 客户端尝试使用 "anonymous" 作为用户名进行登录,这通常用于匿名访问FTP服务器。331 Please specify the password.
#服务器要求客户端提供密码,因为 "anonymous" 用户通常需要提供邮箱地址作为密码。
#PASS客户端没有提供密码,这种情况可能是匿名登录时直接按回车键提交。230 Login successful.
# 服务器成功验证登录信息并允许访问。PORT 192,168,181,1,235,130
# 客户端请求使用指定的IP地址(192.168.181.1)和端口(235130)进行数据传输。200 Port command successful.
# 服务器确认接受客户端的PORT命令,表示数据连接将使用指定的IP和端口。LIST
# 客户端请求服务器列出当前目录中的文件和目录。150 Opening ASCII mode data connection for directory list.
# 服务器表示它正在建立ASCII模式的数据连接以返回目录列表。226 Transfer complete
# 服务器表示目录列表已成功传输并完成。XPWD
# 客户端请求显示当前工作目录路径。502 Command not implemented.
# 服务器不支持XPWD命令,因此返回错误代码502。PORT 192,168,181,1,235,192
# 客户端尝试再次发送PORT命令,指定另一个端口(235192)进行数据传输。200 Port command successful.
# 服务器确认接受新的PORT命令。NLST
# 客户端请求列出当前目录中的文件名(使用NLST命令)。502 Command not implemented.
# 服务器表示不支持NLST命令,返回错误502。QUIT
# 客户端请求关闭会话。220 ....!
# 服务器响应关闭会话,发送再见消息 "220 ....!"。
5. ftp服务器已经传输⽂件结束,将建⽴FTP服务器的数据连接的次数作为Flag值提交。flag格式:flag{连接次数}
从ftp流量请求发生后,连接了1次,所以flag{1}
6. ftp服务器已经传输⽂件结束,将登陆服务器后第⼀次使⽤数据连接的端⼝号作为Flag值提交。flag格式:flag{第⼀次连接端⼝}
从FTP命令来看,传输文件结束后的连接指令为PORT 192,168,181,1,235,192
,其中最后两位表示端口,其实际端口号为235*256+192=60352
,即flag为flag{60352}
7. web服务器地址是192.168.181.250,其使⽤的脚本语⾔为php,将服务器使⽤php的版本号作为Flag值提交。flag格式:flag{php版本号}
过滤服务器地址及http协议,在响应头中获得服务器的php版本号,flag为flag{5.5.38}
8. web服务器地址是192.168.181.250
,将web服务器软件的版本号作为Flag值提交。flag格式:flag{web软件版本号}
同步骤7
,web服务器软件为Apache
,flag为flag{2.2.15}
9. 找出数据包当中所有HTTP状态码为404
的报⽂,将这些报⽂的数量作为Flag值提交。flag格式:flag{报⽂数量}
通过统计功能直接分析响应包的状态,得到flag为flag{27}
10. 这些数据中有⾮常多的ICMP报⽂,其中有⼀个设备是路由器,IP地址为192.168.181.25
,将路由器上主动发出的ping请求的数量作为Flag值提交。flag格式:flag{请求数量}
通过icmp && ip.src==192.168.181.25
筛选,得到flag为flag{2150}
11. 这些数据中有⾮常多的ICMP报⽂,这些报⽂中有⼤量的⾮正常ICMP报⽂,找出类型为重定向的所有报⽂,将报⽂重定向的数量作为Flag值提交。flag格式:flag{重定向数量}
找到重定向的ICMP流量包,并将特征添加到过滤器中,得到flag为flag{57}
ICMP
请求类型说明:
每⼀个包都是通过数据链路层DLC 协议,IP 协议和 ICMP 协议共三层协议的封装。
DLC 协议的⽬的和源地址是 MAC 地址,IP 协议的⽬的和源地址是 IP 地址,
这层主要负责将上层收到的信息发送出去,⽽ICMP协议主要是 Type 和 Code 来识别,
“Type:8,Code:0” 表⽰报⽂类型为诊断报⽂的请求测试包,
“Type:0,Code:0” 表⽰报⽂类型为诊断报⽂类型请正常的包。ICMP 提供多种类型的消息为源端节点提供⽹络额故障信息反馈,
报⽂类型可归纳如下:
(1)诊断报⽂(类型:8,代码 0;类型:0代码:0);
(2)⽬的不可达报⽂(类型:3,代码 0-15);
(3)重定向报⽂(类型:5,代码:0--4);
(4)超时报⽂(类型:11,代码:0--1);
(5)信息报⽂(类型:12--18)。
12. 这些数据中有ssh报⽂,由于ssh有加密功能,现需要将这些加密报⽂的算法分析出来,将ssh客⼾端⽀持的第⼀个算法的名称作为 Flag值提交。flag格式:flag{第⼀个算法名称}
筛选ssh协议流量,并找到有效流量追踪TCP流,其中Client的第一个密钥交换算法为ecdh-sha2-nistp521
,因此flag为flag{ecdh-sha2-nistp521}
13. 这些数据中有ssh报⽂,由于ssh有加密功能,现需要将这些加密报⽂的算法分析出来,将ssh服务器⽀持的第⼀个算法的密钥⻓度作为Flag值提交。flag格式:flag{第⼀个算法密钥⻓度}
同步骤12
,从SERVER的回包中可以看到第一个算法为diffie-hellman-group-exchange-sha256
,其中密钥长度为256,所以flag为flag{256}