워터링 홀 공격 및 시나리오
워터링 홀 공격이란 공격대상이 방문할 가능성이 있는 합법적 웹사이트에 미리 악성코드를 심어 놓은 뒤 잠복하면서 피해자의 컴퓨터에 악성코드를 추가로 설치하는 공격을 말합니다. 마치 사자가 먹이를 습격하기 위해 물웅덩이(Watering Hole) 근처에서 매복하고 있는 형상을 빗댄 것으로, 표적 공격(APT 공격)의 일종이라고 볼 수 있습니다.
워터링 홀은 사전에 공격 대상에 대한 정보를 수집한 후 주로 방문하는 웹사이트를 파악, 해당 사이트의 제로데이(Zero-Day) 등을 악용해 접속하는 모든 사용자에게 악성 코드를 뿌리기 때문에 사용자가 특정 웹사이트에 접속만 하여도 악성코드에 감염됩니다.
공격 시나리오는 다음과 같습니다. 웹서버의 SSTI 취약점을 활용하여 페이지가 변조되며, 변조된 페이지에 유저가 접속하게 되면 자동으로 악성 코드에 감염되게 됩니다. 감염된 유저의 PC는 C2 서버와 통신하게 되는 공격입니다.
※ SSTI(Server Side Template Injection) 취약점이란?
공격자가 서버 측의 기본 템플릿 구문을 이용하여 악성 페이로드를 삽입한 후, 서버 측에 실행되면서 생기는 취약점
이번 워터링 홀 공격 시나리오 실습에서는 다음과 같은 질문에 답을 찾아나가는 공부를 정리하겠습니다.
① C2 통신에 사용되고 있는 악성 프로세스를 찾고 제거하라
② 백업 파일을 활용하여 변조된 웹 서버를 복구하라
③ WAF를 활용하여 웹 서버의 취약점을 차단하라
④ 방화벽을 활용하여 웹 서버를 공격한 IP와 C2 서버 IP 대역을 차단하라
C2 통신에 사용되는 악성 프로세스, 코드 제거
[cmd]에서 모든 연결 상태를 반환하는 netstat -ano 명령어를 통해 현재 외부로 연결이 ESTABLISHED된 프로세스를 확인합니다.
해당 프로세스의 이름을 확인하기 위해 다음과 같은 명령어를 입력합니다.
[작업 관리자] → [세부 정보]에서 PID가 1360인 svchost.exe 파일을 찾아서 프로세스를 종료합니다.
취약한 웹 브라우저에 접근하여 악성 코드가 다운 받아진 것이므로 브라우저의 방문 목록에서 exploit에 접근한 것을 확인합니다. 이후 [Everything]에서 exploit.html를 검색하여 파일 경로를 구하고, exploit.html 파일을 분석합니다.
'PowerShell'을 이용해 'svchost.exe' 파일을 '43.12.210.100'로부터 가져오는 것을 확인할 수 있으며, 다운로드된 파일이 저장되는 경로 또한 확인할 수 있습니다.
백업 파일을 통해 변조된 웹 페이지 복원
아래 명령어를 통해 index.html 파일을 분석하면 다음과 같이 'idshell32.dll', 'ielocalserver.dll', 'exploit.html' 파일을 다운받기 위한 코드가 있다.
vi index.html
변조된 파일을 백업 파일을 통해 복원하도록 하겠습니다. 상위 디렉터리에 'Flask.tar.gz' 백업 파일을 확인할 수 있으며, 다음과 같은 명령어를 통해 원본을 복원합니다.
SSTI 공격 차단을 위해 WAF에 사용자 정의 탐지 룰 추가
시나리오 상 SSTI 취약점에 의해 발생한 공격이므로 웹 로그를 분석하여 SSTI 취약점을 확인합니다. localhost의 access.log에서 class라고 되어 있는 것을 찾으라는 명령어입니다.
cat /home/web/Flask/log/localhost_access.log | grep class
여기서 인덱스 파일을 변조하는 명령어를 찾을 수 있으며, 공통적으로 찾을 수 있는 패턴을 사용하여 WAF에서 이를 차단하는 정책을 수립해야합니다.
AdminConsole 가상환경으로 접속한 뒤 브라우저를 통해 WAF로 접속합니다. 이후 [정책 설정] → [도메인별 정책]의 사용자 정의 패턴 룰을 추가합니다. 패턴은 앞서 파일 분석에서 확인하였듯 __class__.__mro__로 하고, 차단 조치를 수행한 후 적용합니다.
C2 서버 접근 차단
앞서 'PowerShell'을 이용해 'svchost.exe' 파일을 '43.12.210.100'에서 가져오므로, MF2의 방화벽 정책 설정을 통해 이를 차단하겠습니다. 차단 정책이니 적용 후 꼭 정책 순번이 1번에 등록되어있는지 확인합니다!
'보안 > 2023 KISA 정보보호 제품군 실습 훈련 - 중급' 카테고리의 다른 글
DoS 공격 시나리오 실습(Slowloris DoS 공격 탐지/차단) (0) | 2023.02.19 |
---|---|
웹 해킹 시나리오 실습 (0) | 2023.02.19 |
악성코드 감염 시나리오 실습(백도어 계정명 확인 & Eternalblue 공격 차단) (0) | 2023.02.19 |
인프라 구축 시나리오 실습 3(업무망 방화벽/NAT 정책 설정) (0) | 2023.02.18 |
인프라 구축 시나리오 실습 2(UTM, WAF 설정 및 정책 적용) (0) | 2023.02.18 |