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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Dirty-Frag-CVE-2026-43284 — DirtyFrag (CVE-2026-43284)에 대한 실험실 탐지 연습 - xfrm-ESP 페이지 캐시 손상을 통한 Linux 커널 권한 상승. 익스플로잇 실행, 탐지 격차 및 Elastic Stack을 사용한 수정된 EQL 규칙을 다루는 종합 분석 보고서. | Kitploit
도구/GitHubGitHub/atlasvector/dirty-frag-cve-2026-43284
Privilege EscalationVulnerability AnalysisForensicsLearning & EducationIncident ResponseBinary ExploitationLabs & Practice
GitHubatlasvector/dirty-frag-cve-2026-43284

Dirty-Frag-CVE-2026-43284

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DirtyFrag (CVE-2026-43284)에 대한 실험실 탐지 연습 - xfrm-ESP 페이지 캐시 손상을 통한 Linux 커널 권한 상승. 익스플로잇 실행, 탐지 격차 및 Elastic Stack을 사용한 수정된 EQL 규칙을 다루는 종합 분석 보고서.

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

DirtyFrag (CVE-2026-43284) - 실험실 탐지 훈련 보고서

분류: 내부 실험실 - CyberLAB
날짜: 2026년 5월 24일
플랫폼: Elastic Stack v9.4.1
상태: 탐지 확인됨


목차

  • A - 요약 보고서
  • B - 전체 분석 보고서
    • 1. 목표 및 위협 모델
    • 2. 취약점 배경
    • 3. 실험실 환경
    • 4. 1단계 - 실행 전 설정
    • 5. 2단계 - 취약점 활용 실행
    • 6. 3단계 - 사후 침투 활동
    • 7. 4단계 - 탐지 엔지니어링
    • 8. 탐지 참조
    • 9. 주요 발견 사항 요약
    • 10. 참조

A - 요약 보고서

테스트 내용

제어된 취약점 활용 실습으로, 초기 접근 이후의 공격자가 DirtyFrag (CVE-2026-43284) (리눅스 커널 권한 상승 취약점)을 사용하는 시나리오를 시뮬레이션했습니다. 시뮬레이션된 공격자 시나리오: 피싱된 자격 증명으로 획득한 저권한 사용자 (saskia, uid=1001)가 내부 리눅스 호스트에서 루트로 권한 상승을 시도합니다. 실험실은 프로덕션 네트워크와 분리된 의도적으로 취약한 우분투 머신 (ubuntu-vuln, 커널 6.0.0-22-generic)을 사용했습니다.

결과: 취약점 활용 성공 - 탐지 확인됨

공격자는 실험실 환경 내에서 완전한 루트 접근 권한 (uid=0)을 획득했습니다. Elastic Security 탐지 스택은 3개의 HIGH 심각도 알림 (위험 점수 73)을 생성하여 취약점 활용 체인을 올바르게 식별했습니다. 그러나 탐지에는 수동 튜닝이 필요했습니다. 기본 구성을 사용하면 알림을 놓칠 수 있는 공백이 있었습니다.

결론: 커널 <= 6.x를 실행하는 패치되지 않은 리눅스 호스트는 취약합니다. 공격자가 이미 저권한 발판을 가지고 있다면, 이 취약점을 통해 파일 무결성 도구에 보이지 않는 디스크 추적 없이 조용하고 빠르게 완전한 루트 권한을 얻을 수 있습니다.

위험 진술

