
aircrack-ng 무선 감사 제품군을 위한 로컬 호스팅 GUI입니다.
[!WARNING] 소유한 네트워크나 서면 허가를 받은 네트워크에서만 사용하십시오. 통제하지 않는 네트워크를 스캔하거나, 연결 해제(Deauth)하거나, 트래픽을 캡처하는 것은 대부분의 지역에서 불법입니다. 법적 및 책임 있는 사용을 참조하세요.
AirmonGUI는 airmon-ng, airodump-ng, aireplay-ng, aircrack-ng를 하나의 웹 앱으로 묶어 사용자의 기기에서 실행합니다. 모니터 모드를 활성화하고, 네트워크를 스캔하고, WPA 핸드셰이크를 캡처하고, 플래그를 기억하는 대신 레이블이 지정된 양식을 클릭하여 크래킹할 수 있습니다.
어떤 도구도 다시 구현하지 않습니다. 백엔드는 실제 바이너리를 호출하고 그 출력을 파싱하므로, 보이는 것은 도구 모음이 실제로 수행한 결과입니다. UI는 127.0.0.1에 바인딩되며 API는 기기 외부로 나가지 않습니다.
aircrack-ng 모음은 훌륭하지만, 작업 흐름은 네 개의 개별 명령어와 많은 플래그를 머릿속에 기억해야 합니다: 카드를 모니터 모드로 전환하고, 대상 찾기 위해 채널을 변경하고, BSSID에 고정하고, 올바른 채널에서 deauth를 발사하고, 4-way 핸드셰이크를 기다린 후 캡처를 워드리스트에 넣습니다. 채널을 놓치면 deauth는 무효가 됩니다. --bssid를 잊으면 캡처에 노이즈가 가득합니다.
저는 그 전체 과정을 일련의 화면으로 만들어 단계별로 안내하고, 공중에 무엇이 있는지 보여주며, 단계 사이의 상태를 정리하고 싶었습니다. 이것이 바로 그 결과물입니다. 공격이 실제로 어떻게 동작하는지 배우거나, 실습 작업 또는 승인된 평가 속도를 높이는 데 유용합니다.
| 영역 | 설명 |
|---|---|
| 모니터 모드 | 선택한 인터페이스에서 airmon-ng를 사용하여 모니터 모드를 켜거나 끕니다. NetworkManager와 같은 백그라운드 서비스가 모니터 모드를 차단할 때 airmon-ng check kill을 실행하는 별도의 확인-종료 작업이 있습니다. |
| 네트워크 스캔 | airodump-ng 캡처 작업을 실행하고 액세스 포인트와 클라이언트를 이름, 보안, 대역별로 필터링할 수 있는 실시간 테이블로 표시합니다. |
| 신호 분석 | 공격 가능성(신호 강도, 취약한 보안, 활성 클라이언트)에 따라 액세스 포인트를 순위 매기고, 채널 혼잡도와 범위 내 보안 구성을 차트로 표시합니다. |
| 연결 해제(Deauthentication) | aireplay-ng를 통해 대상 또는 브로드캐스트 deauth를 전송하며, 프레임이 도달하도록 먼저 인터페이스를 액세스 포인트의 채널로 설정합니다. |
| 핸드셰이크 캡처 | airodump-ng를 대상에 고정하고, 자동 deauth 엔진을 실행하며, WPA 4-way 핸드셰이크를 자체적으로 감지하는 3단계 작업 흐름입니다. |
| 크래킹 | 캡처 파일과 워드리스트를 aircrack-ng에 전달하고, 실시간 로그를 스트리밍하며, 키가 발견되는 즉시 표시합니다. |
| 캡처 관리 | 도구 모음이 작성하는 .cap, .csv, .pcap, .ivs, .log 파일을 탐색, 필터링, 일괄 선택 및 삭제합니다. |
| 통합 터미널 | 동일한 창에서 원시 명령줄을 사용할 수 있는 실제 PTY 셸(xterm.js)입니다. |
| 명령 로그 | 세션에서 실행된 모든 명령과 stdout, stderr, 상태, 클릭 한 번 복사 기능을 제공합니다. |
실행은 사이드바를 따라 위에서 아래로 진행됩니다. 각 화면은 다음과 같습니다.
아래 스크린샷의 네트워크, BSSID, 클라이언트는 실제 캡처가 아닌 합성 데모 데이터입니다.
인터페이스를 선택하고, 드라이버, 칩셋, PHY를 확인한 후 모니터 모드를 켭니다. 완료되면 해당 인터페이스만 해제합니다.

