Kali Linux에서 Hydra로 웹 기반 로그인 페이지 크랙

Crack Web Based Login Page With Hydra Kali Linux



암호는 기술적으로 리소스를 인증하거나 액세스 권한을 얻는 데 사용되는 비밀 문자열로 정의됩니다. 이는 비밀로 유지되어야 하며 해당 리소스에 액세스할 수 없는 다른 사람에게 숨겨져 있어야 합니다. 암호는 컴퓨팅 초기부터 컴퓨터에서 사용되었습니다. 최초의 공유 시스템 중 하나는 1961년에 도입되었습니다. 사용자 암호를 요청하는 로그인 명령이 있었습니다. PASSWORD를 입력한 후 시스템은 가능한 경우 인쇄 메커니즘을 꺼서 사용자가 개인 정보를 보호하면서 비밀번호를 입력할 수 있습니다.

암호의 강도는 길이, 복잡성 및 예측 불가능성의 함수입니다. 추측하거나 깨는 것에 저항하는 효과를 측정합니다. 반면 약한 비밀번호는 개인/기업 이메일, 금융 정보, 비즈니스 정보, 신용 카드 등과 같은 민감한 데이터를 추측하고 액세스하는 데 필요한 시간을 단축시킵니다.







다양한 공격 방식의 강점에 따라 비밀번호가 취약할 수 있는 방법은 여러 가지가 있습니다. 이러한 종류의 자격 증명 공격 중 가장 널리 사용되는 것은 무차별 대입입니다. 응용 프로그램이나 해킹 도구에서 사용하는 암호 또는 데이터 암호화와 같은 암호화된 데이터를 추측, 해독 시도와 같은 시행착오 방식입니다.



Hydra는 수많은 공격 프로토콜을 지원하는 가장 빠른 네트워크 로그온 크래커입니다. 매우 빠르고 유연하며 새로운 모듈을 쉽게 추가할 수 있습니다. 이 도구를 사용하면 연구원과 보안 컨설턴트가 원격으로 시스템에 무단으로 액세스하는 것이 얼마나 쉬운지 보여줄 수 있습니다. Hydra는 van Hauser가 작성했으며 David Maciejak이 추가로 지원했습니다. 최신 업데이트에서 hydra 개발은 https://github.com/vanhauser-thc/thc-hydra의 공개 github 저장소로 이동되었습니다.



Hydra는 Linux, Windows/Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX, QNX/Blackberry에서 컴파일하도록 테스트되었으며 특별 OpenSSL 라이선스 확장을 통해 GPLv3에서 사용할 수 있습니다.





THC Hydra는 Cisco AAA, Cisco auth, Cisco enable, CVS, FTP, HTTP(S)-FORM-GET, HTTP(S)-FORM-POST, HTTP(S)-GET, HTTP(S)-HEAD 프로토콜을 지원합니다. , HTTP-프록시, ICQ, IMAP, IRC, LDAP, MS-SQL, MySQL, NNTP, Oracle 리스너, Oracle SID, PC-Anywhere, PC-NFS, POP3, PostgreSQL, RDP, Rexec, Rlogin, Rsh, SIP, SMB (NT), SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH(v1 및 v2), SSHKEY, Subversion, Teamspeak(TS2), Telnet, VMware-Auth, VNC 및 XMPP.

HYDRA와 다른 크래킹 도구 비교

hydra 외에도 많은 로그인 크래커 도구가 있지만 hydra처럼 방대한 프로토콜 목록과 병렬 로그인 크래커 지원을 지원하는 도구는 없습니다. 아래 표는 medusa 및 ncrack에 대한 기능, 서비스 및 속도 비교 결과를 보여줍니다.



특징

특징 히드라 해파리 엔크랙
특허 AGPLv3 GPLv2 GPLv2 + Nmap 용어
IPv6 지원 아니요 아니요
그래픽 사용자 인터페이스 아니요
국제화 지원(RFC 4013) 아니요 아니요
HTTP 프록시 지원 아니요
SOCKS 프록시 지원 아니요 아니요
지원되는 프로토콜 51 22 7

