
♥로 직접 (및 자동으로) 제작된 워드리스트
♥로 수작업 (및 자동화)으로 제작된 워드리스트
무작위 비밀번호 샘플:``` 1qaz2wsx | panel197111 | @bcd1234 | Root!22020 1q2w3e4r5t6y | catalog841@@ | Zaq@#$m,. | 1Qazxsw@222 qwerty12345 | Asdzxc129191 | testguest | User@#$12@ password123 | qwerty!@12345 | Guest1120 | ?99998888? 123321! | Cloud03%% | rootj | administrator8,4 p$ssw0rd | abcdefghi27 | administrator/test | test3#@121 qweqweqwe | !1q2w3e4rt|59 | .321Root | (ASDQWE1) admin! | *12shellshell12#$ | root,32020 | Qwas07 pass! | 00!integration | Viper | guest3422! 98989898 | zimbra@273 | Midnight1 | zxccvbnm321
Requirements:
* Python 3.9, 3.10
* `hashcat`
* `hashcat-utils`
* GNU tools: `cat`, `awk`, `comm`, `sort`, `uniq`
* `wordz` (pypi)
Recommended:
* `lzop`
* `hashcat` compiled from the master branch
## 사용법
### 미리 컴파일된 목록
미리 컴파일된 목록은 다음 위치에 있습니다:
brutas/wordlists/dns
brutas/wordlists/http
brutas/wordlists/passwords
brutas/wordlists/ports
brutas/wordlists/usernames
**참고: Github 제한으로 인해 "적당한" 크기의 목록만 미리 컴파일되어 있습니다.** 전체 세트를 생성하려면 빌드 스크립트(`compile.sh` 및 `huge.sh`)를 직접 실행해야 합니다.
이 저장소에 포함되지 않은 목록들은 여기에 호스팅되며 가끔 업데이트됩니다:
- [brutas-passwords-5-l.zip](https://drive.proton.me/urls/5ESDFTKQVC#pTokh18bYyfN) [2025/08/01 업데이트] (71,621,639줄 - 압축 해제 시 722MB)
- [brutas-passwords-6-xl.zip](https://drive.proton.me/urls/Z586VGA1BW#k2mwYceQIJYA) [2025/08/01 업데이트] (347,450,342줄 - 압축 해제 시 4.1GB)
다음 목록들은 직접 컴파일해야 합니다:
- brutas-passwords-7-xxl (18,008,399,243줄 - 압축 해제 시 237GB)
- brutas-http-paths-all.zip (261,481,011줄 - 압축 해제 시 5.3GB)
### 키워드 소스
키워드 소스 파일은 `src/keywords`에 있습니다. 특히 언어별 사전을 구축할 때 유용할 수 있습니다.
#### 대역폭 절약
최신 파일만 가져오려는 경우("지정된 커밋 수로 기록이 잘린 얕은 클론"):```
% git clone --depth 1 https://github.com/tasooshi/brutas.git
먼저 wordz (워드리스트 자동화 프레임워크)를 설치해야 합니다:```
% pip install wordz
빌드 프로세스는 자동화되어 있으며 프로젝트 루트에 있는 스크립트가 처리합니다. 임시 파일을 그대로 두고 싶을 수도 있는데, 때로는 그 자체로 잘 작동하므로 전체 공격을 실행할 필요가 없습니다. 다음 명령은 `1-6-*.txt` 형식의 비밀번호와 서브도메인 및 기본 HTTP 목록을 생성합니다:```
~/brutas:% ./compile.sh
나머지(7-xxl.txt 및 모든 HTTP 경로)에 대해 실행:```
~/brutas:% ./huge.sh -t /media/user/ExternalDrive/tmp
#### 사용자 정의 단어 목록
##### 모든 기능 포함
`src/keywords/custom.txt`의 키워드를 기반으로 사용자 정의 단어 목록(`wordlists/passwords/custom.txt`)을 생성하려면 다음을 사용하십시오:```
~/brutas:% ./custom.sh -t /media/user/ExternalDrive/tmp -o /media/users/AnotherDrive/new
사용자 정의 목록을 구축하려면 많은 리소스가 필요하다는 점을 인지하십시오. 어떤 결과를 기대할 수 있는지 확인하고 싶다면, 단일 단어 love를 기반으로 한 예제 wordlists/passwords/custom.txt를 살펴보십시오 (현재 150MB 이상의 데이터와 12,591,796개의 고유 항목을 생성하며, 무작위로 선택된 10,000줄로 축소됨). 아래는 작은 샘플입니다:
---LoveLove1!1 | 2022_|ove!23
love!5`80 | love!5|79
55!lov607 | 10v34444@#
Love'10#61 | 22`Lovelove))
Loveo2020@ | Love&01,78
love$1$64 | ()LoveLove+^+
love9/79 | 2021$lov3111+++
l0ve123212 | Love+91979
|ove66612345! | Loveasd,.
Love^0259 | l)v#22$#@!
```
##### 특정 대상에 최적화됨
또한 대상 조직의 이름에 최적화된 사용자 지정 단어 목록을 생성할 수 있습니다(이름을 `src/keywords/custom.txt`에 넣습니다). 다음 클래스를 사용하세요:```
~/brutas:% wordz -p src/classes/passwords.py::OrganizationNamePasswords
```
제품명, 브랜드 등에도 잘 작동하는 클래스의 또 다른 버전이 있습니다:```
~/brutas:% wordz -p src/classes/passwords.py::OrganizationKeywordsPasswords
```
#### 특정 언어 사용
두 가지 옵션이 있습니다:
1) `lang-int-*.txt` 파일을 덮어쓰거나;
2) `src/keywords/custom.txt`에 키워드를 복사한 `CustomPasswords` 클래스를 사용합니다.
첫 번째 방법은 특정 언어를 기본 언어로 사용하도록 빌드하지만, 다른 언어도 계속 사용됩니다(`wordlists/passwords/6-xl.txt` 목록에서 시작). 두 번째 방법은 일반 빌드 과정을 무시하고 `src/keywords/custom.txt` 파일에 전체 규칙 세트를 적용합니다. 이 경우 엄청난 출력이 발생할 수 있습니다.
#### 일반적인 문제
##### Kali Linux hashcat-utils
해시캣 유틸리티는 `/usr/lib/hashcat-utils/`에 있으며, 이 `$PATH`를 `.zshrc`에 추가해야 합니다.
##### OpenCL 부족 / 비GPU 설정
GPU를 사용하지 않는 경우(`No OpenCL, HIP or CUDA compatible platform found`), 다음이 도움이 될 수 있습니다:```
# apt install pocl-opencl-icd
```
## 소개
이 비밀번호 목록이 다른 이유는 무엇인가요? 여기서 목표는 가능한 모든 비밀번호를 크랙하는 것이 아니라, 네트워크 내에서 전진하는 것입니다. 그리고 크랙이 정말로 필요하다면 더 큰 목록을 사용할 수 있습니다. 그러나 여기서 가정은 합리적인 시간 범위와 제한된 리소스(예: VM, 탈취된 호스트 등)로 수행된다는 것입니다.
비밀번호 목록에 대한 간략한 소개:
* 비밀번호 수는 연속된 파일 번호에 따라 증가합니다;
* 비밀번호는 확률에 따라 정렬되지 않고, 대신 확률 그룹으로 결합됩니다;
* 각 연속 파일은 이전 세트의 비밀번호를 **포함하지 않습니다**.
### `wordlists/passwords`
* `{1-7}-*.txt` - 국제 키워드, hashcat 규칙 및 문자열 부분을 사용하여 **생성된** 비밀번호
* `classics.txt` - 역할(test, admin), 단어(password, secret) 또는 "재미있는" 것(예: `letmein` 또는 `trustno1`)에 기반한 일반적인 관리자 비밀번호, 패턴 없음
* `patterns.txt` - 대문자, 숫자, 반복 등과 결합된 근접 키 조합 또는 간단한 구문(예: `abcd`)
* `top.txt` - 유출에서 발견된 가장 인기 있는 사용자 비밀번호로 구성된 목록, 근접 키나 더 정교한 조합을 포함하지 않음
* `generic-1k.txt` - `1-xxs.txt`와 다른 세트에서 수동으로 선택한 비밀번호
* `unique.txt` - 독립적인 비밀번호로 사용할 수 있을 만큼 복잡하고 추가 문자와 거의 혼합되지 않는 비밀번호, 일반적으로 대중문화 또는 스포츠 관련(예: `apollo13`, `9inchnails`, `ronaldo7`)
* `numbers.txt` - 비밀번호에 사용되는 숫자의 작은 목록(예: 날짜, 수학 상수)
* `custom.txt` - 여기에 사용자 정의 키워드를 넣고 `custom.sh` 또는 `custom-mini.sh`를 사용하여 워드리스트를 생성하면 결과는 `wordlists/passwords/custom{-mini}.txt`에 있습니다.
### 기타 목록
* `wordlists/dns` - 일반적인 규칙, 자체 호스팅 소프트웨어 등으로 구성된 호스트 발견을 위한 상당히 합리적인 목록
* `wordlists/http/paths` - 웹 애플리케이션 퍼징에 유용한 HTTP 경로/매개변수, `HttpWords` *)의 하위 클래스로 생성됨
* `wordlists/http/files/extensions` - HTTP 발견에 유용한 파일 확장자
* `wordlists/http/files/biggquery/github` - 예를 들어 IIS 짧은 이름 열거에 도움이 될 수 있는 파일 이름, 파일 크기를 줄이기 위해 명백한 고유 항목, 시리즈 및 쓰레기(MD5 해시 등)를 상당히 정리함, 최대 40자, 더 큰 파일의 경우 최소 2회 이상 출현 필요(고유 항목이 의미 있는 경우는 제외, `class.csv` 참조), 그 외에는 그대로
* `wordlists/ports` - 내부 네트워크 스캔 및 공개 서비스 모두에 사용되는 포트의 개인 선택, nmap의 상위 목록 대신 사용
* `wordlists/usernames` - 가장 일반적인 사용자 이름, 짧은 버전과 긴 버전
*) 이 목록의 일부 쌍은 중복되거나 의미가 없습니다(예: `postsPosts` 또는 `syndication-editor`, 하지만 알 수 없습니다...) 이는 예상된 절충입니다. 일반적으로 전송되는 요청 수를 고려할 때 현재로서는 허용 가능합니다.
### 권장사항
결합된 목록 `{1,2,3,4}-*.txt`는 일반 목적 및 합리적으로 빠른 비밀번호 크랙에 가장 효과적인 것으로 보입니다. 가장 작은 것부터 시작하여 점진적으로 나아가세요. `{1,2}-*.txt` 목록은 대규모 네트워크에서 빠른 성과를 위해 설계되었습니다. 정말 최소한의 것이 필요하다면 `1-xxs.txt`만 사용해 보세요 - 상위 100개에 대한 제 개인적인 의견입니다.
그러나 직접 실험하고 대상에 따라 이 세트를 재구축하는 것을 권장합니다. 모국어 키워드도 포함시킬 수 있습니다. 예를 들어, 파일 또는 도메인 이름과 `numbers.txt`를 결합하면 암호화된 아카이브 및 무선 네트워크에서 상당히 효과적인 것으로 나타났습니다. 모든 것과 마찬가지로 약간의 사회 공학이 지역의 '비밀번호 정책' 접근 방식을 이해하는 데 유용합니다.
### 통계
두 가지 범주(소셜 네트워크 및 기술 포럼)의 유출 데이터를 기반으로 한 현재(2022/05/20) 효율성은 다음과 같습니다:
| | 비밀번호 수 | 소셜 네트워크 (~1M) | 기술 포럼 (~450K) |
| ------------------------------------ | --------------- | --------------------- | ------------------------ |
| brutas-passwords-1-xxs.txt (*) | 100 | 2.16% | 2.75% |
| brutas-passwords-2-xs.txt (*) | 6,549 | 3.05% | 3.63% |
| brutas-passwords-3-s.txt (*) | 24,805 | 3.99% | 4.32% |
| brutas-passwords-4-m.txt | 922,624 | 3.59% | 5.05% |
| brutas-passwords-5-l.txt | 33,278,126 | 13.91% | 17.10% |
| brutas-passwords-6-xl.txt | 162,843,765 | 6.93% | 9.24% |
| brutas-passwords-7-xxl.txt | 10,051,549,134 | 26.08% | 34.21% |
| 온라인 무차별 대입에 적합 (*) | | 9.20% (99,197) | 10.70% (48,885) |
| 오프라인 크랙에 사용 | | 50.51% (544,617) | 65.64% (299,699) |
| 합계 | | 59.71% (643,891) | 76.34% (348,757) |
따라서 기본 세 가지 목록(~31K 비밀번호)은 이렇게 상당히 다양하고 큰 샘플에서 평균 10%의 성공률을 제공합니다. 제 경험상, 상위 100개로 비밀번호 스프레이는 흥미로운 결과를 보장합니다. 그리고 대부분의 경우 몇 개의 계정만으로도 거의 모든 네트워크에서 전진할 수 있습니다.
### `rockyou.txt`와 비교는 어떻습니까?
```