전 주차에서 다룬 주제 중 파일 업로드 취약점은 위험도가 높은 웹 취약점 중 하나라고 이야기했다.
특히 웹 쉘을 업로드하여, 관리자의 권환을 탈취함으로써 정보 유출, 2차 감염 등의 추가적인 리스크가
발생할 수 있는 여러가지 상황들이 존재하기 때문에, 웹 쉘(Web Shell)에 대한 부분은 좀 더 중요하게 다루고 있다.
웹 쉘(Web Shell)
정의
웹 애플리케이션 취약점(파일 업로드 취약점, SQL 인젝션 등)을 통해서 원격으로
웹 서버에 명령을 실행할 수 있도록 하는 악성 스크립트 또는 프로그램이다.
이를 통해 공격자는 서버에 대한 권한을 확보하고, 서버의 파일 시스템을 탐색하거나 변경할 수 있다.
특징
- 원격 관리 및 서버 제어 : 서버에 물리적으로 접속하지 않고도 웹 쉘을 통해 파일을 업로드, 다운로드,
삭제, 수정하거나 서버의 설정 변경, 악성 파일 삽입, 데이터베이스 접근 등 다양하고 치명적인 악의적 행위가 가능하다. - 탐지 회피 : 웹 쉘은 탐지를 피하기 위해 난독화나 암호화될 수 있으므로, 시그니처 기반 프로그램이나 IDS를 우회할 수 있다.
또한, 일반적인 웹 애플리케이션 파일(예: .php, .asp 등)과 유사하게 작성되므로, 쉽게 구분하지 못할 수 있다. - 다양한 환경에서 실행 가능 : 웹 서버의 언어(PHP, ASP, JSP 등)만 맞으면 플랫폼에 상관없이
실행될 수 있기 때문에 다양한 운영체제(Windows, Linux 등)에서 동작할 수 있다. - 정상 파일로 위장 : 서버 사이드 스크립트 외에도 GIF, PNG, JPEG 이미지 파일 등 업로드가
가능한 확장자 파일에 악성 스크립트를 삽입하여 위장할 수 있다. - 백도어 역할 : 탐지가 늦어져 장기간 서버에 침투하여 공격자가 웹 서버에 지속적으로 접근할 수 있는 백도어로서 기능할 수 있다.
이를 통해 공격자는 언제든지 서버에 접근하여 추가적인 공격을 수행할 수 있다.
작동 방식
- 웹 쉘 업로드 : 파일 업로드 기능이나 SQL 인젝션 등과 같은 취약점을 발견한 후,
해당 취약점을 통해 공격자는 웹 서버에 웹셸 스크립트를 업로드한다. 예를 들어, webshell.php라는 파일을 업로드할 수 있다. - 웹 쉘 실행 : 공격자는 웹 브라우저를 통해 업로드된 웹 쉘 파일을 호출한다.
예를 들어, http://example.com/uploads/webshell.php로접근한다. - 명령어 전달 : 공격자는 웹 쉘에 특정한 명령어를 전달한다.
이 명령어는 URL 파라미터나 폼 데이터를 통해 전달될 수 있다. - 명령어 실행 : 웹 쉘은 전달받은 명령어를 서버 내에서 실행한다.
예를 들어, 서버의 파일 시스템을 탐색하거나, 파일을 읽고 수정하는 명령을 실행할 수 있다. - 결과 반환 : 웹 쉘은 명령어 실행 결과를 공격자에게 반환한다. 이 결과는 웹 페이지의 형태로 출력되거나, JSON, XML 등의 형태로 반환될 수 있다.
위와같이 공격자가 운영되고 있는 웹 페이지 상에 존재하는 게시판 기능을 사용해서,
일반적인 글을 작성하는 것이 아니라 웹 쉘 파일을 업로드한다.
그러면 해당 웹 쉘 파일 자체가 업로드 되자마자 서버에는 파일이 적재될 것이고,
이 서버에 파일이 적재가 됨과 동시에 이 웹 쉘 파일이 동작하면서 공격자가 해당 공간으로 접근하여,
명령어를 통해 내부 정보를 유출하거나 2차 감염 등의 행위를 수행할 수 있어지는 형태이다.
감염 관련 사건 사고
웹 쉘 뿐만 아니라 보안 분야의 경우 보안 기사, 취약점, 악성코드 감염 동향에 대한
내용을 매일 모니터링을 하는 것 또한 업무의 일부분으로 수행한다.
즉, 평소에 보안 뉴스나 데일리 CQ 등의 사이트를 친근하게 접근하여, 보안 동향을 파악하는 것이 좋다.
1. https://www.fnnews.com/news/202305241947426350
2020 ~ 2022년 기간 동안 발생한 침해사고의 통계 결과, ‘거점확보’ 단계에서 웹 쉘을 이용한 공격이
35% 가량으로 증가하였으며, 웹 쉘 공격의 추이는 20%에서 52%까지 크게 증가하였다.
여러 웹 애플리케이션이 증가하는 만큼 ’초기 침투’ 단계는 가장 막기 어려운 영역이 되었으며,
클라우드 전환이 계속되는 만큼 ‘거점확보’부터 ‘지속실행’ 단계까지 모두 주의를 기울여야한다.
2. https://www.segye.com/newsView/20230510520225
2021년 6월 파일 업로드 취약점을 통해서 웹 쉘을 업로드하여,
내부망 공유폴더를 탐색하고 1만89명의 주민번호, 2만2020명의 개인정보를 탈취했다.
해커는 확보한 계정정보로 병리자료 서버에 침입한 후, 환자 62만2930명(사망자 포함하면 81만38명)의 진료정보를 가져갔다.
또 내부망 전자사보DB에 접속해 직원 1953명의 정보도 탈취했다.
3. https://www.dailysecu.com/news/articleView.html?idxno=153208
니엔(Nian. 年)이란 한 해커가 S2W 기업이 본인이 활동하는 기술교류 채널을 범죄활동 채널로 묘사한 것에 불쾌감을 드러내고,
웹 셀 업로드를 통한 경성대학교 로그인 데이터 정보, 청주시 교통지리정보시스템 내부데이터 및 로그인 정보,
숙명여자대학교 외에도 여러 웹 애플리케이션의 취약점을 공개하였다.
4. https://www.koit.co.kr/news/articleView.html?idxno=97588
계원예술대학교를 포함한 8개의 기관에 개인정보보호 법규 위반으로 총 4050만원의 과태료가 부가되는 제재를 받았다.
그 중, 1350만원으로 가장 많은 과태료가 부과된 계원예술대학교는
웹 쉘 업로드를 통한 공격과 SQL 인젝션으로 인해 개인정보가 유출되었다.
'IT_정보보안 > 침해대응 & CERT 프로젝트' 카테고리의 다른 글
32. 침해대응&CERT (10) : 웹 취약점 실습_4 (1) | 2024.08.21 |
---|---|
30. 침해대응&CERT (8) : 웹 취약점 실습_3 (1) | 2024.08.06 |
29. 침해대응&CERT (7) : 웹 취약점 실습_2 (6) | 2024.07.27 |
28. 침해대응&CERT (6) : 웹 취약점 실습_1 (1) | 2024.07.21 |
27. 침해대응&CERT (5) : Shodan을 통한 취약 • 노출정보 검색 (0) | 2024.07.13 |