주요 발견 사항

  1. 기본 auditd 규칙은 증거를 생성하지 않습니다. socket, splice, unshare에 대한 명시적인 시스템 호출 규칙이 없으면 취약점 활용이 조용히 실행되어 로그나 알림이 생성되지 않습니다. 기본 Elastic Agent 배포는 이러한 규칙을 자동으로 추가하지 않습니다.
  2. 탐지에는 규칙 튜닝이 필요했습니다. 게시된 Elastic Security Labs 탐지 로직은 상관 관계 키로 process.parent.pid를 사용했습니다. 실제로 DirtyFrag는 중간 프로세스를 포크하여 이 상관 관계를 깨뜨립니다. 수정 사항 - auditd.session으로 상관 관계를 설정하는 방법 - 이 실습 중에 식별되어 구현되었습니다.
  3. 사후 침투 활동이 광범위했습니다. 루트 권한 획득 후 공격자는 /etc/shadow를 읽고, SSH 인증 키에 접근하고, 지속성 마커 (/root/pwned.txt)를 작성하고, nc를 통해 네트워크 정찰을 시작했습니다. 이 모든 작업은 초기 접근 후 30분 이내에 발생했습니다.

권장 사항


B - 전체 분석 보고서

1. 목표 및 위협 모델

목표: 홈 실험실 SOC에서 DirtyFrag 취약점 활용에 대한 탐지 적용 범위를 검증하고, 탐지 공백을 식별하며, 관찰된 공격자 행동에 기반한 수정된 탐지 규칙을 생성합니다.

위협 모델: 피싱된 자격 증명을 통해 저권한 사용자 계정 (saskia, uid=1001)을 획득한 초기 접근 이후의 공격자를 시뮬레이션합니다. 목표: xfrm-ESP 수신 경로를 통해 DirtyFrag를 사용하여 루트로 권한 상승. 실습은 Proxmox 콘솔을 통해 수행되었으며, SSH 사후 접근과 기능적으로 동일합니다.

두 가지 공격자 능력 계층이 고려되었습니다:

  • Vanilla (시끄러움): 회피 없이 취약점 활용 실행
  • Evasive (조용함): 소음 감소, 의도적인 정리

이 실습은 Vanilla 계층을 다루었습니다.


2. 취약점 배경

DirtyFrag는 동일한 근본 원인을 악용하는 관련 리눅스 커널 버그 계열 중 세 번째입니다:

근본 원인: IPv4/IPv6 데이터그램 추가 경로가 skb_splice_from_iter()가 페이지 캐시 페이지를 소켓 버퍼 (sk_buff)에 심은 후 SKBFL_SHARED_FRAG를 설정하지 않았습니다. 그런 다음 ESP 입력 경로가 공격자가 제어하는 페이지 캐시 페이지에 대해 인플레이스 암호화를 수행하여 일반적인 비복제 비선형 skb로 처리했습니다.

취약점 활용 기본 요소: 페이지 캐시에 4바이트 또는 8바이트 제어 쓰기. 결정적이며 경쟁 조건이 필요하지 않습니다.

취약점 활용 체인:

  1. 공격자가 대상 바이너리 (예: /usr/bin/su)를 페이지 캐시로 읽음
  2. splice()를 통해 패킷을 구성하여 파일 페이지가 struct sk_buff의 frag[0]에 위치하도록 함
  3. 커널이 패킷을 xfrm-ESP 복호화 경로로 전달
  4. ESP가 인플레이스 암호화를 수행 - 소스와 대상 모두 공격자의 페이지를 가리킴
  5. 암호화가 공격자가 제어하는 바이트를 페이지 캐시에 기록
  6. 이후 파일의 모든 읽기 (커널 execve() 포함)가 손상된 바이트를 반환

중요한 회피 속성: 디스크 내 파일은 절대 수정되지 않습니다. 파일 무결성 모니터링 도구 (AIDE, Tripwire, 해시 검사) 모두 대상 파일을 정상으로 보고합니다.

취약한 것으로 확인된 배포판: Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE Tumbleweed, CentOS Stream 10, Fedora 44.


3. 실험실 환경

실습 당시 활성 텔레메트리:


4. 1단계 - 실행 전 설정

4.1 실험실 격리

실습 전 실험실 네트워크 격리됨. 방화벽 별칭 Cyber_escape_door 비활성화 확인 - 다른 VLAN 또는 인터넷으로의 측면 연결 차단.

Lab isolation confirmation

4.2 피해자 호스트 확인

