ARP 스푸핑을 통한 네트워크해킹 :: 무선랜해킹 :: [네트워크 보안] , [ArpSpoof , DnsSpoof , 스니핑]





                                               
  

요즘 날씨가 또 쌀쌀해지는군요..

겨울이 되가는 기념으로 글하나 시작할께요.

 

후딱 요약만 보고싶은 분은 스크롤 내리시다 보면 요약있습니다.

 

오늘은

ARP스푸핑을 통한 네트워크를 해킹하는것에 대해 하나씩 알아보겟습니다.

예전에 썻던 글에 좀더 보태서 쓰게 되네요.

 

일단 ARP란 무엇인가..

ARP는 주소 결정 프로토콜(Address Resolution Protocol, ARP)로서 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜입니다. 여기서 물리적 네트워크 주소는 이더넷 또는 토큰링의 48 비트 네트워크 카드 주소를 뜻합니다.

예를들면 , IP 호스트 A가 IP 호스트 B에게 IP 패킷을 전송하려고 할 때 IP 호스트 B의 물리적 네트워크 주소를 모른다면, ARP 프로토콜을 사용하여 목적지 IP 주소 B와 브로드캐스팅 물리적 네트워크 주소 FFFFFFFFFFFF를 가지는 ARP 패킷을 네트워크 상에 전송하지요. IP 호스트 B는 자신의 IP 주소가 목적지에 있는 ARP 패킷을 수신하면 자신의 물리적 네트워크 주소를 A에게 응답하게됩니다.

이와 같은 방식으로 수집된 IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 다음, 패킷을 전송할 때에 다시 사용됩니다. ARP와는 반대로, IP 호스트가 자신의 물리 네트워크 주소는 알지만 IP 주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해 RARP를 사용합니다.

이처럼 ARP는 각각의 컴퓨터를 구분할 수 있게 하기에 중요한 부분입니다.

허나 이런 ARP에게도 치명적인 약점이있습니다.

바로 누가 ARP를 보냇는지 검증할 수가 없기 떄문이죠. 같은 네트워크상에서 악의적인 공격자가 패킷을 위조하여 위조된 정보를 보낸다면

검증할 방법이 없기에 속수무책으로 당할수 있죠.

 

이것이. ARP 스푸핑입니다.

 

ARP스푸핑은 간단하게 말하면 같은 네트워크에 있는 PC , 모바일 기기등을 속이는 것입니다.

패킷은 단말기들을 빠져나와 게이트웨이를 지나 인터넷 세상으로 들어가게되지요.

 

이 점을 이용한 것입니다.

각각의 단말기에게 나는" 게이트웨이다" 라고 보냄과 같습니다.

단말기에게 게이트웨이의 MAC주소를 마치 내 주소인것 처럼 보내는 거죠.

그러나 컴퓨터는 금방 정신을 차립니다.

그걸막기위해 계속 "내가 게이트웨이다" 라고 보내는것입니다.

 

그것을 좀더 편하게 하기위해 툴을 받던지 만들던지 해서 사용하게되요.

대표적으로 공개되어있는 툴로는 arpspoof 이있다. dsniff 에 패키지로 구성되어있습니다.

 

 

실험을 통해 알아보겠습니다.

 

실험환경

공격자 : 192.168.0.26 [blackbuntu , notebook]

피해자 : 192.168.0.2 [windows7 , desktop]

게이트웨이 : 192.168.0.1 [ iptime ]

 

먼저 피해자의 ARP 테이블입니다.

게이트웨이와 공격자의 MAC주소가 다른 것을 알수있습니다.

 

 

일단 공격자 노트북에서 다음과 같은 명령어를 삽입하게 됩니다.

 

 

arpspoof -i wlan0 -t 192.168.0.2 192.168.0.1

옵션을 하나씩 보겠습니다.

-i : 인터페이스를 지정합니다. eth0 , wlan0 등 네트워크 인터페이스를 지정합니다. 필자는 무선네트워크이기에 wlan0으로 하였습니다.

 

-t : 타켓. 첫번째는 목표가될 타켓의주소 두번쨰는 내가 누군지 보낼 주소입니다.

(나는 게이트웨이다 에서 게이트웨이)

 

명령어가 실행되면 피해자의 컴퓨터에서 게이트웨이의 MAC주소가 공격자의 MAC주소임을 확인하고

공격자에게 패킷을 전달하게 되지요.

 

이렇게 하면 192.168.0.2(피해자) 의 컴퓨터에서 나가는 패킷은 무조건 공격자(192.168.0.26)에게 오게됩니다.

 

한번 ARP 테이블을 확인해볼까요?

역시 예상대로 게이트웨이의 MAC주소가 공격자의 주소로 바뀌었다는 것을 알수있습니다.

 

 

