Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
apache-web-log-analysis-lab — 디렉토리 무차별 대입 및 웹 스캐닝 활동을 탐지하기 위해 Apache 웹 액세스 로그를 분석하는 데 중점을 둔 블루 팀 실습입니다. | Kitploit
도구/GitHubGitHub/pedrofbrm/apache-web-log-analysis-lab
Web SecurityLearning & EducationLog AnalysisLabs & Practice
GitHubpedrofbrm/apache-web-log-analysis-lab

apache-web-log-analysis-lab

디렉토리 무차별 대입 및 웹 스캐닝 활동을 탐지하기 위해 Apache 웹 액세스 로그를 분석하는 데 중점을 둔 블루 팀 실습입니다.

저장소 보기
234개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Apache 웹 로그 분석 랩

웹 스캐닝 활동, 디렉터리 열거 및 경로 탐색 시도를 탐지하기 위해 Apache HTTP 서버 로그를 분석하는 Blue Team 랩입니다.


목적

격리된 실습 환경에서 Apache 웹 서버를 설치 및 노출하고, 업계 표준 도구를 사용하여 자동화된 웹 스캐닝을 시뮬레이션한 후, Blue Team 관점에서 생성된 로그를 분석하여 공격 패턴, 도구 서명 및 악성 정찰 활동의 지표를 식별합니다.


환경

구성 요소세부 정보
공격자 VMKali Linux
대상 VMDebian 13
네트워크NAT 네트워크 (VirtualBox)
공격자 IP10.0.2.5
대상 IP10.0.2.15
웹 서버Apache 2.4.67
로그 소스/var/log/apache2/access.log, /var/log/apache2/error.log
HTTP 포트80

수행 단계

1. 아파치 서비스 확인

대상 머신에서 Apache HTTP 서버가 활성화되어 실행 중임을 확인했습니다.```bash sudo systemctl status apache2 --no-pager

결과: `active (running)` since Wed 2026-05-06 21:09:17. Apache 2.4.67 (Debian), Main PID 3164, 55 tasks active.

---

### 2. 대상 IP 식별

데비안 대상 시스템의 IP 주소를 식별했습니다.```bash
ip a

대상 IP: 10.0.2.15/24 — 인터페이스 enp0s3


3. 연결 테스트

Kali 공격자 머신과 Debian 대상 간의 네트워크 연결을 확인했습니다.```bash ping -c 4 10.0.2.15

**결과:** 4개의 패킷 전송, 4개 수신, 0% 패킷 손실. RTT 최소/평균/최대: 0.495/1.288/2.139ms.

---

### 4. Apache 브라우저 테스트

Kali 브라우저에서 Apache 서버에 접속하여 HTTP 서비스 가용성을 확인했습니다.```
http://10.0.2.15

Result: Apache2 Debian Default Page loaded successfully — confirming the web server was reachable and responding to HTTP requests.


5. 웹 콘텐츠 설정

대상 서버에 테스트 디렉토리와 페이지를 생성하여 실제 웹 애플리케이션 구조를 시뮬레이션했습니다.```bash sudo mkdir -p /var/www/html/admin sudo mkdir -p /var/www/html/backup sudo mkdir -p /var/www/html/login echo "

Admin Panel

" | sudo tee /var/www/html/admin/index.html echo "

Login Page

" | sudo tee /var/www/html/login/index.html

생성된 디렉토리: `/admin`, `/backup`, `/login`

---

### 6. Nikto 스캔

Nikto를 대상 웹 서버에 실행하여 자동화된 취약점 스캔을 시뮬레이션했습니다.```bash
nikto -h http://10.0.2.15

Nikto v2.5.0 — 시작 시간: 2026-05-06 20:16:56 — 종료 시간: 20:17:13 (17초)

Nikto가 보고한 발견 사항:

  • 서버: Apache/2.4.67 (Debian)
  • 누락된 헤더: X-Frame-Options — 클릭재킹 보호 없음
  • 누락된 헤더: X-Content-Type-Options — MIME 스니핑 보호 없음
  • ETag 누출: 서버가 ETags를 통해 inode 번호를 유출할 수 있음 (CVE-2003-1418)
  • 허용된 메소드: GET, POST, OPTIONS, HEAD
  • 발견된 흥미로운 디렉토리: /admin/, /backup/, /login/
  • 확인됨: /admin/index.html — 관리자 로그인 페이지에 접근 가능
  • 총 요청: 17초 동안 8102개

7. Dirb 스캔

