웹쉘이란 무엇인가
- 웹쉘(Web Shell)은 웹 서버에서 실행되는 악성 스크립트로, 공격자가 서버에 원격으로 명령을 실행하고 제어할 수 있도록 합니다. 웹쉘은 PHP, ASP, JSP, Perl 등 다양한 스크립트 언어로 작성될 수 있으며, 일반적으로 웹 애플리케이션의 취약점을 이용해 서버에 업로드 됨.
- 웹 페이지 상에서 원격지 서버의 시스템 명령어 실행을 할 수 있는 어플리케이션
웹쉘의 예시 및 동작 원리
PHP로 작성된 간단한 웹쉘의 예시
<?php
if(isset($_GET['cmd'])) {
system($_GET['cmd']);
}
?>
위 스크립트는 URL 매개변수 cmd를 통해 전달된 명령을 서버에서 실행합니다. 예를 들어,
http://example.com/shell.php?cmd=ls
와 같은 요청을 보내면 서버에서 ls 명령이 실행되고, 그 결과가 웹 페이지에 표시
웹쉘 실행 전제조건
웹 서버의 환경에 따라 웹쉘이 동작할 수 있는 전제 조건이 필요하다.
- 웹 서버의 사용 언어와 동일한 언어로 제작
- 웹 서버의 파일 시스템 웹 디렉토리 내에 웹셀이 존재
- 웹 서버에 적용된 보안 솔루션을 우회
- 업로드 전 차단
- 업로드 후 삭제
https://www.imperva.com/learn/application-security/web-shell/
What is a Web Shell | Attack Types, Detection & Protection | Imperva
Web shells are malicious scripts that enable threat actors to compromise web servers and launch additional attacks. Learn How.
www.imperva.com
웹쉘의 주요 특징과 동작 방식
- 업로드 및 설치
- 공격자는 파일 업로드 취약점, SQL 인젝션, 서버 사이드 템플릿 인젝션 등의 취약점을 이용해 웹쉘을 서버에 업로드
- 업로드된 웹쉘 파일은 종종 무해한 이미지나 문서 파일처럼 보이도록 위장
- 명령 실행
- 웹쉘은 HTTP 요청을 통해 명령을 전달받고, 해당 명령을 서버에서 실행
- 예를 들어, 공격자는 웹 브라우저를 사용해 특정 URL에 접근하고, URL 매개변수로 명령을 전달
- 원격 제어
- 웹쉘을 통해 공격자는 서버의 파일 시스템에 접근하고, 파일을 생성, 수정, 삭제할 수 있음
- 서버의 프로세스를 관리하거나, 네트워크 설정을 변경할 수도 있음
- 정보 수집 및 데이터 탈취
- 공격자는 웹쉘을 이용해 서버에 저장된 데이터베이스의 내용을 읽거나, 민감한 정보를 탈취할 수 있음
- 시스템 정보를 수집하여 추가 공격을 계획할 수도 있음
공부하는 이유
- 웹쉘 동작 원리 파악
- 악의적인 웹쉘 분석 가능
- 맞춤형 웹쉘 제작
- 보안 솔루션 우회
'인프런 > Skill-Up! 배워서 바로 쓰는 웹쉘 제작' 카테고리의 다른 글
php 설정-mysql 설정 (0) | 2024.05.29 |
---|