Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
NexaCorp-DFIR-INC-2026-001 — DFIR 조사 + 시뮬레이션된 NexaCorp 침입(vsftpd 2.3.4 CVE-2011-2523 + MITRE Caldera C2)에 대한 7개의 Suricata 규칙. 4일간의 단독 작업(BeCode Brussels Mission 01). 54페이지 보고서, 10개의 발견 사항, 7/7 규칙이 PCAP 재생으로 검증됨. | Kitploit
도구/GitHubGitHub/jhatchi/nexacorp-dfir-inc-2026-001
Vulnerability AnalysisNetwork ForensicsDigital ForensicsPenetration TestingThreat IntelligenceIntrusion DetectionLearning & EducationIncident ResponseLabs & Practice
GitHubjhatchi/nexacorp-dfir-inc-2026-001

NexaCorp-DFIR-INC-2026-001

DFIR 조사 + 시뮬레이션된 NexaCorp 침입(vsftpd 2.3.4 CVE-2011-2523 + MITRE Caldera C2)에 대한 7개의 Suricata 규칙. 4일간의 단독 작업(BeCode Brussels Mission 01). 54페이지 보고서, 10개의 발견 사항, 7/7 규칙이 PCAP 재생으로 검증됨.

저장소 보기
72개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

NexaCorp DFIR: INC-2026-001 - Linux Infrastructure Compromise

DFIR 조사 및 침입 탐지 엔지니어링: NexaCorp 인프라에 대한 시뮬레이션 침입 분석. 단독 4일 참여 (BeCode Brussels Blue & Red Team 부트캠프, Mission 01)로 수행. 산출물은 54페이지 조사 보고서(PDF)와 PCAP 재생에서 포착된 사고를 탐지하는 검증된 7개의 Suricata 규칙입니다.

ci Methodology Framework Detection CVE License LinkedIn

이 저장소는 BeCode 사이버 보안 부트캠프 (2025-2026년 프로모션)의 일환으로 수행된 SOC 분석가 참여를 문서화합니다. 네트워크 및 로그 증거로부터 전체 침입을 재구성한 후, 검증된 Suricata 탐지 규칙 세트를 제공합니다. NexaCorp DFIR 시리즈의 첫 번째 사고입니다.

목차

  • 운영 공지
  • 한눈에 보기
  • 참여 배경
  • 요약 보고서
  • 킬 체인 요약
  • 이 보고서 읽는 방법
  • 방법론
  • 사용된 도구
  • 조사 결과 요약
  • 탐지 엔지니어링
  • 저장소 구조
  • 재현성
  • 알려진 한계
  • NexaCorp DFIR 시리즈
  • 감사의 말
  • 정보
  • 라이선스

운영 공지

이것은 가상 인프라를 대상으로 한 실습 참여입니다. NexaCorp는 BeCode Brussels Mission 01 시나리오로 사용된 가상의 클라이언트입니다. 손상된 호스트는 보안 교육을 위해 의도적으로 취약하게 만든 Metasploitable 2 VM이며, Caldera Sandcat 임플란트는 분석가에게 실제 침입자의 비콘 트래픽이 어떻게 생겼는지 가르쳐주는 실습의 일부입니다. 실제 조직, 네트워크 또는 사람이 공격받은 것은 아닙니다.

이 보고서에 게시된 모든 IP 주소, 호스트 이름 및 침해 지표 (172.16.50.10, 192.168.10.10, 10.40.0.200, blue11, mesdec 등)는 실습 로컬 아티팩트이며 실제 위협 인텔리전스가 아닙니다. SIEM에 IOC로 입력하지 마십시오.

BeCode 실습 코치(Thomas B.)에 의해 2026-05-17에 게시 승인됨. 전체 기밀 유지 성명은 조사 보고서(섹션 "배포 및 분류")에 나타납니다.

한눈에 보기

참여 메타데이터값
참조 번호BCC-2026 / INC-2026-001
기간4일 (단독)
단계DFIR (포렌식) + 탐지 엔지니어링
완료일2026-05-15
상태완료 (1단계 + 2단계)
조사 결과물값
조사 결과10 (CRITICAL 3개, HIGH 3개, MEDIUM 2개, LOW 2개)
매핑된 MITRE ATT&CK 기술14
분석된 네트워크 캡처5시간 31분 동안 5,194개 패킷 (943 KB PCAP)
상관 분석된 Wazuh 이벤트에이전트 020에서 397개
작성된 Suricata 규칙7 (SID 9000001-9000007)
PCAP 재생으로 검증된 규칙7/7 (fast.log 40개 알림, eve.json 314개 레코드)

