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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/amibhai/credential-attacks-toolkit
ReconnaissancePassword AttacksPenetration TestingRed Teaming
GitHubamibhai/credential-attacks-toolkit

credential-attacks-toolkit

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

저장소 보기
1924일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CredAttack — 자격 증명 공격 툴킷

Release Python Protocols Tests License

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


목차

  • CredAttack이란 무엇인가?
  • 공격 모드
  • 지원 프로토콜
  • 아키텍처
  • 빠른 시작
  • 설치
  • CLI 참조
  • 비밀번호 변형 엔진
  • 기본 자격 증명 데이터베이스
  • 프록시 순환
  • HTML 보고서
  • 구성 및 환경 변수
  • Docker
  • 테스트
  • 프로젝트 구조
  • 기여

CredAttack이란 무엇인가?

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

단계CredAttack 기능
정찰기본 자격 증명 DB(200개 이상 쌍), 스마트 사용자 이름 기반 패턴 생성
공격17개 프로토콜 공격기, 6가지 공격 모드, 다중 대상 캠페인

공격 모드


지원 프로토콜


아키텍처

root@kitploit:~
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 테스트 (단위 + 프로토콜 목)

빠른 시작

root@kitploit:~
# 클론 및 설정
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 (권장)

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

옵션 B — Makefile 단축 명령

root@kitploit:~
make install      # 핵심 의존성
make install-dev  # + pytest-cov, ruff, mypy

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

root@kitploit:~
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

root@kitploit:~
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 참조

전역 옵션

root@kitploit:~
python credattack.py [OPTIONS] COMMAND [ARGS]...

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

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

하위 명령

root@kitploit:~
# 프로토콜별 (각각 전용 공격기에 매핑)
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

비밀번호 변형 엔진

credattack/core/mutator.py의 PasswordMutator는 조합 가능한 전략을 지원합니다:

root@kitploit:~
from credattack.core.mutator import PasswordMutator

m = PasswordMutator(max_mutations=5000)

# 모든 전략 결합
for pw in m.smart_generate("john.doe", company="ACME"):
    print(pw)

# 계절별 패턴만
for pw in m.seasonal_patterns(company="Contoso"):
    print(pw)

기본 자격 증명 데이터베이스

credattack/data/default_creds.json에는 다음에 대한 200개 이상의 실제 기본 자격 증명 쌍이 포함되어 있습니다:

Cisco · F5 · Juniper · Palo Alto · VMware · Jenkins · GitLab · Tomcat · WordPress · MySQL · MSSQL · Redis · MongoDB · PostgreSQL · Elasticsearch · RabbitMQ · Splunk · Nagios · Zabbix · pfSense · MikroTik · Huawei · HP iLO · Dell iDRAC · IPMI

root@kitploit:~
# 서비스의 모든 기본값 보기
python credattack.py defaults -t HOST --protocol mysql --dry-run

# 대상에 대해 실행
python credattack.py defaults -t 10.0.0.1 --protocol ssh

프록시 순환

프록시 파일 전달 (줄당 하나의 프록시, host:port 형식):

root@kitploit:~
# proxies.txt
192.168.1.10:1080
192.168.1.11:1080
socks5://10.0.0.5:9050
root@kitploit:~
python credattack.py ssh -t TARGET -u admin -P passes.txt --proxy-file proxies.txt

ProxyRotator는 시작 시 상태 확인을 수행하고 실패율 임계값을 초과하는 프록시를 강등합니다. 죽은 프록시는 자동으로 제외됩니다.


HTML 보고서

드라이런이 아닌 모든 공격 후 ./output/에 HTML 보고서가 자동 생성됩니다:

  • 통계 카드: 총 시도 횟수, 성공률, 소요 시간, 초당 시도 횟수
  • 발견된 자격 증명 테이블: 호스트 · 프로토콜 · 사용자 이름 · 비밀번호 (클립보드 복사)
  • 다크 테마 Jinja2 템플릿
root@kitploit:~
# 실행 후 열기
start output/report_*.html      # Windows
open  output/report_*.html      # macOS

구성 및 환경 변수

credattack/core/config.py의 모든 설정은 CREDATTACK_* 환경 변수를 통해 재정의할 수 있습니다:

root@kitploit:~
export CREDATTACK_THREADS=20
export CREDATTACK_TIMEOUT=3.0
export CREDATTACK_DELAY=1.0
export CREDATTACK_JITTER=0.5
export CREDATTACK_LOCKOUT_THRESHOLD=3
export CREDATTACK_VERBOSITY=2

또는 표준 플래그(--threads, --timeout 등)로 CLI 수준에서 설정할 수 있습니다.


Docker

root@kitploit:~
# 이미지 빌드
docker build -t credattack -f docker/Dockerfile .

# Docker Compose로 실행
cd docker
docker compose run credattack ssh -t 192.168.1.100 -u admin -P /app/wordlists/common_passwords.txt

# 환경 변수로 구성 설정
docker run --rm \
  -e CREDATTACK_THREADS=20 \
  -e CREDATTACK_TIMEOUT=3 \
  -v $(pwd)/output:/app/output \
  credattack defaults -t 10.0.0.1 --protocol mysql

테스트

root@kitploit:~
# 모든 테스트 실행
pytest -q

# 커버리지 포함
pytest --cov=credattack --cov-report=term-missing -q

