A modern, full-stack remote administration platform built with .NET 8.0 and React, featuring real-time monitoring, process management, and multimedia streaming capabilities.
⚠️ DISCLAIMER: This software is for educational and authorized security testing purposes only. Unauthorized access to computer systems is illegal. Use responsibly and only on systems you own or have explicit permission to monitor.
- Multi-Target: Control multiple targets simultaneously
- System Info: Real-time system information
- Process Manager: Real-time process monitoring and termination
- App Manager: Management of active window applications
- File Manager: Remote file system browsing, upload, download, and deletion
- Remote Shell: Interactive CMD and PowerShell execution
- Audio Surveillance: Dual-channel capturing (Microphone & System Audio)
- Real-time Streaming:
- Screen Capture (Optimized JPEG stream)
- Webcam Streaming (Adaptive resolution/FPS)
- Recordings: Recordings of screen, webcam, and audio
- System Power: Remote Shutdown, Restart, Sleep, and Monitor control
- Keylogger: Live keystroke capturing and history
- Real-time Communication: SignalR-based low-latency control
Before you begin, ensure you have the following installed:
- .NET 8.0 SDK (for Backend & Agent)
- Node.js 18+ (for Frontend)
- npm or yarn (comes with Node.js)
- Git (for cloning the repository)
- Windows OS (required for Agent components due to AForge and Windows-specific APIs)
- Visual Studio 2022 or VS Code with C# extensions
- Webcam (for webcam streaming feature)
git clone https://github.com/NguyenDuyHao-cheems/Project_Malware_Web.git
cd Project_Malware_Webcd Backend
dotnet restore
dotnet buildcd ../Agent
dotnet restore
dotnet buildNote: The Agent uses Windows-specific libraries (AForge.Video.DirectShow, System.Drawing.Common) and requires Windows to run.
cd ../Frontend
npm installYou need to run all three components simultaneously. Open 3 separate terminal windows:
cd Backend
dotnet runThe backend will start on http://localhost:5000
cd Agent
dotnet runThe agent will automatically connect to the backend hub.
cd Frontend
npm run devThe frontend will start on http://localhost:3000
Open your browser and navigate to http://localhost:3000 to access the admin dashboard.
To run the Agent on a target machine without installing the .NET SDK, you must publish it as a self-contained executable.
cd Agent
dotnet publish -c Release -r win-x64 --self-contained -p:PublishSingleFile=trueThe executable will be located at: Agent/bin/Release/net8.0/win-x64/publish/Agent.exe
To control another computer (Target):
-
Host Function (Your PC):
- Ensure
Backendis running (http://<YOUR_IP>:5000) - Ensure
Frontendis running (http://localhost:3000)
- Ensure
-
Client Function (Target PC):
- Copy the published
Agent.exeto the target computer. - Double-click the
Agent.exeto run it. - Typing the ip of admin to connect to the backend hub.
- Copy the published
-
Control:
- Open your dashboard at
http://localhost:3000. The new agent should appear in the connection list.
- Open your dashboard at
Project_Malware_Web/
├── Backend/ # ASP.NET Core SignalR Hub
│ ├── Controllers/ # API controllers (Security/BlockList)
│ ├── Hubs/ # SignalR Hub (RatHub.cs)
│ ├── Middleware/ # BlockList middleware
│ ├── Models/ # Data models (MachineInfo, etc.)
│ └── Services/ # Business logic services
├── Agent/ # .NET Console Application (Target)
│ ├── Services/ # Core services
│ │ ├── CommandExecutor.cs # Process/App management
│ │ ├── KeyloggerService.cs # Keyboard hooking
│ │ ├── ScreenService.cs # Screen capture
│ │ └── WebcamService.cs # Webcam streaming
│ └── Program.cs # Main entry + SignalR handlers
└── Frontend/ # React + Vite SPA
├── src/
│ ├── components/ # React components
│ │ └── Dashboard.jsx # Main admin UI
│ ├── services/ # SignalR client setup
│ └── App.jsx # Root component
└── package.json
Edit Backend/appsettings.json if needed:
{
"Logging": {
"LogLevel": {
"Default": "Information"
}
},
"AllowedHosts": "*"
}The frontend connects to http://localhost:5000/rathub by default. To change this, edit:
Frontend/src/services/signalr.js
const connection = new HubConnectionBuilder()
.withUrl("http://localhost:5000/rathub")
.build();The agent connects to http://localhost:5000/rathub by default. To change this, edit:
Agent/Program.cs (line 9)
static string _hubUrl = "http://localhost:5000/rathub";- Start all three services (Backend, Agent, Frontend)
- Open the admin dashboard at
http://localhost:3000 - Select a connected agent from the list (your agent should appear automatically)
- Navigate between tabs:
- Controls: Basic controls and keylog viewer
- Applications: Manage GUI applications
- Processes: View and manage all processes
- Streaming: Screen and webcam live feeds
- View all processes with PID, Name, and Thread Count
- Kill any process by PID
- Refresh process list in real-time
- Start a new process by name or path
- Search for a process by name
- List all applications with GUI windows
- Start new applications (e.g., "notepad", "calc")
- Kill running applications
- Start/Stop screen capture
- Start/Stop webcam streaming (requires connected webcam)
- Listen to System Audio/Microphone
- Start/Stop screen recording
- Start/Stop webcam recording
- Start/Stop audio recording
- Browse drives and directories
- Download files
- Execute commands via CMD/PowerShell
- View real-time output
- Shutdown, Restart
Solution: turn off extension uBlock Origin
Error: Failed to bind to address http://127.0.0.1:5000: address already in use
Solution: Kill the process using port 5000 or change the port in Backend/Properties/launchSettings.json
- Ensure the Backend is running first
- Check that the
_hubUrlinAgent/Program.csmatches your backend URL - Verify firewall settings aren't blocking the connection
- Ensure you have a webcam connected
- Grant camera permissions when prompted
- Check that no other application is using the webcam
# Clear npm cache
npm cache clean --force
rm -rf node_modules package-lock.json
npm install| Component | Technologies |
|---|---|
| Backend | ASP.NET Core 8.0, SignalR, C# |
| Agent | .NET 8.0, AForge.Video.DirectShow, System.Drawing |
| Frontend | React 18, Vite 5, @microsoft/signalr |
| Communication | SignalR WebSockets |
| Streaming | JPEG compression, Base64 encoding |
Contributions are welcome! Please feel free to submit a Pull Request.
This project is for educational purposes only. Use at your own risk.
This software is designed for:
- Educational purposes
- Authorized security testing
- System administration on systems you own
Unauthorized access to computer systems is illegal. Always obtain proper authorization before deploying or testing this software.
Nguyen Duy Hao
Bui Dang Kha Tuan
Vo Nguyen Viet Hoang
- Built with assistance from Antigravity AI
- Inspired by modern RAT architectures
Star ⭐ this repository if you found it helpful!