웹 애플리케이션 모의해킹(Web Application Penetration Testing)은 단순히 도구를 실행하는 것이 아니라, 체계적인 방법론(Methodology)에 따라 수행됩니다.
가장 널리 통용되는 국제 표준인 PTES(Penetration Testing Execution Standard)와 OWASP(Open Web Application Security Project) 가이드를 기반으로 한 단계별 이론을 정리해 드립니다.
◎ 실무에서는 보통 다음 7단계 프로세스를 따릅니다.
1. 사전 계약 및 범위 설정 (Pre-engagement Interactions)
- 기술적인 해킹을 시작하기 전, 고객(또는 회사)과 수행 범위를 명확히 합의하는 법적, 행정적 단계입니다.
- 목표 설정: 모의해킹의 목적이 단순 취약점 진단인지, 실제 침투(Red Teaming)인지 결정.
- 범위(Scope) 확정: 테스트할 도메인, IP 주소, 제외할 중요 서비스(Production 서버 등) 지정.
- 규칙(RoE - Rules of Engagement) 수립: 테스트 가능 시간, 금지된 공격 기법(예: DDoS 금지), 비상 연락망 등을 정의합니다.
2. 정보 수집 (Intelligence Gathering / Reconnaissance)
- 대상에 직접적인 공격을 가하지 않고, 공격 표면(Attack Surface)을 넓히기 위한 정보를 수집하는 단계입니다.
- 앞서 언급한 spyhunt.py, paramspider, gobuster 등이 여기서 활약합니다.
- OSINT (Open Source Intelligence): 검색 엔진(Google Dorking), Whois, SNS, GitHub 등을 통해 노출된 정보 수집.
- 인프라 식별: IP 대역, 도메인/서브도메인, 사용 중인 클라우드 서비스(AWS, Azure 등) 파악.
- 기술 스택 파악(Fingerprinting): 웹 서버 종류(Apache/Nginx), 프레임워크(React/Django), WAF(웹 방화벽) 사용 여부 확인.
3. 위협 모델링 (Threat Modeling)
- 수집된 정보를 바탕으로 "어떻게 공격할 것인가?" 시나리오를 구상하는 단계입니다.
- 자산 식별: 이 서비스에서 가장 중요한 데이터(개인정보, 결제정보 등)가 무엇인지 파악.
- 공격 벡터 선정: 인증 로직, 관리자 페이지, 파일 업로드 기능 등 취약할 것으로 예상되는 지점을 도출.
- 위협 시나리오 수립: "관리자 페이지 우회 후 DB 덤프를 시도하겠다"와 같은 구체적인 공격 전략을 세웁니다.
4. 취약점 분석 (Vulnerability Analysis)
- 실제 테스트를 통해 이론상의 위협이 실제로 존재하는지 확인하는 단계입니다.
- 이 단계에서 nf (NucleiFuzzer), nikto, nmap 등의 스캐너와 수동 분석이 병행됩니다.
- 자동화 스캔: 취약점 스캐너를 이용해 알려진 보안 결함(CVE)을 빠르게 탐색.
- 수동 진단(Manual Verification): 스캐너가 놓친 논리적 오류(Business Logic Flaw)나 권한 상승 취약점을 직접 분석.
- 검증: 스캐너가 탐지한 내용이 오탐(False Positive)인지 실제 취약점인지 검증합니다.
5. 익스플로잇 (Exploitation)
- 확인된 취약점을 이용해 시스템에 침투하거나 권한을 획득하는 "실제 해킹" 단계입니다.
- sqlmap, wfuzz, curl(페이로드 전송) 등이 사용됩니다.
- 접근 권한 획득: SQL 인젝션으로 관리자 계정 탈취, RCE(원격 코드 실행)로 셸 획득.
- 권한 상승(Privilege Escalation): 일반 사용자에서 관리자(Root/Admin) 권한으로 격상 시도.
- 데이터 유출 시연: 중요 데이터에 접근 가능하다는 것을 증명(실제 대량 유출은 금지).
6. 포스트 익스플로잇 (Post Exploitation)
- 시스템 장악 후, 공격자가 추가로 무엇을 할 수 있는지 파급력을 평가하는 단계입니다.
- 지속성 유지(Persistence): 재접근을 위한 백도어 설치 가능성 확인(모의해킹에서는 주로 가능성만 타진).
- 내부망 이동(Lateral Movement): 장악한 웹 서버를 교두보로 삼아 내부 데이터베이스나 다른 서버로 이동 가능 여부 확인.
- 흔적 제거(Cleaning Up): 테스트 과정에서 생성한 파일, 계정, 로그 등을 삭제하여 시스템을 원상 복구.
7. 보고서 작성 (Reporting)
- 기술적인 발견 사항을 경영진과 개발자가 이해할 수 있는 문서로 정리하는 가장 중요한 단계입니다.
- 경영진 요약(Executive Summary): 비즈니스 관점에서의 위험도와 영향도 설명.
- 기술적 세부 사항: 발견된 취약점의 종류, 위치, 재현 방법(PoC), 증거 스크린샷.
- 대응 방안(Remediation): 취약점을 패치하거나 완화하기 위한 구체적인 가이드라인(소스 코드 수정 예시 등) 제공.
◎ 요약 비교
| 단계 | 핵심 활동 | 관련 도구 예시 |
| 1. 범위 설정 | 계약, 범위 확정 | (문서 작업) |
| 2. 정보 수집 | IP/도메인 식별, 기술 스택 파악 | nmap, gobuster, spyhunt.py |
| 3. 위협 모델링 | 공격 시나리오 구상 | (분석 작업) |
| 4. 취약점 분석 | 결함 탐지, 스캐닝 | nikto, paramspider, nf |
| 5. 익스플로잇 | 침투, 권한 탈취 | sqlmap, wfuzz, curl |
| 6. 포스트 익스플로잇 | 내부 이동, 파급력 평가 | (쉘 스크립트, 프록시 도구) |
| 7. 보고서 작성 | 결과 정리 및 대응책 제시 | (문서 작업) |
'OFFENSIVE > Vulnerable Web Application' 카테고리의 다른 글
| [WAPT] 웹 애플리케이션 모의해킹 Gobuster 가이드 (0) | 2025.12.13 |
|---|---|
| [WAPT] 웹 애플리케이션 모의해킹 Nmap 심화 가이드 (0) | 2025.12.13 |
| [WAPT] 웹 애플리케이션 모의해킹 Nmap 가이드 (0) | 2025.12.13 |
| 웹 애플리케이션 모의해킹(Web Application Penetration Testing)의 정석적인 절차 (0) | 2025.12.13 |
| 침투 테스트 연습을 위한 Vulnerable Web Application TOP 10 (0) | 2025.12.04 |
