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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/aleksamcode/wifi-password-stealer
Wi-Fi AuditingPassword AttacksPayload GenerationData ExfiltrationInformation GatheringHardware HackingSocial EngineeringLearning & EducationRed Teaming
GitHubaleksamcode/wifi-password-stealer

WiFi-password-stealer

저장된 WiFi 데이터(SSID 및 비밀번호)를 유출하는 간단한 Windows 및 Linux 키스트로크 주입 도구

595471년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

WiFi 비밀번호 스틸러

License: GPL v2

평범해 보이는 USB 드라이브를 컴퓨터에 꽂자마자 데이터를 순식간에 훔쳐내는 해커의 모습을 영화에서 본 적이 있나요? 오늘 바로 그런 일을 하는 장치를 직접 만들어 보겠습니다.

⚠️ 면책 조항:

이 프로젝트의 모든 내용은 보안 연구 목적으로만 제공됩니다.

목차

  • WiFi 비밀번호 스틸러
    • 목차
    • 소개
    • 설정
      • 사전 요구 사항
    • Rubber Ducky 공격
      • 필요한 것 - 준비물
      • 키 입력 주입 도구
        • 키 입력 주입
        • 지연 시간
      • 데이터 유출
        • Windows 익스플로잇
          • 이메일로 도난 데이터 보내기
        • Linux 익스플로잇
          • USB 플래시 드라이브에 도난 데이터 저장하기
          • Bash 스크립트
          • 페이로드 빠른 개요
        • 유출 데이터 포맷
      • USB 대용량 저장 장치 문제
      • 페이로드 작성기
    • Bash Bunny 공격
    • 한계점/단점
    • 참고 자료

소개

2022년 여름, 나는 대상 컴퓨터에서 데이터를 추출할 수 있는 장치를 만들기 시작했습니다. 그런데 어떻게 해야 악성코드를 배포하고 정보를 빼낼 수 있을까요? 다음 섹션에서는 커스텀 키 입력 주입 도구를 만드는 데 필요한 필수 단계, 기반 개념 및 기술적 세부 사항을 설명하겠습니다. 이 프로젝트는 특히 WiFi 자격 증명을 대상으로 하지만, 페이로드는 더 고급 또는 악의적인 목적으로 쉽게 수정할 수 있습니다. 유일한 한계는 여러분의 창의성과 기술적 전문성입니다.

설정

시간이 지나면서 이 프로젝트는 다양한 스크립트와 도구를 포함하게 되었습니다. 원래는 Rubber Ducky, 특히 Raspberry Pi Pico(RPi Pico)를 사용한 비용 효율적인 버전의 기능을 시연하기 위해 만들어졌습니다. 현재 프로젝트의 두 가지 주요 구성 요소는 다음과 같습니다.

  1. Rubber Ducky 공격
  2. Bash Bunny 공격

사전 요구 사항

  • 잠금 해제된 피해자 컴퓨터에 물리적으로 접근할 수 있어야 합니다.

  • 네트워크 매체를 통한 유출을 위해 SMTP를 사용하여 도난 데이터를 보내려면 컴퓨터가 인터넷에 연결되어 있어야 합니다.

  • Linux 익스플로잇을 위해 피해자 컴퓨터의 비밀번호를 알고 있어야 합니다.

Rubber Ducky 공격

pico-ducky를 만든 후에는 수정된 페이로드(Windows 익스플로잇의 경우 SMTP 세부 정보에 맞게 조정, Linux 익스플로잇의 경우 Linux 비밀번호 및 USB 드라이브 이름에 맞게 조정)를 RPi Pico에 복사하기만 하면 됩니다.

필요한 것 - 준비물


  • RPi Pico
  • 마이크로 USB-USB 케이블
  • 점퍼 와이어 (선택 사항)
  • pico-ducky: USB Rubber Ducky로 변환된 RPi Pico
  • USB 플래시 드라이브 (물리적 매체를 통한 익스플로잇 전용)



[!NOTE]

  • 이 도구는 Rubber Ducky를 사용하여 구축할 수도 있지만, RPi Pico는 약 $4.00인 반면 Rubber Ducky는 $80.00라는 점을 명심하세요.

  • 하지만 pico-ducky는 좋고 예산 친화적인 솔루션이지만, Rubber Ducky는 은밀함과 최신 DuckyScript 버전 사용과 같은 장점을 제공합니다.

  • RPi Pico에서 페이로드를 작성하는 데 Ducky Script를 사용하려면 먼저 pico-ducky로 변환해야 합니다. pico-ducky를 생성하려면 이 간단한 단계를 따르세요.

