
Docker 기반의 다단계 공격 시뮬레이션 랩으로, CVE-2017-5638 및 CVE-2021-41773 악용, 측면 이동, 그리고 실제적인 10개 컨테이너 네트워크에서의 Suricata IDS 탐지를 시연합니다.
다중 단계 킬 체인, 측면 이동, 다중 지점 IDS 탐지를 시연하도록 설계된 7개 호스트 기반 Docker 공격 에뮬레이션 연구소입니다.
이 연구소는 공격자가 초기 정찰부터 거점 확보, 그리고 피벗을 통해 최종 고가치 표적에 도달하는 현실적인 네트워크 환경을 시뮬레이션합니다. 중요한 호스트에 사이드카로 동작하는 두 개의 독립적인 Suricata IDS 인스턴스를 포함하여 전체 공격 수명 주기에 대한 '방어자 관점'을 제공합니다.
172.28.0.0/24 서브넷 전체에 걸쳐 네트워크 스윕(ICMP, TCP SYN, HTTP 배너 그랩)을 수행합니다.Content-Type 헤더의 OGNL 인젝션을 통해 취약한 Apache Struts 2 서버(web-struts)를 악용합니다.web-struts 호스트를 사용하여 공격자가 내부 표적에 대한 2차 익스플로잇을 실행합니다.web-vuln)의 경로 탐색 및 RCE 취약점을 악용하여 루트 액세스를 획득합니다.연구소는 총 10개의 컨테이너로 구성됩니다:
web-struts (172.28.0.11): Apache Struts 2.3.28 (S2-045에 취약).web-vuln (172.28.0.10): Apache httpd 2.4.49 (경로 탐색/RCE에 취약).db-mysql (172.28.0.12): 지원 데이터베이스.ssh-server (172.28.0.13): 레거시 거점 표적.ftp-server, smb-server, dns-server: 현실성을 위한 인프라 서비스.ids-suricata-struts: web-struts 네트워크 네임스페이스를 모니터링합니다.ids-suricata-web: web-vuln 네트워크 네임스페이스를 모니터링합니다.환경을 빌드하고 시작하려면 설정 스크립트를 실행하세요:
./scripts/setup.sh
이 명령어는 네트워크를 초기화하고 이미지를 가져오거나 빌드한 후 10개 컨테이너를 모두 시작합니다.
연구소는 공격의 여러 단계를 트리거하는 디스패처 스크립트를 제공합니다.
./scripts/attack.sh full
./scripts/attack.sh recon./scripts/attack.sh struts-foothold./scripts/attack.sh struts-pivot./scripts/attack.sh direct최종 표적에서 실행할 사용자 정의 명령을 전달할 수 있습니다:
./scripts/attack.sh full "whoami; cat /etc/os-release"
알림은 각 IDS 인스턴스의 개별 eve.json 파일에 기록됩니다:
./alerts/web-struts/eve.json./alerts/web-vuln/eve.json다음을 사용하여 두 피드를 실시간으로 꼬리(tail)할 수 있습니다:
./scripts/tail-alerts.sh
모든 연구소 구성 요소를 중지하고 제거하려면:
./scripts/teardown.sh