Showing posts with label arp spoofing. Show all posts
Showing posts with label arp spoofing. Show all posts

Monday, March 24, 2014

파밍으로 악용될 수 있는 DNS Spoofing 에 대해 알아보자.



 Client 에 의한 Domain Name 의 해석 요청이 있을시 
먼저 Hosts 화일을 확인하고, 없다면 DNS Cache 를 확인하게 된다.
Cache 에도 존재하지 않다면 설정된 DNS Server 에 Query 를 보낸다.
그렇게 해서 DNS Server 에서 Client 에게 전달하게 된다.

이 중간에 해커 P/C가 희생자의 Gateway 인척 Mac address 를 속이게 되면 
DNS Query 에대한 답을 Server 측에서 보내는것 처럼 속여 해커가 임의로 만든
사이트로 희생자가 접속하게 된다. 결국 파밍 사이트를 리얼사이트와 동일하게 만들면
파밍 사기에 속을 수 밖에 없게된다.
테스트를 위해 vmware 위에 2개의 xp(희생양과 공격자가 구성한 web server)
그리고 공격자는 BT5r3를 사용한다.
희생양 IP: 192.168.92.131, 공격자 IP 192.168.92.128

먼저 희생양이 되는 P.C 의 ARP Table 을 확인해보자



위와 같이 Gateway는 192.168.92.2 를 가르키고 MAC은 f7:14:99 임을 기억하자.

여기서 공격자가 내부 내트웍에 있으므로 ARP Spoofing 공격을 하게되면
공격자의 Mac 을 희생양의 Gateway 인척 속이게 된다.
arpspoof -i [interface] -t [target] [host]
이명령은 target 으로 현재 interface를 host가 가지는 mac 으로 인식되게끔 변조 시킨다.
그리고 다시 희생양의 arp table 을 확인하게 되면 

위와 같이 gateway의 물리적주소가 변조 된것을 확인할 수 있다.
이제는 외부로 나가는 data는 모두 gateway 를 거쳐야 하므로 공격자의 P/C를
거쳐서 나가게 된다는 것이다.
이렇게 되면 모든 data를 스니핑이 가능하지만 아직 해줘야 할 작업이 남았다.
공격자가 받은 data를 forwarding 시켜줘야 희생양 P.C에서 정상적으로 data를 
보낸것처럼 인식 될것이다. 이러한 forwarding 작업이 없으면 희생양 P/C 에선
internet 을 사용할 수 없게 될것이다. 말 그대로 해커 P.C에서 packet 을 먹어버리고 
만것이다.

forwarding 작업을 위해서 Backtrack에선 2가지 방법이 있다.
첫번째는
#echo 1 > /proc/sys/net/ipv4/ip_forward 
로 ip_forwarding값을 1(true)로 변경하는 방법과
두번째로
fragrouter -B1   이라는 명령으로 전달하는 방법이 있다.

forwarding 한후 
먼저 dnsspoofing 에 사용할 화일을 만들어 주자.
----------------------------------
#touch ./test.txt
10.10.10.10        www.bank.com
:wq!
----------------------------------
라인을 구분자로 여러줄 등록해도 무관하다.

위의 IP주소는 해커가 만들어 놓은 웹서버의 IP 주소를 넣으면 된다.
그리고 그 뒤에는 사용자가 접속하는 도메인네임인데 사용자가
www.bank.com 으로 접속하려 할 때 이를 catch 해서 해커가 10.10.10.10 이라는
주소로 redirecting 시켜 버린다. 결국 희생양 P/C 는 www.bank.com 과 동일하게
생성시켜 놓은 파밍사이트로 접근하게 되어 위험해 지는 것이다.

dnsspoofing 화일을 만들었다면 마지막으로
dnsspoof -i [interface] -f [화일명] 으로 dnsspoofing 을 시도해보자

