1. 웹 쉘 (Webshell)이란?
웹 쉘 (Web Shell)은 target 웹 서버에서 다양한 명령을 실행할 수 있는 쉘 스크립트 파일을 의미한다.
웹 서버에서 웹 쉘을 실행시켜야 하기 때문에 보통 서버 사이트 스크립트(ex. asp, jsp 등)로 제작되고 사용된다.
주로 웹 서버의 취약점을 이용하여 업로드하며, 웹 서버에 대한 권한 상승, 파일 업로드 / 다운로드 / 삭제 / 실행 등 에 사용된다.
2. 웹 쉘의 특징
- 웹 사이트와 동일한 웹 서비스 포트(HTTP:80, HTTPS:443)를 통해 공격이 이루어져 탐지 및 차단이 까다롭다.
- (서버만 지원한다면) 어떤 프로그래밍 언어로든 작성될 수 있다.
- 웹 쉘은 파일 업로드 취약점 뿐 아니라 다음의 공격으로도 업로드되고 이용될 수 있다.
- SQL 삽입
- 애플리케이션 및 서비스 내 취약점 (e.g. NGINX 등 웹 서버 S/W 및 WordPress 같은 CMS 서비스)
- 원격 파일 포함 (RFI) 및 로컬 파일 포함 (LFI) 취약점
- 원격 코드 실행
- 노출된 관리자 인터페이스
이외에도 공격자가 업로드하는 파일의 `Content-Type` 헤더를 수정하여 부적합한 파일 검증 기능을 우회하여 웹 쉘을 target PC에 업로드 할 수 있다.
* Local File Inclusion (LFI)
- 외부의 .txt, .php 등의 파일 확장자를 내부의 php 파일 처럼 사용할 수 있으며, 서버 내부의 파일을 가져올 경우 정보 유출을 위해 많이 사용된다.
* Remote File Inclusion (RFI)
- 외부의 서버로부터 내부 서버에 가져와 실행시킬 수 있으며 외부의 Webshell을 가져올 수 있다.
3. 관련 사건 사고 (기사)
국내
"언제적 해킹 기법인데"… 웹쉘 공격에 개인정보 털렸다 - 정보통신신문
"언제적 해킹 기법인데"… 웹쉘 공격에 개인정보 털렸다 - 정보통신신문
[정보통신신문=박광하기자] 고전적인 해킹 수법으로 개인정보가 유출된 기업들이 과징금, 과태료 부과 처분을 받았다. 이들 기업이 적절한 사이버보안 조치를 했더라면 해킹 피해를 막을 수 있
www.koit.co.kr
> 웹 쉘, SQL 주입 공격 등으로 개인정보가 유출된 3개 사업자에 대한 과징금·과태료 부과 (2022)
해킹사고 빗썸, 웹셸 다수 발견...결제승인 사칭 문자도 출현
해킹사고 빗썸, 웹셸 다수 발견...결제승인 사칭 문자도 출현
해킹사고를 당한 국내 최대 규모 암호화폐 거래소 빗썸의 내부 서버 등에서 웹셸이 여러 개 발견된 것으로 알려졌다. 특히, 일부 웹쉘은 6월 이전에 심어진 것으로 드러나 실제 해킹 공격은 빗썸
www.boannews.com
> 암호화폐 거래소의 내부 서버에서 웹쉘이 발견되었지만 그 공격경로와 스피어피싱 여부는 확인하기 어려움. (2018)
해외
Hello Ransomware Uses Updated China Chopper Web Shell, SharePoint Vulnerability | Trend Micro (NO)
Hello Ransomware Uses Updated China Chopper Web Shell, SharePoint Vulnerability
The ransomware arrives at a target system via Microsoft SharePoint vulnerability CVE-2019-0604. To launch a payload, they abuse a Cobalt Strike beacon to launch the ransomware. Based on our own monitoring of this variant since it emerged three months ago,
www.trendmicro.com
> 최신 ransomware 에서도 수정된 China chopper 웹 쉘이 사용되고 있음을 확인 가능함. (2021)
4. Burp Suite 을 이용한 실습
※ 빠르고 쉬운 웹 쉘 실습을 위해 Burp Suite 사에서 제공하는 예제를 활용하였다.
- 공격 대상 웹 사이트의 파일 업로드 기능을 통해 이미지를 업로드한다.
i. 공격 대상 웹 사이트의 이미지 업로드 기능 사용 ii. 노출된 파일 업로드 경로 확인 - Burp Suite의 Proxy > HTTP history 에서 이미지 파일 업로드 / 다운로드 경로를 확인한다.
iii. 이미지 업로드 / 다운로드 경로 확인 - HTTP POST 요청에 Content-Body에 target 파일의 내용을 출력하는 php 명령어를 삽입한 뒤 전송한다.
iv. 특정 디렉터리 구조를 출력하는 php 구문 삽입 후 업로드
* /etc/passwd : 시스템에 로그인하는 사용자 계정을 관리하는 text 파일 - HTTP GET 요청 url에 삽입한 php 파일을 입력 후 전송하여 결과를 확인한다.
참고 출처
'리팩토링 > 3. CERT' 카테고리의 다른 글
침해대응 & CERT 11주차. Proxy (2) | 2025.03.11 |
---|---|
침해대응 & CERT 10주차. 웹 취약점(4) (0) | 2025.03.04 |
침해대응 & CERT 8주차. 웹 취약점(3) (1) | 2025.02.19 |
침해대응 & CERT 7주차. 웹 취약점(2) (1) | 2025.02.12 |
침해대응 & CERT 6주차. 웹 취약점(1) (1) | 2025.02.03 |