iT邦幫忙

2026 iThome 鐵人賽

DAY 9
0
自我挑戰組

滲透測試新手的 HTB Academy 30天學習日記系列 第 9 篇

Day 9 取得權限然後呢 ? Shell 種類介紹

  • 分享至 

  • xImage
  •  

延續昨天的主題,當我們已經成功獲取到了目標的權限 ( 不管是 root 還是一般權限 ) 後,我們下一步可以做什麼 ? 今天我們就要來提一下進到目標可以做些什麼事。

獲得權限後的下一步

當我們在獲得權限後,我們需要來考慮兩個點

  • 我們可以用同樣的方法存取這權限多久 ? 會不會明天漏洞就被修補完然後進不來了 ?
  • 需要提升權限嗎 ?

第一點的解法就是在取得權限後必須要想如何維持目前的權限及存取的方法或者創造新的存取的手段,這兩者都是為了避免目標的系統修補漏洞後就失去存取的能力,我們可以用幾個手段來讓我們能夠持續的存取目標,例如 : 植入後門 ( 開個新洞 ) . 修改工作排程 ......等,而今天要介紹一個手段來開一條路讓我們能夠存取到目標。

第二點就留到明天介紹提權的章節。

連線的方法

有一種是透過現成的工具,例如第四天提到過的 SSH . Windows 系統上原生的遠端服務 WinRM 或者是第三方的 Anydesk . Teamviewer 等等,但如果沒有登入的憑證 ( 使用者的帳號及密碼 ) ,我們也沒辦法成功連線。

另外有一種方法是透過 Shell 來對目標控制和 RCE ( Remote Code Execution 遠端程式碼執行 ) ,這種透過 Shell 來做到控制和 RCE 的類型有三種,分別為 Reverse Shell . Bind Shell 和 Web Shell。

Reverse Shell

Reverse Shell 是藉由目標來對你的裝置發出連線,我們可以先在本機上建立一個監聽器 ( 第五天提到的 netcat 就可來做這件事 ),監聽特定的 Port,例如 Port 1234 。這時我們在目標執行 reverse shell command 來將遠端系統的 Shell 連接到我們正在監聽的 Port,這樣就完成 Reverse Shell 的建立了。

  • 優點 :

    • 快速並且可靠
    • 只要能夠連網到外網基本上都可以實現
  • 缺點 :

    • 連線穩定度低 : 只要 reverse shell command 被停止執行或任何原因導致中斷連線,連線就會失效,需要重新再執行 reverse shell command 才能再建立一次連線。
    • 執行 reverse shell command 來建立 Shell 的 process 容易被 EDR 偵測到。

Bind Shell

跟 Reverse Shell 正好相反,Bind Shell 變得是要由我們本機連接到目標監聽的 Port,我們需要先在目標上執行 Bind Shell Command 來讓目標監聽遠端主機的特定 Port,然後我們再主動連線到該主機的 Port ,來存取目標的 Shell 獲得控制權。

  • 優點 :

    • 快速並且可靠
  • 缺點 :

    • 由於主機需要開啟一個新的 Port 來做監聽,主機的防火牆通常會阻擋外部裝置連線到這個新的 Port

Web Shell

最後是 Web Shell,Web Shell 通常是一個 Web 程式像是 php 或 aspx,這個程式會透過 HTTP 的請求參數 ( GET/POST ) ,來接收並執行我們的 command,並將輸出列印到網頁中,而這種程式並不會是目標已經具備的,通常是需要我們將檔案寫入到目標,可能會需要另外的漏洞或者是前面的方法先將程式給上傳上去目標,這個類型相較前面兩個是需要對網頁程式有點認識或者是有實際寫過網頁才比較好執行。

  • 優點 :

    • 繞過防火牆限制 : 由於會開啟新的 Port ,網頁的 80/443 Port 被存取是很正常的事。
  • 缺點 :

    • 互動性較差 : 非即時互動介面,每次執行指令都需發送一次 HTTP 請求並等待回應。

總結

這次提到了三種類型的 Shell 來做新的存取手段以此來避免原本的漏洞被修補的情況,創造新的存取手段,可謂是百利而無一害,能夠讓我們再繼續往下做到更多的事例如明天要提到的提權,今天就先告一個段落,明天見啦。


上一篇
Day 8 公開漏洞利用 Exploit
下一篇
Day 10 權限提升
系列文
滲透測試新手的 HTB Academy 30天學習日記 共 15 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言