희생양 P.C가 www.bank.com 으로 접을할 때 마다 변조된 query를 날렸다고
알려올 것이다.
이제 희생양 P.C에서 www.bank.com 으로 접속해보자.
필자는 www.bank.com 이 아닌 www.google.com 으로 했다.
그리고 webserver 는 따로 구성하지 않았으니, nslookup 으로 확인해보겠다.


위와 같이 10.10.10.10 이라는 IP 주소가 www.google.com 이라는 query 가왔다.
물론 해커가 변조한 query이다.
이제는 희생양 P.C가 www.google.com 으로 접속할 때 마다 해커가 구성해 놓은
파밍 webserver 10.10.10.10 으로 접속하게 된다.

이러한 LAN 환경에서의 DNS Spoofing 을 예방하기 위해선 arp table을 수동으로
구성해 gateway Mac 변조를 사전에 막는것이다.


































Friday, August 2, 2013

LAN 공격기법 중 ARP Spoofing 에 대해 알아보자.

 본 블로그는 지식 습득후 저장을 하는 공간입니다.
블로그 내의 게시글을 인터넷에서 악의적으로 사용할 경우 본인에게 책임이 있습니다.

 먼저 ARP Spoofing 공격을 하기 위해선 우선 전제조건이 필요하다.
ARP 는 mac address 를 사용하기 때문에 LAN 외부에 있는 네트웍은 통하질 않는다.

그래서 ARP Spoofing 을 시도하려면 공격자는 먼저 내부 네트웍으로 침투를 해야한다.
이때 내부에 Wifi 무선 공유기가 있다면 wireless Hacking 기법등으로 내부를 침투할 수
있겠지만 이건 논외로 넘어가기로 한다.


 <ARP (Address Resolution Protocol) 은 무엇인가?>

IP 주소를 변환시켜 주는 표준 프로토콜로써 내부 네트웍에서 통신을 한다고 했을때
ARP Broadcast로 어느 시스템이 특정 IP를 사용하는지 물어보고, 해당 IP를 가진
시스템이 응답을 해주면 source pc에서 target pc로 mac address 를 기반으로
data를 전송해 주는 것이다.

즉, ARP Protocol 은 외부로는 나갈수 없으며, 내부에서 여러 시스템의 mac address를
broadcast를 통해 알아내게 되고, 이를 통해 arp table 이라는 라우터의 메모리영역에
각 시스템의 IP와 mac address 를 match 시켜 기록하게된다.
기록된 arp table 을 바탕으로 외부에서 자료 요청이 있을때 요청된 ip를 기준으로
mac address를 찾게되고 해당되는 mac address 로 전송이 되는 것이다.

다시말해, LAN 환경에서 시스템을 구분짓는 것은 IP가 아니라 MAC address 이고,
WAN 환경에서 시스템을 구분짓는 것은 IP address 이다.

만약 누군가 어떤 특정 사이트에서 악의적인 글을 올려서 자신의 IP가 해당사이트로의
접근이 차단되게 되면 이를 악용하는 사례도 있다.

DHCP 가 IP를 할당할때 mac table을 확인하고 IP할당을 요청하는 시스템의 mac address와
비교를 하여 이미 match가 되는 mac address 가 있다면
mac address 와 match가 되는 ip로 할당을 해주는 것이다.

이를 이용해서 자신의 LAN 환경 설정에서 mac address 를 변경해 버린다면,
mac table 에는 자신의 mac address가 존재하지 않기 때문에 새로운 IP로 ISP에서
할당해 주는것이다. 그렇게되면 차단된 사이트로도 접근이 가능하다.


<ARP Spoofing 이란 무엇인가?>

ARP Spoofing 에 대해 알아보자.
spoofing 은 속이다는 뜻으로 해킹을 당하는 victim 으로부터 정보를 빼내는
일종의 해킹 기법이다.

ARP 는 몇가지 취약점을 가지고 있다. 정적인 Protocol 로써, data를 보내는
사람의 MAC address가 진짜인지 가짜인지 확인할 매커니즘이 없다.

attacker , victim , victim's friend 가 있다고 가정하자.
victim 은 victim's friend 에게 어떤 자료를 전송한다.

