웹 셸
Web shell시리즈의 일부 |
정보 보안 |
---|
관련 보안 카테고리 |
위협 |
|
방어. |
웹 셸은 셸과 같은 인터페이스로, 대부분의 경우 사이버 [1]공격을 목적으로 웹 서버에 원격으로 액세스할 수 있습니다.웹 셸은 [2][3]웹 브라우저를 사용하여 상호 작용한다는 점에서 독특합니다.
웹 셸은 서버에서 지원되는 모든 프로그래밍 언어로 프로그래밍할 수 있습니다.웹 셸은 일반적으로 PHP 프로그래밍 언어로 작성되는데, 이는 웹 애플리케이션에 PHP가 널리 사용되기 때문입니다.단, Active Server Pages, ASP.NET, Python, Perl, Ruby 및 Unix 쉘 스크립트도 사용되지만 이러한 언어는 그다지 자주 [1][2][3]사용되지 않습니다.
공격자는 네트워크 모니터링 도구를 사용하여 잠재적으로 웹 셸을 전송할 수 있는 취약성을 찾을 수 있습니다.이러한 취약성은 종종 [2]웹 서버에서 실행되는 응용 프로그램에 있습니다.
공격자는 웹 셸을 사용하여 셸 명령어 발행, 웹 서버에서의 권한 상승 및 웹 서버 [2]간에 파일 업로드, 삭제, 다운로드 및 실행 기능을 수행할 수 있습니다.
일반적인 사용법
웹 쉘은 주로 다목적이고 [4]탐지하기 어렵기 때문에 공격에 사용됩니다.
웹 쉘은 일반적으로 다음 용도로 사용됩니다.
- 데이터 도난[4]
- 웹사이트 방문자 감염(물받이 공격)[5]
- 악의적인 의도를 가진 파일을 수정하여 웹 사이트를 손상시킵니다.
- 분산 서비스 거부(DDoS) 공격 시작[2]
- 인터넷을[2] 통해 액세스할 수 없는 네트워크 내의 명령을 릴레이하려면 다음과 같이 하십시오.
- 명령어 및 제어 베이스로서 사용하는 것(예를 들어 봇넷시스템 내의 봇 또는 추가 외부 네트워크의 보안을 [2]해치는 방법).
웹 셸 제공
웹 셸은 다음과 같은 [2][4]웹 응용 프로그램의 취약성 또는 취약한 서버 보안 구성을 통해 설치됩니다.
- SQL 주입
- 응용 프로그램 및 서비스(예: NGINX 등의 웹 서버 소프트웨어 또는 [6][7]WordPress 등의 콘텐츠 관리 시스템 응용 프로그램)의 취약성
- 파일 처리 및 업로드 취약성.[7]업로드 가능한 파일 형식을 제한하는 등 이를 완화할 수 있습니다.
- 원격 파일 포함(RFI) 및 로컬 파일 포함(LFI) 취약성
- 리모트 코드 실행
- 노출된 관리 [2]인터페이스
공격자는 또한 다음 명령어를 수정(스푸핑)할 수 있습니다.Content-Type
잘못된 파일 유효성 검사(클라이언트가 보낸 MIME 유형을 사용한 유효성 검사)를 건너뛰기 위해 공격자가 파일 업로드에서 보내는 헤더입니다. 그러면 공격자의 셸이 성공적으로 업로드됩니다.
예
다음은 셸 명령의 결과를 실행하고 출력하는 PHP로 작성된 웹 셸의 간단한 예입니다.
<?='$_GET[x]'?>
파일명이 다음과 같이 가정합니다.example.php
의 내용을 출력하는 예를 나타냅니다./etc/passwd
파일은 다음과 같습니다.
https://example.com/example.php?x=cat%20%2Fetc%2Fpasswd
위의 요청은 다음 값을 취합니다.x
다음 셸 명령어를 송신하는 쿼리 문자열의 파라미터.
cat /etc/passwd
PHP의 셸 기능이 비활성화되어 있어 임의의 셸 명령어를 PHP에서 실행할 수 없는 경우 이를 방지할 수 있습니다.
예방 및 경감
일반적으로 웹 셸은 웹 서버의 소프트웨어에 있는 취약성을 이용하여 설치됩니다.이러한 취약성을 제거하는 것이 웹 서버가 손상될 수 있는 위험을 피하기 위해 중요한 이유입니다.
다음은 웹 [2][3]셸 설치를 방지하기 위한 보안 조치입니다.
- 애플리케이션 및 호스트 서버의 운영 체제를 정기적으로 업데이트하여 알려진 버그로부터 보호
- 웹 접속 서버와 내부 네트워크 간의 비무장지대(DMZ) 배치
- 웹[2] 서버의 안전한 구성
- 사용되지[2] 않는 포트 및 서비스 닫기 또는 차단
- 사용자 입력 데이터 유효성 검사를 사용하여 로컬 및 원격 파일 포함 취약성[2] 제한
- 역방향 프록시 서비스를 사용하여 관리 URL을 알려진 정규 URL로 제한
- 취약점 검사를 자주 수행하여 위험 영역을 탐지하고 웹 보안 소프트웨어를 사용하여 정기적인 검사를 수행합니다(이로 인해 제로[2] 데이 공격이 방지되지 않음).
- 방화벽[2] 도입
- 디렉터리[citation needed] 검색 사용 안 함
- 기본[2] 비밀번호 사용 안 함
검출
웹 쉘은 쉽게 수정할 수 있기 때문에 웹 쉘을 탐지하기가 쉽지 않으며 바이러스 백신 소프트웨어는 웹 [2][8]쉘을 탐지하지 못하는 경우가 많습니다.
다음은 웹 셸이 웹 [2][3]서버에 존재함을 나타내는 일반적인 표시기입니다.
- 비정상적으로 높은 웹 서버 사용률(공격자에 의한 대량 다운로드 및 업로드)[2][8]
- 비정상적인 타임스탬프가 있는 파일(예: 마지막 수정일보다 최신)[8]
- 웹 서버의 알 수 없는 파일
- 예를 들어, 의심스러운 참조가 있는 파일,
cmd.exe
또는eval
; - 웹 서버의 로그에 알 수 없는 연결이 있습니다.
예를 들어 의심스러운 트래픽을 생성하는 파일(예를 들어 POST 매개 변수를 사용하여 요청하는 PNG 파일)[2][9][10][11]입니다.DMZ 서버에서 내부 서브넷으로 또는 [2]내부 서브넷으로 의심스러운 로그인이 발생합니다.
웹 셸에는 로그인 폼이 포함되어 있을 수도 있습니다.이 폼은 오류 [2][12][13][14]페이지로 위장되어 있는 경우가 많습니다.
공격자는 웹 셸을 사용하여 웹 서버의 .htaccess 파일(Apache HTTP 서버 소프트웨어를 실행하는 서버)을 수정하여 멀웨어 또는 스팸이 있는 웹 페이지로 검색 엔진 요청을 리디렉션할 수 있습니다.웹 셸은 종종 사용자 에이전트를 탐지하고 검색 엔진 스파이더에 표시되는 컨텐츠와 사용자의 브라우저에 표시되는 컨텐츠가 다릅니다.웹 셸을 찾으려면 보통 크롤러 봇의 사용자-에이전트 변경이 필요합니다.웹 셸이 식별되면 [2]쉽게 삭제할 수 있습니다.
웹 서버의 로그를 분석하면 웹 셸의 정확한 위치를 지정할 수 있습니다.정규 사용자/방문자는 보통 서로 다른 사용자 에이전트와 레퍼러(Referrer)를 가지지만 웹 셸은 보통 공격자만 방문하므로 사용자 에이전트 [2]문자열의 종류가 매우 적습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ a b "How can web shells be used to exploit security tools and servers?". SearchSecurity. Archived from the original on 2019-03-28. Retrieved 2018-12-21.
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y US Department of Homeland Security. "Web Shells – Threat Awareness and Guidance". www.us-cert.gov. Archived from the original on 13 January 2019. Retrieved 20 December 2018.
이 문서에는 퍼블릭 도메인에 있는 이 소스로부터의 텍스트가 포함되어 있습니다..
- ^ a b c d admin (3 August 2017). "What is a Web shell?". malware.expert. Archived from the original on 13 January 2019. Retrieved 20 December 2018.
- ^ a b c "Russian Government Cyber Activity Targeting Energy and Other Critical Infrastructure Sectors – US-CERT". www.us-cert.gov. Archived from the original on 20 December 2018. Retrieved 20 December 2018.
- ^ co-organizer, Makis MourelatosWordPress Security Engineer at FixMyWPWC Athens 2016; Support, W. P.; Aficionado, Security; Kitesurfer, Wannabe (16 October 2017). "The Definitive Guide about Backdoor Attacks - What are WebShell BackDoors". fixmywp.com. Archived from the original on 13 January 2019. Retrieved 20 December 2018.
- ^ "Got WordPress? PHP C99 Webshell Attacks Increasing". 14 April 2016. Archived from the original on 29 December 2018. Retrieved 21 December 2018.
- ^ a b "Equifax breach was 'entirely preventable' had it used basic security measures, says House report". Archived from the original on 20 December 2018. Retrieved 21 December 2018.
- ^ a b c "Breaking Down the China Chopper Web Shell - Part I « Breaking Down the China Chopper Web Shell - Part I". FireEye. Archived from the original on 13 January 2019. Retrieved 20 December 2018.
- ^ "Intrusion Detection and Prevention Systems". Archived from the original on 2019-01-13. Retrieved 2018-12-22.
- ^ LightCyber, Kasey Cross, Senior Product Manager (16 June 2016). "Five signs an attacker is already in your network". Network World. Archived from the original on 13 January 2019. Retrieved 22 December 2018.
- ^ "Traffic Analysis for Network Security: Two Approaches for Going Beyond Network Flow Data". Archived from the original on 2016-11-14. Retrieved 2018-12-22.
- ^ "Hackers Hiding Web Shell Logins in Fake HTTP Error Pages". BleepingComputer. Archived from the original on 26 July 2018. Retrieved 21 December 2018.
- ^ "Hackers Hiding Web Shell Logins in Fake HTTP Error Pages". ThreatRavens. 24 July 2018. Archived from the original on 13 January 2019. Retrieved 17 February 2019.
- ^ "Hackers Hiding Web Shell Logins in Fake HTTP Error Pages". cyware.com. Archived from the original on 13 January 2019. Retrieved 22 December 2018.