취약한 커널과 저권한 계정이 ubuntu-vuln에 확인됨:``` saskia@ubuntu-vuln:$ uname -r 6.0.0-22-generic saskia@ubuntu-vuln:$ whoami saskia saskia@ubuntu-vuln:~$ id uid=1001(saskia) gid=1001(saskia) groups=1001(saskia),27(sudo),100(users)

root@kitploit:~
![커널 및 사용자 확인](https://assets.kitploit.com/production/public/readmes/15419/bd607abf9c63cc6bf7cfd3432bd406c5fcd51b6e29e4585543f80af99218fd92.png)

#### 4.3 스택 상태 점검

**Suricata: 실행 중 및 캡처 중 (systemctl 상태)**
![Suricata 서비스 활성 및 사용 가능](https://assets.kitploit.com/production/public/readmes/15419/3bd0f2a2eb3695861aa36f58545b85567d3a8bdeb4e847060e9dbb63391abf9b.png)

**Kibana/Elasticsearch: 녹색/정상 (API 확인)**
![curl을 통한 ELK 상태 점검, 302 반환](https://assets.kitploit.com/production/public/readmes/15419/fcd860faf9fbe62adeb94e889ced2a8c4b649f7240b9f7a9eb572a132c56402d.png)

**변경 전 VM 스냅샷**

![ELK VM 스냅샷 - elk-VM-snapshot](https://assets.kitploit.com/production/public/readmes/15419/6d7c0af2ac6a6b526e21696f83ecea29e3b5d2a433b00eeaa104746ac87b155c.png)

![Suricata VM 스냅샷 - suricata_pre_dirty_frag (2026년 5월 24일 11:15:53)](https://assets.kitploit.com/production/public/readmes/15419/679983fc0d92d9b73c3e33439c4a167732eec5685e852ccfe91738e29930f5fa.png)

![Ubuntu-Vuln-Host 스냅샷](https://assets.kitploit.com/production/public/readmes/15419/0c66bce642d8508ac2dddfe5930a84ba3f936fc8507fb96717ced5bc2bd77f8d.png)

#### 4.4 네트워크 캡처
Suricata 호스트에서 tcpdump 시작 (`emp6s19`, 스냅샷 길이 262144바이트)으로 `172.66.66.27` 트래픽 전체 패킷 캡처.
![suricata 트래픽 이벤트 복사본](https://assets.kitploit.com/production/public/readmes/15419/12c4e8bd2f5749a5ff3afda1613fecf69d635fbb87003808d83cc89815430e3c.png)


![Suricata 센서에서 tcpdump 시작](https://assets.kitploit.com/production/public/readmes/15419/09e4a4ab1a4f692ee24f168c2094bf159590b9c6bb4ea8a977f0c004687ae341.png)

---

### 5. 2단계 - 익스플로잇 실행

#### 5.1 스테이징

V4bel/dirtyfrag PoC의 익스플로잇 소스(`exp.c`)가 피해자 호스트에 스테이징됨.```bash
ubuntu-vuln@ubuntu-vuln:~/dirtyfrag$ ls
exp  exp.c  README.md
ubuntu-vuln@ubuntu-vuln:~/dirtyfrag$ cp exp.c /tmp/exp/

오른쪽 터미널은 사용자 saskia에게 보이는 스테이징된 복사본을 보여줍니다.

Exploit 소스가 /tmp/exp/에 스테이징됨

5.2 컴파일