패킷의 내용을 보고 원하는 정보를 취득할수도 있습니다.

 

이것을 조금 더 응용하면 이런생각도 할수있습니다.

 

arpspoof -i wlan0 -t 192.168.0.255 192.168.0.1

 

...

 

타켓의 아이피를 브로드캐스트로 지정합니다.

 

그럼 동일 네트워크에 있는 모든 PC , 모바일기기 등의 패킷은 모두 나에게 오게됩니다.

 

여기서 ettercap 이나 , dsniff 등으로 스니핑하여 패킷중에서 원하는 정보를 찾아낼 수 도 있습니다.

 

그러나...

 

 

이대로 하면 바로 발각됩니다.

 

그 이유는..바로

 

패킷이 나갈곳이 없기 떄문입니다.

 

 

패킷이 모두 공격자에게 오지만... 공격자는 실제 게이트웨이가 아니기 떄문이죠.

 

고로 나에게온 패킷들을 밖으로 내보내줘야 타켓들의 원활한 통신이 가능한거죠.

 

이것은 fragrouter 로 충분히 가능합니다.

 

fragrouter 는 포워딩을 해줄수 있습니다. 패킷의 갈길을 제대로 잡아준다고하면 될까나..

 

 

 

아무튼 원활한 통신을 위해

제 갈길을 잡아줘야 겠지요.

 

툴을 실행합니다.

fragrouter -B1


 

fragrouter 의 기본옵션입니다.

 

이렇게 해주면 패킷이 밖으로 나가 타켓들이 갑자기 인터넷이 끊기는둥의 사태가 벌어지지 않습니다.

 

 

(현재 움직이는 패킷이 없기떄문에 메시지가 말생하지 않습니다. 패킷의 이동이 생기면 마구마구 글자가 나올 것 입니다.)

 

arpspoof 후에 바로 해주게 되면 눈치채지 못할 가능성이 높습니다.

 

 

 

그럼 이제 여기서 스니핑을해서 정보를 캐는둥 여러가지 방법으로 뻗어나갈 수 있습니다.

 

그중 이번 포스팅에선 dns스푸핑으로 가보겠습니다.

 

 

dns스푸핑은 .. dns를 속인다.

 

 

즉 말그대로 DNS 를 속이는 겁니다.

dns 는 한글, 영문등 문자로된 도메인주소 예를들어 www.google.com , www.naver.com 등을 IP로 변환해 주는 기능을한다.

이 아가들이 없으면 우리는 ip주소를 쳐가면서 웹사이트를 들어가야 할지도 모릅니다...

 

 

아무튼 이 dns 를 속여보자..

 

 

arpspoof 과 같이 dsniff 에는 여러가지 툴들이 같이 들어있습니다.

 

그중 dnsspoof 이라는 툴도 있습니다.

 

일단 명령부터 보고 분석하자.


 

dnsspoof -i wlan0 -f /home/noon/NOON/dns.host.s

 

-i : 아까말했듯이 네트워크 인터페이스입니다.

-f : 어떤 문자의 입력을 어떤 IP로 바꿀지 정해논 파일의 경로입니다.

 

자아!

파일의 내용에는 어떤것이 있을까...?

 

 

/home/noon/NOON/dns.host.s

----------------------------------------------------------------

192.168.0.26 *.google.com

 

 

무슨뜻인가 함은

 

뒤에 google.com이 들어간 주소는 192.168.0.26으로 변환하라는 것입니다.

 

 

192.168.0.26은 현재 필자의 노트북IP 주소이고 현재 공격에 사용되는 노트북이면서 아파치를 가동하여 웹서버의 구실을 할수 있는 상태입니다.

 

 

따로 구축해놓은 웹사이트나 다른 사이트등 어떤곳으로도 보낼 수 있습니다.

 

 

 

죄없는 사용자는 구글에 접속하게 되면 공격자의 서버로 접속하게 됩니다.

 

 

 

여기서 서버에서 구글과 똑같은 모습으로 꾸며논다면...

 

사용자는 의심하지 않고 로그인을 하게되고 공격자는 쉽게 로그인 정보를 취득할 수도 있습니다.

 

또한 악성코드가 내장되어있는 사이트로 유도하여 피해자 컴퓨터나 스마트기기에 악성코드 , 바이러스등을 유포할수도 있습니다.

 

 

이처럼 간단하지만 매우 강력한 공격기법이 될수도있습니다.

 

 

 

지금까지 너무 복잡한 설명 같은 느낌이 드는데

간단하게 정리해서 설명해 드리겠습니다.

 

 

요약 정리

 



arpspoof -i wlan0 -t 192.168.0.33 192.168.0.1

실험환경

