웹 쉘이란

  • 웹(Web) + 쉘(Shell)의 합성어로 웹 페이지에서 해당 웹 서버에서 다양한 명령을 실행시킬 수 있는 스크립트 파일

특징

  • 웹 사이트의 사용자들과 동일한 웹 서비스 포트(80, 443)를 통해 웹 쉘 업로드 및 공격이 이루어지기 때문에 탐지 및 차단이 어려움
  • 웹 쉘을 이용해서 관리자 권한을 획득한 후 웹 페이지의 소스 코드를 열람하거나 서버 내 자료 유출 및 백도어 설치 등 여러 공격들을 수행할 수 있기에 상당히 파급력이 큰 악성코드
  • 웹 서버에서 웹 쉘을 실행시켜야 하기 때문에 보통 서버 사이드 스크립트(asp, jsp, php 등)로 제작되고 사용
    ⇒ 웹사이트에 쉘명령어를 날릴수 있는 페이지를 만드는것
  • 파일 업로드 취약점뿐만 아니라 다양한 여러 취약점들을 통하여 웹 쉘이 업로드되고 공격에 이용될 수 있음

웹쉘 공격방법

URL 구조

  • 프로토콜 : 어떠한 웹서비스 포트를 사용할 것인지
  • 호스트 : DNS에 호스트를 통해 응답 받은 IP를 통해 웹서버를 찾아 옴
  • 경로 : 웹 서버에 올라간 디렉토리 경로
  • 질의 : 경로 안에 있는 서버 사이트 스크립트파일에 파라미터를 날려 질의 명령

⇒ 위와 같이 URL 구조를 이용하여 웹쉘에 명령 전달

 

웹쉘구조

  1. 클라이언트가 웹서버에 악성 JSP 파일 업로드 성공 원격을 쉘 명령어 수행
    ex) Runtime.getRuntile().exec("cmd=ls")
  2. 웹서버가 WAS에 데이터 가공 요청
  3. WAS 웹서버의 "cmd=ls"란 명령어를 수행하라고 번역하여 전달
  4. 웹서버에서 "ls"란 명령어를 수행하여 현재 경로에 있는 파일리스트를 나열
  5. 전달받은 파일리스트 정보를 클라이언트에게 전달

웹쉘 사례

  • 2023년 공개용 게시판 제로보드 기반의 커뮤니티 사이트가 웹쉘 공격을 받아 개인정보 유출
  • 보안 패치를 주기적으로 실행 하지 않았던 것으로 추정
  • 웹서버 전체가 유출되어 피해가 심각

  • 고전적인 방법이지만 가장 많이 쓰이는 공격방법

 

  • 미국 정보기관도 보안 패치등이 최신화 되지 않으면 쉽게 취약점이 노출됨

  • 외국 뿐만 아니라 우리나라에서도 어플리케이션 취약점을 통해 웹쉘 공격을 가장 많이함
  • 그 이유는 한국 웹사이트가 특히 보안에 취약하다고 알려진 php를 많이 사용하고 공개용 게시판을 사용하면서 보안 패치에 소홀한 것으로 알려져있음
  • 2022년 기준에도 많은 한국에 웹사이트가 php를 이용하여 서버를 개발하였지만 보안배치와 지원이 끝난 php5버전을 사용하고 있는 것으로 알려짐

대응방안

  • 시큐어 코딩
  • 취약점 패치
  • 키워드/명령어 필터링
  • 업로드 파일의 확장자 및 실행권한 제한

웹쉘 실습

  • DVWA 구성 후 파일업로드 취약점을 활용하여 웹쉘 업로드

  • webshell 위치로 url을 사용하여 웹쉘과 통신

  • 웹쉘에 명령어를 전송하여 실행한결과
  • 웹서버 내부 정보가 공격자에게 노출이됨

'CERT' 카테고리의 다른 글

SQL Injection 취약점  (0) 2024.08.16
XSS(크로스 사이트 스크립트) 취약점  (0) 2024.08.16
웹취약점: 기타 취약점  (0) 2024.08.16
웹취약점: 파일 업로드 취약점  (0) 2024.08.16
웹취약점: 파일 다운로드 취약점  (0) 2024.08.16

+ Recent posts