루트 권한으로 sudo gcc를 통해 컴파일 (사용자 saskia는 sudoers에 있음):``` saskia@ubuntu-vuln:$ sudo gcc -o /tmp/exp/clean_frag /tmp/exp/exp.c saskia@ubuntu-vuln:$ ls -la /tmp/exp/ -rwxr-xr-x 1 root root 62320 May 24 12:18 clean_frag -rw-rw-r-- 1 ubuntu-vuln ubuntu-vuln 67803 May 24 12:13 exp.c saskia@ubuntu-vuln:~$ id uid=1001(saskia) gid=1001(saskia) groups=1001(saskia),27(sudo),100(users)

root@kitploit:~
Binary: ELF 64-bit LSB executable, x86-64, dynamically linked.

![Exploit 컴파일됨 - clean_frag 바이너리 준비](https://assets.kitploit.com/production/public/readmes/15419/0449b71e0aa5ab6acc1483dc1109e40a59108fe2fb1c438413daa05e3e8c4f3c.png)

#### 5.3 실행 - 루트 획득

Exploit이 `saskia` (uid=1001)로 실행되었습니다. 프로세스(`clean_frag`, pid=4326)는 `AF_RXRPC` 및 `AF_ALG` 소켓을 열고, `splice()`를 호출하여 페이지 캐시 페이지를 네트워크 버퍼에 심었습니다. ESP 경로의 제자리 암호화(In-place crypto)는 공격자가 제어하는 바이트를 페이지 캐시에 기록했습니다. 자식 프로세스(pid=4327)는 `a0=50000000` (CLONE_NEWUSER | CLONE_NEWNET)으로 `unshare`를 호출하여 네임스페이스 범위의 권한을 획득했습니다.```
saskia@ubuntu-vuln:~$ /tmp/exp/clean_frag
...
root@ubuntu-vuln:~# id
uid=0(root) gid=0(root) groups=0(root)
root@ubuntu-vuln:~# ls

Full root shell obtained at 12:22 CEST (10:22 UTC), 24 May 2026.

Auditd syscall sequence captured (UTC):

All events share auditd.session=2.

익스플로잇 후 획득한 루트 셸


6. 3단계 - 익스플로잇 후 활동

ubuntu-vuln에서 ~12:22 CEST 이후부터 root로 수행된 모든 작업.

6.1 지속성 마커```bash

root@ubuntu-vuln:# echo "Dirty Frag PoC executed at $(date)" > /root/pwned.txt root@ubuntu-vuln:# cat /root/pwned.txt Dirty Frag PoC executed at Sun May 24 12:28:05 PM CEST 2026

root@kitploit:~
![Persistence marker written to /root/pwned.txt](https://assets.kitploit.com/production/public/readmes/15419/a4c9f7d5eaf9f165aa382692c89c6e98c50884858bae6929aec9251bb09ba06e.png)

#### 6.2 자격 증명 접근```bash
root@ubuntu-vuln:~# cat /etc/shadow | head -2
root:*:19823:0:99999:7:::
daemon:*:19823:0:99999:7:::
root@ubuntu-vuln:~# cat /home/ubuntu-vuln/.ssh/authorized_keys
ssh-ed25519 AAAA[...]

Shadow file 및 SSH authorized keys에 접근했습니다. 실제 침해 상황에서는 오프라인 비밀번호 크래킹과 지속적인 SSH 백도어 접근이 가능합니다.

자격 증명 접근 - 루트로 shadow 파일 및 SSH 키 읽음