키 입력 주입 도구

키 입력 주입 도구는 호스트 시스템에 연결되면 사용자가 입력하는 키 입력을 모방하는 코드를 실행하여 악성 명령을 실행합니다. USB 드라이브처럼 보이지만 미리 프로그래밍된 페이로드를 입력하는 키보드처럼 작동합니다. Rubber Ducky와 같은 도구는 분당 1,000단어 이상을 입력할 수 있습니다. 일단 생성되면 물리적 접근 권한이 있는 사람이라면 누구나 이 페이로드를 쉽게 배포할 수 있습니다.

키 입력 주입

페이로드는 STRING 명령을 사용하여 키 입력 주입을 처리합니다. 하나 이상의 영숫자/문장 부호 문자를 허용하며 남은 줄을 대상 시스템에 그대로 입력합니다. ENTER/SPACE는 키보드 키를 누르는 것을 시뮬레이션합니다.

지연 시간

페이로드 실행을 일시 중지하기 위해 DELAY 명령을 사용합니다. 이는 페이로드가 명령줄과 같은 요소를 기다려야 할 때 유용합니다. 새로운 USB 장치가 대상 컴퓨터에 연결될 때 초기에 지연을 사용하는 것이 유용합니다. 처음에는 컴퓨터가 입력 명령을 수락하기 전에 일련의 작업을 완료해야 합니다. HID의 경우 설정 시간이 매우 짧습니다. 대부분의 경우 드라이버가 내장되어 있기 때문에 1초 미만이 소요됩니다. 그러나 경우에 따라 느린 PC가 pico-ducky를 인식하는 데 더 오래 걸릴 수 있습니다. 일반적인 조언은 대상에 따라 지연 시간을 조정하는 것입니다.

데이터 유출

데이터 유출은 컴퓨터/장치에서 데이터를 무단으로 전송하는 것입니다. 데이터가 수집되면 공격자는 암호화 또는 압축을 사용하여 네트워크를 통해 데이터를 전송하는 동안 탐지를 피하기 위해 데이터를 패키징할 수 있습니다. 가장 일반적인 두 가지 유출 방법은 다음과 같습니다.

  • 네트워크 매체를 통한 유출.
    • 이 방법은 Windows 익스플로잇에 사용되었습니다. 전체 페이로드는 여기에서 확인할 수 있습니다.

  • 물리적 매체를 통한 유출.
    • 이 방법은 Linux 익스플로잇에 사용되었습니다. 전체 페이로드는 여기에서 확인할 수 있습니다.

Windows 익스플로잇

Windows 페이로드(payload1.dd)를 사용하려면 핀 사이에 점퍼 와이어를 연결할 필요가 없습니다.

이메일로 도난 데이터 보내기

비밀번호가 .txt 파일로 내보내지면 페이로드는 Yahoo SMTP를 사용하여 지정된 이메일로 데이터를 보냅니다. 자세한 지침은 다음 링크를 참조하세요. 또한 페이로드 템플릿을 SMTP 정보로 업데이트해야 합니다. 즉, RECEIVER_EMAIL, SENDER_EMAIL 및 이메일 PASSWORD를 업데이트해야 합니다. 또한 이메일 본문과 제목을 업데이트할 수도 있습니다.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_windows.template.dd#L31

[!NOTE]

  • 이메일로 데이터를 보낸 후 .txt 파일은 삭제됩니다.

  • 다른 이메일 제공업체의 SMTP를 사용할 수도 있지만, 페이로드에 작성할 SMTP 서버 및 포트 번호에 주의해야 합니다.

  • 일부 네트워크에서는 방화벽에서 알 수 없는 SMTP 사용을 차단할 수 있다는 점을 명심하세요.

Linux 익스플로잇

Linux 페이로드(payload2.dd)를 사용하려면 RPi Pico의 code.py 코드와 일치하도록 GND와 GPIO5 사이에 점퍼 와이어를 연결해야 합니다. RPi Pico에서 여러 페이로드를 설정하는 방법에 대한 자세한 내용은 이 링크를 방문하세요.

Linux Mint에서의 익스플로잇

그림 1: Linux에서의 익스플로잇

USB 플래시 드라이브에 도난 데이터 저장하기

비밀번호가 컴퓨터에서 내보내지면 데이터는 지정된 USB 플래시 드라이브에 저장됩니다. 이 페이로드가 제대로 작동하려면 USB 드라이브의 올바른 이름으로 업데이트해야 합니다. 즉, 두 곳에서 USBSTICK을 USB 드라이브 이름으로 바꿔야 합니다.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_linux.template.dd#L3

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_linux.template.dd#L11