이때, attacker 가 victim 에게 victim's friend 는 나야!! 라는 packet 을 지속적으로
보내면 victim 이 가진 ARP Cache Table 의 내용이 변경이되는 것이다.

 결국은 victim 이 보내는 자료는 attacker 에게 전송되게 하는것이
arp spoofing 의 목적이다.

그런데, 여기서 한가지 문제가 있다.
attacker 가 data를 받게되면, 목적지 IP를 확인하게 되는데 자신의 IP가 아니므로
받은 Packet을 버리게 된다. Spoofing 의 의미가 없어지게 되므로,
받은 Packet 을 누군가에게 Forwarding 시키면 해결된다.

Packet Forwarding 방법에는 두가지가 있다.
Kernel 과 Application 인데 차이점은
Kernel 은 공격자의 pc가 하나의 router 로 동작하기 때문에 victim pc 에서
Traceroute 명령으로 확인해볼 경우에 발견 될 수 있다.
그리고 Application 은 traceroute 로도 발견이 불가능하다는점이다.

Kernel 에서 지원하는 방법은
     Unix : /proc/sys/net/ipv4/ip_forwarding 을 수정하여 내용을 1로 변경하면 된다.
              또는 echo 1 > /proc/sys/net/ipv4/ip_forwarding  으로도 가능하다.
     Windows : regedit 를 열어서
                 \HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
                 \IPEnableRouter 를 1로 변경해주면 된다.
Application 사용하는 방법은
     fragrouter -B1 이라는 명령으로 해결할 수 있다.




<ARP Spoofing 실습>

먼저 실습에 필요한 OS가 많은 관계로 VM을 사용해야 한다.
VM에 올릴 OS 는 Backtrack(attacker) , Win XP1(victim), Win XP2(victim's friend) 3개.
모두다 통신이 가능한 상태로 VM에서 NAT나 hostonly 로 맞혀주면 될 것이다.

victim's IP : 192.168.37.132
victim's friend IP : 192.168.37.129
attack's IP : 192.168.37.130
Gateway : 192.168.37.2

3개의 OS 를 모두 NAT 설정했다면 Gateway 도 자동으로 잡혔을 것이다.

victim 이 victim'c friend에게 data를 보내려면 gateway 를 먼저 거쳐가야 한다.
attacker 가 gateway의 mac address 를 자신의 mac address 라고 속여서 계속해서
victim pc 로 Packet 을 전송한다면 진짜 gateway로 가야할 data가 attacker 에게
전송이 되는 것이다. attacker는 간단하게 Packet Forwarding만 시켜주면 해결된다.

공격하기 전에 먼저 victim의 ARP Cache Table 을 확인해보자.






















attacker 가 지속적으로 victim에게 arp reply Packet 을 보내게 되면
victim 은 자신의 ARP Cache Table 의 내용을 인증절차 없이 Update하게 된다.





















다시 victim 의 ARP Cache Table 을 확인해보면 Mac address 가 attacker 의 mac address
로 바뀌었음을 확인할 수 있다.


















attacker's mac address





















여기서 victim's friend 는 사용되지 않았지만..
attacker 가 fragrouter -B1 으로 Packet Forwarding 을 시켜준 뒤에
victim 이 실제로 Packet 을 victim's friend로 보냈을때
attacker로 보내는것을 wireshark 를 통해  확인할 수 있으니, 확인해보기 바란다.


<ARP Spoofing 방어>

공격자는 ARP Cache Table 을 변조시키지 위해 지속적으로 ARP Reply Packet 을
던지게 되는데 이러한 ARP Storm 이 있는지 wireshark 를 통해 유추할 수 있다.

서버 관리자가 서버의 arp cache table 이 변경될때 마다 관리자 메일로 발송하는
것도 한 방법.

arp -s IP MAC 명령어로 자신의 ATP Cache Table 을 Static방식으로 직접 운영.
중요한 서버 및 게이트웨이등은 static 으로 운영하여 변조가 되지 않도록 한다.