보안/웹·모바일

[web] WebShell 기초

병뚜 2022. 7. 30. 06:37

WebShell 기초

웹쉘이란?

웹 페이지 상에서 원격지 서버의 시스템 명령어 실행을 할 수 있는 어플리케이션이다.

웹쉘의 주요 기능

1) 파일 시스템 조작

  • 디렉터리 탐색, 파일 보기, 파일 생성 및 수정, 파일 삭제, 파일 다운로드 및 업로드 ..

2) 운영체제 명령 실행

  • 웹 서버 권한으로 운영체제 명령 실행 가능

3) DB 연결 및 조작

  • DBMS에 접속하여 SQL 쿼리로 DB 조작 가능

 

웹쉘의 종류

- 일반 웹쉘

  • ex) C99웹쉘

- 한줄 웹쉘

  • Single-Line 또는 One-Line WebShell을 의미. CFI 스크립트 실행이 가능한 코드 한 줄로만 구현된 웹쉘이다. 파라미터로 전송
  • ex) 일구화목마, Chopper

- 다중분할 웹쉘

  • Multi Division WebShe
  • 명령 코드는 여러 개의 파라미터를 사용하며, 웹 서버에서 재조합하느 ㄴ방식.
  • 보안 솔루션의 탐지를 피하기 위한 수단으로 사용됨

 

- 이미지 파일

  • 이미지 파일에 CGI 스크립트를 인젝션하여 확장자 필터링 및 MIME 타입 등의 검사 우회가 가능하다.
  • [방법 A] Image 파일 구조 내에 CGI 스크립트 삽입하는 방법
  • [방법 B] Image 파일 마지막에 CGI 스크립트를 추가하는 방법

 

- 소스코드 변조

  • 웹 서버에 존재하는 소스코드를 변조하여 웹쉘 코드를 삽입하는 방법.
  • 특정 토큰(파라미터, 쿠키, 세션, 헤더 등)이 전송되었을 때만 기능이 활성화 되는 특징이 있어, 웹 브라우저는 변조 여부를 확인하기 어려움.



웹쉘 실행을 위한 전제 조건

1) 웹 어플리케이션 서버에서 사용하는 언어로 제작된 웹쉘을 사용해야 한다.

2) 서버의 파일 시스템에 웹쉘이 존재해야 한다.

3) 웹 어플리케이션 서버의 웹 디렉터리 내에 웹쉘이 존재해야 한다.

4) 보안 솔루션이 존재하는 경우 우회해야 한다.

          ⓐ 업로드 전에 차단된다. ▶ 보안 솔루션 (IPS, WAF)
          ⓑ 업로드 한 후에 삭제된다. ▶ 보안 솔루션 (백신, 웹쉘탐지탐지솔루션 ...)

 

 

 

참고

WEB HACKING 서버 침투 기법

Skill-Up! 배워서 바로 쓰는 웹쉘 제작