第二届长城杯ciscn半决赛awdp pwn以及应急响应wp
这次半决赛还真是状况频出,先是上午全场靶机断联了2轮,下午的应急又在坐大牢,还好是后面捋顺了逻辑做出来了,下半场发力干了个第二,总成绩赛区第四,这回是真燃尽了
上半场AWDP
typo fix
一开始一直在改这道结果后面才发现那个prompt是真的好改,白浪费了3轮。。。
进入程序是一个三功能的菜单堆题,add和delete都没有发现漏洞,那么只能是edit有问题了。

代码读着读着感觉就是不对劲(其实这个时候应该直接放虚拟机跑的,昏头了),然后就开始一个个试每个地方,几个read都试过了结果都报exp利用成功,所以确定漏洞点就是在snprintf函数处。
赛后复现发现漏洞是snprintf两个参数的位置反了,把 "%lu"当成复制的最大长度,造成了堆溢出
修复把call snprintf直接nop掉即可

prompt fix
这题漏洞很明显,那个delete函数存在栈溢出,不过当时修了之后报了个服务异常懵逼了(也可能是我修错了)

这时候看到他菜单的函数调用是call rdx跳转,我怀疑像有个任意函数执行的洞所以直接把call rdx给nop掉了,没想到居然修成功了?总之就是很怪

post-quanpum fix

这题修复算是瞎猫碰上了死耗子,当时是最后一轮找不到这题能有啥洞,想着找几个可能的位置随便修下得了,然后看这个程序里面就加密和解密函数可能有洞,所以进去找,看到这两个free尝试了下把他俩nop掉,没想到真是这么修的。。。。。给我整无语了
下半场ISW
应急坐了将近三个小时的牢,其实一开始很多都找到了但是没有串起来,后面是找到了那个持久化程序逆向分析之后一下就通了,直接连出4道加上gxngxngxn渗透大湿直接拿下第二
题目如下:
小路是一名网络安全网管,据反映发现公司主机上有异常外联信息,据回忆前段时间执行过某些更新脚本(已删除),现在需要协助小路同学进行网络安全应急响应分析,查找木马,进一步分析,寻找攻击源头,获取攻击者主机权限获取flag文件。(入口主机请通过ssh进行登录,登录口令为:ubuntu/admin_123456,如需root权限请使用sudo;附件第一层解压密码:5e9c5e0370a9c29816b44dfbe2ae5a8d,第二层解压密码:81c7e0d7a82ee016e304fb847c31e497)。请根据以下问题进行提交提交:题目1:找出主机上木马回连的主控端服务器IP地址[不定时(3~5分钟)周期性],并以flag{MD5}形式提交,其中MD5加密目标的原始字符串格式IP:port。
题目2:找出主机上驻留的远控木马文件本体,计算该文件的MD5, 结果提交形式: flag{md5}
题目3:找出主机上加载远控木马的持久化程序(下载者),其功能为下载并执行远控木马,计算该文件的MD5, 结果提交形式:flag{MD5}。
题目4:查找题目3中持久化程序(下载者)的植入痕迹,计算持久化程序植入时的原始名称MD5(仅计算文件名称字符串MD5),并提交对应flag{MD5}。
题目:分析题目2中找到的远控木马,获取木马通信加密密钥, 结果提交形式:flag{通信加密密钥}。
题目6:分析题目3中持久化程序(下载者),找到攻击者分发远控木马使用的服务器,并获取该服务器权限,找到flag,结果提交形式:flag{xxxx}。tips:压缩包密码最后一位为.
题目7:获取题目2中找到的远控木马的主控端服务器权限,查找flag文件,结果提交形式:flag{xxxx}
题目1
在ssh找了一圈网络连接但是啥也没找到,给的那个镜像本来以为是内存,后面一跑才知道发现其实是Linux的dd镜像(不看文件名是这样的),于是用火眼跑了下,但是也没有找到什么(感觉用r-studio一样的效果),只有桌面上恢复的一个1.txt值得注意

r-studio里面一样的(下面是用rstudio复现的)

后面又在ssh看了下history,发现之前ping了一个很可疑的ip
192.168.57.203
ifconfig能发现机器有两个网卡,一个是169开头让我们连接的,还有一个就是eth1,ip为192.168.57.210,再根据后面的题目要我们找到攻击者分发远控木马使用的服务器进一步确定应该就是这个ip了
所以用tcpdump抓一下eth1
tcpdump -i eth1 -w 1.pcap

那么答案就是192.168.57.203:4948了
flag{59110f555b5e5cd0a8713a447b082d63}
题目2
确定了ip之后开始找文件,想到之前在.viminfo里面找到一个可疑的升级程序

去对应目录下面找到了文件

再加上用火眼的全局搜索192.168.57.203也发现了这个文件

那么下载下来逆向分析即可
发现了对应的驻留文件函数


再搜索一下ssh上果然有这个文件,那么直接提取md5即可
flag{bccad26b665ca175cd02aca2903d8b1e}
题目3
这个.ko计算一下md5即可
flag{78edba7cbd107eb6e3d2f90f5eca734e}
题目4
跟前面一串起来那明显是1.txt里wget的那个文件名.system_upgrade
flag{9729aaace6c83b11b17b6bc3b340d00b}
.
后面通信密钥没找到,再加上不会挂代理去访问那个内网服务器所以后面题都没出,感觉要是再熟练点可以找到通信密钥的。。
渗透那边还有一个很简单的rop栈溢出,65533端口,8081端口能拿到文件,不过队友是直接打进去然后netstat看到的65533端口就没管了,好像那里还有个flag,脚本早写好了没打亏麻了

浙公网安备 33010602011771号