2025년 5월 25일
웹쉘 (Web Shell)
1. 웹쉘 (Web Shell)의 개념 및 위험성
개념 | 시스템 파괴, 정보 유출 위해 웹서버 업로드 취약점을 통해 목표 시스템의 쉘(Shell) 기반 임의 명령을 실행하는 악성코드 | |
---|---|---|
위험성 | 탐지 어려움 | 정상적인 웹 프로그램과 유사하여 탐지가 어려움 |
제어 권한 탈취, 데이터 유출 | 대상 시스템 제어 및 서버에 저장된 데이터 탈취 | |
시스템 침해 확산 | 대상 시스템 공격 및 주변 시스템 공격 경유지로 활용 |
- 웹쉘은 오래된 공격 기법이지만 최근 국내외 통신사 등 전세계적으로 주요 기업 및 기관 침해 공격에 활용
2. 웹쉘 기반 공격 절차/방법 및 주요 유형
(1) 웹쉘 기반 공격 절차
![]() |
(2) 웹쉘 기반 공격 방법
구분 | 공격 방법 | 세부 기법 |
---|---|---|
확장자 우회 | 파일 확장자 우회 | – NULL byte를 이용한 파일 업로드 – HTML 인코딩, 숨겨진 확장자명 이용 |
정상파일 우회 | – PNG 파일 포맷을 이용하여 웹쉘 삽입 – 이미지 파일에 웹쉘 백도어 숨김 | |
취약점 이용 | CMS 취약점 이용 | – 파일 관리자 플러그인 취약점 이용 – 임의/원격 코드 실행 취약점 이용 |
Web Editor 취약점 이용 | – 샘플 페이지 파일 업로드 취약점 이용 – 웹 에디터 파일업로드 취약점 이용 | |
WEB/WAS 취약점 이용 | – 웹서버 파일 파싱 우회 공격 – 원격 임의 코드 실행 취약점 이용 | |
Source Code /Application 취약점 이용 | – JAVA 취약점 및 XSS 등 인젝션 취약점 이용 – RFI(Remote File Inclusion) 취약점 이용 |
(3) 웹쉘의 주요 유형
구분 | 유형 | 사례 / 메커니즘 |
---|---|---|
단독 파일 | one-line-Webshell | – ASP: <% eval request(“cmd”) %> – PHP: <?php echo passthru($_GET[‘cmd’];?> – JSP: <% Runtime.getRuntime().exec(request.getParameter(“cmd”)%> |
All-in-one Webshell | – ASP: ASPyder, Zehir Asp Shell, ASPXSpy, ASPX Shell – PHP: b374k-shell, WSO, Iron Shell, c99shell, FaTaLisTiCz_Fx, r57shell, phpFileManager, DAws, ALFA TEaM Shell – JSP: JspSpy, JspSpyWeb, jFolder, shack2, devilzShell, JSP File Browser, jshell, JspWebshell, Godzilla | |
Injection Webshell | – 기존에 존재하는 소스코드에 웹쉘 구문이 삽입 – Image 파일 구조 내 웹쉘 구문 삽입 | |
다중 파일 | Multi Division Webshell | – 공격자가 전송하는 다중 분할 파라미터를 웹서버에서 재조합 |
- 웹셸은 시큐어코딩 미흡으로 인한 파일 업로드 공격 사례가 다수의 보고서에서 분석된 바 있으므로 입력 데이터 검증 등을 통해 사전 예방하고 웹 서버 로그 분석을 통해 사후 대응 필요
3. 웹쉘 공격 대응 방안
구분 | 대응 방안 | 세부 대응 기법 |
---|---|---|
사전 예방 측면 | DBMS 조회 및 결과 검증 | – SQL Injection 대비 최소 권한 계정 사용 – 외부 입력 값 삽입 SQL 질의문 동적 생성 |
Code Inject 및 SSRF 대비 최소 권한 부여 | – 시스템 자원 접근 및 명령어 수행 입력 값 검증 – 외부 입력 값에 의해 악의적 명령어 실행 차단 | |
XSS 필터링 | – 입력 값을 동적으로 생성되는 응답에 대해 HTML 인코딩 또는 XSS 필터링 수행 | |
CSRF 대비 Referer 확인 및 도메인 검증 | – 웹 기반 중요 기능 수행 요청 유효성 검증 – Back-end 요청 시 토큰 값 검증 | |
업로드, 다운로드 파일 검증 | – File Upload/Download 취약점 대비 파일 이름, 크기, 무결성 등 검사 수행 | |
사후 대응 측면 | access.log 분석 | – 웹 페이지 접근 기록으로 비정상 파악 – 단시간 내 다수 접근 기록 등 분석 |
error.log 분석 | – Syntax 에러 등 주요 에러 분석 – Windows Event Log, Process Log 분석 |
- 그외 사전 예방을 위해 C-TAS를 통해 침해 공동 대응 체계를 적극 활용하고, 사후 대응으로 관측가능성 (Observability)을 통해 메트릭, 추적, 로그 등을 유기적 분석 필요
[참고]
- 이글루 시큐리티, 웹쉘을 이용한 공격 패러다임 변화 및 대응전략, 2023.2
- Imperva, What is Web Shell