공격자 : 192.168.0.26 [blackbuntu , notebook]

피해자 : 192.168.0.2 [windows7 , desktop]

게이트웨이 : 192.168.0.1 [ iptime ]

 

일단 윈도우7 의 ARP테이블입니다.

공격자와 게이트웨이의 맥주소가 다릅니다. 이상없는 네트워크입니다.

 

공격자가 명령어를 삽입합니다.

fragrouter -B1

IP를 포워딩해 자신에게 오늘 패킷을 나갈수 있게 미리 세팅해 놓습니다.

 

다음 두번째 명령을 삽입합니다.

arpspoof -i wlan0 -t 192.168.0.2 192.168.0.1

명령을 실행하였습니다.

피해자에게 공격자가 계속 맥주소가 담긴 패킷을 전송하는군요.

이제 피해자의 컴퓨터에서 ARP테이블을 확인하겠습니다.

아… 게이트웨이의 맥주소가 공격자의 맥주소로 변환이되었습니다.

이로써 윈도우7이 외부와 통신을 할때에 공격자의 컴퓨터를 지나 통신을 하게 됩니다.

 

피해자는 아무이상없이 웹 서핑을 즐기고 있습니다.

피해자가 구글로 이동하였습니다.

구글이군요.

 

 

이때…

 

공격자는 DNS를 속여 사용자를 놀래키려 합니다.

공격자는 미리 세팅을 하기 시작합니다.

속일 웹사이트의 주소와 자신이 서버로 활동할 목적이기에 자신의 아이피주소를 넣었습니다.

아파치 웹서버를 가동합니다.

 

 

공격자가 명령을 실행합니다.

dnsspoof -i wlan0 -f /home/noon/NOON/dns.host.s

 

결과

 

피해자가 다시 구글에 재접속합니다.

 

앗……

 

 

피해자가 놀라는군요.

 

사이트 주소는 google.com이지만 미리 만들어놓은 공격자의 웹서버로 이동하게 됩니다.

 

이 웹 페이지를 구글과 똑같이 많들어 ID PASS등 로그인 정보를 탈취할수도 있고

악성코드나 바이러스를 심어 컴퓨터를 초토화시키거나

DDOS의 병사로 이용하여 다른웹사이트를 공격하게 만들지도 모릅니다.

 

이처럼 요즘 WIFI 와 같이 무선네트워크가 널리널리 퍼져있는 시대에

정말 위험한 기술입니다.

 

 

저는 가방속에 노트북을 켜서 넣어놓고 갤탭으로 ssh를 사용하여 사용하면서 다니는 경우가 많은데..

솔직히 이런상태에서는 arp스푸핑을하던 스니핑을하던 주변에서 이상한 낌새를 알아채기 매우 힘들것입니다..

 

(이상한사람아님니다...)

 

 

최근에 제가 주변 카페 , 피시방 등을 돌아다니면 양해를 구하고 실험을 해본적이있습니다.

 

대부분의 장소에서 간단하게 걸려들었다.

 

이처럼 WIFI를 서비스하는 지점이나 , 아니면 개방된 네트워크를 사용하는 곳에서는 이에 따라 보안대책을 세워야 할 것이다.

 

또한 사용자도 그냥 공짜라고 막 쓰기보다는 조금 더 정보의 안전을 추구하고 조심조심 사용하는 것이 좋을 것 같습니다.

 

 

이 ARP스푸핑에 대해 여러 보안대책이 세워지는데

일단 철저한 인증검사.

네트워크 보안망 즉 인증체계가 뚫린다면

이미 살아남기 힘든 네트워크입니다.

 

문부터 튼튼하게 지키는 것이 옮은 것 같습니다.

또한

MAC주소 인증을 통하여 사용자를 걸러내는 방법도 좋습니다.

그러나 이것도 MAC테이블을 오버플로우 시키는등 문제점이 존재합니다.

 

그렇다 해도 여러가지 보안대책을 세워논 상태라면

공격자를 충분히 괴롭게 할 수 있습니다.

 

카페 , PC방 등 공개 무선랜(AP)을 사용하는 지점에서 무선랜을 사용할떄에는 사용자들의 좀더

각별한 주의가 필요할 것 같습니다.

 

 

지금까지 포스팅 봐주셔서 감사하구요.

다음 포스팅떄 더 좋은 모습 보여드리겠습니다.

 

 


