一個(gè)強(qiáng)大的隊(duì)伍背后一定有強(qiáng)大的后援團(tuán),CTF競(jìng)賽怎么能少了遠(yuǎn)程支援,簡(jiǎn)單介紹幾個(gè)常用的線下賽技巧。
1.ssh連接
做pwn題通常需要打遠(yuǎn)程服務(wù)器,線下賽服務(wù)器通常都是運(yùn)行在內(nèi)網(wǎng)環(huán)境的,場(chǎng)外選手無(wú)法直接訪問,因此可以用shootback的方式將本地主機(jī)映射到公網(wǎng),使得場(chǎng)外選手也獲得比賽環(huán)境。在這里簡(jiǎn)單地將22端口做映射,云服務(wù)器充當(dāng)中轉(zhuǎn)的作用。
- 工具:shootback
- 條件:一臺(tái)公網(wǎng)IP的服務(wù)器
# slaver_local_ssh <---> slaver <--> master(183.157.161.177) <--> You
# ---- master 服務(wù)器運(yùn)行----
python3 master.py -m 0.0.0.0:10000 -c 0.0.0.0:10022
# ---- slaver 受控端運(yùn)行----
python slaver.py -m [服務(wù)器IP]:10000 -t 127.0.0.1:22
# ---- YOU 場(chǎng)外選手運(yùn)行----
ssh [服務(wù)器IP] -p 10022
2.web題反向代理
對(duì)于web題來(lái)說(shuō)僅僅將本地shell共享出去是不夠的,同時(shí)還需要讓場(chǎng)外選手能夠以正常瀏覽器方式訪問內(nèi)網(wǎng)網(wǎng)站。因此這里還需要做一層代理,將內(nèi)網(wǎng)ip+port映射到本地。
- 條件:shootback + ssh
首先用ssh命令將內(nèi)網(wǎng) 10.0.0.3:80 映射到本地 8080 端口
ssh -g -L 8080:10.0.0.3:80 root@x.x.x.x
將本地的 8080 端口同樣采用shootback轉(zhuǎn)發(fā)出去
# ---- master ----
python3 master.py -m 0.0.0.0:10002 -c 0.0.0.0:10080
# ---- slaver ----
python slaver.py -m [服務(wù)器IP]:10002 -t 127.0.0.1:8080
這樣場(chǎng)外選手訪問 [服務(wù)器IP]:10080 就可以愉快地做web題啦!
3.內(nèi)網(wǎng)穿透
這次X-NUCA出現(xiàn)了內(nèi)網(wǎng)滲透的場(chǎng)景,要經(jīng)過(guò)多級(jí)跳板才能訪問內(nèi)網(wǎng)的題目以及攻擊其他隊(duì)伍。
在這里也同樣總結(jié)一下使用跳板轉(zhuǎn)發(fā)來(lái)實(shí)現(xiàn)多主機(jī)之間轉(zhuǎn)發(fā)。
假設(shè)現(xiàn)在主機(jī)A需要通過(guò)B主機(jī)作為跳板,來(lái)訪問與B處于同一內(nèi)網(wǎng)中的機(jī)器C的80端口,假設(shè)C的ip是
10.0.0.3,這時(shí)候可以在攻擊機(jī)上執(zhí)行如下命令:
ssh -g -L 8080:10.0.0.3:80 root@x.x.x.x
此時(shí)在A主機(jī)上8080端口的流量就被轉(zhuǎn)發(fā)到C主機(jī)的80端口上了。在這里每一臺(tái)機(jī)器都可以使用ssh命令進(jìn)行轉(zhuǎn)發(fā),理論上無(wú)論多少層跳板都是可以遞歸使用這種方式轉(zhuǎn)發(fā)到網(wǎng)絡(luò)的統(tǒng)一出口的!
4.動(dòng)態(tài)轉(zhuǎn)發(fā)
假設(shè)我們想要掃描與跳板機(jī)B處于同一內(nèi)網(wǎng)的主機(jī)C,但是跳板機(jī)B上又沒有nmap,只能通過(guò)主機(jī)A去掃,于是就要用到我們的動(dòng)態(tài)轉(zhuǎn)發(fā)。這種轉(zhuǎn)發(fā)可以將流量隨心所欲的轉(zhuǎn)發(fā),此時(shí)實(shí)現(xiàn)的效果就相當(dāng)于代理服務(wù)器。
- 條件:ssh + proxychains
在A機(jī)器上用下面的命令實(shí)現(xiàn):
ssh -D 9050 root@x.x.x.x
/etc/proxychains.conf 配置如下:
[ProxyList]
socks5 127.0.0.1 9050
此時(shí)在A機(jī)器上配置SOCKS代理端口localhost:9050,就可以以B為代理服務(wù)器隨心所欲的暢游。
例如:nmap掛代理掃描端口
proxychains nmap -sS 119.75.217.109