서비스

크랙 웹 기반 로그인 페이지

서비스 세부 히드라 해파리 엔크랙
아담-6500 아니요 아니요
AFP 아니요
별표 아니요 아니요
시스코 비밀번호 아니요 아니요
시스코 활성화 아니요 아니요
CVS 아니요
불새 아니요 아니요
FTP
SSL 지원 SSL을 통한 AUTH TLS 및 FTP SSL을 통한 AUTH TLS 및 FTP 아니요
HTTP 행동 양식) GET, HEAD, POST 가져 오기 가져 오기
기본 인증
HTTP 양식 행동 양식) 가져오기, 게시 가져오기, 게시 아니요
SSL 지원 HTTPS HTTPS 아니요
HTTP 프록시 기본 인증 아니요 아니요
다이제스트-MD5 인증 아니요 아니요
NTLM 인증 아니요 아니요
SSL 지원 HTTPS 아니요 아니요
HTTP 프록시 URL 열거 아니요 아니요
ICQ v5
1
아니요 아니요
IMAP 로그인 지원 아니요
인증 로그인 지원 아니요 아니요
AUTH PLAIN 지원 아니요
인증 CRAM-MD5 지원 아니요 아니요
인증 CRAM-SHA1 지원 아니요 아니요
인증 CRAM-SHA256 지원 아니요 아니요
AUTH DIGEST-MD5 지원 아니요 아니요
인증 NTLM 지원 아니요
인증 SCRAM-SHA1 지원 아니요 아니요
SSL 지원 IMAPS 및 STARTTLS IMAPS 및 STARTTLS 아니요
IRC 일반 서버 비밀번호 아니요 아니요
OPER 모드 비밀번호 아니요 아니요
LDAP v2, 단순 지원 아니요 아니요
v3, 단순 지원 아니요 아니요
v3, 인증 CRAM-MD5 지원 아니요 아니요
AUTH DIGEST-MD5 지원
인증 NTLM 지원
인증 SCRAM-SHA1 지원
SSL 지원 IMAPS 및 STARTTLS IMAPS 및 STARTTLS
IRC 일반 서버 비밀번호
OPER 모드 비밀번호
LDAP v2, 단순 지원
v3, 단순 지원
v3, 인증 CRAM-MD5 지원
v3, 인증 다이제스트-MD5 지원
MS-SQL
MySQL v3.x
v4.x
v5.x
NCP
NNTP 사용자 지원
인증 로그인 지원
AUTH PLAIN 지원
인증 CRAM-MD5 지원
AUTH DIGEST-MD5 지원
인증 NTLM 지원
SSL 지원 SSL을 통한 STARTTLS 및 NNTP
신탁 데이터 베이스
TNS 리스너
SID 열거
PC-NFS
pcAnywhere 기본 인증
OS 기반 인증(MS)
팝3 사용자 지원
APOP 지원
인증 로그인 지원
AUTH PLAIN 지원
인증 CRAM-MD5 지원
인증 CRAM-SHA1 지원
인증 CRAM-SHA256 지원
AUTH DIGEST-MD5 지원
인증 NTLM 지원
SSL 지원 POP3S 및 STARTTLS POP3S 및 STARTTLS POP3S
PostgreSQL
별표
RDP 윈도우 워크스테이션
윈도우 서버
도메인 인증
레디스 아니요
렉젝
알로그인
RPCAP 아니요
RSH
RTSP 아니요
SAP R / 3
지멘스 S7-300
한모금
SSL 지원 SSL을 통한 SIP
중소기업 NetBIOS 모드 아니요
W2K 기본 모드
해시 모드 아니요
일반 텍스트 인증
LMv1 인증
LMv2 인증
NTLMv1 인증
NTLMv2 인증
SMTP 인증 로그인 지원
AUTH PLAIN 지원
인증 CRAM-MD5 지원
AUTH DIGEST-MD5 지원
인증 NTLM 지원
SSL 지원 SMTPS 및 STARTTLS SMTPS 및 STARTTLS
SMTP 사용자 열거 VRFY 명령
EXPN cmd
cmd로 RCPT
SNMP v1
v2c
v3 (MD5/SHA1 인증만 해당)
양말 v5, 비밀번호 인증
SSH v1
v2
SSH 키 v1, v2
서브버전(SVN)
팀스피크 TS2
텔넷
XMPP 인증 로그인 지원
AUTH PLAIN 지원
인증 CRAM-MD5 지원
AUTH DIGEST-MD5 지원
인증 SCRAM-SHA1 지원
VMware 인증 데몬 v1.00 / v1.10
SSL 지원
VNC RFB 3.x 암호 지원
RFB 3.x 사용자+암호 지원 (UltraVNC만 해당)
RFB 4.x 암호 지원
RFB 4.x 사용자+암호 지원 (UltraVNC만 해당)