저작자 표시 비영리 변경 금지
신고
Creative Commons License
       
  1. 비밀댓글입니다

  2. 비밀댓글입니다

    • 리눅스 상이시면 vim 이나 emacs 를 이용해서 작성해주시면되요.

      파일명도 꼭 저걸로 해야하는거도 아니고 제가 임의로 작성한 파일명이구요.


      파일안에 도메인 이름과 주소만 들어가면 됩니당 ㅎㅎ

  3. 비밀댓글입니다

    • 개인적인 생각인데 프로그래밍과 IT전반적인 분야에 대해 어느정도 지식을 필요로 합니다.

      해킹이나 보안이 막연하게 하나가 아니고 따지고 보면 여러가지로 나눌수도 있기 때문에 보안서적이나 개발서적 그림많은거 보면서 시작하시면 좋을거 같습니다.

      또한 해커스쿨이나 와우해커 같은 커뮤니티 사이트 가보시면 도움되는것이 많이 있을거에요.

  4. mylg070과 같이 두 가지 이상의 무선신호가 이용되는 경우(인터넷 전화 전용나 업데이트등은 wep로, 사용자는 wps2로)에는 arp 스푸핑이 가능한가요? 이러한 경우 같은 네트워크에 있다고 볼수 있나요?

  5. 이외에, 만약 위와 같은 공유기에 wep보안 취약성을 이용해 침투한 해커가 같은 공유기에서 다른 방식으로 암호화되고 있는 무선신호를 이용하는 사용자에게 피해를 줄수 있나요?

    • 위에서 소개한 ARP 스푸핑 기법은 현재 같은 네트워크에 위치해 있을때 맥 주소를 속여 정보를 가로채고 악의적인 사용자가 원하는 방향으로 데이터를 이끄는데요.

      두가지의 무선 신호를 사용하더라도 최종적으로 나가는 게이트웨이의 주소를 자신의 주소로만 속일수 있고 다른 대역대의 기기에 지속적으로 변조된 MAC정보를 보내줄수 있다면 arp스푸핑이 가능하겠지요.

      꼭 ARP 스푸핑 같은 기법이 아니여도 AP , 즉 공유기 자체를 공격하거나 네트워크에 과도한 트래픽을 발생시키는 등 여러가지 방법을 이용한다면 다른 암호화 방식을 사용하는 사용자들에게도 피해를 줄수 있다고 생각합니다.


      실제로 직접 저러한 환경을 만들어서 테스트 해본것이 아니기 때문에 확신은 못드리고 저의 생각만 담아봤습니다.

      댓글 감사합니당

  6. 비밀댓글입니다

  7. 비밀댓글입니다

  8. 비밀댓글입니다

    • 윈도우에서도 가능합니다.

      SnoopSpy같은 스푸핑 툴을 이용해서 타겟의 MAC주소 테이블을 변경시키고

      스니핑툴로 자료를 수집하거나 DNS변조도구 등 추가적으로 활동할 방향쪽의 툴을 이용하시면 됩니다.

      툴은 구글링을 통해 얻거나 irc 상에서 부탁하면 구해다 주는 경우도 있고 페이스북 클럽기능을 이용해서도 구할 수 도 있습니다.

      가장보편적으로는 검색이 좋을거 같네요.

      툴 소개에 관련된 블로그나 사이트를 참고하시면서 툴에대한 이해와 응용능력을 키우시는게 좋다고 생각됩니다.

  9. 엄청 좋은글이네요 잘보고가요

  10. 궁금한게 있는데요
    Arpspoof를 사용해서 ip에 해당하는 mac주소를 공격자의 mac주소로 게이트웨이에 알렸다면, 그 ip주소에게 다른쪽에서 ping을 했을 경우에 공격자의 mac주소로 ping을 하는셈이잖아요? 호스트 간에 스위치로 연결되어있다면 mac주소로 서로간에 통신하는거니 ping의 리퀘트를
    공격자 mac주소가 받고 그에 대한 응답인 리플라이도 해줄것 같은데 왜 안되는건가요? 해보니 ping요청을 보낸쪽에서는time out이되버리고 응답이 오질않아서
    질문드립니다...

  11. vm환경에서 실습을 하려고 합니다. 공격자는 vm에서 돌아가는 칼리리눅스를 사용하고 피해자는 윈7이 깔려있는 노트북입니다. 위의 방법대로 하니 지정된 웹페이지로 뜨는게 아니라 인터넷이 연결이 안된것처럼 이페이지를 표시할 수 없습니다. 라는 문구가 뜹니다. 아무래도 안되는거 같은데 이 환경에서도 실습이 가능한가요?

  12. 비밀댓글입니다

  13. 비밀댓글입니다

  14. 같은 와이파이에 속한 사람들만 가능한거죠?

  15. 리눅스에 터널만을 가지고 하신건가요 아니면 별도의 해킹 툴을 이용하신건가요

  16. 근데 개방형 와이파이를 쓰는 일반 가정집들은 컴퓨터 개인정보 유출이 위험한가요>?

Return top

Noon.

Hacking & Security.
 

티스토리 툴바