또한 페이로드의 세 곳에서 Linux PASSWORD도 업데이트해야 합니다. 위에서 언급했듯이 이 익스플로잇이 성공하려면 피해자의 Linux 시스템 비밀번호를 알고 있어야 하므로 이 공격의 성공 가능성은 낮아집니다.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/a90ffb208e6a09d1b0ae44d1afe81d82248ba3fe/payload/payload_linux.template.dd#L7

https://github.com/AleksaMCode/WiFi-password-stealer/blob/a90ffb208e6a09d1b0ae44d1afe81d82248ba3fe/payload/payload_linux.template.dd#L9

Bash 스크립트

wifi_passwords_print.sh 스크립트를 실행하려면 스크립트에 USB 스틱의 올바른 이름을 업데이트한 후 터미널에 다음 명령을 입력하면 됩니다.

root@kitploit:~
echo PASSWORD | sudo -S sh wifi_passwords_print.sh USBSTICK

여기서 PASSWORD는 계정 비밀번호이고 USBSTICK은 USB 장치의 이름입니다.

페이로드 빠른 개요

NetworkManager는 연결 프로필 개념을 기반으로 하며 데이터 읽기/쓰기에 플러그인을 사용합니다. .ini 스타일 키 파일 형식을 사용하며 네트워크 구성 프로필을 저장합니다. keyfile은 NetworkManager가 가진 모든 연결 유형과 기능을 지원하는 플러그인입니다. 파일은 /etc/NetworkManager/system-connections/에 있습니다. keyfile 형식을 기반으로 페이로드는 관심 데이터를 추출하기 위해 정규식과 함께 grep 명령을 사용합니다. 파일 필터링을 위해 수정된 긍정형 lookbehind 어설션((?<=keyword))이 사용되었습니다. 긍정형 lookbehind 어설션은 문자열의 특정 위치, 즉 keyword 바로 뒤 위치에서 일치하지만 해당 텍스트 자체는 일치의 일부로 만들지 않는 반면, 정규식 (?<=keyword).*는 keyword 뒤의 모든 텍스트와 일치합니다. 이를 통해 페이로드는 SSID 및 psk(사전 공유 키) 키워드 뒤의 값을 일치시킬 수 있습니다.

NetworkManager에 대한 자세한 내용은 다음 유용한 링크를 참조하세요.

  • 키 파일 형식으로 NetworkManager 프로필을 수동으로 생성하기
  • keyfile 설정 플러그인 설명

유출 데이터 포맷

다음은 피해자 컴퓨터에서 .txt 파일로 유출되고 포맷된 데이터의 예입니다.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/f5b3b11328764eb07d765a210fbf25db3a828455/resources/wifi_pass.txt#L1-L5

USB 대용량 저장 장치 문제

Rubber Ducky가 RPi Pico에 비해 가지는 장점 중 하나는 연결되었을 때 USB 대용량 저장 장치로 표시되지 않는다는 것입니다. 컴퓨터에 연결되면 컴퓨터는 이를 USB 키보드로만 인식합니다. 이것은 RPi Pico의 기본 동작이 아닙니다. 연결되었을 때 RPi Pico가 USB 대용량 저장 장치로 표시되는 것을 방지하려면 핀 18(GND)과 핀 20(GPIO15) 사이에 점퍼 와이어를 연결해야 합니다. 자세한 내용은 이 링크를 참조하세요.

💡 팁:

  • 핀을 연결하기 전에 페이로드를 RPi Pico에 업로드하세요.
  • 언젠가 페이로드를 변경/업데이트하고 싶을 수 있으므로 핀을 납땜하지 마세요.

페이로드 작성기

작동하는 페이로드 파일을 만들 때 writer.py 스크립트를 사용하거나 템플릿 파일을 수동으로 변경할 수 있습니다. 스크립트를 성공적으로 실행하려면 스크립트 파일 이름 외에도 OS 이름(windows 또는 linux)과 페이로드 파일 이름(예: payload1.dd)을 전달해야 합니다. 아래에서 Windows 페이로드를 생성할 때 writer 스크립트를 실행하는 예제를 확인할 수 있습니다.

root@kitploit:~
python3 writer.py windows payload1.dd

Bash Bunny 공격

약간의 수정만으로 이전에 사용했던 스크립트를 Bash Bunny에서도 실행할 수 있습니다. Bash Bunny는 신뢰할 수 있는 USB 장치를 에뮬레이션하여 작동합니다 [1]. 이 프로젝트에서는 다음 명령을 사용하여 플래시 저장 장치를 에뮬레이션하도록 구성할 것입니다 [1, 2]:

