Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-31431-copy-fail — 자동화된 스캐너 및 패치 도우미로, CVE-2026-31431을 대상으로 SSH를 통해 취약한 Linux 호스트를 탐지하고, 커널 버전을 검증하며, 여러 배포판에 걸쳐 커널 업그레이드 또는 임시 완화 조치를 적용합니다. | Kitploit
도구/GitHubGitHub/gagaltotal/cve-2026-31431-copy-fail
Vulnerability ScannersConfiguration AuditingNetwork Security
GitHubgagaltotal/cve-2026-31431-copy-fail

cve-2026-31431-copy-fail

자동화된 스캐너 및 패치 도우미로, CVE-2026-31431을 대상으로 SSH를 통해 취약한 Linux 호스트를 탐지하고, 커널 버전을 검증하며, 여러 배포판에 걸쳐 커널 업그레이드 또는 임시 완화 조치를 적용합니다.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
2215개월 전아직 검토되지 않음
공유

CVE-2026-31431 "Copy Fail" 스캐너 및 패치 헬퍼

CVE-2026-31431 CVSS Python License

Copy Fail은 Linux 인프라에서 CVE-2026-31431(Linux Kernel algif_aead 로컬 권한 상승) 취약점을 탐지하고 수정하기 위한 자동화된 보안 스캐너 및 패치 헬퍼입니다.


목차

  • 설명
  • 주요 기능
  • 요구 사항
  • 설치
  • 사용 방법
  • 명령 옵션
  • 사용 예시
  • 출력 및 결과
  • 지원 배포판
  • 수동 패치 가이드
  • 임시 완화 조치
  • 문제 해결
  • 보안 참조

설명

CVE-2026-31431은 Linux 커널 모듈 algif_aead(AEAD용 비동기 암호화 인터페이스)의 로컬 권한 상승(LPE) 취약점입니다. 이 취약점은 로컬 사용자가 root 수준으로 권한을 상승시킬 수 있게 합니다.

이 도구는 다음을 지원합니다:

  • 자동 스캔 Linux 서브넷에서 취약한 호스트 탐지
  • 패치 상태 확인 커널 버전 기반으로 각 호스트 검증
  • 자동 패치 패키지 관리자를 통한 커널 업그레이드
  • 임시 완화 조치 algif_aead 모듈 비활성화
  • 구조화된 보고서 테이블 및 JSON 형식

참고: 이 도구는 sysadmin의 내부 감사 및 패치 목적으로만 사용됩니다. 소유하거나 승인된 시스템에서만 사용하세요.


화면 예시

Screen Capture

주요 기능

1. 확장 가능한 스캐닝

  • 단일 호스트, 다중 호스트 또는 전체 서브넷 스캔
  • 스레드 풀을 통한 병렬 SSH 연결(기본값: 30개 스레드)
  • Rich UI를 통한 실시간 진행률 표시줄
  • 불안정한 연결을 위한 지수 백오프 방식의 자동 재시도

2. 취약점 탐지

  • SSH 연결 가능성 및 인증 확인
  • 각 호스트의 커널 버전 읽기
  • 커널 패치 여부 확인(배포판별 데이터베이스 기반)
  • algif_aead 모듈 상태 탐지(로드됨/로드 안 됨)
  • modprobe.d 완화 조치 적용 여부 확인

3. 자동 패치

취약한 호스트에서 패키지 관리자를 통한 자동 커널 업그레이드:

  • apt (Debian/Ubuntu)
  • dnf (Fedora/RHEL 8+)
  • yum (RHEL 7, CentOS 7)
  • zypper (SUSE/openSUSE)
  • pacman (Arch Linux)

옵션: 패치 완료 후 자동 재부팅

4. 임시 완화 조치

  • modprobe.d 구성을 통해 algif_aead 모듈 비활성화
  • 재부팅을 위한 유지보수 창을 기다리는 동안 임시 수정으로 적합
  • 참고: 커널에 모듈이 내장된 RHEL 계열에서는 효과가 없음

