當前位置:
首頁 > 新聞 > 又一波神操作:橫向滲透中的 SSH 劫持技巧

又一波神操作:橫向滲透中的 SSH 劫持技巧

幾周前,我為MITRE的ATT&CK框架提供了SSH劫持橫向滲透技術。在這篇文章中,我將詳細介紹目前為止發現的關於此次攻擊的不同實現,並提供相關細節。我們這裡所說的劫持,指的是在不訪問身份驗證細節的情況下濫用現有會話。因此,沒有使用竊取的憑證或私鑰。

ControlMaster

SSH的ControlMaster是一種允許多路復用連接的特性。鑒於只需在第一個SSH會話中對目標系統進行身份驗證,因此這一性能比較優越。然後根據SSH守護進程的配置,你可以通過已經建立的連接打開多個新的SSH會話。並且可以通過以下兩個指令在伺服器端進行調優。

1 MaxSessions

2 Specifies the maximum number of open sessions permitted per

3 network connection. The default is 10.

4

5 MaxStartups

6 Specifies the maximum number of concurrent unauthenticated

7 connections to the SSH daemon. Additional connections will

8 be dropped until authentication succeeds or the LoginGraceTime

9 Expires for a connection. The default is 10.

通過將MaxSessions設置為1,可以禁用ControlMaster/會話多路復用,並且每一個新會話都需要一個完整的新連接,包括身份驗證步驟。然而如果不這樣做,不管你為用戶使用了多麼強大的身份驗證方法,攻擊者只需要將代碼執行到某個用戶的端點,然後等待該用戶到SSH的某個地方。攻擊者可以通過檢查客戶端ControlPath(控制路徑)指令指定的目錄或使用像netstat等常用工具來查找打開的連接。然後,如果攻擊者嘗試打開一個對主機的SSH會話,該主機已經在ControlMaster中,那麼將不需要身份驗證,也不需要建立新的連接,因為它正在重新使用現有的連接。請注意,在默認情況下,ControlMaster是啟用的。

代理身份驗證

為了減少阻礙並使體驗更加流暢,許多組織使用了SSH-agent,這是一種允許通過本地套接字文件進行身份驗證的服務。當連接到一個遠程系統時,你可以選擇你的SSH-agent在遠程系統中是否可用,以便使用ForwardAgent指令。通過轉發代理,你可以在系統中滲透,而不必到處複製密鑰,也不必手動重新進行身份驗證。然而,這也有不利的一面。如果攻擊者在已經轉發了你的代理的任何一個系統上獲取了根訪問許可權,那麼他可以重用該套接字文件,打開帶有你的信息的新的SSH會話。下面是對這一過程的簡要概述。

1 # Attacker finds the SSHd process of the victim

2 ps uax|grep sshd

3

4 # Attacker looks for the SSH_AUTH_SOCK on victim"s environment variables

5 grep SSH_AUTH_SOCK /proc/

/environ

6

7 # Attacker hijack"s victim"s ssh-agent socket

8 SSH_AUTH_SOCK=/tmp/ssh-XXXXXXXXX/agent.XXXX ssh-add -l

9

10 # Attacker can login to remote systems as the victim

11 ssh remote_system -l vicitm

如果你現在使用的是OpenSSH,可以通過使用AllowAgentForwarding指令來減輕這種威脅,以確保只有那些需要代理的主機才會擁有它,而不是整個環境。

在這兩種情況下,攻擊者從來沒有直接訪問身份驗證細節。但是通過濫用SSH這一特性,攻擊者可以在不引起大量噪音的情況下向環境橫向滲透。我已經提供了一些原生的SSH指令,可以用來減輕這種威脅,但是當然,根據你的需求,你可能需要提出一些不同的要求。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

Windows Defender ATP機器學習和AMSI:發掘基於腳本的攻擊
鍵盤記錄器用法新姿勢:挖礦

TAG:嘶吼RoarTalk |