속도 비교

속도(초) 히드라 해파리 엔크랙
1 태스크 / FTP 모듈 11.93 12.97 18.01
4 작업 / FTP 모듈 4.20 5.24 9.01
16 작업 / FTP 모듈 2.44 2.71 12.01
1 작업 / SSH v2 모듈 32.56 33.84 45.02
4 작업 / SSH v2 모듈 10.95 고장난 놓친
16 작업 / SSH v2 모듈 5.14 고장난 놓친

이상 히드라에 대한 간략한 소개였습니다. 이제 설치로 넘어갑니다.

히드라 설치

Hydra는 kali Linux에 사전 설치되어 있지만 다른 운영 체제를 사용하는 경우 시스템에 컴파일하여 설치할 수 있습니다. 현재 hydra는 다양한 플랫폼에서 지원합니다.

  • 모든 UNIX 플랫폼(Linux, *bsd, Solaris 등)
  • MacOS(기본적으로 BSD 클론)
  • Cygwin이 설치된 Windows(IPv4 및 IPv6 모두)
  • Linux, MacOS 또는 QNX 기반 모바일 시스템(예: Android, iPhone, Blackberry 10, Zaurus, iPaq)

hydra를 다운로드, 구성, 컴파일 및 설치하려면 터미널에 다음을 입력하십시오.

git clone https://github.com/vanhauser-thc/thc-hydra.git cd thc-hydra ./configure make make install 

Ubuntu/Debian이 있는 경우 몇 가지 종속성 라이브러리가 필요합니다.

apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev 

저장소에서 해당 라이브러리를 찾을 수 없으면 수동으로 다운로드하여 설치해야 합니다.

히드라 사용법

축하합니다. 이제 시스템에 hydra를 설치하는 데 성공했습니다. 실제로 Hydra에는 GUI-gtk와 내가 가장 좋아하는 CLI 버전의 두 가지 버전이 있습니다. 또한 hydra에는 hydra-wizard라는 CLI 가이드 버전도 있습니다. 터미널에 모든 명령이나 인수를 수동으로 입력하는 대신 단계별로 안내됩니다. hydra를 실행하려면 터미널에서 다음을 입력하세요.

CLI의 경우:

hydra

CLI 마법사의 경우:

hydra-wizard

GUI의 경우:

xhydra

