Security/Web

웹 쉘

NOG 2023. 7. 9. 23:57

Web Shell ?

 

웹 쉘은

웹페이지에서 웹서버에게 명령어를 실행하기 위해 만들어진 서버 측 스크립트 (asp,jsp,php)

클라이언트의 명령을 서버에 실행시켜주는 프로그램

웹 서버의 취약점을 이용하여 업로드된 후 서버의 제어권 장악, 정보 탈취, 위변조,악성 스크립트 삽입 등 행위 수행

 

'''

쉘 : 사용자와 운영 체제의 내부(커널) 사이의 인터페이스 제공 (ex) 명령 프롬프트 cmd.exe)

html :  클라이언트(사용자) 측 스크립트, 사용자 쪽에서 소스 볼 수 있다,  정적 페이지 생성

php : 서버 측 스크립트, 새로고침 할 때마다 달라지는 동적 웹페이지 생성가능

'''

 

특징 

 

-관리자 권한을 획득 후 웹 페이지의 소스코드를 열람하거나, 서버 내의 자료를 유출, 백도어 프로그램 설치 등의 다양한 공격이 가능

 

-파일 업로드 뿐만 아니라 이미지 업로드, HTTP PUT 취약점, 기타 XSS, SQL injection 등을 통해 웹서버로 업로드 된 후, 웹쉘로 침투

 

-일반적인 웹 사이트 사용자들과 동일한 웹 서비스 포트(http(80, 8080), https(443))를 통해 이루어지기 때문에 탐지가 매우 어렵다.

 

'''

https://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#~

프로토콜(https or http 등) : 브라우저가 리소스를 요청

도메인(www.example.com) : 요청하는 웹서버, 도메인 이름 혹은 ip주소 가 사용됨

포트(80) : 웹 서버의 리소스에 접근하는 데 사용되는 문

리소스 경로 (path~html) : 웹서버에 있는 리소스의 경로

매개변수 (?key1=value1& ~2) : &로 구분된 키/값 쌍 목록 

앵커 (#~) 뒤 부분은 책갈피 부분, html 문서의 책갈피 지점의 컨텐츠 표시하도록 지시 

'''

 

 

 

공격 원리

 

 

1. 클라이언트가 웹서버에 악성 서버 스크립트 파일(php,jsp,asp) 업로드 성공하여

쉘 명령어 수행

2. 웹서버가 WAS에 데이터 가공 요청

3. WAS 웹서버의 (예를 들어) "cmd=ls"란 명령어를 수행하라고 번역하여 전달

4. 웹서버에서 "ls"란 명령어를 수행

5. 전달받은 파일 정보를 클라이언트에게 전달 

 

대응 방안

 

파일이 업로드될 수 있는 홈페이지의 파일 업로드 취약점, SQL injection  취약점 등을 제거하고 파일 업로드 폴더의 실행을 제한시킨다.

 

- Secure Coding으로 웹 어플리케이션 보안 취약점 제거

- 취약점 패치

-  실행권한 설정

- 키워드/명령어 필터링

- 업로드 파일의 확장자 및 실행권한 제한

 

 

'Security > Web' 카테고리의 다른 글

프록시와 프록시 툴  (0) 2023.07.12
웹 취약점 -4  (0) 2023.07.12
웹 취약점 -3  (0) 2023.07.05
웹 취약점 -2  (0) 2023.07.05
웹 취약점 -1  (0) 2023.07.05