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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
security checks — 리눅스 보안 점검 | Kitploit
도구/GitLabGitLab/abdom.seada/security-checks
Defensive ToolsMemory ForensicsVulnerability AnalysisNetwork ForensicsConfiguration AuditingForensicsMalware AnalysisDigital ForensicsIntrusion DetectionIncident ResponseLog Analysis
4개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitLab
abdom.seada/security-checks

security checks

리눅스 보안 점검

저장소 보기

🔍 Miner Hunter

리눅스 서버용 암호화폐 채굴기 탐지, 제거 및 강화 도구 키트.

실제 침해 대응 경험을 바탕으로 제작 — 루트킷 기법을 사용하여 ps, top, htop, btop에서 숨는 채굴기를 탐지합니다.


📦 설치

root@kitploit:~
git clone https://gitlab.com/abdom.seada/security-checks.git
cd security-checks
sudo bash setup.sh

🔀 브랜치: master — 이 도구 키트는 master 브랜치에 있습니다. 향후 다른 보안 스크립트가 별도 브랜치에 추가될 수 있습니다.


⚙️ 설정

⚠️ 클론 직후 setup.sh를 한 번 실행하세요 — 이를 생략하면 오류의 주요 원인이 됩니다.

root@kitploit:~
sudo bash setup.sh

setup.sh가 모든 것을 자동으로 처리합니다:

설치 성공 시 예상 출력:

root@kitploit:~
✅ Setup complete — all checks passed!

  Next steps:
    sudo ./miner-hunter scan        # Safe read-only scan
    sudo ./miner-hunter full        # Scan → Kill → Harden

💡 왜 필요한가요? 리눅스는 파일에 +x 플래그가 없으면 실행하지 않습니다. Git 및 SCP 전송 시 이 플래그가 제거됩니다. setup.sh는 기본 스크립트가 의존하는 lib/ 모듈을 포함하여 모든 파일을 한 번에 수정합니다.


🚀 빠른 시작

root@kitploit:~
sudo ./miner-hunter scan            # ✅ 안전 — 읽기 전용, 변경 없음
sudo ./miner-hunter full            # ⚠️  전체 파이프라인: 스캔 → 종료 → 강화
sudo ./miner-hunter scan --dry-run  # 👁️  미리보기 모드 — 수행될 작업 표시

📋 명령 및 옵션

명령

옵션

옵션설명
-d, --dry-run변경 사항 없이 모든 작업 미리보기
-e, --evidence DIR

🎭 사례 시나리오

실제 상황과 각 상황에서 정확히 실행해야 할 내용.


🔴 시나리오 1 — "서버 CPU가 100%인데 top에는 아무것도 표시되지 않습니다"

이것은 전형적인 루트킷 증상입니다. 채굴기가 사용자 공간 도구로부터 숨고 있지만 하드웨어 성능 카운터로부터는 숨을 수 없습니다.

root@kitploit:~
# 1단계: 먼저 안전한 스캔 실행 — 아무것도 건드리기 전에 무엇이 있는지 확인
sudo ./miner-hunter scan

채굴기가 존재할 경우 볼 수 있는 내용:

root@kitploit:~
🚨 [CRITICAL]  CPU anomaly: 97% user CPU but top shows max 2% per process
🚨 [CRITICAL]  perf detected 4 hidden threads consuming ~94% total CPU
🚨 [CRITICAL]  Active connection to 185.x.x.x:9200 (known mining port)
🚨 [CRITICAL]  Fake kernel thread PID=3421 NAME=[kworker/0:1] EXE=/tmp/.x/miner
root@kitploit:~
# 2단계: 채굴기 종료 및 풀 차단
sudo ./miner-hunter kill

# 3단계: 서버를 강화하여 다시 돌아올 수 없도록 함
sudo ./miner-hunter harden

🟡 시나리오 2 — "해킹당한 것 같은데 확실하지 않습니다"

의심스러운 것을 발견했습니다 — 비정상적인 외부 트래픽, 생성하지 않은 크론 작업, 이상한 이름의 프로세스 — 하지만 확실하지 않습니다.

