웹 쉘 ( Web Shell )
웹 쉘이란?
- 웹(Web) + 쉘(Shell)의 합성어로 웹 페이지에서 해당 웹 서버에서 다양한 명령을 실행시킬 수 있는 스크립트 파일을 의미한다.
- 웹 서버에서 웹 쉘을 실행시켜야 하기에 보통 서버 사이드 스크립트(asp, jsp, php 등)로 제작되고 사용된다.
- 보통 공격자가 웹 서버의 취약점을 이용하여 업로드하고, 웹 서버에 제어권을 획득하기 위해 사용된다.
웹 쉘의 특징
- 일반적인 웹 사이트의 사용자들과 동일한 웹 서비스 포트(80, 443)를 통해 웹 쉘 업로드 및 공격이 이루어지기 때문에 탐지 및 차단이 까다롭다.
- 웹 쉘을 이용하면 관리자 권한을 획득한 후 웹 페이지의 소스 코드를 열람하거나 서버 내 자료 유출 및 백도어 설치 등 여러 다양한 공격들을 수행할 수 있기에 상당히 파급력이 큰 악성코드이다.
- 웹 서버에서 웹 쉘을 실행시켜야 하기에 보통 서버 사이드 스크립트(asp, jsp, php 등)로 제작되고 사용된다.
- 웹 쉘은 파일 업로드 취약점으로만 업로드가 이루어지는 것이 아니라 다양한 여러 취약점들(ex. SQL Injection 등)을 통하여 웹 쉘이 업로드되고 공격에 이용될 수 있다.
웹 쉘 피해 사례
- 비교적 최근에도 여러 기업들에서 웹 쉘을 이용한 공격 및 SQL Injection으로 인하여 개인정보가 유출된 사례를 위 사진에서 볼 수 있다.
- 또한, 비교적 최근 웹 쉘을 이용한 공격 사례를 위 사진에서 살펴볼 수 있었는데 특이한 점은 일반적인 웹 서버를 대상으로 공격을 한 것이 아닌 아파트 월패드를 대상으로 웹 쉘 공격을 한 것을 확인할 수 있다.
- 마지막으로 이전에 웹 쉘을 이용한 공격으로 인해 발생된 다양한 피해 사례를 위 기사에서 살펴볼 수 있었음
- 이처럼 웹 해킹 사고 발생 시 대부분의 큰 사건들에는 웹 쉘이 사용되었다는 것을 살펴볼 수 있다.
그만큼 파급력이 큰 악성코드임을 의미한다.
웹 쉘 실습
마지막으로는 위에서 본 웹 쉘을 직접 파일 업로드 취약점을 이용하여 업로드 후 사용해보는 것으로 마무리하겠습니다.
- 우선 가상 환경 구축의 경우 리눅스 시스템에서 파일 업로드 취약점을 이용하여 웹 쉘 실습을 하기 위해 DVWA 환경을 구성하여 실습을 진행하였습니다.
- 이 때 상단에 보이는 'The PHP module GD is not installed' 문구의 경우는 캡챠를 이용한 실습을 진행하는 것이 아니기에 신경쓰지 않고 실습을 진행했습니다.
- 다음 위 사진은 실습에 사용된 웹 쉘 코드입니다.
- 상당히 간단한 한 줄 웹 쉘 코드도 많이 사용되지만 좀 더 시각적으로 보기 편하기 위해 위 웹 쉘 코드를 사용하여 실습을 진행하였습니다.
- 파일 업로드 취약점이 있는 웹 페이지에 위에서 본 php 확장자의 웹 쉘 파일을 업로드를 하였더니 성공적으로 업로드가 되었다는 문구와 함께 저장된 경로가 출력되는 모습을 확인할 수 있음
- 이 후 해당 경로로 이동하여 업로드 한 웹 쉘 파일을 호출하였습니다.
- 웹 쉘 파일이 업로드 된 경로로 이동하여 웹 쉘 파일을 호출한 결과 정상적으로 업로드한 웹 쉘 파일이 정상 실행되는 것을 확인할 수 있다.
- 마지막으로 실행된 웹 쉘 명령어 입력란에 다양한 명령어를 입력해본 결과 정상적으로 명령어가 수행되는 것을 확인할 수 있었음
- 위 예시로 시스템 정보가 담긴 파일을 호출한 명령어를 사용해보았는데 정상적으로 해당 시스템 내부 정보가 출력되는 것을 확인할 수 있었다.
- 이러한 방식으로 웹 쉘을 이용하여 시스템 계정 정보 등 웹 서버에 저장된 다양한 정보들이 탈취될 수 있고, 웹 서버를 장악하는 등 다양한 공격에 활용될 수 있을 것으로 보여졌다.
'CERT > 웹 취약점' 카테고리의 다른 글
[웹 취약점]SQL Injection 취약점의 정의 및 대응 방안 (0) | 2023.05.06 |
---|---|
[웹 취약점] Cross-Site Scripting(XSS) 취약점의 정의 및 대응 방안 (0) | 2023.05.06 |
[웹 취약점]공개용 웹 게시판 취약점의 정의 및 대응 방안 (0) | 2023.04.15 |
[웹 취약점]소스코드 내 중요 정보 노출 취약점의 정의 및 대응 방안 (0) | 2023.04.15 |
[웹 취약점]파일 업로드 취약점의 정의 및 대응 방안 ( File Upload Vulnerability ) (0) | 2023.04.15 |