LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell

LOLBITS

LOLBITS 是一款 C#反向 Shell,它使用了微软后台智能传输服务(BITS)作为传输信道来与后端命令控制服务器进行交互。后台的命令控制服务器基于 Flask Web 应用程序构建,并且只能通过包含了有效认证 Header 的 HTTP 请求来与之通信。

LOLBITS 由以下三个部分组成:

1、C#代理,它负责在受感染主机中执行控制命令,并在命令执行成功后将输出结果发送回后台命令控制服务器

2、Flask Web 应用程序,它作为中间的调度程序,该组件可以伪装成合法网站来隐藏后端的 C2 基础设施,并且能够向客户端发送新的控制命令。

3、C&C; 命令行,可以用来控制代理。

为了防止通讯内容被拦截或窃听,代理与 C&C; 服务器之间的通信内容会使用 RC4 (基于预共享密钥)进行加密。LOLBITS 的逻辑架构如下图所示:

LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell

为了避免安全研究人员复现命令控制请求来分析和研究 C&C; 基础架构,每个身份验证 Header 都是随机的,并且只在一个周期内有效。

工具依赖

后台的 C&C; 基础设施需要一台 Windows Server 2012 或以上版本,并安装 Python 3.4 以及下列 Python 依赖:

Colorama:

``` *

    pip install colorama

### Flask:```      * 

pip install flask

当前版本的 C#客户端已在 Windows Server 2016、Windows Server 2019、Windows 8.1 和 Windows 10 平台上成功测试。编译环境如下:

Visual Studio 2017 及其以上版本

.NET Framework 4.5 及其以上版本

工具安装

使用下列命令将项目源码克隆至 C&C; 服务器中:
``` *

    git clone https://github.com/Kudaes/LOLBITS.git

通过 Widnwos 服务器管理器安装 Web Server (IIS),确保安装好 CGI、ASP.NET 以及 .NET Extensibility:![LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell](https://img.chainnews.com/material/images/a537de9c9e3b30283e4f6a56e6862de5.jpg)并且为 IIS 安装 .NET Framework 和 BITS:![LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell](https://img.chainnews.com/material/images/c75ae19e2d455a94bf472ee9d1deaa37.jpg)安装 wfastcgi 并在 IIS 中配置好 Fast CGI 设置。这里要求我们的 Web 应用程序采用 Python 开发。关闭默认网站,并使用 IIS 管理器创建一个新的站点,并为该站点启用 BITS 上传服务:![LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell](https://img.chainnews.com/material/images/fe927ed9479d75172568ddee0532401c.jpg)将本项目中 C&C; 目录下的“the content”文件拷贝到本地主机中的站点物理目录内,假设我们创建的网站指向的是本地的“C:\inetpub\wwwroot\bits”目录,那么该目录的结构应该如下:```      *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   * 

C:\inetpub\wwwroot\bits |/config |-- auth.txt |/files |-- abcde1234 |-- default |/lolbins |-- base64decode.py |-- base64encode.py |-- a lot of other .py files |/templates |-- index.html |/static |/payloads |-- decrypt.py |-- encrypt.py |-- myapp.py |-- web.config

我建议大家给这个目录“C:\inetpub\wwwroot\bits”提供 Everyone 的完整访问权限来避免错误发生。

接下来,编辑 web.config 文件,修改下列两个配置项:

1、针对 Web Handler 的 scriptProcessor 属性,点击 IIS 管理器,在 IIS 服务器的根路径选择 FastCGI 设置,将 scriptProcessor 属性值修改为“Full Path|Arguments”:

LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell

这里,我将 scriptProcessor 属性设置为了:
``` *

    “c:\python3.4\python.exe|c:\python3.4\lib\site-packages\wfastcgi.py”

2、PYTHONPATH,该参数需要指向我们的站点目录,即“C:\inetpub\wwwroot\bits”。然后,修改初始安装常量,设置预共享密钥的密码:```      *   *   * 

Program.cs -> Password 变量 myapp.py -> Password 变量 lawlbin.py -> password 变量

选择 Flask 应用程序需要监听的 C#代理 URL:
``` *

    Program.cs -> Url 变量

在 myapp.py 中,设置 AuthPath、ReadPath 和 Payloads 的值,分别指向 Web 目录中对应的文件夹。在 lawlbin.py (lolbins 目录) 中设置 baseReadPath 和 baseWritePath 的值,分别指向 Web 目录中对应的文件夹。在 inject.py (lolbins folder) 中设置__payloads 的值,这个值需要跟 myapp.py 中的 Payloads 值相同。编译代理,并在受感染的主机中运行。编译完成后,将会生成一个 exe 文件和一个外部依赖文件 (Newtonsoft.Json.dll)。你也可以使用 ILMerge 来生成一个单独的 exe 文件,这里请将项目以 Windows Application 进行编译:![LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell](https://img.chainnews.com/material/images/aaded6525f6256099215a65d77ddacab.jpg)## 工具使用广大用户可以直接在 C&C; 服务器中的命令行工具中输入下列命令,并在受感染的主机中运行 C#代理,即可开始使用 LOLBITS 了:```      * 

python lawlbin.py

项目地址

LOLBITS:https://github.com/Kudaes/LOLBITS

*参考来源: Kudaes ,FB 小编 Alpha_h4ck 编译,转载请注明来自 FreeBuf.COM

LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell

精彩推荐

LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell

LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell

LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell

LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell

  **![LOLBITS:一款基于后台智能传输服务(BITS)的 C#反向 Shell](https://img.chainnews.com/material/images/e16db5a32641bf26ae9d8ef9520d81a6.jpg)**