
Linux용 네트워크, 정찰 및 공격적 보안 도구.
Hawk는 제가 한 도구에서 다른 도구로 옮겨 다니는 대신 동일한 스위트를 사용하여 다양한 종류의 작업을 수행할 수 있도록 개발한 네트워크 및 침투 테스트 유틸리티입니다.
현재 이 스크립트는 ifconfig, ping, traceroute, 포트 스캔(SYN, TCP, UDP, ACK, 종합 스캔, 호스트 검색(로컬 네트워크에서 작동 중인 장치 스캔), MAC 주소 감지(로컬 네트워크에서 호스트 IP의 MAC 주소 가져오기), 배너 그래빙, DNS 확인(지리적 위치 정보 포함), WHOIS, 하위 도메인 열거, 취약점 정찰, 패킷 스니핑, MAC 스푸핑, IP 스푸핑, SYN 플러딩, deauth 공격 및 무차별 대입 공격(베타) 등 다양한 작업을 수행할 수 있습니다.
다른 기능들은 아직 구현 중입니다. 향후 구현에는 WAF 탐지, DNS 열거, 트래픽 분석, XSS 취약점 스캐너, ARP 캐시 중독, DNS 캐시 중독, MAC 플러딩, 죽음의 핑, 네트워크 연결 해제 공격(deauth 공격이 아님), OSINT, 이메일 스푸핑, 익스플로잇, 일부 자동화 작업 등이 포함될 수 있습니다.

참고: 현재 이 스크립트는 Linux에서만 제대로 실행됩니다. Windows나 macOS에서 시도하면 실행될 수는 있지만 수많은 오류가 나타날 것입니다.
이 스크립트는 다음에서 테스트되었습니다:
스크립트가 문제없이 실행되도록 필요한 패키지를 설치하려면 루트 권한으로 setup.sh 스크립트를 실행하기만 하면 됩니다. 현재 이 설치 스크립트는 각각 apt, dnf, pacman 패키지 관리자를 사용하는 Debian, Red Hat, Arch 기반 배포판에서만 지원됩니다(Ubuntu, Kali Linux, Parrot OS, Debian, Pop!_OS, Linux Mint, Deepin, Zorin OS, MX Linux, Elementary OS, Fedora, CentOS, Red Hat Enterprise Linux, Rocky Linux, AlmaLinux, Oracle Linux, ClearOS, Arch, Black Arch, Manjaro 등). 대부분의 시스템에서 Hawk를 설치하려면 다음 명령을 실행하기만 하면 됩니다:
git clone https://github.com/medpaf/hawk.git
cd hawk
sudo sh setup.sh
그런 다음 안내에 따라 진행하면 됩니다. 설치 중 나타나는 오류 메시지는 무시하세요.
하지만 다른 패키지 관리자를 사용하는 다른 Linux 배포판을 사용 중이라면 해당 배포판의 패키지 관리자를 사용하여 패키지를 수동으로 설치하세요. 사용 중인 특정 배포판에 따라 이 스크립트를 실행하는 데 필요한 패키지 중 일부가 이미 설치되어 있을 수도 있습니다. 필요한 패키지를 확인하려면 setup.sh 파일을 살펴보세요.
설치가 끝난 후 프로그램을 실행하려면 프로젝트 디렉터리로 이동한 다음 python으로 hawk.py 파일을 실행하기만 하면 됩니다. 성능 향상과 권한 오류를 피하기 위해 루트로 스크립트를 실행하는 것이 좋습니다. 사용되는 명령은 다음과 같습니다:
sudo python3 hawk.py
구성을 변경하려면 files/conf.py에 있는 구성 파일로 이동하여 편집하면 됩니다.
시스템의 현재 TCP/IP 네트워크 구성을 표시하려면 다음 명령을 입력하세요:
-ifconfig

연결 상태를 확인하기 위해 하나 이상의 호스트에 ICMP 패킷을 보내려면 다음과 같이 입력하세요:
-ping <HOST(s) IP/FQDN>

경로를 진단하고 전송 지연을 측정하려면 -traceroute 명령을 사용하세요:
-traceroute <HOST IP/FQDN>

포트 스캔은 네트워크에 연결된 호스트와 실행 중인 서비스를 식별하여 잠재적인 보안 침해를 감지하는 데 도움이 됩니다.
TCP SYN(-scansyn) [스텔스 스캔이라고도 함], TCP Connect(-scantcp), UDP(-scanudp), TCP ACK(-scanack), 종합 스캔(-scan) 등 여러 스캔 유형이 지원됩니다.
-scan -host <HOST(s) IP/FQDN>
-scan -host <HOST(s) IP/FQDN> -p <PORT(s)>
IP 범위 및/또는 포트 범위를 스캔하려면 다음 명령 중 하나를 사용하세요:
-scan -host <HOST(s) IP/FQDN> -prange <START PORT> <END PORT>
-scan -iprange <START IP> <END IP> -p <PORT(s)>
-scan -iprange <START IP> <END IP> -prange <START PORT> <END PORT>

이 스캔 후 22(SSH) 및 80(HTTP) 포트가 모두 열려 있음을 확인할 수 있습니다.
주어진 네트워크에서 현재 작동 중인 장치를 찾으려면 다음 명령을 입력하세요:
-scanlan
그런 다음 스캔하려는 네트워크를 입력하세요.

LAN에서 하나 이상의 활성 호스트의 MAC 주소를 얻으려면 다음 명령을 사용하세요:
-getmac -host <HOST(s) IP>

버전 감지, 즉 배너 그래빙은 소프트웨어 배너 정보를 수집하는 정찰 기술입니다. 이 배너에는 일반적으로 네트워크 서비스에 대한 중요한 정보가 포함되며, 여기에는 소프트웨어 이름과 버전이 포함되지만 이에 국한되지 않습니다. FTP, 웹, SSH 및 SMTP 서버는 종종 배너에서 실행 중인 소프트웨어에 대한 중요한 정보를 노출합니다.
배너 공격은 일반적으로 열린 포트를 찾기 위한 열거 스캔으로 시작됩니다. 공격 대상 서비스를 식별한 후 특정 패킷을 보내고 지정된 정보를 위해 트래픽을 검사할 수 있습니다.
배너 그래빙을 수행하려면 특정 요구 사항에 따라 다음 명령 중 하나를 입력하세요:
-grab -host <HOST(s) IP/FQDN> -p <PORT(s)>
-grab -iprange <START IP> <END IP> -prange <START PORT> <END PORT>
-grab -host <HOST(s) IP/FQDN> -prange <START PORT> <END PORT>
-grab -iprange <START IP> <END IP> -p <PORT(s)>

이 기능은 UNIX 시스템에서 사용되는 잘 알려진 nslookup 명령과 유사합니다. DNS 확인을 수행하려면 다음을 입력하세요:
-ns <HOST(s) IP/FQDN>

고지 사항: 이 기능은 IPinfo API를 사용합니다. 제공된 키는 다른 사람들이 사용하고 있을 수 있으므로 API 키를 본인 것으로 변경하는 것이 좋습니다. API 키를 변경하려면 files/conf.py의 구성 파일로 이동하세요.
WHOIS는 연락처 및 DNS 정보를 조회하기 위한 TCP 프로토콜입니다. 하나 이상의 페이지에 대한 WHOIS를 요청하려면 다음을 입력하세요:
-whois <HOST(s) IP/PQDN>

하위 도메인 열거는 하나 이상의 도메인에 대한 유효한 하위 도메인을 찾는 과정입니다.
하위 도메인 열거는 보안 평가 범위에 속하는 많은 도메인/하위 도메인을 드러낼 수 있으며, 이는 취약점을 발견할 가능성을 높입니다.
도메인의 일반적인 하위 도메인을 찾으려면 다음과 같이 입력하세요:
-sdenum <PQDN>
이 명령은 하위 도메인을 찾기 위해 기본 워드리스트를 사용합니다. 그러나 자신만의 워드리스트를 사용하려면 다음을 입력하세요:
-sdenum <PQDN> -wordlist <WORDLIST PATH>

디렉터리 버스팅은 웹 서버 내에서 디렉터리를 찾는 과정입니다.
이 작업을 수행하려면 다음을 입력하세요:
-dirbust <HOST IP/FQDN>
이 명령은 하위 도메인을 찾기 위해 기본 워드리스트를 사용합니다. 그러나 자신만의 워드리스트를 사용하려면 다음을 입력하세요:
-dirbust <HOST IP/FQDN> -wordlist <WORDLIST PATH>

하나 이상의 호스트에서 취약점을 스캔하려면 다음 명령을 사용하세요:
-vulnscan -host <HOST(s) IP/FQDN>