참여 배경

시나리오(가상). 중견 규모의 기업 고객인 NexaCorp는 내부 모니터링에서 내부 Linux 서버 중 하나에서 예상치 못한 아웃바운드 트래픽이 감지된 후 BeCode Corp의 블루 팀에 연락했습니다. 방화벽은 트래픽을 기록했지만 실행 가능한 알림을 발생시키지 않았습니다. 이사회는 공개 및 규제 통지 결정을 내리기 전에 판단이 필요했습니다.

임무. 의심되는 사고 기간을 조사하고, 공격자의 침입 경로 및 사후 침입 활동을 특성화하고, 기존 탐지 스택이 포착한 것(및 놓친 것)을 평가하고, 우선 순위가 지정된 복구 계획을 제공합니다. 두 번째 단계에서는 탐지 엔지니어링을 추가했습니다: 실시간으로 재발을 잡을 수 있는 배포 준비가 된 네트워크 IDS 규칙을 제공합니다.

클라이언트로부터 받은 증거 패키지.

아티팩트범위참고
네트워크 캡처 (PCAP)2026-05-09 20:08 ~ 2026-05-10 01:39 UTC (5시간 31분, 5,194개 패킷)사고 중간부터 시작: 프레임 1에서 이미 임플란트가 비콘 전송 중
호스트 인증 로그2026-05-10 06:47 UTC 이후사고 이후만 (PCAP 종료 후 약 5시간 갭)
호스트 syslog2026-05-10 06:37 UTC 이후첫 항목은 syslogd restart로, VM 재부팅을 암시
SIEM 알림 내보내기 (Wazuh)n/a파일은 HTTP 404 응답, 데이터 아님. 나중에 대시보드 직접 쿼리를 통해 397개 이벤트 복구

교육적 맥락. 이 참여는 **Be Brussels 블루 & 레드 팀 부트캠프(2025년 11월 ~ 2026년 9월)**의 Mission 01로 전달되었습니다: 실제 DFIR 컨설팅 참여를 시뮬레이션한 단독 시간 제한 조사입니다. 실습 인프라, NexaCorp 신원 및 IOC 값은 의도적으로 가상입니다. 방법론, 도구 및 보고서 형식은 실제 표준(NIST SP 800-61r2, SANS PICERL, MITRE ATT&CK)을 따릅니다.

요약 보고서

📄 전체 54페이지 조사 보고서가 표준 산출물입니다. PDF 다운로드 (215 KB) 또는 Markdown 소스 보기 (grep/인용용)

2026-05-09 22:53 UTC 저녁, 외부 공격자(172.16.50.10)가 CVE-2011-2523(2011년 7월부터 손상된 것으로 공개 문서화된 빌드인 vsftpd 2.3.4에 존재하는 백도어)를 악용하여 NexaCorp 내부 서버(192.168.10.10)를 침해했습니다. :)로 끝나는 단일 FTP USER 요청이 TCP/6200에서 인증되지 않은 루트 바인드 셸을 트리거했습니다. 공격자는 20초 세션 동안 8개의 정찰 명령을 실행하고(지속성, 데이터 유출, 이 액세스 벡터를 통한 측면 이동 없음) 연결을 끊었습니다.

독립적으로, 동일한 호스트에서 기존 MITRE Caldera "Sandcat" 에이전트가 /opt/caldera/sandcat (root, 데몬화)에서 실행 중이며 캡처된 기간 동안 40-50초마다 일반 텍스트 HTTP로 10.40.0.200:8888에 비콘을 전송하고 있었습니다. 이것이 원래 클라이언트가 플래그 지정한 "비정상적인 아웃바운드 연결"이며, 증거 패키지에 표시되지 않은 이전 침해를 나타냅니다(임플란트는 첫 번째 PCAP 프레임에서 이미 활성 상태였습니다).

기존 Wazuh SIEM은 대상 호스트에서 397개의 이벤트를 수집했지만 4개의 높은 심각도 알림(전체의 1.0%) 만 발생시켰으며, 모두 일반적인 무차별 대입(MITRE T1110)으로 분류되었습니다. CVE-2011-2523 익스플로잇 페이로드, TCP/6200의 바인드 셸 또는 Caldera C2 채널을 식별하지 못했습니다: 익스플로잇 바이트(USER baduser:))는 vsftpd 자체에 의해 기록되지 않으며, SIEM에는 나머지를 볼 네트워크 원격 측정이 없었습니다. 2단계에서 제공된 7개의 Suricata 규칙은 세 가지 격차를 모두 해소합니다.