6.3 네트워크 정찰```bash

root@ubuntu-vuln:~# nc -vz 172.66.66.1 100-8000

root@kitploit:~
Port scan of the lab gateway (`172.66.66.1`, ports 100-8000) executed from root context at 12:51 CEST. This demonstrates lateral movement capability and network mapping from an escalated session.

![Network scan from root - nc against gateway](https://assets.kitploit.com/production/public/readmes/15419/350b4904ab94e991640582b63d0bc61c679c754fdce22b856bb92ab177a02ef5.png)

#### 6.4 Suricata Network Visibility

Suricata captured **105 events** associated with `172.66.66.27` across the exercise window (88 mdns, 17 flow). At the time the screenshot was taken (during the nc scan at ~12:53 CEST), 29 events were visible in the dashboard.

The DirtyFrag exploit itself is kernel-internal and produces no network signature - the escalation primitive generates no anomalous traffic on the wire. Suricata was engaged to collect pcaps of post-exploitation traffic and enumeration attempts rather than to detect the exploit itself.

| Event Type | Count |
| ---------- | ----- |
| mdns | 88 |
| flow | 17 |
| **Total** | **105** |

The flow events cluster around the nc port scan window (10:50-11:10 UTC / 12:50-13:10 CEST).

![Suricata events for 172.66.66.27](https://assets.kitploit.com/production/public/readmes/15419/de8249b1c4230a57841799e7806ca97796db4de2321a57c0891f043d842c54b0.png)

---

### 7. Phase 4 - Detection Engineering

#### 7.1 Detection Rules Deployed

Two EQL sequence rules were created in the Kibana Detection Engine based on the Elastic Security Labs article.

**Rule 1 - AF_RXRPC or AF_ALG Socket with Splice Followed by Execution** (실행되지 않음 - 아래 간극 참조)```eql
sequence with maxspan=60s
  [any where host.os.type == "linux" and
   (
    (event.category == "process" and auditd.data.syscall == "socket"
     and auditd.data.a0 in ("26", "21")) or
    (event.category == "process" and auditd.data.syscall == "splice") or
    (event.category == "network" and event.action == "bound-socket"
     and data_stream.dataset == "auditd_manager.auditd"
     and auditd.data.socket.family == "38")
   )
   and user.id != "0"] by process.pid, host.id, user.id with runs=10
  [process where host.os.type == "linux" and event.action == "executed" and
   (
     (user.effective.id == "0" and user.id != "0") or
     (process.name in ("bash", "sh", "zsh", "dash", "fish", "ksh", "busybox")
      and process.args in ("-c", "--command", "-ic", "-ci", "-cl", "-lc",
                            "-bash", "-sh", "-zsh", "-dash", "-fish", "-ksh"))
    )] by process.parent.pid, host.id, user.id

규칙 2 - 네임스페이스 조작 후 권한 상승 (수정 후 실행됨)```eql sequence by host.id, auditd.session with maxspan=30s [process where host.os.type == "linux" and auditd.data.syscall == "unshare" and auditd.data.a0 in ("10000000", "50000000", "70000000", "10020000", "50020000", "70020000") and user.id != "0" and user.id != null] [process where host.os.type == "linux" and user.id == "0" and user.id != null and (process.name in ("bash", "sh", "zsh", "dash", "fish", "ksh", "su", "sudo", "pkexec", "busybox", "mksh") or process.name like ("python*", "perl*", "ruby*", "php*", "lua*"))]

root@kitploit:~
#### 7.2 초기 탐지 격차 - 누락된 시스템 콜 커버리지

Rule 1은 0건을 반환했습니다. `ubuntu-vuln`의 기본 auditd 구성은 `write`, `bpf`, `openat`, `unshare`만 캡처했습니다.

누락: `socket`, `splice`, `bind` - 핵심 익스플로잇 기본 요소입니다.

**해결 방법:** `/etc/audit/rules.d/dirtyfrag.rules`에 다음을 추가:```
-a always,exit -F arch=b64 -S socket -k socket_syscall
-a always,exit -F arch=b32 -S socketcall -k socket_syscall
-a always,exit -F arch=b64 -S splice -k splice-syscall
-a always,exit -F arch=b32 -S splice -k splice-syscall
-a always,exit -F arch=b64 -S unshare -k unshare-syscall
-a always,exit -F arch=b32 -S unshare -k unshare-syscall

272 new auditd 이벤트가 익스플로잇 실행 후 수 초 내에 Elasticsearch에 수집되었습니다.

7.3 EQL 상관 관계 격차 - 프로세스 트리 조각화

이벤트가 캡처되었음에도 불구하고 규칙 2는 0개의 일치를 반환했습니다.

근본 원인 - 실제 프로세스 트리 (Elasticsearch 기준):

원래 규칙은 process.parent.pid로 상관 관계를 분석했습니다. unshare 이벤트의 ppid=4326이었지만, 루트 셸은 다른 부모를 가졌습니다. DirtyFrag는 중간 프로세스를 포크하여 상관 관계를 깨뜨렸습니다.

