欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

ThunderShell:PythonPowerShell实现的HTTP通信的远程控制软件

来源:本站整理 作者:佚名 时间:2019-02-27 TAG: 我要投稿


ThunderShell是一个通过HTTP请求进行通信的C# RAT。所有网络流量都使用第二层RC4进行加密,以躲避SSL拦截及其目标系统上的网络检测。RC4是一种弱密码,用于帮助混淆流量。应使用HTTPS选项来提供完整性和强加密。
特性
集成的非托管 PowerShell
客户端使用C#来执行PowerShell代码,允许用户直接在shell上执行任意的PowerShell命令,而无需调用powershell.exe程序。
网络流量格式
(正在开发中)ThunderShell允许你通过设置任意标头,并更改发送到服务器的数据格式来配置客户端执行的网络请求。
默认profile配置文件:profile.json
{
        "headers": {
                                "X-Powered-By": "ASP.NET",
                                "X-AspNet-Version": "4.0.30319",
                                "Set-Cookie": "ASP.NET_SessionId={{random}}[32];"
                },
        "autocommands": ["ipconfig", "route -nr", "netstat -ano", "ps"],
        "auto-interact": "on"
}
使用{{random}} [size]语法可在运行时设置任意的值。
反检测的优势
“核心”RAT不需要在内存中注入/加载second-stage shellcode。
集成的Key-Logger
RAT包含了一个集成的键盘记录器,可将所有输入存储在内存中,并将数据直接发送到我们的C2服务器。
截屏功能
截屏功能支持多屏布局,并且不会在受害者计算机上创建任何的文件。
日志功能
该工具提供典型的Web流量和错误日志。每个活动会话的聊天和命令都将被保存在磁盘上以供之后的参考使用。日志文件夹结构包含按日期排序的每个shell输出,key-logger feeds和屏幕截图。
多用户界面
ThunderShell支持CLI和Web界面的使用,并在Web界面和CLI上同时支持多个用户。
多线程
ThunderShell客户端支持多线程,这意味着你可以在目标上并行执行多个命令。
自定义返回页面
你可以通过http-default-404变量指定HTML模板,自定义每个GET请求返回的“error”页面。该文件需要放在html文件夹中其依赖项(例如图片)需要放在download文件夹下。默认情况下,ThunderShell模仿IIS服务器并返回默认的IIS服务器页面。
传递任意文件
任何放置在download文件夹下的文件都可以通过web server进行下载。例如,/root/ThunderShell/download/evil.exe可以通过:http://1.1.1.1:13337/evil.exe进行下载。
安装
使用以下命令获取并安装ThunderShell:
git clone https://github.com/Mr-Un1k0d3r/ThunderShell; cd ThunderShell; python3 ThunderShell.py default.json
ThunderShell将在第一次启动时,自动下载并安装所需的软件包。以下是将会安装的软件包列表:
apt install redis-server
apt install mono-mcs
apt install python3-tabulate
apt install python3-redis
apt install python3-flask
apt install python3-dev
apt install python3-pip
apt install python3-gevent
python3 -m pip install flask-socketio
配置
首先,我们需要正确设置配置文件。以下是配置文件default.json的示例:
{
    "aliases": {
        "myalias": ""
    },
    "callback-url": "http://192.168.0.3:8443/",
    "cli-sync-delay": 5,
    "gui-host": "127.0.0.1",
    "gui-port": 13337,
    "http-default-404": "default.html",
    "http-download-path": "cat.png",
    "http-host": "192.168.0.3",
    "http-port": 8443,
    "http-profile": "profile.json",
    "http-server": "Microsoft-IIS/7.5",
    "https-cert-path": "cert.pem",
    "https-enabled": "off",
    "max-output-timeout": 5,
    "redis-host": "localhost",
    "redis-port": 6379
}
首次成功启动后,将会为我们自动生成server-password和encryption-key。
HTTPS 配置
如果启用了https-enabled,则https-cert-path必须指向具有以下结构的PEM文件:
-----BEGIN RSA PRIVATE KEY-----

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载