헤드라인 IOC (실습 한정, 실제 SIEM에 입력하지 마십시오):

유형값컨텍스트
소스 IP (공격자)172.16.50.10vsftpd 익스플로잇, 다중 프로토콜 정찰, SSH 무차별 대입
대상 IP192.168.10.10손상된 내부 서버 (Metasploitable 2)
C2 IP10.40.0.200:8888Caldera Sandcat 명령 및 제어
백도어 포트6200/tcpCVE-2011-2523 루트 바인드 셸
익스플로잇 페이로드:)로 끝나는 FTP USER백도어 트리거 패턴

킬 체인 요약

포착된 사고는 PCAP에서 재구성된 두 개의 서로 다른 가닥이 있습니다:

  1. 노출된 서비스: vsftpd 2.3.4, 공개적으로 문서화된 백도어(CVE-2011-2523)가 있는 빌드가 내부 네트워크에서 접근 가능했습니다 (조사 결과 I1).
  2. 익스플로잇: :)로 끝나는 단일 FTP USER 요청이 백도어를 트리거했습니다 (조사 결과 I3).
  3. 루트 바인드 셸: TCP/6200에서 인증되지 않은 루트 셸이 열렸습니다. 공격자는 20초 세션 동안 8개의 정찰 명령을 실행한 후 연결을 끊었으며, 이 벡터를 통한 지속성이나 데이터 유출은 없었습니다 (조사 결과 I4).
  4. 병렬 C2 (기존): 독립적으로, MITRE Caldera Sandcat 임플란트가 이미 전체 기간 동안 일반 텍스트 HTTP로 10.40.0.200:8888에 비콘을 전송하고 있었으며, 이는 증거 번들에 표시되지 않은 이전 침해의 증거입니다 (조사 결과 I5).

이 보고서 읽는 방법

저장소는 역할에 따라 적절한 깊이로 시작할 수 있도록 구성되어 있습니다:

당신이...여기서 시작소요 시간
채용 담당자 또는 인사 관리자이 README + PDF 요약 보고서 훑어보기5분
적합성을 평가하는 SOC 분석가PDF 섹션 5 (탐지 격차) 및 8 (탐지 엔지니어링) + detection/lab.rules20분
DFIR 실무자전체 PDF + 조사 과정을 위한 notes/journal.md60분
탐지 엔지니어detection/lab.rules + 배포 및 재생 검증을 위한 detection/README.md30분
grep, 인용 또는 diff를 원하는 모든 사람보고서 Markdown 소스필요에 따라

표준 산출물: reports/의 PDF. Markdown 소스는 동일한 내용이며, 검색 가능성과 버전 관리를 위해 저장소에 유지됩니다.

조사 과정: notes/journal.md는 분석가의 작업 노트(테스트 및 반박된 가설, 증거 인벤토리, 계획 상태)입니다. 결론 자체뿐만 아니라 결론에 도달한 방법을 보여줌으로써 공식 보고서를 보완합니다.

탐지 규칙 세트: detection/lab.rules에는 인라인 주석에 키워드별 전체 근거가 포함된 7개의 Suricata 규칙이 포함되어 있습니다. detection/README.md는 각 규칙이 포착된 사고에서 발동되는지 확인하는 데 사용된 배포 및 재생 검증 워크플로를 문서화합니다.

방법론

이 참여는 함께 계층화된 세 가지 업계 표준 프레임워크를 따릅니다.

NIST SP 800-61r2: 컴퓨터 보안 사고 처리 가이드

NIST의 4단계 모델(준비, 탐지 및 분석, 대응/근절/복구, 사후 활동)은 높은 수준의 구조를 제공합니다. 이 참여에서 산출물의 1단계는 NIST "탐지 및 분석" (PCAP 포렌식, SIEM 상관 분석, 공격자 타임라인 재구성)에 매핑됩니다. 2단계는 NIST "교훈" 을 예방 통제(7개의 Suricata 규칙 및 보고서 섹션 7의 우선 순위 권장 사항 목록)로 변환하는 것에 매핑됩니다.

SANS PICERL: 전술적 조사 흐름

PICERL(준비, 식별, 대응, 근절, 복구, 교훈)은 SANS 사고 대응 프로세스입니다. 이 참여에 적용:

