
hydra
H Y D R A
(c) 2001-2023 by van Hauser / THC
<[email protected]> https://github.com/vanhauser-thc/thc-hydra
Many modules were written by David (dot) Maciejak @ gmail (dot) com
BFG code by Jan Dlabal <[email protected]>
Licensed under AGPLv3 (see LICENSE file)
Please do not use in military or secret service organizations,
or for illegal purposes.
(This is the wish of the author and non-binding. Many people working
in these organizations do not care for laws and ethics anyway.
You are not one of the "good" ones if you ignore this.)
NOTE: No, this is not meant to be a markdown doc! old school!
Hydra는 최신 GitHub 상태에서 Docker를 통해 직접 다운로드할 수 있습니다:``` docker pull vanhauser/hydra
소개
------------
모든 비밀번호 보안 연구에서 보여주듯, 가장 큰 보안 허점 중 첫 번째는 비밀번호입니다.
이 도구는 연구자와 보안 컨설턴트가 원격에서 시스템에 무단 접근하는 것이 얼마나 쉬운지 보여줄 수 있도록 하는 개념 증명 코드입니다.
이 도구는 법적 목적으로만 사용하십시오!
이미 여러 로그인 해커 도구들이 있지만, 이들 중 어떤 것도 둘 이상의 프로토콜을 공격하거나 병렬 연결을 지원하지 않습니다.
Linux, Windows/Cygwin, Solaris, FreeBSD/OpenBSD, QNX (Blackberry 10), MacOS에서 깔끔하게 컴파일되는 것이 테스트되었습니다.
현재 이 도구는 다음 프로토콜을 지원합니다:
Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP,
HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-POST, HTTP-PROXY,
HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTPS-POST,
HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MEMCACHED, MONGODB, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener,
Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, Radmin, RDP, Rexec, Rlogin,
Rsh, RTSP, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5,
SSH (v1 and v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth,
VNC and XMPP.
하지만 새 서비스를 위한 모듈 엔진은 매우 쉽기 때문에, 더 많은 서비스가 지원되기까지 오래 걸리지 않을 것입니다.
모듈 작성, 개선 또는 수정에 도움을 주시면 매우 감사하겠습니다!! :-)
획득 방법
------------
Hydra의 최신 릴리스/프로덕션 버전은 항상 프로젝트 페이지 https://github.com/vanhauser-thc/thc-hydra/releases에서 찾을 수 있습니다.
현재 개발 상태에 관심이 있다면, 공개 개발 저장소는 GitHub에 있습니다:
svn co https://github.com/vanhauser-thc/thc-hydra
or
git clone https://github.com/vanhauser-thc/thc-hydra
개발 버전은 사용자 책임 하에 사용하십시오. 새로운 기능과 새로운 버그가 포함되어 있습니다. 작동하지 않을 수 있습니다!
또는 (더 쉽게) Docker 컨테이너로 가져올 수 있습니다:```
docker pull vanhauser/hydra
Hydra를 설정, 컴파일 및 설치하려면 다음을 입력하십시오:``` ./configure make make install
SSH 모듈을 사용하려면 시스템에 libssh (libssh2가 아닙니다!)를 설정해야 합니다. https://www.libssh.org 에서 받을 수 있으며, ssh v1 지원을 위해서는 cmake 명령줄에 "-DWITH_SSH1=On" 옵션을 추가해야 합니다.
중요: macOS에서 컴파일하는 경우 반드시 이렇게 해야 하며, Homebrew를 통해 libssh를 설치하지 마십시오.
Ubuntu/Debian을 사용하는 경우, 다음 명령으로 몇 가지 선택적 모듈에 필요한 추가 라이브러리를 설치할 수 있습니다 (일부는 배포판에서 사용할 수 없을 수도 있습니다):```
apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev \
libgtk-3-dev libmysqlclient-dev libpq-dev libsvn-dev \
firebird-dev libmemcached-dev libgpg-error-dev \
libgcrypt11-dev libgcrypt20-dev freetds-dev
이것은 Oracle, SAP R/3, NCP 및 Apple 파일링 프로토콜을 제외한 모든 선택적 모듈과 기능을 활성화합니다. 해당 항목은 공급업체 웹사이트에서 다운로드하여 설치해야 합니다.
다른 모든 Linux 배포판 및 BSD 기반 시스템의 경우, 시스템 소프트웨어 설치 프로그램을 사용하여 위 명령어와 유사한 이름의 라이브러리를 찾으십시오. 다른 모든 경우에는 모든 소스 라이브러리를 다운로드하여 수동으로 컴파일해야 합니다.
hydra만 입력하면 사용 가능한 중요한 옵션에 대한 간단한 요약을 볼 수 있습니다.
./hydra -h를 입력하면 모든 명령줄 옵션을 확인할 수 있습니다.
로그인/비밀번호 파일은 포함되어 있지 않습니다. 직접 생성하십시오. 그러나 기본 비밀번호 목록은 제공됩니다. "dpl4hydra.sh"를 사용하여 목록을 생성하십시오.
Linux 사용자를 위해 GTK GUI가 제공됩니다. ./xhydra를 실행해 보십시오.
명령줄 사용법은 다음과 같습니다: 하나의 대상 또는 네트워크를 공격할 때는 새로운 "://" 스타일을 사용할 수 있습니다: hydra [some command line options] PROTOCOL://TARGET:PORT/MODULE-OPTIONS 이전 모드는 이러한 경우에도 사용할 수 있으며, 추가로 대상을 텍스트 파일에서 지정하려면 다음을 사용해야 합니다:``` hydra [some command line options] [-s PORT] TARGET PROTOCOL [MODULE-OPTIONS]
명령줄 옵션을 통해 시도할 로그인, 비밀번호, SSL 사용 여부, 공격에 사용할 병렬 작업 수 등을 지정합니다.
PROTOCOL은 공격에 사용할 프로토콜입니다(예: ftp, SMTP, http-get 등 다양한 프로토콜 사용 가능).
TARGET은 공격할 대상입니다.
MODULE-OPTIONS는 PROTOCOL 모듈별로 특수한 선택적 값입니다.
첫 번째 - 대상을 선택하세요
공격할 대상을 지정하는 방법은 세 가지가 있습니다:
1. 명령줄에 단일 대상: IP 또는 DNS 주소를 입력합니다.
2. 명령줄에 네트워크 범위: "192.168.0.0/24"와 같은 CIDR 표기법을 사용합니다.
3. 텍스트 파일의 호스트 목록: 한 줄에 하나의 항목(아래 참조).
두 번째 - 프로토콜을 선택하세요
telnet은 올바른 로그인 시도와 실패를 감지하는 데 신뢰할 수 없으므로 사용하지 마십시오.
포트 스캐너를 사용하여 대상에서 어떤 프로토콜이 활성화되어 있는지 확인하십시오.
세 번째 - 모듈에 선택적 매개변수가 있는지 확인하세요
hydra -U PROTOCOL
예: hydra -U smtp
네 번째 - 대상 포트
선택 사항입니다. 포트를 제공하지 않으면 PROTOCOL의 기본 공통 포트가 사용됩니다.
SSL 사용을 지정하면("-S" 옵션) 기본적으로 SSL 공통 포트가 사용됩니다.
"://" 표기법을 사용하는 경우 IPv6 주소 또는 CIDR("192.168.0.0/24") 표기법을 공격 대상으로 지정하려면 "[" "]" 대괄호를 사용해야 합니다:
hydra [일부 명령줄 옵션] ftp://[192.168.0.0/24]/
hydra [일부 명령줄 옵션] -6 smtps://[2001:db8::1]/NTLM
Hydra가 수행하는 모든 작업은 IPv4 전용입니다!
IPv6 주소를 공격하려면 "-6" 명령줄 옵션을 추가해야 합니다.
모든 공격은 IPv6 전용으로 수행됩니다!
텍스트 파일을 통해 대상을 제공하려면 :// 표기법을 사용할 수 없습니다. 이전 스타일을 사용하여 프로토콜(및 모듈 옵션)만 제공하십시오:
hydra [일부 명령줄 옵션] -M targets.txt ftp
파일의 각 대상 항목 뒤에 ":<port>"를 추가하여 각 대상에 대한 포트를 제공할 수도 있습니다. 예:```
foo.bar.com
target.com:21
unusual.port.com:2121
default.used.here.com
127.0.0.1
127.0.0.1:2121
IPv6 대상을 연결하려면 -6 옵션을 제공해야 하며
파일에서 IPv6 주소를 반드시 괄호 안에 넣어야(!) 합니다. 예시:```
foo.bar.com
target.com:21
[fe80::1%eth0]
[2001::1]
[2002::2]:https://raw.githubusercontent.com/vanhauser-thc/thc-hydra/master/8080
[2a01:24a:133:0:00:123:ff:1a]
로그인 및 비밀번호
--------------------
공격 시 로그인과 비밀번호에 대해 다양한 옵션이 있습니다.
-l로 로그인을, -p로 비밀번호를 지정하면 Hydra에 이것이 유일한 로그인 및/또는 시도할 비밀번호임을 알립니다.
-L로 로그인 목록을, -P로 비밀번호 목록을 지정하면 텍스트 파일을 제공합니다.
예:```
hydra -l admin -p password ftp://localhost/
hydra -L default_logins.txt -p test ftp://localhost/
hydra -l admin -P common_passwords.txt ftp://localhost/
hydra -L logins.txt -P passwords.txt ftp://localhost/
또한 "-e" 옵션을 통해 로그인 기반 암호를 시도해볼 수 있습니다. "-e" 옵션에는 세 가지 매개변수가 있습니다:``` s - try the login as password n - try an empty password r - reverse the login and try it as a password
예를 들어, 로그인으로 "try"를 시도하고 비밀번호로 "empty password"를 시도하려면 명령줄에 "-e sn"을 지정합니다.
하지만 -p/-P 외에 비밀번호를 시도하는 두 가지 모드가 더 있습니다:
로그인과 비밀번호 쌍이 콜론으로 구분된 텍스트 파일을 사용할 수 있습니다. 예:```
admin:password
test:test
foo:bar
이것은 Hydra에 포함된 dpl4hydra.sh 기본 계정 파일 생성기에 의해 생성되는 일반적인 기본 계정 스타일 목록입니다. 이러한 텍스트 파일을 -C 옵션과 함께 사용합니다. 이 모드에서는 -l/-L/-p/-P 옵션을 사용할 수 없습니다(그러나 -e nsr은 사용할 수 있습니다). 예시:``` hydra -C default_accounts.txt ftp://localhost/
그리고 마지막으로, -x 옵션을 사용한 무차별 대입 모드가 있습니다 (-p/-P/-C와 함께 사용할 수 없습니다):```
-x minimum_length:maximum_length:charset
문자셋 정의에서 a는 소문자, A는 대문자,
1은 숫자를 나타내며, 그 외에는 직접 제공한 값이 그대로 표현됩니다.
예제:
-x 1:3:a generate passwords from length 1 to 3 with all lowercase letters -x 2:5:/ generate passwords from length 2 to 5 containing only slashes -x 5:8:A1 generate passwords from length 5 to 8 with uppercase and numbers -x '3:3:aA1&~#\ "'<{([-|_^@)]=}>$%*?./§,;:!`' -v generates length 3 passwords with all 95 characters, and verbose.
예시:```
hydra -l ftp -x 3:3:a ftp://localhost/
세 번째 명령줄 매개변수(TARGET SERVICE OPTIONAL) 또는 -m 명령줄 옵션을 통해 모듈에 옵션 하나를 전달할 수 있습니다. 많은 모듈이 이 기능을 사용하며, 일부 모듈은 이를 필요로 합니다!
모듈의 특별 옵션을 보려면 다음을 입력하세요:
hydra -U
예:
./hydra -U http-post-form
특별 옵션은 -m 매개변수, 세 번째 명령줄 옵션 또는 service://target/option 형식으로 전달할 수 있습니다.
예시(모두 동일합니다):``` ./hydra -l test -p test -m PLAIN 127.0.0.1 imap ./hydra -l test -p test 127.0.0.1 imap PLAIN ./hydra -l test -p test imap://127.0.0.1/PLAIN
중단/충돌된 세션 복원
------------------------------------
Hydra가 Control-C로 중단되거나, 종료되거나, 충돌하면
"hydra.restore" 파일이 남게 되며, 이 파일에는 세션을 복원하는 데 필요한 모든 정보가 포함되어 있습니다.
이 세션 파일은 5분마다 기록됩니다.
참고: hydra.restore 파일은 다른 플랫폼으로 복사할 수 없습니다 (예:
리틀 엔디언에서 빅 엔디언으로, 또는 Solaris에서 AIX로).