'hydra'를 입력하면 다음과 같은 도움말 명령이 표시됩니다.

 [email protected] :~# hydra -h Hydra v8.6 (c)2017 by van Hauser/THC & David Maciejak - for legal purposes only Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]] Options: -R restore a previous aborted/crashed session -S perform an SSL connect -s PORT if the service is on a different default port, define it here -l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE -p PASS or -P FILE try password PASS, or load several passwords from FILE -x MIN:MAX:CHARSET password bruteforce generation, type '-x -h' to get help -e nsr try 'n' null password, 's' login as pass and/or 'r' reversed login -u loop around users, not passwords (effective! implied with -x) -C FILE colon separated 'login:pass' format, instead of -L/-P options -M FILE list of servers to be attacked in parallel, one entry per line -o FILE write found login/password pairs to FILE instead of stdout -f / -F exit when a login/pass pair is found (-M: -f per host, -F global) -t TASKS run TASKS number of connects in parallel (per host, default: 16) -w / -W TIME waittime for responses (32s) / between connects per thread -4 / -6 prefer IPv4 (default) or IPv6 addresses -v / -V / -d verbose mode / show login+pass for each attempt / debug mode -U service module usage details server the target server (use either this OR the -M option) service the service to crack (see below for supported protocols) OPT some service modules support additional input (-U for module help) Supported services: asterisk afp cisco cisco-enable cvs firebird ftp ftps http[s]-head http[s]-post-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-crammd5][s] mssql mysql ncp nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres rdp rexec rlogin rsh s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp Hydra is a tool to guess/crack valid login/password pairs - usage only allowed for legal purposes. This tool is licensed under AGPL v3.0. The newest version is always available at http://www.thc.org/thc-hydra These services were not compiled in: sapr3 oracle. Use HYDRA_PROXY_HTTP or HYDRA_PROXY - and if needed HYDRA_PROXY_AUTH - environment for a proxy setup. E.g.: % export HYDRA_PROXY=socks5://127.0.0.1:9150 (or socks4:// or connect://) % export HYDRA_PROXY_HTTP=http://proxy:8080 % export HYDRA_PROXY_AUTH=user:pass Examples: hydra -l user -P passlist.txt ftp://192.168.0.1 hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN hydra -C defaults.txt -6 pop3s://[fe80::2c:31ff:fe12:ac11]:143/TLS:DIGEST-MD5 hydra -l admin -p password ftp://[192.168.0.0/24]/ hydra -L logins.txt -P pws.txt -M targets.txt ssh

hydra를 사용한 Bruteforce 웹 기반 로그인

Hydra는 앞서 언급한 바와 같이 일부 무차별 대입 서비스를 지원합니다. 그 중 하나는 소셜 미디어 로그인 양식, 사용자 뱅킹 로그인 양식, 라우터 웹 기반 로그인 등과 같은 웹 기반 로그인을 무차별 대입하는 데 사용됩니다. http[s]-get-form 이 요청을 처리합니다. 이 튜토리얼에서는 취약한 웹 로그인을 무차별 공격하는 방법을 보여 드리겠습니다. hydra를 실행하기 전에 다음과 같은 몇 가지 필요한 인수를 알아야 합니다.

  • 표적 : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
  • 로그인 사용자 이름 : 관리자 (확실하지 않은 경우 무차별 대입)
  • 비밀번호 목록 : 가능한 암호가 포함된 사전 파일 목록의 위치입니다.
  • 양식 매개변수 : 일반적으로 데이터 변조 또는 프록시를 사용하여 요청 매개변수 형식을 얻습니다. 그러나 여기에서는 파이어폭스 기반의 iceweasel 네트워크 개발자 도구 모음을 사용하고 있습니다.
  • 서비스 모듈 : http-post-form
