R's Hacking Daily Log

Hydra 본문

TryHackMe/Walkthroughs

Hydra

hanhxx 2023. 1. 20. 22:40

▶ Task 1 : hydra introduction

[hydra]

: brute force online password cracking program

: list를 사용해 인증 서비스에 brute force함으로써 password를 해킹하는 tool

 

 

[available protocol]

 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, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, 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.

 

 

[install]

kali linux : 기본적으로 hydra가 설치되어있어서 따로 설치할 필요 없음.

(설치해야하는 경우 참고 : https://github.com/vanhauser-thc/thc-hydra)

 

 

 

▶ Task 2 : Using Hydra

[hydra command]

FTP ) 

hydra -l user -P passlist.txt ftp://MACHINE_IP

 

SSH )

hydra -l <username> -P <full path to pass> MACHINE_IP -t 4 ssh

 

-l option : single user name

-L option : user name list

-p option : single password

-P option : password list 

-t option : threads (ssh에서는 -t 값을 4로 추천)

 

: user, password 값은 고정값으로 사용할 땐 소문자, 리스트로 여러 값을 대입할 땐 대문자 옵션을 사용한다.

: target IP address는 따로 옵션없이 입력하면 된다. 

 

 

post-web-form ) 

hydra -l <username> -P <wordlist> MACHINE_IP http-post-form "/:username=^USER^&password=^PASS^:F=incorrect" -V

: http에서 Get or Post가 많이 사용되는데, 위의 경우는 login같은 Post form을 사용하는 경우이다.

 

username = ^USER^ )

login 시 "^USER^"에 -l로 지정한 값이 할당된다. 

-l mario ":/username=mario"

 

password = ^password^ )

위와 비슷하게 "^PASS^"에 -P로 지정한 값이 할당된다. 

-P wordlist.txt txt 안에 있는 word가 차례대로 대입되면서 brute force가 실행된다. 

 

-V option ) 

Verborse를 의미하는 option으로, brute force의 모든 output을 출력하라는 의미이다.

 

 

 

[answer and question]

: 사이트의 "start machine"으로 머신을 실행한다. 

문제를 보면, 첫 번째 문제는 web password를, 두 번째 문제는 ssh password를 구하는 문제이다.

password를 구해서 최종적으로는 flag를 찾아내면 되는 것 같다. 

 

문제에서 알려주는 정보를 통해 계정의 username = "molly"라는 것을 알 수 있다.

머신을 실행하면 IP address와 남은 시간을 알려준다. 

해당 IP에 대해 brute force를 실행하면 될 듯하다. 

 

 

머신에서 terminal을 열면 tool, webshell, wordlists가 어디에 있는지 경로를 알려준다. 

다른 건 모르겠고 일단 wordlists의 경로를 알아보자. 

 

 

directory라고 하길래 열어봤더니 rockyou.txt 파일이 들어있다. 

기본적으로 제공되는 wordlist라고 생각하면 된다. 

그럼 해당 파일을 사용하여 hydra를 실행해보자.

 

 

사이트에서 간단히 알아본 명령어로는 실행 결과가 이상하게 나온다. 

login molly에 유효하다 나온 password가 16개...?

뭔가 이상하다 싶어서 IP address를 browser에 입력해봤다.

 

 

그랬더니, 웬 로그인 페이지가 나오는 걸 볼 수 있다. 

그래서 명령어에 단어 하나를 추가해봤다. 

 

 

원래 "/:username=~"로 시작한 명령어에 "login"을 추가했다.

 

"/:username=^USER^&password=^PASS^:F=incorrect" 

"/login:username=^USER^&password=^PASS^:F=incorrect" 

이렇게 되면 target IP로 입력한 주소 뒤에 /login이 붙기 때문에 

결국 login page에 username, password 값을 대입하면서 brute force를 실행하게 되는 것이다.  

 

 

-V option을 사용했기 때문에 어떤 값이 대입되었는지, 어디까지 진행되었는지 output이 출력되고 있다.

wordlist로 사용한 파일 안에 있는 단어들을 모두 대입해보면서 password로 일치하는 값이 나오면

다른 결과와는 다른 형식으로 결과를 출력해줘서 한 눈에 알아보기 쉽다.

 

 

login page에 알아낸 password로 로그인해보면, 백마 탄 왕자님(?)과 flag를 볼 수 있다! (OoO)

 

 

 

다음으로 ssh password를 찾아보자.

molly라는 login에 password는 모르니 wordlist를 지정해준다. 

10.10.177.46에 ssh protocol을 입력, 실행!

어렵지 않게, molly의 password를 찾아냈다. 

 

 

하지만 알아내야 하는 건 flag이기 때문에 이 정보를 사용해서 flag를 찾아야 한다. 

ssh로 IP address에 접속, 당연히 molly로 접속한다. 

password를 입력하는 line이 출력되면 "butterfly"를 입력하면 된다. 

(shell에서는 password를 보여주지 않기 키보드를 눌러도 출력되는 것은 없을 것, )

 

성공적으로 로그인!

파일이 있을까 싶어 리스트 시켰더니 flag2.txt라는 파일이 뜬다. 해당 파일에는 flag2가 저장되어있다!

 

 

찾은 flag를 각 answer란에 제출하면 끝!

'TryHackMe > Walkthroughs' 카테고리의 다른 글

What is Networking?  (0) 2023.02.04
Pentesting Fundamentals  (0) 2023.01.30
Introduction to Defensive Security  (0) 2023.01.26
Web Application Security  (0) 2023.01.23
Intro to Offensive Security  (0) 2023.01.20
Comments