PICERL 단계이 참여
준비 (Preparation)코치가 검증한 실습 환경, 서명된 증거 패키지, 정의된 범위(포렌식 + 탐지 엔지니어링), 4일 시간 제한
식별 (Identification)PCAP 분류 + Wazuh 이벤트 상관 분석 + 가설 기반 분석 (7개 가설, 1개 반박, 5개 확인, 1개 불확실)
대응/근절/복구 (Containment/Eradication/Recovery)P0 권장 사항(호스트 격리, vsftpd 제거, Caldera 임플란트 정리)으로 문서화되었지만 실행되지 않음(범위 외: 포렌식 분석만 해당, 능동 대응 아님)
교훈 (Lessons Learned)2단계 탐지 엔지니어링: 7개 Suricata 규칙 + 튜닝 노트 + 오탐 분석 (보고서 섹션 8)

MITRE ATT&CK: 기술 매핑

모든 조사 결과는 하나 이상의 MITRE ATT&CK 기술에 매핑되어 클라이언트가 이 사고를 기존 위협 모델과 연관시킬 수 있도록 합니다. 10개의 조사 결과에 걸쳐 14개의 고유 기술이 참조됩니다:

  • 정찰 (Reconnaissance): T1595.002, T1592.002, T1589
  • 초기 접근 (Initial Access): T1190 (CVE-2011-2523을 통한 공개 응용 프로그램 익스플로잇)
  • 실행 (Execution): T1059.004 (Unix 셸)
  • 발견 (Discovery): T1033, T1082, T1087.001, T1083, T1016, T1049, T1046
  • 자격 증명 접근 (Credential Access): T1110 (무차별 대입)
  • 명령 및 제어 (Command and Control): T1071.001, T1102 (Caldera Sandcat 비콘)
  • 권한 상승 (Privilege Escalation): T1078.003, T1548.003 (의심되는 sudo 활동)

조사 결과별 전체 기술 테이블은 보고서 섹션 4 (IOC) 및 섹션 3과 5의 조사 결과별 심층 분석에 있습니다.

재현성

보고서의 모든 주장은 증거 패키지의 아티팩트로 추적 가능하며, 이를 재현하는 데 필요한 정확한 tshark 필터, Wazuh 쿼리 또는 Suricata 재생 명령이 포함됩니다. 보고서의 부록 A (재현성 명령) 및 아래의 재현성 섹션을 참조하여 빠르게 시작하십시오.

사용된 도구

네트워크 포렌식

  • tshark: CLI Wireshark, PCAP 분류, TCP 스트림 재구성(-z follow,tcp,ascii), 프로토콜 필터링 및 필드 추출
  • tcpreplay 및 tcprewrite: Suricata 규칙 검증을 위해 라이브 모니터링 인터페이스로 PCAP 재생, 실습 ens19(1450바이트)에 맞게 MTU 조정
  • Base64 디코더: Caldera Sandcat C2 페이로드(비콘 본문 및 운영자 응답) 재구성

네트워크 IDS / 탐지 엔지니어링

  • Suricata 6.0.4 (afpacket 모드, 단일 스레드, 실습에서 Hyperscan 비활성화): 이 산출물의 7개 규칙 작성, 검증 및 튜닝
  • suricata -T: 배포 및 튜닝 중 구성 및 규칙 검증
  • kill -USR2 $(pgrep suricata): 반복적인 튜닝 중 라이브 규칙 다시 로드

SIEM 및 호스트 원격 측정

  • Wazuh (매니저 + 대시보드): 이벤트 상관 분석, 심각도 분포 분석, 규칙 조회(rule.id 11452, 5551 등), 397개 이벤트 CSV 내보내기
  • 표준 Linux 텍스트 유틸리티 (grep, awk, jq): 로그 마이닝 및 JSON 구문 분석

적대자 에뮬레이션 컨텍스트 (참조, 운영되지 않음)

  • MITRE Caldera (Sandcat 에이전트): 특성화되는 시뮬레이션된 기존 C2 임플란트로서 대상 호스트에 존재

참조 프레임워크

  • NIST SP 800-61r2: 컴퓨터 보안 사고 처리 가이드
  • SANS PICERL: 전술적 조사 흐름
  • MITRE ATT&CK: 기술 귀속
  • CVE-2011-2523 권고: vsftpd 2.3.4 백도어 참조

조사 결과 요약

10개의 조사 결과(I1 ~ I10)는 조사 보고서에 자세히 문서화되어 있습니다. 각 항목에는 증거, 재현성 명령, MITRE ATT&CK 매핑 및 복구 지침이 포함됩니다.

