정보보안 스터디 - 12주차 1일 - 스니핑, 스푸핑, 플러딩 공격
☞ 공격과정과 대응방안
☞ arp spoofing
arpspoof -i eth1 -t 192.168.20.200 -r 192.168.20.201
arp 응답을 계속 보냅니다. 타겟1, 2의 arp 테이블에 등록됩니다.
타겟1가 타겟2 telnet,ftp,http 등 서버로 접속하면 암호화가 안되었기 때문에
Wireshark 패킷에 잡히며 내용 확인이 가능합니다.
타겟1, 2의 arp 테이블을 확인합니다.
ettercap을 이용할 수도 있습니다.
대응방안
스위치에서 Dynamic ARP Inspection 기능을 사용합니다.
☞ dns spoofing
ettercap을 이용한 dns spoofing
보통 KT dns로 설정했다면 구글의 ip가 뭔지 물어서
kt DNS에서 구글 ip를 받아옵니다.
공격자가 웹서버를 열어 구글로 접속했을 때 공격자의 IP로 접속하도록 합니다.
wget로 구글을 크롤링하는 작업을 미리해놓습니다.
vi /etc/ettercap/etter.dns 에
역방향까지 설정해줘야 오류가 생기지 않습니다.
arp spoofing을 켜줘야합니다.
플러그인을 들어가 dns spoof을 체크하면 작동합니다.
nslookup www.google.com > KT에서 받아오지만 공격자IP 주소로 응답보냅니다.
구글로 들어가보면 판별하기 어려운 피싱사이트가 올라와 있습니다.
(메일을 활용해) 사이트 피싱공격이 가능합니다. 네트워크 측에서 변조이기 때문에 더 판별하기 까다롭습니다.
☞ Flooding attack
공통사항
wireshark & 타겟의 시스템에서 캡쳐를 시작합니다. |
gnome-system-monitor & 을 열어 리소스 확인합니다. |
공격 후, 캡쳐된 패킷을 확인합니다. |
CPU, 네트워크, 메모리의 사용량이 100%가 되는 것을 확인합니다. |
ICMP flooding
hping3 -I eth1 -1 192.168.20.200 --flood -a 1.2.3.4 |
대응방안
ICMP echo를 차단합니다.
패킷의 송수신양을 조절합니다.
ICMP land attack
자기 자신에게 핑을 보내기 때문에 요청, 응답 모두 받게 됩니다.
hping3 -I eth1 -1 192.168.20.200 --flood -a 192.168.20.200 |
하지만 오류인지 패킷을 확인해보면 응답은 찍히지 않습니다.
대응방안
출발지와 목적지의 IP주소가 같은 패킷을 차단합니다.
ICMP smurf
브로드캐스트 주소로 icmp 요청을 보내면
20번대 주소들(예를들어 20.1~30)이 보내온 주소로 모두 응답을 줍니다.
피해자는 공격자가 한번 ping을 했는데도 30번의 응답을 받게 되는 거죠. 일종의 DDOS 공격입니다.
hping3 -I eth1 -1 192.168.20.255 --flood -a 192.168.20.200 |
하지만 오류인지 패킷을 확인해보면 요청만 가고 응답은 찍히지 않습니다.
대응방안
ICMP 차단, 서브넷 브로드캐스트 전송을 차단합니다.
tcp syn flooding
hping3 -I eth1 --syn 192.168.20.200 --flood -a 1.2.3.4 -p 80 |
hping3 -I eth1 --syn 192.168.20.200 --flood --rand-source -p 80 http에 대해서 syn 플러딩공격합니다. |
요청: syn, 응답: syn,ack 패킷을 확인합니다.
netstat -nt 로 syn을 요청은 받았지만 ack대기 중으로 쌓인 것을 확인합니다.
대응방안
방화벽에서 syn 패킷의 송수신양을 조절합니다.
라우터/방화벽에서 TCP Intercept 기능을 사용합니다.
udp flooding
(포트 dns: 53으로 하겠습니다. 포트지정을 안하면 모든 포트로 다 보내게 됩니다.)
hping3 -I eth1 --udp 192.168.20.200 --flood -a 1.2.3.4 -p 53 |
hping3 -I eth1 --udp 192.168.20.200 --flood --rand-source -p 53 |
요청: dns, 응답: dns 패킷을 확인합니다.
대응방안
방화벽에서 udp 패킷의 송수신양을 조절합니다.
플러딩 공격의 출발지 IP 주소를 파악하여 차단합니다.
ping of death
데이터 용량을 크게 해서 보냅니다.
ICMP이지만, IP fragments로 나눠져서 보냅니다.
64000바이트 > MTU 1500바이트로 나눠져서 보내집니다.
플러딩 방식 또는 land attack 방식과 연계하면 훨씬 더 큰 부하를 일으킵니다.
hping3 -I eth1 -1 192.168.20.200 --flood -a 1.2.3.4 -d 64000 |
hping3 -I eth1 -1 192.168.20.200 --flood --rand-source -d 64000 |
icmp or ip.flags.mf 로 more fragement를 확인합니다.
요청, 응답 모두 데이터가 담겨져 있습니다.
대응방안
ICMP차단, ICMP 요청의 용량을 제한합니다.
msfconsole을 이용한 syn flooding 공격
msfconsole |
search 모듈명(synflood) |
use synflood~ |
show options |
set interface eth1 set rhosts 192.168.20.0/24(로 설정하면 전부로 설정됩니다.) set rports 80 show options |
유니캐스트 방식이라서 외부 사이트에도 요청을 보낼 수 있습니다.
실제로 하면 부하걸리기 때문에 안됩니다.