본문 바로가기

Network Hacking

30일차] Brute Force Attack (Ditionary) Hydra vs MSF + TFTP

Brute Force Attack Tool

사전기반 Brute Force를 할 것이고  password.txt   << 무작위 대입 할 password.txt  ( 서버측의 비밀번호는 stake로 설정 후 실습 )

 

1. hydra
SSH, FTP, WEB 등의 다양한 네트워크 환경에서 무차별 대입 공격과 같은 공격툴을 제공  > > > > hydra-7.5-1.el6.x86_64.rpm   < < < <

※ 설치 방법

#> yum -y install epel-release
#> yum localinstall hydra-7.5-1.el6.x86_64.rpm

 

※ 실행

...(중간생략)

# 각각의 옵션은 다음을 뜻한다.

 - l  : 계정명

 - V : 진행과정 출력

 - f : 계정 및 패스워드 발견 시 종료

 - p : 패스워드

 

※ 위의 과정을 Wireshark로 캡쳐

hydra 패킷.pcapng    

# hydra의 한 세션의 과정을 캡쳐해보면 위와 같다.

# hydra와 같은경우는 ftp의 세션연결 제한을 피하기위해서 한 세션에서 brute force attack을 3~4번 시도를 하고 마지막에보면 RST 패킷을 보내서 세션을 비정상적으로 끊어버린다. (이러한 과정을 반복)

# hydra는 빠르게 brute force attack을 한다.

 

    
2. MSF (Metasploit Framework)
보얀 취약점 확인, 침투 테스트에 사용되는 공격툴 제공

 

1). 다운로드

  -  #> curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall

  -  #> chmod 755 msfinstall

  -  #> ./msfinstall

 

2). 실행

- msfconsole                                       

 

3). search ftp_login을 이용하여 모듈을 찾고 해당 옵션들을 show option을 통해 확인.

 

4). 필요한 옵션 설정 후 확인

 

5). run 을 통해 실행 후 결과 확인.

 

 

Brute force Attack 과정을 wireshark를 통해 확인해보기 msf툴 50회 미만.pcapng

# MSF의 한 패킷과정을 살펴보면 hydra와 다르게 RST Flag를 통해 세션을 끊지 않고 그냥 계속적으로 세션을 하나하나 보내는 식이다.

# 따라서 Hydra보다 매우 느리며, ftp 세션 최대 설정이 넘어가버리면 더 이상 Brute force attack이 불가능 하다.

# Brute force attack에서는 hydra가 더 좋은 것으로..

 

 


 

++ TFTP (Trivial FTP) ( UDP 68 PORT)

임의의 시스템이 원격시스템으로부터 부팅 코드를 다운로드할 때 사용하는 프로토콜. 기존 FTP는 TCP/IP 전체 프로토콜 스택, 2개의 채널(제어, 데이터), 디렉토리/파일 관리 지만 TFTP는 FTP 기능을 대폭 축소하여 경량화 한 것이다.

 

1) 서버 (NETWORK-V)

#> yum -y install tftp-server

#> vi /etc/xinetd.d/tftp       // disable = no (실행)

#> 13번의 경로에 파일을 업로드 or 다운로드 가능.

 

2). 클라이언트 (NETWORK-A)

#> yum -y install tftp

 

3). TFTP 메시지

WRQ : 읽기 요청, 인수 : 파일 이름과 모드

RRQ : 쓰기 요청, 인수 : 파일 이름과 모드

DATA : 클라이언트나 서버가 데이터 블록 전송

ACK : 클라이언트나 서버가 DATA에 대한 긍정 응답 전송

ERROR : 전송과정에서 오류가 발생했을 때

 

4). 실습

[Server]

#> service xinetd restart

#> cd /var/lib/tftpboot/

#> cp /etc/passwd ./                              // tftp 디렉터리에 passwd 파일 복사

 

[Client]

#> tftp 10.10.10.20                                // 인증을 요하지 않는다.

#> get passwd                                     // tftp 디렉터리 passwd 파일 가져오기.

 

※ 위의 과정을 wireshark로 확인하기  tftp 패킷확인.pcapng

# TFTP로 필터를 걸고 확인

# UDP통신이라 별다른 과정 없이 File: passwd를 Read Request 하는 것을 확인할 수 있다.

# 과정이 정말 간단 (경량화 한 것을 확인)

 

# no 62의 패킷 내용인데, 곧바로 데이터를 보내주는 것을 확인 할 수 있고 최대 512바이트로 데이터를 보내며 passwd는 900바이트 정도 되기 때문에 받았다는 요청이 오고 last로 한번 더 보내는 것을 확인 할 수 있다. 즉, 512바이트보다 작은 데이터 블록을 보내면 세션 해제한다.

 

(출처 : 목포해양대 해양컴퓨터공학과)