ID심각도제목주요 MITRE 기술
I1🔴 CRITICALvsftpd 2.3.4 취약한 서비스가 내부 네트워크에 노출됨T1190
I2🟡 MEDIUM익스플로잇 이전에 확장된 저속 정찰 단계T1595.002, T1589
I3🟠 HIGHUSER 스마일리 백도어 트리거를 통한 CVE-2011-2523 악용T1190
I4🔴 CRITICALTCP/6200에서 인증되지 않은 루트 바인드 셸, 8개의 열거 명령 실행됨T1059.004, T1082
I5🔴 CRITICAL기존 MITRE Caldera Sandcat C2 임플란트(FTP 공격과 무관)T1071.001, T1102
I6🟢 LOW다중 프로토콜 서비스 열거 (HTTP, SSH, SMTP, Telnet, MySQL)T1046
I7🟡 MEDIUMPCAP 캡처 기간 외부의 Wazuh에서 보이는 SSH 무차별 대입 시도T1110
I8🟠 HIGH2개의 첫 sudo 이벤트를 포함한 비정상적인 sudo 활동T1548.003
I9🟠 HIGH이 공격 클래스에 대한 Wazuh SIEM 탐지 범위 부족(방어적 격차)
I10🟢 LOW호스트 감사 로그가 사고 기간을 포함하지 않음(증거 격차)

심각도 분포: CRITICAL 3개 / HIGH 3개 / MEDIUM 2개 / LOW 2개

읽기 순서 권장: I1(취약한 서비스)부터 시작한 다음 I3, I4(실제 악용 체인), 그 다음 I5(병렬, 무관한 C2 임플란트)로 진행합니다. I2와 I6은 정찰 컨텍스트를 제공합니다. I7부터 I10은 방어 태세 조사 결과(모니터링이 본 것과 놓친 것)입니다.

탐지 엔지니어링

참여의 2단계에서는 포착된 사고를 익스플로잇 시그니처, 사후 익스플로잇 셸, 병렬 C2 채널의 세 가지 각도에서 다루는 7개의 Suricata 규칙(SID 9000001 ~ 9000007)을 생성했습니다. 각 규칙은 SOC 워크스테이션의 Suricata 6.0.4 인스턴스에 대한 오프라인 PCAP 재생을 통해 검증됩니다.

7가지 규칙

SID탐지 대상계층MITRE 기술재생에서 발동됨
9000001vsftpd 2.3.4 백도어 트리거: :)로 끝나는 USER 인수TCP/21 페이로드T1190✅ 1/1
9000002vsftpd 2.3.4 취약한 배너 광고 (220 (vsFTPd 2.3.4))TCP/21 페이로드T1190✅ 30 (모든 FTP 세션에서 배너 반복)
9000003백도어 포트 6200으로의 인바운드 TCP 연결 (SYN 전용)TCP/6200T1059.004✅ 1/1 (바인드 셸 연결)
9000004MITRE Caldera Sandcat 에이전트 비콘 (POST /beacon + UA Go-http-client/1.1)TCP+내용 (포트 무관)T1071.001, T1102✅ 1 (소스당 60초당 1개로 제한)
9000005Caldera C2 서버 응답 (HTTP Server: Python/3.10 aiohttp/3.13.4)TCP+내용 (포트 무관)T1071.001✅ 1 (소스당 300초당 1개로 제한)
9000006curl/Wget의 HTTP 관리자 경로 열거 (/admin, /login, /phpmyadmin)TCP/80 페이로드T1595.002, T1592.002✅ 3
9000007느린 속도의 FTP USER 열거 (30분 내에 동일 소스에서 5회 이상 시도)TCP/21 + 임계값T1589, T1078.003✅ 3

검증 요약

측정 항목값
작성된 규칙7
PCAP 재생에서 올바르게 발동된 규칙7/7 ✅
fast.log의 알림 (중복 제거, SOC 보기)40
eve.json의 레코드 (원시, 사전 제한)314
Suricata 버전6.0.4 (afpacket, 단일 스레드)
재생 명령tcpreplay --intf1=ens19 --topspeed attack_mtu.pcap
CI 검증푸시 시마다 markdownlint, 인쇄술 및 suricata -T 규칙 확인

40대 314의 차이는 SOC 분석가에게 깔끔한 운영 보기를 제공하면서 포렌식 심층 분석을 위해 eve.json에 원시 알림 스트림을 보존하기 위해 규칙 9000003, 9000004, 9000005, 9000006에 의도적인 제한을 적용했기 때문입니다.