5. 유연한 SSH 인증

  • SSH 키 기반 인증(권장)
  • 비밀번호 기반 인증
  • 사용자 지정 SSH 포트 지원
  • 리소스 최적화를 위한 연결 풀링

6. 포괄적인 보안 데이터베이스

패치된 커널 버전 데이터베이스:

  • Ubuntu (6.8.0-60, 5.15.0-130, 5.4.0-216)
  • RHEL / CentOS / AlmaLinux / Rocky (5.14.0-570)
  • Fedora (6.14.4, 6.13.12, 6.12.25)
  • Debian (6.1.137, 5.10.235)
  • Arch Linux (6.14.4)
  • Amazon Linux (6.1.134, 5.10.235, 4.14.353)
  • SUSE / openSUSE (6.4.0-18, 5.14.21-150600.24)

7. 포괄적인 보고서

  • 색상 구분된 스캔 결과 테이블(Rich 형식)
  • 요약 통계(총 호스트, 취약, 패치됨 등)
  • 다른 시스템과의 통합을 위한 JSON 결과 내보내기
  • 호스트별 오류 추적 및 재시도 횟수

요구 사항

시스템 요구 사항

  • Python: 3.7 이상
  • OS: Linux/Mac/Windows(WSL 포함)
  • 네트워크: 대상 호스트에 대한 SSH 접근
  • SSH 키 또는 비밀번호: 인증용

Python 종속성

paramiko>=3.0.0    # SSH library
rich>=13.0.0       # Beautiful terminal UI

설치

1. 저장소 복제

git clone https://github.com/gagaltotal/cve-2026-31431-copy-fail.git
cd cve-2026-31431-copy-fail

2. 가상 환경 설치

python3 -m venv .venv
source .venv/bin/activate

3. 종속성 설치

pip install -r requirements.txt

또는 수동 설치:

pip install paramiko>=3.0.0 rich>=13.0.0

4. 설치 확인

python3 copyfail_scanner.py --help

사용 방법

기본 구문

# SSH 키로 서브넷 스캔
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH_TO_KEY>

# 특정 호스트 여러 개 스캔
python3 copyfail_scanner.py --hosts <IP1>,<IP2>,<IP3> --user <USERNAME> [--password <PASSWORD>]

# 스캔 + 자동 패치
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH> --patch

# 스캔 + 임시 완화 조치
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH> --mitigate

명령 옵션

옵션설명예시
--subnet대상 서브넷 CIDR(--hosts와 상호 배타적)--subnet 192.168.1.0/24
--hosts쉼표로 구분된 IP 목록(--subnet과 상호 배타적)--hosts 192.168.1.10,192.168.1.20
--userSSH 사용자 이름 (필수)--user root
--passwordSSH 비밀번호(선택 사항, 키가 없을 때 사용)--password secret123
--keySSH 개인 키 경로--key ~/.ssh/id_rsa
--portSSH 포트(기본값: 22)--port 2222
--threads병렬 스레드 수(기본값: 30)--threads 50
--patch취약한 호스트에서 자동 커널 업그레이드--patch
--reboot패치 후 자동 재부팅(--patch와 함께 사용)--patch --reboot
--mitigate임시 완화 조치 적용(algif_aead 비활성화)--mitigate
--output스캔 결과를 JSON 파일로 내보내기--output hasil.json
--yes패치/완화 전 확인 프롬프트 건너뛰기--yes

사용 예시

예시 1: 기본 서브넷 스캔(읽기 전용)

python3 copyfail_scanner.py \
  --subnet 192.168.1.0/24 \
  --user ubuntu \
  --key ~/.ssh/id_rsa

출력: 스캔 결과 테이블 및 요약 표시


예시 2: 비밀번호로 특정 호스트 스캔

python3 copyfail_scanner.py \
  --hosts 10.0.1.5,10.0.1.6,10.0.1.7 \
  --user admin \
  --password my_password123

예시 3: 스캔 + 임시 완화 조치

