鹏城杯总结

一个强大的队伍背后一定有强大的后援团,CTF竞赛怎么能少了远程支援,简单介绍几个常用的线下赛技巧。
1.ssh连接 做pwn题通常需要打远程服务器,线下赛服务器通常都是运行在内网环境的,场外选手无法直接访问,因此可以用shootback的方式将本地主机映射到公网,使得场外选手也获得比赛环境。在这里简单地将22端口做映射,云服务器充当中转的作用。

  • 工具:shootback
  • 条件:一台公网IP的服务器
# slaver_local_ssh <---> slaver <--> master(183.157.161.177) <--> You # ---- master 服务器运行---- python3 master.py -m 0.0.0.0:10000 -c 0.0.0.0:10022 # ---- slaver 受控端运行---- python slaver.py -m [服务器IP]:10000 -t 127.0.0.1:22 # ---- YOU 场外选手运行---- ssh [服务器IP] -p 10022

2.web题反向代理 【鹏城杯总结】对于web题来说仅仅将本地shell共享出去是不够的,同时还需要让场外选手能够以正常浏览器方式访问内网网站。因此这里还需要做一层代理,将内网ip+port映射到本地。
  • 条件:shootback + ssh
首先用ssh命令将内网 10.0.0.3:80 映射到本地 8080 端口
ssh -g -L 8080:10.0.0.3:80 root@x.x.x.x

将本地的 8080 端口同样采用shootback转发出去
# ---- master ---- python3 master.py -m 0.0.0.0:10002 -c 0.0.0.0:10080 # ---- slaver ---- python slaver.py -m [服务器IP]:10002 -t 127.0.0.1:8080

这样场外选手访问 [服务器IP]:10080 就可以愉快地做web题啦!
3.内网穿透 这次X-NUCA出现了内网渗透的场景,要经过多级跳板才能访问内网的题目以及攻击其他队伍。
在这里也同样总结一下使用跳板转发来实现多主机之间转发。
假设现在主机A需要通过B主机作为跳板,来访问与B处于同一内网中的机器C的80端口,假设C的ip是
10.0.0.3,这时候可以在攻击机上执行如下命令:
ssh -g -L 8080:10.0.0.3:80 root@x.x.x.x

此时在A主机上8080端口的流量就被转发到C主机的80端口上了。在这里每一台机器都可以使用ssh命令进行转发,理论上无论多少层跳板都是可以递归使用这种方式转发到网络的统一出口的!
4.动态转发 假设我们想要扫描与跳板机B处于同一内网的主机C,但是跳板机B上又没有nmap,只能通过主机A去扫,于是就要用到我们的动态转发。这种转发可以将流量随心所欲的转发,此时实现的效果就相当于代理服务器。
  • 条件:ssh + proxychains
在A机器上用下面的命令实现:
ssh -D 9050 root@x.x.x.x

/etc/proxychains.conf 配置如下:
[ProxyList]socks5127.0.0.1 9050

此时在A机器上配置SOCKS代理端口localhost:9050,就可以以B为代理服务器随心所欲的畅游。
例如:nmap挂代理扫描端口
proxychains nmap -sS 119.75.217.109

    推荐阅读