주목할 만한 설계 결정

배포 중 4번의 반복 수정이 detection/README.md에 문서화되어 있습니다. 주요 교훈:1. 포트 독립적 HTTP 탐지. 규칙 9000004 및 9000005(Caldera)는 처음에 alert http 및 http.uri 키워드로 작성되었으며, 이는 Suricata의 HTTP 파서가 포트 80에서만 작동하게 합니다. Caldera C2는 포트 8888에서 실행되므로 파서가 우회되어 규칙이 실행되지 않았습니다. 수정: TCP+콘텐츠 모드(alert tcp ... content:"POST /beacon"; content:"Go-http-client/1.1";)로 다시 작성하여 포트에 관계없이 원시 HTTP 바이트를 매칭합니다. 2. flow:established는 PCAP 재생 중에 신뢰할 수 없음. 캡처된 TCP 핸드셰이크가 재생 창 밖에 있으면 흐름 상태 시스템이 불확정 상태가 됩니다. Caldera 규칙에서 flow:established를 제거하면 라이브 모드와 재생 모드 모두에서 매칭됩니다. 3. SYN 전용 규칙에 대한 명시적 흐름 방향. 규칙 9000003(포트 6200)이 SC_WARN_POOR_RULE: SYN-only ... w/o direction specified 경고를 발생시켰습니다. flow:to_server,not_established를 추가하여 수정했습니다. 4. RFC1918 전용 실습 환경에서의 HOME_NET 대 EXTERNAL_NET. 공격자, 대상, C2가 모두 사설 공간에 있을 때, EXTERNAL_NET = !$HOME_NET이 비어지고 $EXTERNAL_NET any -> $HOME_NET 21 형식의 규칙은 절대 일치하지 않습니다. 실습 수정: 둘 다 any를 사용. 프로덕션 수정: HOME_NET을 보호 대상 세그먼트로만 좁힙니다.

오탐 고려사항

규칙별 오탐 분석은 보고서 섹션 8.5에 문서화되어 있습니다. 대부분의 규칙은 잘 정의된 환경에서 위험이 미미합니다. 규칙 9000005(aiohttp Server 헤더) 및 9000006(관리자 경로에 대한 curl/Wget)은 양성 내부 Python 서비스 또는 관리 스크립팅이 있는 경우 조정이 필요합니다.