대상 웹 서버에 대해 디렉토리 무차별 대입을 수행하기 위해 Dirb를 실행했습니다.```bash dirb http://10.0.2.15

**DIRB v2.22 — 시작: 2026년 5월 6일 수요일 20:19:50 — 종료: 20:19:59 2026 (9초)**

사용된 단어 목록: `/usr/share/dirb/wordlists/common.txt` — 4612개 단어 테스트

발견된 디렉터리 및 파일:

| URL                               | 코드 | 크기  |
| --------------------------------- | ---- | ----- |
| http://10.0.2.15/index.html       | 200  | 10703 |
| http://10.0.2.15/server-status    | 403  | 314   |
| http://10.0.2.15/admin/           | 200  | —     |
| http://10.0.2.15/admin/index.html | 200  | 21    |
| http://10.0.2.15/backup/          | 200  | —     |
| http://10.0.2.15/login/           | 200  | —     |
| http://10.0.2.15/login/index.html | 200  | 20    |

**경고:** `/backup/` 디렉터리 목록이 활성화되어 있습니다 — 인덱스 파일이 없어 디렉터리 내용을 직접 탐색할 수 있습니다.

**총 다운로드:** 13836 바이트 — **발견:** 4개 리소스

---

### 8. 접근 로그 분석

원시 접근 로그 항목을 검사하여 공격 패턴을 식별했습니다.```bash
sudo cat /var/log/apache2/access.log

Nikto 스캔 단계(21:18:32)의 샘플 항목들:``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.tar.bz2 HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10_0_2_15.gz HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.sql HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.zip HTTP/1.1" 404 527

Dirb 스캔 단계의 샘플 항목 (21:21:34):```
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xsql HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xxx HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zimbra HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zoom HTTP/1.1" 404 472

관찰된 패턴: 동일한 초 내에 수백 개의 순차적 요청이 모두 존재하지 않는 경로를 대상으로 함 — 자동화된 스캐닝 동작과 일치합니다.


9. 출발지 IP별 스캔 패턴

공격자 IP에서 발생한 모든 액세스 로그 항목을 필터링했습니다.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | head -30

추가로 관찰된 패턴:

- Nikto는 서버 IP를 파일명으로 사용하여 백업 파일에 접근 시도 (예: `10.0.2.15.tar.bz2`, `10.0.2.15.sql`, `10.0.2.15.zip`)
- Dirb는 발견된 각 디렉토리를 대상으로 알파벳순 정렬된 단어리스트를 반복적으로 사용
- 두 도구 모두 머신 속도로 요청을 생성 — 동일한 소스 포트 범위에서 초당 여러 항목

---

### 10. HTTP 상태 코드 분포

공격 표면을 정량화하기 위해 HTTP 응답 코드별 요청 수를 집계했습니다.```bash
sudo grep " 200 " /var/log/apache2/access.log | wc -l
sudo grep " 403 " /var/log/apache2/access.log | wc -l
sudo grep " 404 " /var/log/apache2/access.log | wc -l
HTTP CodeMeaningCount
200성공 — 리소스 발견 및 제공됨177
403금지됨 — 리소스는 존재하지만 접근 거부됨26
404찾을 수 없음 — 리소스가 존재하지 않음21740

총 404 오류: 21,740 — 요청의 대다수가 존재하지 않는 경로를 대상으로 했으며, 이는 자동화된 디렉터리 무차별 대입 공격의 정의적 특성입니다.


11. 공격자 IP별 총 요청 수

공격자로부터 발생한 모든 접근 로그 항목을 집계했습니다.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | wc -l

**10.0.2.5로부터의 총 요청 수: 21,962**

---

### 12. 도구 서명 식별

접근 로그에서 스캐너별 서명을 검색했습니다.

#### Nikto 서명```bash
sudo grep "nikto" /var/log/apache2/access.log | head -5

결과:``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "PUT /nikto-test-pk9VPSjF.html HTTP/1.1" 405 590 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"

Nikto가 PUT 요청을 통해 서버에 쓰기 권한이 있는지 확인하기 위해 테스트 파일(`nikto-test-pk9VPSjF.html`)을 생성했습니다.

#### Dirb 시그니처```bash
sudo grep "DirBuster\|dirb" /var/log/apache2/access.log | head -5

결과:``` 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:32 -0300] "GET /login/dirb HTTP/1.1" 404 472

Dirb의 자체 이름이 사용하는 단어 목록에 나타나므로 로그에 명확한 흔적이 남습니다.

---

### 13. 오류 로그 분석

스캔으로 인해 발생한 서버 측 보안 이벤트에 대해 Apache 오류 로그를 검사했습니다.```bash
sudo cat /var/log/apache2/error.log

중요 이벤트 발견:

경로 탐색 시도 (디렉터리 탐색)

Nikto가 디렉터리 경계를 탐색하여 중요한 시스템 파일에 접근을 시도했습니다:``` [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../../../etc/shadow) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini) [client 10.0.2.5] AH10244: invalid URI path (/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../boot.ini) [client 10.0.2.5] AH10244: invalid URI path (/../../../../winnt/repair/sam._)

포함된 대상: `/etc/passwd`, `/etc/shadow`, `boot.ini`, `win.ini`, Windows SAM 데이터베이스 — 모든 전형적인 경로 탐색 대상입니다.

#### 유효하지 않은 HTTP 메소드

Nikto는 비표준 HTTP 메소드를 테스트하여 잘못된 구성을 식별했습니다:```
[client 10.0.2.5] AH00135: Invalid method in request DIWHWPJH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request DEBUG / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request TRACK / HTTP/1.0
[client 10.0.2.5] AH00135: Invalid method in request SEARCH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request INDEX / HTTP/1.1

보호된 파일 접근 시도

도구 다운로드