root@kitploit:~
# 전체 스캔 실행 — 완전히 안전, 읽기 전용, 변경 없음
sudo ./miner-hunter scan

# 그런 다음 구조화된 보고서 읽기
sudo ./miner-hunter report

/root/miner_evidence_*/report.txt에 있는 보고서는 각 발견 항목을 심각도별로 분류합니다:

  • [CRITICAL] 항목 → 즉시 kill 진행
  • [WARNING] 항목 → 조치 전 수동 검토
  • 빈 보고서 → 서버가 깨끗한 것으로 보임

🟠 시나리오 3 — "채굴기를 수동으로 종료했지만 계속 다시 나타납니다"

채굴기에 지속성 메커니즘이 있습니다 — 크론 작업, systemd 서비스, PM2 항목 또는 셸 프로필 백도어로 종료 후 다시 생성됩니다.

root@kitploit:~
sudo ./miner-hunter scan

출력에서 다음을 찾으세요:

root@kitploit:~
⚠️  [WARN]     Suspicious cron entry: * * * * * /tmp/.x/update
🚨 [CRITICAL]  Malicious systemd service: /etc/systemd/system/update-check.service
🚨 [CRITICAL]  PM2 process 'app-worker' has 8432 restarts — likely miner respawn loop
🚨 [CRITICAL]  Shell profile backdoor detected in /root/.bashrc
root@kitploit:~
# kill은 실행 중인 프로세스뿐만 아니라 모든 지속성 아티팩트를 제거합니다
sudo ./miner-hunter kill

# 그런 다음 강화를 실행하여 워치독을 설치하면 다시 생성되는 경우 알림을 받습니다
sudo ./miner-hunter harden

💡 kill 실행 후, 워치독 크론이 5분마다 실행되어 /var/log/miner_hunter/watchdog_alerts.log에 기록합니다 — 무언가 다시 나타나면 즉시 알 수 있습니다.


🔵 시나리오 4 — "어떤 일이 발생하기 전에 새 서버를 강화하고 싶습니다"

배포 전 사전 강화 — 채굴기 없음, 침해 없음, 그냥 잠금 설정.

root@kitploit:~
# harden 단독 실행 — 스캔이나 kill 필요 없음
sudo ./miner-hunter harden

이것은 다음을 수행합니다:

  • SSH 구성을 감사하고 권장 설정을 출력
  • fail2ban이 sshd 감옥과 함께 활성화되어 있는지 확인
  • /usr/bin 무결성 기준 생성 (MD5 체크섬 — 이후 변조된 바이너리 탐지 가능)
  • 5분마다 채굴기 지표를 확인하는 크론 워치독 설치
  • systemd 서비스를 통해 재부팅 시 기존 iptables 규칙 유지

⚫ 시나리오 5 — "채굴기가 kill에서 살아남았습니다 — CPU가 여전히 높습니다"

kill 후, 검증 단계에서 채굴기가 여전히 실행 중일 수 있다고 보고합니다:

root@kitploit:~
⚠️  MINER MAY HAVE RESPAWNED
CPU: 89% | Mining conns: 1
Firewall blocks are in place — miner can't reach pool
Consider a REBOOT or OS REINSTALL
root@kitploit:~
# 1. 방화벽 차단은 이미 설정되어 있음 — 채굴기가 풀에 도달할 수 없음
#    차단이 활성화되어 있는지 확인:
iptables -L OUTPUT -n | grep DROP

# 2. 두 번째 스캔을 실행하여 무엇이 살아남았는지 확인
sudo ./miner-hunter scan

# 3. 프로세스를 숨기는 커널 모듈 루트킷 확인
lsmod | grep -iE 'diamorphine|reptile|kovid|rootkit'

# 4. 0이 아닌 taint 값 = 외부 커널 모듈 로드됨 (루트킷 지표)
cat /proc/sys/kernel/tainted

커널 taint 값이 0이 아니거나 알려진 루트킷 모듈이 나타나면 — 채굴기가 커널 수준 제어권을 가지고 있습니다. 이 시점에서 가장 안전한 방법은 알려진 깨끗한 스냅샷에서 전체 OS를 재설치하는 것입니다.