저장소 구조```text

NexaCorp-DFIR-INC-2026-001/ ├── README.md (this file) ├── LICENSE (MIT) ├── .gitignore ├── .github/ │ └── workflows/ │ └── ci.yml markdownlint + typography + Suricata rule check ├── reports/ │ ├── INC-2026-001_Findings_Report.pdf canonical 54-page deliverable │ └── INC-2026-001_Findings_Report.md same content, Markdown source ├── detection/ │ ├── lab.rules 7 Suricata rules (SID 9000001-9000007) │ └── README.md deploy + replay validation workflow ├── evidence-summary/ │ └── ioc-summary.md indicators of compromise (SIEM-ingestible) ├── methodology/ │ ├── attack-timeline.md incident timeline (UTC) │ └── attck-mapping.md MITRE ATT&CK mapping table └── notes/ └── journal.md analyst investigation journal (hypotheses, plan, IOCs, timeline)

root@kitploit:~
**파일 분류:**

| 경로 | 역할 | 대상 |
|---|---|---|
| `reports/*.pdf` | 정식 전달물, 공식 보고서 | 고객, 채용 담당자, 감사자 |
| `reports/*.md` | 동일 내용, grep 친화적 소스 | 인용 또는 diff 작업을 하는 모든 사람 |
| `detection/lab.rules` | 프로덕션 준비 완료된 Suricata 규칙 세트 | SOC / 탐지 엔지니어 |
| `detection/README.md` | 배포 + 재생 검증 가이드 | 탐지 엔지니어 온보딩 |
| `evidence-summary/ioc-summary.md` | 침해 지표, 범주별 | SOC / 위협 헌팅 |
| `methodology/attack-timeline.md` | 사고 타임라인 (UTC) | DFIR 실무자 |
| `methodology/attck-mapping.md` | MITRE ATT&CK 매핑 표 | DFIR / 탐지 엔지니어 |
| `notes/journal.md` | 조사 작업 노트북 | 해당 방법을 연구하는 DFIR 실무자 |
| `.github/workflows/ci.yml` | 자동화된 markdownlint, 타이포그래피 및 Suricata 규칙 검증 (`suricata -T`, `detection/*.rules`가 존재할 때 실행), 푸시 시 실행 | CI |

## 재현성

조사 보고서의 모든 주장은 증거 패키지의 아티팩트로 추적 가능합니다. PCAP 자체는 재배포되지 않지만(BeCode 연구소 자산), 명령어와 쿼리는 문서화되어 있어 자신의 사본을 가진 사람이라면 누구나 분석을 재현할 수 있습니다.

### 주요 결과 재현 (PCAP 분석)

`tshark` (Wireshark CLI)와 원본 `attack.pcap` 파일이 필요합니다:```bash
# 1. PCAP overview
tshark -r attack.pcap -q -z io,stat,0

# 2. TCP conversations (reveals attacker, target, C2)
tshark -r attack.pcap -q -z conv,tcp | head -30

# 3. Confirm vsftpd 2.3.4 banner exposure (Finding I1)
tshark -r attack.pcap -Y "ftp && ip.src == 192.168.10.10" \
  -T fields -e frame.time -e ftp.response.code -e ftp.response.arg | head -5

# 4. Find the CVE-2011-2523 exploit payload (Finding I3)
tshark -r attack.pcap -Y 'ftp.request.command == "USER"' \
  -T fields -e frame.time -e ftp.request.arg

# 5. Reconstruct the root shell session on TCP/6200 (Finding I4)
tshark -r attack.pcap -q -z follow,tcp,ascii,70

# 6. Reconstruct the Caldera C2 beacon (Finding I5)
tshark -r attack.pcap -q -z follow,tcp,ascii,6 | head -50

규칙 검증 재현 (Suricata 재생)

Suricata 6.0.x, tcpreplay, 및 모니터링되는 인터페이스(ens19 실험실에서; 자신의 것으로 대체)가 필요합니다:```bash

1. Install the ruleset

sudo cp detection/lab.rules /etc/suricata/rules/learner/lab.rules

2. Hot-reload Suricata without restart

sudo kill -USR2 $(pgrep -f suricata) sleep 5

3. Clear the alert log for a clean baseline

sudo truncate -s 0 /var/log/suricata/fast.log

4. Replay the PCAP at top speed

sudo tcpreplay --intf1=ens19 --topspeed attack_mtu.pcap

5. Count alerts per rule (expect 7 distinct SIDs)

sudo grep -oE '[1:[0-9]+:' /var/log/suricata/fast.log | sort | uniq -c | sort -rn

root@kitploit:~
예상 출력 (한 번의 전체 재생 후):```text
     30 [1:9000002:    (vsftpd banner repeated per session)
      3 [1:9000007:    (FTP USER enumeration threshold)
      3 [1:9000006:    (HTTP admin path enumeration)
      1 [1:9000005:    (Caldera C2 response)
      1 [1:9000004:    (Caldera Sandcat beacon, throttled)
      1 [1:9000003:    (Backdoor port 6200 SYN)
      1 [1:9000001:    (vsftpd USER smiley exploit)

7/7 규칙이 올바르게 발동함. 전체 증거 패키지(fast.log, eve.json, throttling config, Suricata version snapshot)는 findings report의 부록 E에 열거되어 있습니다.

알려진 한계

  • 증거 패키지가 사건 중간부터 시작됨. PCAP은 2026-05-09 20:08 UTC에 시작되지만, Caldera Sandcat 에이전트는 이미 프레임 1에서 활발히 비콘닝하고 있습니다. 임플란트를 설치한 초기 침해는 더 일찍 발생했으며 데이터에 포함되지 않습니다. 임플란트 이전 활동에 대한 결론은 Wazuh full_log 필드에서 추정된 것이며, 직접 관찰된 것이 아닙니다.
  • 호스트 감사 로그가 공격 시간대와 겹치지 않음. 로컬 auth.log 및 syslog는 PCAP 종료 후 약 5시간 후에 시작되며, 첫 번째 항목은 syslogd restart(VM 재부팅으로 추정)입니다. 회전된 로그 파일은 제공되지 않았습니다. 이는 Finding I10으로 문서화되어 있습니다.
  • 범위는 포렌식 + 탐지 엔지니어링이었으며, 실시간 대응이 아니었습니다. 격리, 제거, 포렌식 수집(메모리 이미지, 디스크 이미지) 및 지속성 열거는 보고서에서 P0 권장사항으로 문서화되었으나 실행되지 않았습니다: 해당 작업에는 라이브 호스트 접근 권한이 없었습니다. 이러한 루프를 마감하려면 후속 작업이 필요할 것입니다.
  • 7개의 Suricata 규칙은 이 특정 사건 시그니처를 탐지합니다. 정교한 공격자는 exploit 바이트 패턴 변경(USER 인수의 대체 널 바이트 종결자), 다른 User-Agent로 Caldera 재컴파일, 또는 C2를 암호화된 HTTPS로 이동시켜 회피할 수 있습니다(JA3/JA4와 같은 TLS 메타데이터 분석이 대안이 될 것입니다). 규칙은 캡처된 위협 시나리오에 적합합니다; 장기적인 탐지 전략은 행동 기반 및 메타데이터 기반 탐지를 추가해야 합니다.
  • 조사 중 Wazuh 수집 공백. SIEM 로그 수집 파이프라인이 2026-05-11 11:39 UTC까지 일시적으로 사용 불가능했습니다(조사 중, 랩 코치가 복구). 따라서 4개의 높은 심각도 알림은 실제 사건 타임스탬프(5월 9일 21:00-22:53) 대신 수집 타임스탬프(5월 11일 13:17-13:28)로 대시보드에 나타나며, 이는 상관 이벤트의 apparent timing을 왜곡합니다.
  • HOME_NET은 실습 환경에서 any로 설정되었습니다. 실제 NexaCorp 배포에서는 HOME_NET을 보호 대상 세그먼트로만 좁혀야 합니다(예: 192.168.10.0/24). 그래야 EXTERNAL_NET = !$HOME_NET이 공격자 공간을 올바르게 포함합니다. 전달된 규칙은 실습에 맞게 조정되었으며, 프로덕션 사용 전에 이 단일 구성 변경이 필요합니다.
  • 4일 타임박스: 2개의 후속 작업이 남아 있습니다. 80개의 sudo 이벤트에 대한 full_log를 가져와 어떤 사용자 계정이 이를 트리거했는지(그리고 FTP 익스플로잇과 관련된 타임스탬프) 식별하고, 12개의 SSH 인증 성공을 검토하여 합법적인 관리자 세션과 공격자 제어 세션을 구분합니다. 둘 다 보고서의 'Open Questions' 부록에 문서화되어 있습니다.

NexaCorp DFIR 시리즈

  • INC-2026-001: 이 저장소
  • INC-2026-002: 권한 상승 및 지속성 (Tor SSH, SUID, 백도어 계정)
  • INC-2026-003: 첫 달 교차 사건 평가
  • INC-2026-004: SQL 인젝션 (웹 포털)
  • INC-2026-005: OS 명령 인젝션 및 웹 셸 (웹 포털)
  • INC-2026-006: 저장 XSS 및 세션 하이재킹 (웹 포털)
  • INC-2026-007: IDOR 및 취약한 접근 제어 (NexaPortal); 2월 캡스톤
  • INC-2026-008: AD 정찰 및 Kerberoasting (3월 첫 번째 사건)

감사의 말

  • Thomas B. (BeCode 랩 코치): 시나리오 설계, 조사 중 Wazuh 수집 수정, 포트폴리오 사용을 위한 게시 승인.
  • MITRE: 시뮬레이션된 C2 임플란트를 구동한 Caldera 프레임워크, 그리고 모든 발견을 매핑하는 데 사용된 ATT&CK 지식 베이스에 대해.
  • Suricata 프로젝트: 7개의 규칙을 30분 이내에 배포 가능하게 만든 엔진에 대해.

소개

BeCode Brussels 블루 & 레드 팀 부트캠프(2025년 11월 ~ 2026년 9월), 미션 01, 2026-05-15에 수행된 단독 DFIR 작업.

저자: Johan-Emmanuel Hatchi (LinkedIn).

2026년 9월부터 벨기에에서 사이버 보안 인턴십 기회에 열려 있습니다. 이러한 종단 간 조사 작업(PCAP 포렌식, SIEM 상관 분석, IDS 규칙 작성, 공식 고객 보고)이 포함된 SOC / DFIR / 탐지 엔지니어링 역할을 찾고 있습니다.

라이선스

MIT, 2026 Johan-Emmanuel Hatchi.

detection/lab.rules의 Suricata 규칙과 보고서 텍스트는 모두 동일한 MIT 라이선스로 배포됩니다: 출처 표시와 함께 자유롭게 복사, 수정 및 재배포할 수 있습니다. PCAP, 실습 인프라 및 작업 브리핑은 BeCode Brussels의 자산으로 남아 있으며 재배포되지 않습니다.

도구 다운로드