본문 바로가기

보안 이론/웹 보안

간이 서버 이용 Web Shell 실습

반응형

웹쉘에 대한 내용과 간이 서버를 이용한 웹쉘 실습을 진행해 보았다.


Web Shell

웹 쉘은 웹 서버에 침투하여 원격에서 명령을 수행할 수 있도록 작성한 웹 스크립트 파일이다.

웹 서버의 다양한 취약점을 이용해 웹 쉘이 업로드되면 브라우저를 통해 이를 실행해 정보유출 및 조작, 악성코드 유포 등을 진행한다.

 

침투 경로

방화벽 : 웹 쉘은 HTTP 통신을 통해 서버에 접근한다. 그렇기 때문에 방화벽에서는 문제없는 포트에서의 진입임으로 필터링되지 않는다.

IDS/IPS : 시그니처 기반의 탐지를 하기 때문에 웹쉘이 난독화가 되어 있다면 탐지되지 않고 넘어갈 수 있다.

웹 방화벽 : 여러 웹 취약점들을 막으며 난독화된 웹쉘도 막을 수는 있지만 완벽하지는 않기 때문에 침투 가능성이 존재한다.

 

웹쉘 업로드 방법

웹쉘은 서버에 업로드되는 것이 가장 큰 관건이다. 이를 위해선 여러가지 방법이 있다.

1. 게시판 취약점을 이용한 방법 - 파일 업로드

2. 웹 에디터 취약점을 이용한 방법 - 이미지 업로드

3. HTTP1.1 취약점을 이용한 방법 - PUT

4. 다양한 취약점 해킹 공격을 이용한 방법 - XSS, SQL injection등

 

웹쉘 대응 방법

웹쉘은 웹 서버의 권한을 빼앗아 엉망진창으로 만들어 버릴 수 있는 위험한 프로그램임으로 대응책이 있어야 한다.

1. 웹쉘 업로드 방지

2. 업로드된 웹쉘의 실행을 방지

3. 업로드된 파일의 이름을 바꾸거나 경로를 알 수 없도록 하기

4. 웹쉘 대응 솔루션 배치


웹 쉘 실습

실습에는 jsp로 구현된 서버에 이미 웹 쉘이 침투하여 사용 가능한 상태이다.

어떤 서비스 중인 한 옛날 사이트라고 가정한다.

하지만 이 웹서버에는 업로드 취약점을 이용해 들어간 웹 쉘이 있다.

'/uploadfile/browser.jsp'라는 경로명을 입력해서 웹쉘을 브라우저에서 실행시킬 수 있다.

실행 시 다음과 같이 서버 내의 파일 정보들이 출력되고 수정, 삭제, 업로드, 다운로드 등 다양한 기능을 관리자가 아닌데도 사용이 가능한 모습이다. 

우리는 이를 이용해서 Deface 공격을 실습한다.

 

Deface 공격 : 타겟 사이트의 메인 화면의 모습을 임의로 바꾸는 공격으로 화면 변조라고도 부른다. 

 

메인화면인 index.jsp 파일을 edit 기능을 통해 수정할 수 있다.

해당 바디에 고양이 사진을 출력하는 코드를 입력하였다.

<div style="position:absolute; left:200; top:90; Z-index:2;"> 
	<img src="이미지 소스"> 
</div>

코드는 div를 절대위치에 놓고 z-index가 클수록 맨 앞으로 오게하는 코드이다.

index.jsp 파일을 다음과 같이 수정하여 저장하고 웹 페이지를 새로고침하면 아래와 같이 고양이가 나타난다.

우리는 웹 쉘이 웹 서버에 침투했을 때 원격으로 쉽게 조작이 가능하다는 사실을 알 수 있다.

반응형


Calendar
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Visits
Today
Yesterday