airodump-ng 작업을 시작하고 액세스 포인트와 클라이언트가 발견될 때 채워지는 것을 지켜봅니다. 테이블을 필터링한 후, 네트워크를 deauth 또는 핸드셰이크 작업 흐름으로 바로 보냅니다.

신호 분석은 모든 액세스 포인트에 점수를 매겨 강력하고 보안이 약하며 활성 클라이언트가 있는 것들이 상위에 오도록 합니다. 또한 각 채널의 혼잡도와 주변 네트워크가 사용하는 보안을 보여줍니다. 자신의 장치는 실수로 대상이 되지 않도록 플래그가 지정됩니다.

이 화면은 airodump-ng를 대상의 BSSID와 채널에 고정하고, 자동 deauth 엔진을 실행하여 클라이언트를 끊어서 다시 연결하도록 유도하며, 4-way 핸드셰이크가 캡처되는 즉시 녹색으로 변합니다.

캡처 파일과 워드리스트를 aircrack-ng에 지정합니다. 로그가 실행되는 동안 스트리밍되고, 암호가 목록에 있으면 상단에 표시됩니다.

채널 잠금, 실행 기록 및 파싱된 이벤트 출력이 포함된 독립형 deauth:

캡처 파일 관리:

세션 명령 기록:

Linux, 루트 권한, 모니터 모드를 지원하는 무선 어댑터, $PATH에 aircrack-ng 모음이 필요합니다. 전체 목록은 요구 사항을 참조하세요.
# 0. 모음 설치 (Debian, Ubuntu, Kali)
sudo apt update && sudo apt install aircrack-ng wireless-tools
# 1. 클론
git clone https://github.com/ELHart05/AirmonGUI.git
cd AirmonGUI
# 2. 백엔드 (터미널 1)
cd backend
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
sudo -E .venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000
# 3. 프론트엔드 (터미널 2)
cd frontend
npm install
npm run dev
http://localhost:5173을 엽니다. UI는 127.0.0.1:8000과만 통신합니다.
첫 번째 연결 시 UI는 API 토큰을 요청합니다. 백엔드는 시작 시 콘솔에 다음과 같이 토큰을 출력합니다:
======================================================================
AirmonGUI API 토큰 (이 실행에 대해 생성됨):
Xy3k...긴-랜덤-문자열...
메시지가 표시되면 AirmonGUI 웹 UI에 붙여넣으세요.
======================================================================
해당 토큰을 잠금 해제 화면에 붙여넣습니다. 재시작 간에 고정 토큰을 유지하려면 backend/.env에 AIRMON_GUI_AUTH_TOKEN을 설정하십시오 (백엔드는 시작 시 이 파일을 로드합니다). 상태 확인을 제외한 모든 API 경로는 이 토큰이 필요하며, 이는 로컬 프로세스나 방문 중인 웹 페이지가 사용자 모르게 무선 도구를 구동하는 것을 방지합니다. 백엔드를 127.0.0.1 이외의 주소에 바인딩하기 전에 토큰을 명시적으로 설정해야 합니다. 그렇지 않으면 시작을 거부합니다.
프롬프트가 단일 사용자 상자에서 불편하다면 AIRMON_GUI_AUTH_ENABLED=false로 설정하여 인증을 완전히 끌 수 있습니다. 그러면 UI가 잠금 해제 화면을 건너뜁니다. 인증이 꺼져 있으면 백엔드는 루프백 이외의 주소에는 바인딩을 거부합니다. API_HOST를 127.0.0.1 이외의 값으로 지정하면 시작되지 않습니다.
루트 권한이 필요한 이유는 airmon-ng, airodump-ng, aireplay-ng가 raw 소켓을 사용하기 때문입니다. 일반 uvicorn 대신 .venv/bin/uvicorn을 직접 호출하십시오. sudo는 PATH를 재설정하여 virtualenv를 찾지 못할 수 있으므로 -E 플래그는 설정한 AIRMON_GUI_* 변수를 유지합니다. 서버를 루트로 실행하지 않으려면 해당 특정 바이너리에 대해 비밀번호 없는 sudo를 설정하고 backend/app/utils.py를 조정하십시오.
cd frontend
npm run build # 정적 파일을 frontend/dist/에 작성
frontend/dist/를 모든 정적 파일 서버에서 제공하고 /api/* 및 /ws/* WebSocket을 Uvicorn 프로세스로 프록시하십시오.
| 계층 | 스택 |
|---|---|
| 백엔드 | Python 3.11+, FastAPI, Uvicorn, Pydantic v2 |
| 프론트엔드 | Vue 3, Vite 5, Tailwind CSS 3, lucide-vue-next, xterm.js |
| 웹사이트 | React 18, TypeScript, Vite, Tailwind (선택적 랜딩 페이지, website/ 내) |