수정: auditd.session으로 상관 관계 분석. 익스플로잇 체인의 모든 이벤트는 session=2를 공유하여 포크 깊이에 관계없이 시퀀스를 올바르게 연결합니다.

7.4 알림 결과

3개의 HIGH 심각도 알림, 위험 점수 73, Kibana Security - Alerts, 시간: 2026-05-24T10:25:57Z UTC (12:25:57 CEST).

알림타임스탬프 (UTC)시그널
시퀀스 일치 - unshare 이벤트10:25:57.869process=clean_frag, user=saskia (uid=1001)
시퀀스 일치 - 루트 셸10:25:57.881process=bash, user=root (uid=0)
복합 시퀀스 알림10:25:57.893host=ubuntu-vuln
  • 규칙: DirtyFrag - Namespace Manipulation Followed by Privilege Escalation
  • 심각도: 높음
  • 위험 점수: 73
  • 호스트: ubuntu-vuln

Kibana 알림 상세 - 위험 점수 73, 열린 상태

Kibana 알림 개요 - ubuntu-vuln에서 3개의 HIGH 알림


8. 탐지 참조

MITRE ATT&CK 매핑

전술

주요 시스템 콜 값

KQL 참조 쿼리

모든 dirtyfrag 관련 auditd 이벤트:

root@kitploit:~
auditd.data ...
``````kql
data_stream.dataset: "auditd_manager.auditd" and auditd.summary.how: *dirtyfrag*

비루트 사용자의 네임스페이스 조작:```kql data_stream.dataset: "auditd_manager.auditd" and auditd.data.syscall: "unshare" and auditd.data.a0: "50000000"

root@kitploit:~
**동일 세션에서 권한 상승 후 루트 활동:**```kql
data_stream.dataset: "auditd_manager.auditd" and user.id: "0" and auditd.session: "2"

익스플로잇 윈도우 동안의 모든 auditd 이벤트:```kql data_stream.dataset: "auditd_manager.auditd" and @timestamp >= "2026-05-24T10:20:00Z" and @timestamp <= "2026-05-24T10:30:00Z"

root@kitploit:~
**익스플로잇 프로세스의 Socket 및 splice 시스템 콜:**```kql
data_stream.dataset: "auditd_manager.auditd" and auditd.summary.how: "/tmp/exp/clean_frag"

9. 주요 발견 사항 요약


10. 참고 자료

  • Elastic Security Labs: Copy Fail and DirtyFrag: Linux Page Bugs in the Wild
  • 공개 PoC: V4bel/dirtyfrag on GitHub
  • MITRE ATT&CK: T1068 - 권한 상승을 위한 익스플로잇
  • MITRE ATT&CK: TA0004 - 권한 상승
  • MITRE ATT&CK: T1003.008 - /etc/passwd 및 /etc/shadow
