Delete DOC.md
This commit is contained in:
238
DOC.md
238
DOC.md
@ -1,238 +0,0 @@
|
||||
## Installation and Setup
|
||||
|
||||
Before running RABIDS, you need to install several dependencies for Python, Nim, and Rust. The obfuscation feature also requires Docker.
|
||||
|
||||
### 1. Python Dependencies
|
||||
|
||||
The GUI is built with PyQt5. Install it using pip:
|
||||
|
||||
```bash
|
||||
pip install PyQt5
|
||||
```
|
||||
|
||||
### 2. Nim and Nimble Packages
|
||||
|
||||
The core payload modules are written in Nim.
|
||||
|
||||
- **Install Nim:** Follow the official instructions at [nim-lang.org/install](https://nim-lang.org/install.html).
|
||||
|
||||
- **Install Nimble Packages:** The modules require several external packages. Install them using the `nimble` command:
|
||||
|
||||
```bash
|
||||
nimble install winim openssl discord nimcrypto clipb
|
||||
```
|
||||
|
||||
### 3. Rust Environment
|
||||
|
||||
RABIDS uses a Rust wrapper for in-memory execution and obfuscation on Windows targets.
|
||||
|
||||
- **Install Rust:** Follow the official instructions at rust-lang.org/tools/install.
|
||||
|
||||
- **Install Cross-Compilation Targets:** To build for different architectures, you need to add the corresponding targets via `rustup`:
|
||||
|
||||
```bash
|
||||
# For Windows 64-bit (amd64)
|
||||
rustup target add x86_64-pc-windows-gnu
|
||||
|
||||
# For Windows 64-bit (arm64)
|
||||
rustup target add aarch64-pc-windows-gnu
|
||||
```
|
||||
|
||||
### 4. Docker (for Obfuscation)
|
||||
|
||||
The payload obfuscation feature uses a Docker container with a pre-built Obfuscator-LLVM toolchain.
|
||||
|
||||
- **Install Docker:** Get Docker Desktop from the official Docker website.
|
||||
|
||||
- **Pull the Obfuscator Image:** Download the required Docker image from the GitHub Container Registry:
|
||||
|
||||
```bash
|
||||
docker pull ghcr.io/joaovarelas/obfuscator-llvm-16.0:latest
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Important: Module Chaining Order
|
||||
|
||||
When building a payload with multiple modules, the order in which you add them matters. Modules are executed sequentially in the order they appear in the "MODULE CHAIN".
|
||||
|
||||
Some modules, like `ctrlvamp` and `ghostintheshell`, are **"blocking"**. This means they run in a continuous loop (e.g., to monitor the clipboard or wait for commands) and will prevent any subsequent modules in the chain from executing.
|
||||
|
||||
**Therefore, you should always place blocking modules at the end of your module chain.**
|
||||
|
||||
For example, if you want to gain persistence (`undeleteme`) and then start a reverse shell (`ghostintheshell`), the correct order is:
|
||||
|
||||
1. `undeleteme`
|
||||
2. `ghostintheshell`
|
||||
|
||||
If you place `ghostintheshell` first, the `undeleteme` module will never run.
|
||||
|
||||
**Blocking Modules:**
|
||||
|
||||
- `ctrlvamp`
|
||||
- `ghostintheshell`
|
||||
|
||||
---
|
||||
|
||||
## Communication Method: HTTP Server
|
||||
|
||||
RABIDS modules use an **HTTP server** for command and control (C2) and notifications.
|
||||
|
||||
### HTTP Server
|
||||
|
||||
The HTTP server is the communication method for all C2 modules.
|
||||
|
||||
**Advantages:**
|
||||
- Reliable and fast
|
||||
- No rate limits or API restrictions
|
||||
- Easy to set up and manage
|
||||
- Perfect for production deployments
|
||||
|
||||
**Required Endpoints:**
|
||||
Your HTTP server should implement these endpoints:
|
||||
- `POST /notify` - Receives notifications from infected machines
|
||||
- `POST /register` - Registers new infected machines
|
||||
- `GET /commands/{hostname}` - Returns commands for a specific machine
|
||||
- `POST /response` - Receives command output from machines
|
||||
- `GET /ping` - Health check endpoint
|
||||
|
||||
**Modules using HTTP communication:**
|
||||
- `ghostintheshell` - Remote access trojan
|
||||
- `krash` - Ransomware notifications
|
||||
- `bankruptsys` - ATM malware
|
||||
|
||||
### Setting Up Your HTTP Server
|
||||
|
||||
An example HTTP server implementation is included: `http_server_example.py`
|
||||
|
||||
**Quick Start:**
|
||||
|
||||
```bash
|
||||
# Run the example server
|
||||
python3 http_server_example.py
|
||||
|
||||
# Or specify custom host/port
|
||||
python3 http_server_example.py --host 0.0.0.0 --port 8080
|
||||
```
|
||||
|
||||
The example server provides:
|
||||
- Machine registration and tracking
|
||||
- Command queuing and delivery
|
||||
- Response collection
|
||||
- Notification handling
|
||||
- Simple web API for manual C2
|
||||
|
||||
**For Production:**
|
||||
- Deploy the server on a VPS or cloud instance
|
||||
- Use a reverse proxy (nginx/caddy) with HTTPS
|
||||
- Implement authentication and encryption
|
||||
- Add database storage for persistence
|
||||
- Set up logging and monitoring
|
||||
|
||||
---
|
||||
|
||||
## Module: `ctrlvamp`
|
||||
|
||||
**Description:**
|
||||
Hijacks the system's clipboard to replace cryptocurrency wallet addresses. When a user copies a wallet address, this module swaps it with an address you control, redirecting payments.
|
||||
|
||||
**How it works:**
|
||||
The payload continuously monitors the clipboard. It uses regular expressions to detect patterns matching various cryptocurrency addresses. When a match is found, it replaces the clipboard content with the corresponding address provided in the options.
|
||||
|
||||
**Options:**
|
||||
|
||||
- `btcAddress`: Your Bitcoin (BTC) address that will replace any BTC address copied by the victim.
|
||||
- `ethAddress`: Your Ethereum (ETH) or EVM-compatible address that will replace any matching address copied by the victim.
|
||||
- `bep20Address`: Your Binance Smart Chain (BEP-20) address.
|
||||
- `solAddress`: Your Solana (SOL) address.
|
||||
|
||||
---
|
||||
|
||||
## Module: `dumpster`
|
||||
|
||||
**Description:**
|
||||
A data exfiltration tool that collects files from a specified directory, compresses them, and archives them into a single data file (`dumpster.dat`). It can also be used to restore files from this archive.
|
||||
|
||||
**How it works:**
|
||||
|
||||
- **Collect Mode:** The payload recursively walks through the `inputDir`, reads the files, and writes them into a single archive file specified by `dumpsterFile`. This is the default behavior when building a payload.
|
||||
- **Restore Mode:** The "Garbage Collector" tab uses this module to reverse the process. It reads a `.dat` file and extracts its contents to a specified output directory.
|
||||
|
||||
**Options:**
|
||||
|
||||
- `inputDir`: The target directory to collect files from (e.g., `$HOME/Documents`).
|
||||
- `dumpsterFile`: The path where the collected data will be stored as a single archive file (e.g., `$HOME/dumpster.dat`).
|
||||
- `collectMode` (Internal): Set to `true` to enable file collection. This is the default.
|
||||
- `restoreMode` (Internal): Set to `true` to enable file restoration. This is used by the "Garbage Collector" tab.
|
||||
|
||||
---
|
||||
|
||||
## Module: `ghostintheshell`
|
||||
|
||||
**Description:**
|
||||
Provides a covert reverse shell via HTTP server communication. The payload connects to your HTTP C2 server for remote command execution.
|
||||
|
||||
**How it works:**
|
||||
|
||||
The payload connects to your HTTP server, registers itself, and polls for commands every 2 seconds. Commands are executed and results are sent back via HTTP POST.
|
||||
|
||||
**Options:**
|
||||
|
||||
- `serverUrl`: The URL of your HTTP C2 server (e.g., `http://your-server.com:8080`).
|
||||
|
||||
---
|
||||
|
||||
## Module: `krash`
|
||||
|
||||
**Description:**
|
||||
A ransomware module that encrypts files within a target directory. After encryption, it can display a ransom note to the user. The "UNKRASH" tab is its counterpart, used to build a decryptor.
|
||||
|
||||
**How it works:**
|
||||
|
||||
- **Encrypt Mode:** The payload recursively finds all files in `targetDir`, encrypts them using AES with the provided `key` and `iv`, and appends the specified `extension` to the filenames. It then writes the `htmlContent` to a file to serve as the ransom note.
|
||||
- **Decrypt Mode:** The "UNKRASH" tab builds a decryptor using this same module. When the decryptor runs, it finds files with the `.locked` extension, decrypts them with the same key and IV, and restores their original filenames.
|
||||
|
||||
**Options:**
|
||||
|
||||
- `key`: The 256-bit AES encryption key (as a 32-character hex string).
|
||||
- `iv`: The 128-bit AES initialization vector (as a 16-character hex string).
|
||||
- `extension`: The file extension to append to encrypted files (e.g., `.locked`).
|
||||
- `targetDir`: The directory whose contents will be encrypted.
|
||||
- `htmlContent`: The HTML content of the ransom note that will be displayed to the victim.
|
||||
- `serverUrl`: Your HTTP server URL for notifications.
|
||||
- `decrypt` (Internal): Set to `true` to build a decryptor instead of an encryptor. This is used by the "UNKRASH" tab.
|
||||
|
||||
**Note:** After encryption completes, the module sends a notification to your HTTP server.
|
||||
|
||||
---
|
||||
|
||||
## Module: `poof`
|
||||
|
||||
**Description:**
|
||||
A destructive module that permanently deletes all files and folders within a specified directory. Use with extreme caution.
|
||||
|
||||
**How it works:**
|
||||
The payload recursively traverses the `targetDir` and forcefully removes every file and sub-directory it encounters. This action is irreversible.
|
||||
|
||||
**Options:**
|
||||
|
||||
- `targetDir`: The directory to wipe clean.
|
||||
|
||||
---
|
||||
|
||||
## Module: `undeleteme`
|
||||
|
||||
**Description:**
|
||||
A persistence module designed to ensure the payload survives a system reboot. It can also attempt to add an exclusion to Windows Defender to avoid detection.
|
||||
|
||||
**How it works:**
|
||||
|
||||
- **Persistence:** If enabled, the payload will typically copy itself to a persistent location (like `AppData`) and create a registry key (e.g., in `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`) to ensure it runs automatically every time the user logs in.
|
||||
- **Defender Exclusion:** If enabled, the payload will execute a PowerShell command (`Add-MpPreference -ExclusionPath`) to add its own path to the Windows Defender exclusion list, reducing the likelihood of being scanned and quarantined.
|
||||
|
||||
**Options:**
|
||||
|
||||
- `persistence`: A boolean (`true`/`false`) to enable or disable the persistence mechanism.
|
||||
- `defenderExclusion`: A boolean (`true`/`false`) to enable or disable adding a Windows Defender exclusion.
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user