# Makefile 단축 명령
make test-cov

현재 스위트: 50개 이상의 테스트 포함:


단어 목록

⚠️ 번들된 wordlists/ 파일은 최소한의 스모크 테스트 스텁입니다. 실제 평가에는 자체 목록을 사용하세요.

권장 소스

root@kitploit:~
# 외부 단어 목록 사용
python credattack.py ssh -t TARGET -u admin -P /opt/wordlists/rockyou.txt

프로젝트 구조

root@kitploit:~
credential-attacks-toolkit/
├── credattack.py               # 얇은 셸 -> credattack.cli:app (소스 체크아웃 사용)
├── pyproject.toml              # PEP 517/518 빌드 및 도구 구성
├── requirements.txt            # 런타임 의존성
├── Makefile                    # 개발자 단축 명령
├── VERSION                     # 버전의 단일 소스
├── CHANGELOG.md
├── SECURITY.md
├── .github/
│   └── workflows/ci.yml        # GitHub Actions: 린트 + 테스트 매트릭스 + mypy
├── docker/
│   ├── Dockerfile
│   └── docker-compose.yml
├── credattack/
│   ├── cli.py                  # CLI (Typer) — 패키징됨, 콘솔 스크립트 지원
│   ├── core/
│   │   ├── config.py           # Pydantic v2 Settings
│   │   ├── engine.py           # AttackEngine (ThreadPoolExecutor)
│   │   ├── lockout.py          # LockoutDetector (슬라이딩 윈도우)
│   │   ├── proxy.py            # ProxyRotator
│   │   ├── mutator.py          # PasswordMutator
│   │   ├── result.py           # AttemptResult, SessionReport
│   │   ├── report.py           # HTML 보고서 생성기
│   │   └── logger.py           # Rich 로거 + JSONL 기록기
│   ├── protocols/              # 18개 ProtocolAttacker 구현
│   │   └── base.py             # 추상 ProtocolAttacker
│   └── data/
│       ├── default_creds.json  # 200개 이상의 공급업체 기본값
│       ├── smart_patterns.json # 140개 이상의 엔터프라이즈 템플릿
│       └── wordlists/          # 서비스별 시작 목록
├── attacks/                    # 독립 실행형 단일 파일 도구 (credattack/ 이전;
│   └── *.py                    # 아직 이식되지 않은 스크립트용 유지: JWT 크래킹,
│                                # WAF 감지, 타이밍 기반 사용자 열거)
├── utils/
│   └── credential_utils.py     # attacks/ 스크립트용 공유 헬퍼
├── tests/
│   ├── conftest.py             # 공유 픽스처
│   ├── test_lockout.py
│   ├── test_mutator.py
│   ├── test_mutator_extended.py
│   ├── test_proxy.py
│   ├── test_result.py
│   ├── test_protocols_ssh.py
│   ├── test_protocols_ftp.py
│   └── test_protocols_http.py
├── wordlists/                  # 최소 스모크 테스트 스텁
└── output/                     # 생성된 로그 및 보고서 (git 제외)

공격 성공률 (참고용)


기여

CONTRIBUTING.md를 참조하세요.
대규모 PR을 제출하기 전에 이슈를 먼저 열어주세요.
모든 기여는 SECURITY.md의 윤리적 사용 정책을 준수해야 합니다.


책임 있게 사용하세요. 윤리적으로 테스트하세요. 합법적으로 유지하세요.

도구 다운로드
회피
잠금 감지, 구성 가능한 속도 제한, 지터, 프록시 순환
보고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 챌린지-응답
플래그약어기본값설명
--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연결 없이 쌍 계산
전략메서드출력 예시
Leet 스피크leet_speak(word)p@ssw0rd, p455w0rd
대문자화capitalise_variants(word)PASSWORD, Password, pAsSwOrD
접미사suffix_append(word)password123, password@2025
접두사prefix_append(word)!password, mypassword
키보드 워크keyboard_walk(word)qassword (a→q)
사용자 이름 패턴username_patterns(user, company)john123, Doe1!, ACME2024!
계절별 (v1.1)seasonal_patterns(company)Summer2024!, Winter25
특수 문자 래핑 (v1.1)special_char_wrap(word)!@Password, Password!@
결합combine(word, strategies)위 항목을 모두 연결
스마트 (올인원)smart_generate(user, company)중복 제거, 상한 스트림
영역테스트
잠금 감지기 (슬라이딩 윈도우, 스레드 안전)test_lockout.py
비밀번호 변형기 전략test_mutator.py
새 변형기 전략 (계절별, 특수 문자)test_mutator_extended.py
프록시 순환기 (상태 확인, 강등)test_proxy.py
Result 및 SessionReport 데이터클래스test_result.py
SSH 프로토콜 목test_protocols_ssh.py
FTP 프로토콜 목test_protocols_ftp.py
HTTP Basic 및 Digest 목test_protocols_http.py
단어 목록크기가장 적합한 용도
rockyou.txt~14 M일반 사전
SecLists/Passwords/다양함프로토콜별
kaonashi.txt~64 M고급 커버리지
OSINT 기반가변표적 공격
비밀번호 유형사전스마트 모드스프레이 (일반)
4자~90%~95%~60%
6자~65%~75%~25%
8자 혼합~15%~25%~5%
10자 이상 복합<5%<5%<1%