Help for module http-post-form: ============================================================================ Module http-post-form requires the page and the parameters for the web form. By default this module is configured to follow a maximum of 5 redirections in a row. It always gathers a new cookie from the same URL without variables The parameters take three ':' separated values, plus optional values. (Note: if you need a colon in the option string as value, escape it with ':', but do not escape a '' with '\'.) Syntax: [url]:[form parameters]:[condition string][:(optional)[:(optional)] First is the page on the server to GET or POST to (URL). Second is the POST/GET variables (taken from either the browser, proxy, etc. with usernames and passwords being replaced in the '^USER^' and '^PASS^' placeholders (FORM PARAMETERS) Third is the string that it checks for an *invalid* login (by default) Invalid condition login check can be preceded by 'F=', successful condition login check must be preceded by 'S='. This is where most people get it wrong. You have to check the webapp what a failed string looks like and put it in this parameter! The following parameters are optional: C=/page/uri to define a different page to gather initial cookies from (h|H)=My-Hdr: foo to send a user defined HTTP header with each request ^USER^ and ^PASS^ can also be put into these headers! Note: 'h' will add the user-defined header at the end regardless it's already being sent by Hydra or not. 'H' will replace the value of that header if it exists, by the one supplied by the user, or add the header at the end Note that if you are going to put colons (:) in your headers you should escape them with a backslash (). All colons that are not option separators should be escaped (see the examples above and below). You can specify a header without escaping the colons, but that way you will not be able to put colons in the header value itself, as they will be interpreted by hydra as option separators.

브라우저 iceweasel/firefox를 사용하여 게시물 매개변수 얻기

파이어폭스 브라우저에서 키 ' CTRL + Shift + Q '. 그런 다음 웹 로그인 페이지를 엽니다.http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, 네트워크 개발자 탭에 일부 텍스트가 나타납니다. 어떤 파일이 우리에게 전송되는지 알려줍니다. 아직 데이터를 POST하지 않았으므로 메서드가 모두 GET임을 확인하십시오.

사후 양식 매개변수를 얻으려면 사용자 이름 및/또는 암호 양식에 무엇이든 입력하십시오. 네트워크 개발자 탭에서 새로운 POST 방식을 확인할 수 있습니다. 해당 줄을 두 번 클릭하고 헤더 탭에서 오른쪽의 편집 및 다시 보내기 버튼을 클릭합니다. 요청 본문에서 다음과 같은 마지막 줄을 복사합니다. tfUName = asu & tfUPass = raimu . NS tfU이름 그리고 tfU패스 우리에게 필요한 매개변수입니다. 아래와 같이:

Kali linux에는 많은 단어 목록이 있습니다. 적절한 단어 목록을 선택하거나 rockyou.txt 위치를 사용하십시오. /usr/share/단어 목록/ 아래와 같이:

자, 이제 우리는 필요한 모든 인수를 얻었고 히드라를 실행할 준비가 되었습니다. 다음은 명령 패턴입니다.

hydra -l -P [/code] Finally, based on information we have gathered, our commands ahould look something like this: hydra -l admin -P /usr/share/wordlists/rockyou.txt testasp.vulnweb.com http-post-form '/Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout' -vV -f

명령을 분해해 보겠습니다.

  • NS : 사용자 이름 계정을 포함하는 단어입니다. -L을 사용하여 파일에서 가능한 사용자 이름 목록을 참조하십시오.
  • NS : 가능한 암호의 파일 목록입니다. 추측하는 대신 문자 그대로 한 단어의 암호를 사용하려면 -p를 사용하십시오.
  • testapp.vunlwebapp.com : 호스트 이름 또는 대상입니다.
  • http-post-form : 우리가 사용하는 서비스 모듈입니다.
  • /Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=로그아웃 = 필요한 3개의 매개변수, 구문은 다음과 같습니다.
    {페이지 URL}:{게시물 본문 양식 매개변수 요청}:S={로그인 성공 후 페이지에서 무엇이든 찾기}
  • V = 상세 모드
  • V = 로그인 표시: 각 시도에 대해 통과
  • NS = 로그인:비밀번호 쌍이 발견되면 프로그램 종료

이제 hydra가 우리를 위해 암호를 해독하도록 합시다. 사전 공격이기 때문에 시간이 필요합니다. login:password 쌍을 찾는 데 성공하면 hydra가 즉시 작업을 종료하고 유효한 자격 증명을 표시합니다.

이 튜토리얼에서 우리는 hydra를 사용하여 웹 기반 로그온을 무차별 대입하는 방법을 배웠기 때문에 hydra가 할 수 있는 일이 너무 많습니다. ssh, ftp, telnet, VNC, 프록시 등과 같은 다른 프로토콜에 대해 hydra를 사용할 수도 있습니다.