python3 copyfail_scanner.py \
  --subnet 172.16.0.0/16 \
  --user root \
  --key ~/.ssh/id_rsa \
  --mitigate

작업: 모든 호스트 스캔 후 취약한 호스트에서 algif_aead 모듈 비활성화(확인 요청)


예시 4: 스캔 + 자동 패치(재부팅 없음)

python3 copyfail_scanner.py \
  --subnet 192.168.0.0/24 \
  --user ubuntu \
  --key ~/.ssh/id_rsa \
  --patch

작업: 커널 업그레이드, 하지만 자동 재부팅은 하지 않음(수동 재부팅 필요)


예시 5: 스캔 + 패치 + 자동 재부팅

python3 copyfail_scanner.py \
  --subnet 10.10.0.0/24 \
  --user root \
  --key ~/.ssh/id_rsa \
  --patch \
  --reboot \
  --yes

작업: 스캔, 커널 패치, 자동 재부팅, 확인 건너뛰기


예시 6: 스캔 + JSON 결과 내보내기

python3 copyfail_scanner.py \
  --subnet 192.168.1.0/24 \
  --user sysadmin \
  --key ~/.ssh/id_rsa \
  --output scan_results_$(date +%Y%m%d_%H%M%S).json

출력: 터미널 테이블 + 파일에 JSON 결과 저장


예시 7: 다중 스레드 및 사용자 지정 포트로 스캔

python3 copyfail_scanner.py \
  --subnet 10.0.0.0/25 \
  --user ubuntu \
  --key ~/.ssh/id_rsa \
  --port 2222 \
  --threads 50

출력 및 결과

터미널 출력(테이블)

스캔 출력 예시:

┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━┓
┃ IP            ┃ Hostname       ┃ Distro        ┃ Kernel        ┃ algif   ┃ Status  ┃ Action  ┃ Notes   ┃
┣━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━┫
┃ 192.168.1.10  ┃ web-01         ┃ Ubuntu 22.04  ┃ 6.8.0-60      ┃ LOADED  ┃ ✓ AMAN  ┃ -       ┃ Patched ┃
┃ 192.168.1.11  ┃ web-02         ┃ Ubuntu 20.04  ┃ 5.4.0-200     ┃ NOT_LDD ┃ ✗ RENTA ┃ Patched ┃ -       ┃
┃ 192.168.1.12  ┃ db-01          ┃ RHEL 8.9      ┃ 5.14.0-560    ┃ LOADED  ┃ ? TIDAK ┃ -       ┃ Distro  ┃
┗━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━━┛

요약:
  스캔된 총 호스트: 12
  접근 가능(SSH): 11
  오프라인: 1
  취약: 2
  이미 패치됨: 8
  상태 알 수 없음: 1

출력 열

  • IP: 대상 IP 주소
  • Hostname: hostname -f 결과의 호스트 이름
  • Distro: Linux 배포판(/etc/os-release에서)
  • Kernel: 커널 버전(uname -r에서)
  • algif_aead: 모듈 상태(LOADED/not loaded/blocked)
  • Status: ✓ 안전 / ✗ 취약 / ? 알 수 없음
  • Patch/Mitigasi: 적용된 작업(커널 업그레이드/완화 조치)
  • Keterangan: 오류 또는 추가 정보

JSON 내보내기 형식

{
  "cve": "CVE-2026-31431",
  "scan_time": "2026-05-08T15:30:45.123456",
  "results": [
    {
      "ip": "192.168.1.10",
      "ssh_reachable": true,
      "auth_ok": true,
      "hostname": "web-01",
      "distro": "Ubuntu 22.04 LTS",
      "os_id": "ubuntu",
      "kernel_version": "6.8.0-60-generic",
      "algif_loaded": true,
      "modprobe_blocked": false,
      "patched": true,
      "patch_applied": false,
      "mitigation_applied": false,
      "retry_count": 0,
      "error": ""
    }
  ]
}

지원 배포판

스캐너는 다음 배포판을 자동으로 감지합니다:

도구 다운로드