root@kitploit:~
ATTACKMODE HID STORAGE

DuckyScript ATTACKMODE 명령을 사용하여 Bash Bunny가 에뮬레이션할 장치 유형을 정의할 수 있습니다 [1]. 각 공격 모드는 고유한 USB 공급업체 ID(VID) 및 제품 ID(PID)를 사용하여 시스템에 등록됩니다 [1]. 여러 공격 모드를 연결하여 결합하는 것도 가능합니다.

PC에 연결된 Bash Bunny

그림 2: Bash Bunny Mark I이 PC에 연결됨

Bash Bunny는 원래 DuckyScript 명령을 지원하므로 Rubber Ducky 섹션의 스크립트를 재사용할 수 있었습니다. 이러한 명령을 인라인으로 사용하려면 QUACK 명령을 접두사로 붙여야 합니다 [1]. 예를 들어 WINDOWS r 대신 Q WINDOWS r이라고 작성합니다.

페이로드를 Bash Bunny에 로드하려면 장치를 arming 모드(USB 플러그에 가장 가까운 스위치 위치 3)로 설정해야 합니다 [1]. 연결되면 payload.txt와 exfil.txt를 payloads\switch1에 복사합니다. 페이로드의 이름은 payload.txt여야 합니다 [1,2]. 페이로드가 참조하는 모든 지원 파일은 자유롭게 이름을 지정할 수 있습니다.

참고로 Bash Bunny 대용량 저장 장치 디렉터리 구조는 다음과 같습니다 [2]:

root@kitploit:~
BashBunny/
├── loot/
│   └── (페이로드에서 유출된 데이터가 여기에 저장됨)
└── payloads/
    ├── library/
    │   └── (재사용 가능한 스크립트 또는 모듈)
    ├── switch1/
    │   ├── payload.txt
    │   └── (선택적 파일, 예: exfil.txt, 스크립트 등)
    └── switch2/
        ├── payload.txt
        └── (선택적 파일)

그림 3: Bash Bunny 대용량 저장 장치 디렉터리 구조

스크립트 실행이 완료되면 결과는 loot\wifi_pass.txt에 저장됩니다. 대상 컴퓨터에 저장된 WiFi 비밀번호가 없으면 파일은 비어 있게 됩니다.

[!NOTE]

Bash Bunny 공격은 PowerShell 스크립트(exfil.txt)에 의존하므로 Windows 시스템에서만 사용할 수 있습니다. Linux에서 유사한 접근 방식을 사용하려면 페이로드를 수정하고 PowerShell 스크립트를 위 Linux 섹션에서 참조한 Bash 스크립트로 교체해야 합니다.

한계점/단점

  • 이 pico-ducky는 현재 Windows OS에서만 작동합니다.

  • 이 공격은 성공적으로 배포되려면 잠금 해제된 장치에 대한 물리적 접근이 필요합니다.

  • Linux 익스플로잇은 성공 가능성이 훨씬 낮습니다. 성공하려면 잠금 해제된 장치에 물리적으로 접근할 수 있어야 할 뿐만 아니라 Linux 시스템의 관리자 비밀번호도 알고 있어야 하기 때문입니다.

  • 컴퓨터의 방화벽이나 네트워크 방화벽이 네트워크 매체를 통한 도난 데이터 전송을 차단할 수 있습니다.

  • 공격을 배포하는 데 사용되는 컴퓨터의 속도가 다양하기 때문에 페이로드 지연 시간이 적절하지 않을 수 있습니다.

  • pico-ducky 장치는 실제로 은밀하지 않으며, 특히 핀을 납땜하면 상당히 부피가 큽니다.

  • 또한 pico-ducky 장치는 동일한 스크립트를 실행하는 Rubber Ducky에 비해 눈에 띄게 느립니다.

  • Caps Lock이 켜져 있으면 페이로드 코드의 일부가 실행되지 않고 익스플로잇이 실패합니다.

  • 컴퓨터에 영어가 아닌 환경이 설정되어 있으면 이 익스플로잇은 성공하지 못합니다.

  • 현재 pico-ducky는 DuckyScript 3.0을 지원하지 않으며 DuckyScript 1.0만 사용할 수 있습니다. 3.0 버전이 필요하다면 Rubber Ducky를 사용해야 합니다. 이 익스플로잇에는 3.0 버전이 필요하지 않습니다!

참고 자료

  1. Hak5의 Bash Bunny 문서
  2. Bash Bunny 기본 위키
도구 다운로드