BruteLoops
매우 간단한 라이브러리로, 인증 인터페이스에 대한 효율적인 비밀번호 무차별 대입 공격의 기초 로직을 제공합니다.
문서
문서는 여기에서 찾을 수 있습니다.
이전 예제 모듈을 찾고 있다면...
BFG를 참조하세요.
예제들은 코드 및 패키징 문제를 최소화하기 위해 별도의 프로젝트로 분리되었습니다. 데이터베이스 및 공격 기능도 하나의 바이너리로 통합되었습니다.
주요 기능
- 프로토콜에 구애받지 않음 - Python으로 콜백을 작성할 수 있으면 BruteLoops를 사용하여 공격할 수 있습니다.
- SQLite 지원 - 모든 사용자 이름, 비밀번호 및 자격 증명이 SQLite 데이터베이스에 유지됩니다.
- BruteLoops에는 입력 데이터베이스를 생성 및 관리하는 동반 유틸리티(
dbmanager.py)가 포함되어 있습니다.
- 스프레이 및 스터핑 공격을 하나의 도구로 - BruteLoops는 동일한 공격 로직과 데이터베이스에서 스프레이 및 스터핑 공격을 모두 지원합니다. 즉, 단일 데이터베이스를 구성하고 무거운 재구성과 혼란 없이 공격을 실행할 수 있습니다.
- 추측 스케줄링 - SQLite 데이터베이스의 각 사용자 이름은 각 인증 이벤트 후에 업데이트되는 타임스탬프로 구성됩니다. 이는 각 인증 이벤트를 정밀하게 스케줄링하여 계정 잠금 가능성을 크게 줄일 수 있음을 의미합니다.
- 잠금 이벤트 방지를 위한 세밀한 구성 가능성 - Microsoft의 잠금 정책을 BruteLoops의 매개변수를 사용하여 1:1로 매칭할 수 있습니다:
auth_threshold = 잠금 임계값
max_auth_jitter = 잠금 관찰 창
- 각 인증 이벤트와 관련된 타임스탬프는 BruteLoops의 SQLite 데이터베이스에 추적됩니다. 각 사용자 이름은 고유한 타임스탬프를 받아 인증 이벤트가 매우 제어되도록 합니다.
- 공격 재개 - 공격 중 위치를 잃거나 계정이 잠길 걱정 없이 공격을 중지하고 재개할 수 있습니다.
- 멀티프로세싱 - 멀티프로세싱을 사용하여 공격 속도를 높이세요! 병렬 추측 횟수를 구성함으로써 BruteLoops에 병렬로 추측할 사용자 이름 수를 효과적으로 알려줍니다.
- 로깅 - 각 인증 이벤트는 선택적으로 디스크에 기록될 수 있습니다. 이 정보는 레드팀 활동 중에 고객에게 기록된 이벤트에 매핑될 수 있는 상세한 공격 타임라인을 제공하여 유용할 수 있습니다.
- 차단기(Breakers) - 차단기는 회로 차단기처럼 동작합니다. 공격 루프를 종료하기 전에 x번 예외가 발생할 수 있습니다. 또한 일정 시간 후에 재설정될 수 있으므로 "6번의 ConnectionErrors 발생 후 종료"와 같은 구성을 허용합니다.
의존성
BruteLoops는 __Python 3.7 이상__과 SQLAlchemy 1.3.0이 필요합니다. 후자는 pip와 이 저장소의 requirements.txt 파일을 통해 얻을 수 있습니다: python3.7 -m pip install -r requirements.txt
설치
git clone https://github.com/arch4ngel/bruteloops
cd bruteloops
python3 -m pip install -r requirements.txt