🟣 시나리오 6 — "수동으로 스캔을 실행하지 않고 지속적인 모니터링을 원합니다"

harden 후, 워치독 크론이 이미 설치되어 있습니다. 사용 방법은 다음과 같습니다:

root@kitploit:~
# 실시간으로 알림 로그 보기
tail -f /var/log/miner_hunter/watchdog_alerts.log

# 워치독 크론 작업이 등록되었는지 확인
cat /etc/cron.d/miner-watchdog

# 기준이 생성된 이후 /usr/bin 바이너리 변경 사항 확인
md5sum --check /var/lib/miner_hunter/usrbin_baseline.md5 --quiet

마지막 명령의 출력이 있으면 기준 이후 시스템 바이너리가 수정되었음을 의미합니다 — 즉시 조사하십시오.


🔬 탐지 항목

숨겨진 프로세스 탐지

CPU 프로파일링

기법탐지 대상
perf 하드웨어 PMC 프로파일링숨겨진 CPU 소비자 — 루트킷은 하드웨어 카운터를 위조할 수 없음
/proc 델타 샘플링PID별 직접 커널 수준 CPU 계정
CPU 이상 탐지설명할 수 있는 가시적 프로세스 없이 높은 CPU

네트워크 분석

기법탐지 대상
/proc/net/tcp 직접 읽기

지속성 메커니즘


⚔️ Kill 프로세스 — 단계별 설명

sudo ./miner-hunter kill을 실행하면 정확히 다음 순서로 진행됩니다:

  1. 🔥 방화벽에서 채굴 풀 IP 차단 — iptables DROP 규칙이 종료 전에 적용되어 채굴기가 다시 생성되어도 재연결할 수 없음
  2. 💀 스레드 그룹 리더 종료 — 먼저 TGID(스레드 그룹 리더 PID)를 SIGKILL로 대상 지정
  3. 🧹 모든 작업자 스레드 정리 — 전체 PID 범위에서 동일한 스레드 그룹의 모든 PID 종료
  4. 🗑️ 아티팩트 제거 — 채굴기 설정, 바이너리, 웹쉘 및 지속성 파일
  5. 🔄 PM2 정리 — Node.js 프로세스 관리자에서 채굴기 항목 제거 및 목록 저장
  6. ✅ 검증 — perf를 다시 실행하고 /proc/net/tcp를 확인하여 CPU가 낮아지고 연결이 사라졌는지 확인

🛡️ 사후 강화 — 적용되는 사항


📁 프로젝트 구조

root@kitploit:~
security-checks/               ← repo root (master branch)
├── miner-hunter               # Entry point — this is what you run
├── setup.sh                   # ⚙️ First-time setup — run once after cloning
├── lib/
│   ├── common.sh              # Shared utilities: logging, colors, helpers
│   ├── detect_hidden.sh       # Hidden process & rootkit detection
│   ├── detect_cpu.sh          # CPU profiling via perf & /proc
│   ├── detect_network.sh      # Mining pool connection detection
│   ├── detect_persistence.sh  # Persistence mechanism detection
│   ├── kill_miner.sh          # Process killing & artifact removal
│   └── harden.sh              # Post-incident hardening
├── README.md
└── LICENSE

📋 요구 사항


📤 출력 파일

실행할 때마다 다음이 생성됩니다:


🌍 실제 기원

이 도구는 다음을 수행하는 암호화폐 채굴기에 대한 실제 침해 대응 중에 구축되었습니다:

  • Node.js 서버에서 Next.js 프로세스와 혼합되도록 next로 이름 변경
  • 실제 커널 스레드 이름인 kthreadd로 이름이 변경된 스레드 그룹 리더 사용
  • 메모리에서 실행 중인 상태로 디스크에서 바이너리 삭제 (/proc/PID/exe → (deleted))
  • ps, top, htop, btop에서 완전히 보이지 않음
  • perf 하드웨어 CPU 카운터 프로파일링을 통해서만 탐지 가능

📄 라이선스

MIT

