鹏城杯 2024 决赛赛后复盘

由于签了保密协议,为了避免不必要的麻烦,本文章不会披露任何赛题的具体内容和解题过程

前言

首先,要贴出我们的名场面:AuroraZ 成为全场第一支解出完整题目的队伍!

img

决赛打了三天(11/22 – 11/24),每天早上 7 点起,到了赛场埋头干到晚上 6、7 点,体力消耗非常大

高手非常多,被各路大神吊打呜呜呜 😭

但是,拿了优胜奖不亏 😋 (你在得意啥呀,进了决赛的队伍都会有的啊喂!)

学到了什么

之前打 CTF,很多渗透工具和漏扫几乎用不到

线下赛很多场景都是模拟渗透,经常需要先进行信息收集,发现资源后再开始打

nmap 的命令是敲熟了,几乎每一道题目都要先扫描一遍端口

nmap -sS -v xxx.xxx.xxx.xxx

也学到了使用 hydra 来进行 ssh 的爆破

hydra -L userList.txt -P passwordList.txt ssh://xxx.xxx.xxx.xxx

说到这里,不得不吐槽一下决赛的赛题设计,不是”开局一个登录框,还不让注册“,就是”怎么又是 22 端口“。dirsearch 扫半天也扫不出什么接口,很多时候感觉只有爆破这一条路(还爆不出来,呜呜呜


还用 msf 一把梭拿了个 shell,这个赛前准备了一下,创建一个 msf 用户然后初始化 msfconsole,之后要用 msf 的时候就切到该用户来启动

在队友的帮助下学习了 msf 的常规使用过程

  1. 先使用 search 指令到 metasploit 携带的漏洞库中寻找漏洞
  2. 然后使用 use 装载对应漏洞的 exp
  3. options 指令查看当前 exp 提供的参数
  4. set 指令设置 exp 参数
  5. run 开始攻击

有一点需要注意,由于比赛环境在内网,如果 msf 打穿了靶机要弹 shell 的话,需要使用 正向连接,这个时候得设置一下 msf 的 payload 为正向 shell 的版本

详细的 metasploit 使用方法就请参考互联网上的各种文章吧,这里不展开讲


这次鹏城杯还要用 ftp,好久之前就想了解 ftp 了,但是一直忘记,正好趁着这次机会学习了一下

关于 ftp 的内容,由于篇幅原因这里就不细讲了,有时间单独放一篇文章出来吧(咕咕咕

顺便康了一下 sftp,发现了新大陆,原本以为和 ftp 用的是一同一个协议,结果是基于 ssh 的。这个小技巧打防御的时候挺有用的,要防御的机器基本上都只给了个 ssh 端口,自己的机器在内网,如果想要上传或者下载文件的话,用 sftp 就能很方便地实现

有什么失误

资料准备不够充分

渗透过程中拿到过某台靶机的低权限 shell,想要提权,find 命令找到了一大堆有 suid 的应用

但是没有准备相关的资料,导致与分数失之交臂

原本想要克隆 GTFOBins.github.io 的,由于不知道怎么搞,就一直没有理它

赛后:其实用 jeklly 就能将网页版起到本地了

img

并且 POC 库、CVE 库也没有准备,赛时基本靠队友携带的资料过活。其实不是不想准备,实在是不知道怎么有效率地寻找和存档资料。这个回头要向队友请教一下,还是说像 hzgg 那样写个爬虫来爬知识库?

没有准备的特殊工具

渗透过程中找到某靶机的某接口有 SQL 盲注,但是该接口是需要验证码的

谁能想到断网的线下比赛会有验证码绕过呢?测了一下没有验证码复用漏洞,又没有准备 OCR 工具,可难受死我了

赛后请教了 Aurora 一队,他们带了 ddddocr,盲注出 token 进了后台,我要哭了

运维知识欠缺

防御部分我们队差的分还是挺多的

日志文件不知道去哪里找,或者找到了一大堆日志但是不知道哪些有用

有道题目要加固一个不能重启、不能改配置文件的 redis 也不知道怎么做(在靶机上用 redis-cli 连上数据库服务然后改设置就行)

find、ps、netstat 等运维常用命令用得也不够熟练,或许因此错过了一些分数