1. 개념
- **웹 쉘(Web Shell)**이란 공격자가 원격에서 웹 서버에 명령을 실행할 수 있도록 제작한 악성 스크립트 파일입니다.
- 주로 .asp, .php, .jsp, .cgi 등의 형태로 존재하며, 공격자는 이를 통해 시스템을 제어하고 데이터 탈취, 계정 생성, 백도어 설치 등의 행위를 수행합니다.
- 단발적 공격이 아닌, 持續적인 시스템 장악을 목적으로 다수 접속/원격 제어하는 데 활용됩니다.
2. 주요 특징
- HTTP(TCP 80) 포트를 이용하므로 방화벽 우회가 쉬움
- 일반 관리자 입장에서는 탐지 및 확인이 어려움
- 백신 프로그램이 탐지하지 못하는 경우가 많음
- 웹쉘을 통해 서버 내부에서 쉘 명령 실행 가능 (ex. ls, dir, netstat 등)
- 외부 공격자가 웹 쉘을 통해 원격 Telnet 접속과 유사한 환경 조작 가능
3. 공격 원리
[정상 웹 서비스 흐름]
- 클라이언트 → 웹 서버: 요청 전송
- 웹 서버 → WAS: 데이터 가공 요청
- WAS → DB: 데이터 요청
- DB → WAS: 응답
- WAS → 웹 서버: 처리 결과 전달
- 웹 서버 → 클라이언트: 결과 전송
[웹 쉘을 활용한 공격 흐름]
- 공격자 → 웹 서버: 악성 .jsp 파일 업로드 (예: webshell.jsp)
- 웹 서버 → WAS: 스크립트 실행 요청 (cmd=ls)
- WAS → 시스템: 명령어 실행 요청
- 웹 서버: 시스템 명령 실행 (ls, whoami, netstat -an 등)
- 결과값 → WAS → 웹 서버 → 공격자에게 전달
4. 대응 방안
📌 사전 예방
- 파일 업로드 제한 및 확장자 필터링
→ .jsp, .php, .exe 등 업로드 금지 - 업로드 디렉토리에 실행 권한 제거
→ 웹 루트 외부 경로 저장, 권한 644로 설정 - 화이트리스트 기반의 확장자 정책 적용
📌 탐지 및 대응
- 웹 루트 내에 의심스러운 스크립트 존재 여부 확인
- 주기적으로 웹 디렉터리 내 최근 수정 파일 점검
- 웹쉘 탐지 도구 사용 (예: [Alscan], [WebShell Detector])
- WAF(웹 방화벽) 통해 악의적 파일 업로드 차단
📌 대응 도구 예시
도구명 | 설명 |
WebShell Detector | 오픈소스 기반 웹쉘 탐지 도구 |
Linux find 명령어 | find . -name "*.jsp" -mtime -1 등으로 최근 업로드된 파일 확인 |
로그 분석 도구 | Apache/Nginx Access Log를 통한 비정상 요청 추적 |
'침해대응' 카테고리의 다른 글
DVWA 환경 구축 (칼리 리눅스 설치) (0) | 2024.03.18 |
---|---|
프록시(Proxy)의 정의 및 툴 (0) | 2024.03.18 |
웹 보안 취약점과 대응 방안 (4) (0) | 2023.11.25 |
웹 보안 취약점과 대응 방안 (3) (2) | 2023.11.25 |
웹 보안 취약점과 대응 방안 (2) (1) | 2023.11.25 |