도구 다운로드
단계설명
✅ 권한miner-hunter 및 모든 lib/*.sh 스크립트에 chmod +x 적용
✅ 디렉토리/var/log/miner_hunter/ 및 /var/lib/miner_hunter/ 생성 (root 전용, 700)
✅ 의존성perf, mpstat, iptables, fail2ban, bc, strings 확인 — 누락된 항목 자동 설치
✅ 자체 테스트./miner-hunter --version 실행하여 모든 것이 올바르게 연결되었는지 확인
명령설명시스템 변경?
scan전체 탐지 스캔 — 숨겨진 프로세스, CPU, 네트워크, 지속성✅ 아니오
kill식별된 채굴기 종료, 풀 IP 차단, 아티팩트 제거⚠️ 예
harden사후 강화 — SSH, 방화벽, 워치독, 무결성 기준⚠️ 예
full스캔 → 종료 → 강화를 단계별 확인 프롬프트와 함께 실행⚠️ 예
report가장 최근 스캔 보고서 표시✅ 아니오
/root/miner_evidence_* 대신 사용자 지정 디렉토리에 증거 저장
-h, --help도움말 표시
-v, --version버전 표시
기법탐지 대상
/proc vs ps 비교사용자 공간 도구에 보이지 않는 프로세스
LD_PRELOAD 하이재킹libc를 후킹하여 프로세스를 숨기는 악성 공유 라이브러리
커널 모듈 루트킷Diamorphine, Reptile, Kovid 및 기타 알려진 루트킷
가짜 커널 스레드[kworker], [kthreadd], [kswapd]로 위장하는 채굴기
변조된 시스템 바이너리교체된 ps, top, ls, ss, netstat
%user
활성 연결 — 후킹된 ss/netstat 우회
채굴 포트 탐지포트 3333, 4444, 5555, 7777, 9200, 14433, 14444, 45560
채굴 도메인 확인알려진 풀 도메인을 확인하고 활성 연결과 교차 확인
소켓-PID 매핑각 채굴 연결을 소유한 프로세스 추적
위치확인 사항
Cron/etc/cron*, /var/spool/cron/, 모든 사용자 crontab
Systemd의심스러운 항목에 대한 모든 유닛 파일 및 타이머
Udev 규칙장치 이벤트 시 하드웨어 트리거 실행
PM2극심한 재시작 횟수를 가진 Node.js 프로세스 관리자 항목
셸 프로필.bashrc, .bash_profile, /etc/profile, /etc/profile.d/*
SSH모든 사용자의 authorized_keys 파일
웹쉘Node.js 프로젝트 디렉토리 내 PHP 파일
XMRig 설정일반적인 채굴기 드롭 위치의 config.json
조치세부 사항
방화벽 지속성재부팅 시마다 iptables 채굴 차단을 복원하는 systemd 서비스
SSH 감사PermitRootLogin, PasswordAuthentication, MaxAuthTries 확인 — 권장 값 출력
Fail2ban 확인sshd 감옥이 활성화되어 있는지 확인하고 현재 차단된 IP 보고
채굴기 워치독5분마다 크론 작업 — CPU 이상, LD_PRELOAD, 채굴 포트, PHP 웹쉘 확인
/usr/bin 기준/usr/bin의 모든 바이너리에 MD5 체크섬 생성하여 향후 변조 탐지
요구 사항세부 사항
OSLinux — Ubuntu 24.04 LTS, Debian 13에서 테스트됨
권한root (sudo)로 실행해야 함
setup.sh에서 자동 설치perf, mpstat (sysstat), bc, strings (binutils)
권장fail2ban — 누락 시 플래그 표시, 자동 설치되지 않음
필수 (자동 설치되지 않음)iptables — kill/harden 단계에 필요
출력위치내용
증거 디렉토리/root/miner_evidence_YYYYMMDD_HHMMSS/캡처된 바이너리, perf 보고서, 채굴기 설정
로그 파일/var/log/miner_hunter/run_YYYYMMDD_HHMMSS.log전체 타임스탬프가 찍힌 실행 로그
보고서evidence_dir/report.txt심각도와 함께 구조화된 발견 요약
워치독 알림/var/log/miner_hunter/watchdog_alerts.logharden 이후 지속적인 알림
무결성 기준/var/lib/miner_hunter/usrbin_baseline.md5harden 이후 /usr/bin 체크섬