도구 다운로드
항목세부 사항
취약점DirtyFrag - CVE-2026-43284 (xfrm-ESP path), CVE-2026-43500 (RxRPC path)
CVSS 영향로컬 권한 상승을 통한 완전한 루트 권한 획득
영향을 받는 커널리눅스 커널 >= 2017년 1월 (9년 수명)
영향을 받는 배포판Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE, CentOS Stream 10, Fedora 44
파일 무결성 우회디스크 내 파일 변경 없음 - AIDE, Tripwire, 해시 모니터링 모두 정상 보고
공개 PoC사용 가능 (V4bel/dirtyfrag on GitHub)
루트 권한 획득 시간저권한 발판에서 < 10분
우선 순위조치
즉시모든 호스트의 리눅스 커널을 패치된 버전으로 업데이트하십시오. Ubuntu, RHEL, AlmaLinux, openSUSE, CentOS, Fedora에 대한 벤더 보안 권고를 적용하십시오.
단기Elastic Agent가 모니터링하는 모든 리눅스 호스트에 socket, splice, unshare에 대한 명시적인 auditd 시스템 호출 규칙을 배포하십시오.
단기네임스페이스 조작 시퀀스에 대해 process.parent.pid 대신 auditd.session으로 상관 관계를 설정하도록 EQL 탐지 규칙을 업데이트하십시오.
지속적위험 점수 >= 73인 권한 상승 알림을 우선순위가 높은 삼각(triage) 대상으로 취급하십시오. 현재 규칙은 권한 상승 발생 후 몇 초 내에 알림을 발생시킵니다.
CVE별명도입 시기경로
CVE-2022-0847Dirty Pipe-pipe
CVE-2026-31431Copy Fail-splice
CVE-2026-43284DirtyFrag2017년 1월 (커밋 cac2661c53f3)xfrm-ESP
CVE-2026-43500DirtyFrag2023년 6월 (커밋 2dc334f1a63a)RxRPC
구성 요소세부 사항
Fleet Server / ELK 호스트ubuntu-tm / elk-docker - 172.66.66.30 (실험실 내부)
Elastic Stackv9.4.1 (Elasticsearch, Kibana, Logstash - Docker)
대상 (피해자) 호스트ubuntu-vuln - 172.66.66.27
피해자 커널6.0.0-22-generic (취약함)
피해자 사용자saskia - uid=1001, groups=1001(saskia),27(sudo),100(users)
Elastic Agentv9.4.1 (auditbeat 포함)
네트워크 IDS전용 센서의 Suricata 8.0.5
Kibanahttp://172.66.66.30:5601 (실험실 내부)
데이터셋점유율
suricata.eve75.2%
elastic_agent.fleet_server10.8%
elastic_agent9.1%
elastic_agent.filebeat1.9%
elastic_agent.auditbeat1.4%
auditd_manager.auditd0.5%
system.auth0.2%
system.syslog0.1%
타임스탬프 (UTC)시스템 호출인자프로세스 (pid)사용자
10:21:11.054unsharea0=50000000clean_frag (4327)saskia (1001)
10:21:11.055socketa0=21 (AF_RXRPC)clean_frag (4326)saskia (1001)
10:21:17.403socketa0=26 (AF_ALG)clean_frag (4326)saskia (1001)
10:21:17.419splicea0=4clean_frag (4326)saskia (1001)
10:21:17.419splicea0=7clean_frag (4326)saskia (1001)
프로세스PIDPPIDUIDauditd.session
shell (saskia)4182-10012
clean_frag (메인)4326418210012
clean_frag (unshare 자식)4327432610012
bash (root)-445102
기법
ID
권한 상승권한 상승을 위한 악용T1068
권한 상승호스트로 탈출T1611
자격 증명 접근OS 자격 증명 덤프: /etc/passwd 및 /etc/shadowT1003.008
탐색네트워크 서비스 탐색T1046
시스템 콜인자의미
unsharea0=50000000CLONE_NEWUSER | CLONE_NEWNET
socketa0=26AF_ALG (커널 암호화 서브시스템)
socketa0=21AF_RXRPC (RxRPC 경로)
bindsocket.family=38AF_ALG bind
splice-네트워크 버퍼로의 페이지 삽입
#발견 사항심각도조치 완료
1기본 auditd 규칙이 socket, splice, unshare를 누락함 - 명시적 규칙 없이는 증거가 없음심각예 - /etc/audit/rules.d/dirtyfrag.rules에 사용자 정의 규칙 배포됨
2process.parent.pid에 의한 EQL 상관 관계가 포크된 익스플로잇 체인에서 실패함높음예 - auditd.session으로 변경됨
3파일 무결성 모니터링이 DirtyFrag에 대해 무감각 - 디스크상 파일은 전체 기간 동안 변경되지 않음높음범위 내 조치 없음 - 커널 패치가 해결책임
4사후 익스플로잇: 섀도 파일, SSH 키, 네트워크 정찰이 알림 기반 대응 전에 모두 루트로 실행됨높음auditd 로그를 통해 탐지됨; 자격 증명 접근 또는 정찰 단계에 대한 전용 규칙이 없음