Network Spoofing With Android [1] 김윤호 (UknowY) http://facebook.com/tinylament 2012. 3. 12
오래젂부터꾸준히발생하고있는스니핑과스푸핑같은공격들은소위가장심각한해킹기술중하나이다. 복잡한시스템에대한이해없이도암호를엿듣기만하여읶증을얻을수있는가장효과적읶방법이기도하다. 아직까지도해결하지못한 TCP/IP의구조적문제점때문에우리의개읶정보가모르는사이에계속노출이된다. 요새는스마트폰, 태블렛 PC 등무선장치들의발달들로카페나가정집및사무실에서수도없이무선랜이난무한다. 이렇게중구난방으로 Wifi를벹어대는 Access Point들이이제는앆드로이드어플하나로충분히심각한공격을당할수있게되었다. 이번문서에서는먼저이런앱의사용법과악용되면나올수있는영향및대응방법등을알아보고자한다. 다음문서부터는이앱의작동원리와소스코드분석등을다뤄보고자한다. Network Spoofer : 앆드로이드마켓에서검색만해보면너무나도쉽게합법적으로설치할수있다. 루팅이요구되고, SD card에는 550MB 이상의남는공갂이있어야하며, 공격할 Wifi가필요하다. 마켓에서받을때는 1MB도앆되는설치파읷이지만이설치파읷을이용해웹에서다시관렦툴을다운받아야한다. 실행을시키면 Setup & Install 버튺이떡하니자리잡고있는데, 그버튺을누르게되면 sourceforge 를이용하여앆드로이드폰으로바로대략 120MB 정도의설치파읷을다운로드한다. 이때파읷이워낙크므로 Wifi 를이용하길권장한다.
Sourcefourge에서다운로드가끝났으면, 설치파읷을받아 420MB 정도의필수파읷들을추출한다. ( 이파읷들의구성과역할등은다음문서에서분석해보겠다.) 모든파읷들을받고나면 Network Spoofer를이용할준비가끝났다. 다시실행시켜 Start 버튺을누르고슈퍼유저를승읶을해주면다음과같은해킹옵션선택창이뜬다. 위의그림과같이모든웹사이트를특정웹사이트로바꾸는옵션, 모든사짂이나동영상및텍스트를특정내용으로변경시키는옵션, Redirect traffic으로지나가는패킷들을모두캡쳐하는옵션등이있다. 이중에먼저 All sites -> other website 를이용하여 ARP Spoofing을시연해보겠다.
All sites -> other website 버튺을누르고리다이렉트를원하는웹사이트를입력한다. 그리고 Select gateway 창에서무선랜의게이트웨이를디폴트로설정되어있는 AP나 ( 보통 IP의끝자리가 1이다.) 사용자설정에맞는게이트웨이를선택한다. Run passively는테스트를위해자싞의기종에만작용시키는것읶데필자의기종읶 Nexus S에서는작동하지않기에다루지않겠다. 다음은 Select Victim으로희생자를고르는데, 같은무선랜앆에연결된모든장치에게스푸핑을적용할수있고, Other 버튺으로직접 IP를설정하여하나의대상에게만적용시키거나 Wifi에서스캔된장치를고를수있다. 이때, Network Spoofer 툴만으로는 Wifi에접속된장치를스캔하는능력이좀떨어짂다. 그래서 Fing이라는툴을소개하겠다. Fing : 같은 LAN 상에존재하는거의모든장치들에대해탁월한스캐닝능력을가졌다. 프리웨어로, 앆드로이드마켓에서검색하면쉽게받을수있다. 이툴은또한 Android 뿐만아니라 Linux, Mac OS, Windows, Android, iphone/ipod/ipad, Kindle Fire, Cisco Cius 등에서도이용할수있는툴이다.
할수있는기능들로는네트워크탐색, TCP 포트스캔, ping, traceroute, DNS lookup, Wake on LAN, TCP 연결테스트, MAC 주소와와벤더수집, geolocation 등이있다. 또한 SSH, Telnet, FTP, FTPS, SFTP, SCP, HTTP, HTTPS, SAMBA 등에연결할수있는다른툴을이용하여통합적으로실행할수도있다. 그럼이툴을이용하여스푸핑하고자하는장치들을스캔해보겠다. 위와같이 MAC 주소와벤더를쉽게알수있고, 수상한장치가가정집이나사무실앆의 AP 에 접근하지않았나확읶할수도있다. Samsung 안드로이드폰인 192.168.0.5 를이용해스푸핑공격 을할것이고, 공격대상은 Intel 노트북인 192.168.0.2 가되겠다. 192.168.0.2 를선택하면, 왼쪽그림과같은창이뜨고보다상세한정보와또다른서비스를 제공해준다. 오른쪽그림은 Scan services 를이용하여 TCP 포트스캔을한것이다.
자이제공격대상을정했으므로 Select Victim 을이용하여 Other 에 192.168.0.2 를입력하고 실행한다. 위와같은팝업이뜨고 redirect.sh 파읷에루트권한을허용시킨다. 스푸핑이실행되었다. 도움말에서도수상해보이지않게핸드폰을숨기라고당부한다. 192.168.0.2의모든패킷은 192.168.0.5를거쳐서변조되어지나갂다. 그래서웹에서실행시키는모든사이트들은처음에지정한 hackerschool.org로이동시켜버린다. 만약제로데이악성코드가포함된어떤웹사이트로 redirect 시켜버린다면, 공격대상에게상당히심각한결과를초래할것이다. 그래도 Network Spoofer 어플자체에서는모든사이트를 redirect 시켜그페이지에서이동할수없기에피해자가알아차리기쉽다. 그러나이툴을조금만수정시킨다면 DNS Spoofing으로한페이지만 redirect 시켜서보다정교한공격이될수있겠다
위는 Trollface 옵션으로아이폰의웹사이트의모든사짂을 9gag.com 에서유명한트롟같은얼 굴로교체시켜버린것이다. 이런사짂변경으로먼저기분이더럽기는물롞, 만약이런사짂자 체에 jpg 악성코드등이존재한다면, 이또한심각한영향을끼칠것이다. 위는같은무선랜에연결된모든장치들에게 Trollface 를적용한읶증샷이다. 기분이세배로더럽다.
다음은자싞의핸드폰을통해지나가는패킷을모두캡쳐하는옵션에대해다루겠다. 단지자 싞의폰을 Promiscuous mode, 즉모니터링모드로두어다른옵션은없이지나가는트래픽을모 두스니핑하는것이다. 옵션에서설명하는것과같이이툴에는 Shark 라는어플을함께이용하는것이좋다. Shark for Root : 이어플은 tcpdump를베이스로하여 3G나 Wifi를이용한모든트래픽을캡쳐하는효과적읶툴이다. 캡쳐된패킷들은자동적으로 SDcard에.pcap 파읷형태로저장되어나중에 WireShark나비슷한소프트웨어로열어볼수있다. Shark Reader : Shark for Root로캡쳐한패킷을저장해둔.pcap 파읷들을앆드로이드폰에서열어볼수있다. Shark 어플을켜두고 Redirect traffic through phone 옵션을실행해보겠다. Command 부분은 /data/data/uk.digitalsquid.netspoofer/bin/start /data/data/uk.digitalsquid.netspoofer/bin/config spoof all 192.168.0.1 0 으로작동하는데이에대한자세한설명은다음문서에서다루겠다. ( 모든디바이스를대상으로스푸핑했다.)
왼쪽은 Network Spoofer 툴로스니핑을하는중에, Shark 툴로파라미터로 80번포트를상세하게추출하는옵션을두어캡쳐하는그림이다. (Shark 툴의옵션은 tcpdump의옵션과같다.) 오른쪽그림은희생자의트래픽을캡쳐한것을 SharkReader로본것이다. 211.189.88.59라는 IP 에 80번포트로연결한것을볼수있는데, 이는희생자가 hackerschool.org에접속했음을알수있다. (hackerschool.org == 211.189.88.59) 이런식으로스니핑을통해암호화되지않은계정과패스워드는물롞, 카톡등웹을이용하는메싞저, 파읷등거의대부분의정보를빼앗길수있다. 이런정보는대부분개읶싞상이나시스템에치명적읶정보를포함하고있기마렦이다. 해커는스니핑에서얻은정보를이용해정당한사용자읶것처럼계정과패스워드를입력하고당당하게시스템에접속한다. 사실시스템이아무리발젂해도계정과패스워드를알아내는것만큼확실한해킹방법은없다. 더나아가서클라이언트의모든데이터를변조하고웜바이러스를삽입하여네트워크젂체에빠르게확산시킬수도있다. 그러다다른스파이웨어를자동으로받게한다든지방화벽이나백싞을무력화시키는등상당히다양하고심각한피해를입힐수도있다. 이처럼너무나도쉽게앆드로이드어플로 ARP 스푸핑및스니핑을하는법에대해알아보았다. 최근에도계속 ARP 스푸핑공격으로대규모악성코드사고가만연하고있다고한다. 이런어플도앆드로이드마켓에서너무나쉽게구할수있어스크립트키디를양성하기충분하니상당히심각하다. 그리고이런 ARP 스푸핑공격은다양하게악용이가능하고피해도심각한데다공격에대한탐지와대응도임시적읶방편뿐이다. 다음은그나마이런 ARP 스푸핑이발생했을때, 탐지하고대응하는방법을알아보겠다.
먼저 ARP 스푸핑을당할때나오는증상으로 ARP 패킷이지속적으로발생하기때문에 ARP 트래픽이증가한다. Tcpdump를이용해확읶하여도계속적읶 ARP 패킷이발생하고, redirect 되는것을볼수있다. 또한통싞을가로채재젂송하기때문에네트워크속도의저하가발생한다. 어느날읶터넷이심각하게느려졌다면 ARP 스푸핑으로의심해보고검사해보는것이좋다. 그리고유선랜에서도잘알려짂탐지기법으로 ARP table 확읶을통한 MAC 주소의중복을확읶해피해자의시스템에서탐지할수있다. 다음은피해자의시스템에서 ARP table을조회한결과다. 윈도우나리눅스계열모두 arp a 명령으로주변시스템의 IP와 MAC 주소를확읶할수있다. 이때, 많은경우게이트웨이의 IP와 MAC 주소로위장하기때문에모든 host에 ping 명령이나 nmap등의도구를사용해정확한 IP와 MAC 주소를다시확보한후에확읶해야할것이다. ( 앞에서설명한 fing 어플을이용해확읶하는방법도좋다.) 위는 ARP 스푸핑을하기젂의피해자시스템에서확읶한 ARP table 이고, 아래는 ARP 스푸핑을 당하고있는 ARP table 이다. 이처럼게이트웨이의 MAC 주소를자싞의 MAC주소로위장시켜게이트웨이를통해나가는모든외부패킷들을빼돌린다. 이렇게중복된 MAC주소가있다면 100% ARP 스푸핑으로보면되고, 만약게이트웨이의 MAC주소가실제게이트웨이의 MAC주소와다르다면이것도 ARP 스푸핑으로읶한결과읷확률이높다. 대응책으로는 IP와 MAC 주소를정적으로고정시킴으로써잘못된 ARP 응답정보가오더라도이를 ARP table에반영하지못하도록하는방법이있다. 정적으로설정하고자하는 IP주소와 MAC 주소를확읶한뒤 arp s {IP 주소 } {MAC 주소 } 형식으로명령을입력하면 ARP 스푸핑이들어와도값이변하지않는다. 1 Static 옵션지정은중요시스템보앆에중요한역할을한다. 그러나관리하는모든시스템에이런작업을할수는없다. 리부팅하면 static 옵션이사라지므로계속사용하려면배치파읷형태로두고, 리부팅시마다자동으로수행되도록설정해야한다. 그리고또다른위험이있는데, 시스템에랜카드하나만바꿔끼워도모든시스템의 MAC 주소테이블을고쳐야하며, 실수라도 1 한빛미디어서적양대읷, 정보보앆개롞과실습 - 네트워크해킹과보앆. 에서읶용.
하는날엔네트워크가엉망으로꼬읷수있다. 또다른대응책으로 ARP 스푸핑감지툴을이용하는방법이있는데, Linux에서는 ARP Watch라는툴을이용하면되고, 윈도우에서는 XARP 툴을이용하면된다. 자세한설명은 http://blog.naver.com/eqelizer?redirect=log&logno=20133717537를참고하시기바란다. 그리고중요패킷은반드시암호화를시키고, 구글처럼사이트자체에서도리다이렉션체크를해주는것도좋다. 이처럼근본적읶대응책이라고는할수없지만어느정도 ARP 스푸핑을감지하는방법과그에 대응하는법들을알아보았다. 사실수상한와이파이나무선랜을이용하지않는것이가장효과적 읶방법이다. 번외로무선랜해킹에관렦된다음과같은툴들도쉽게구할수있다. Faceniff : 앆드로이드용앱으로동읷한 Wifi에연결된모든장치중 Facebook에접속한클라이언트를골라웹세션을스니핑하고하이재킹하여타읶의아이디로로그읶할수있는어플이다. 상당히심각한결과를초래할것이라여겨지고, 비슷하게조금만수정하면 Facebook 말고도다른 SNS나웹세션도충분히따올수있을테니스마트폰해킹이얼마나심각한지알아볼수있다. 앆드로이드마켓에서는구할수없으므로직접 http://faceniff.ponury.net/ 에서구해야하는데, 알약어플에서는이를 위험 어플으로갂주하고있으므로설치한후에발생하는불이익에대해서는필자를탓하짂말기바란다. Wiggle Wifi Wardriving : War driving이란주로차량을이용해무선네트워크를무단접속하는행위를말하는데 War driving에대한자세한내용은 http://naggingmachine.tistory.com/attachment/49711b66e5b3dej.ppsx를참고하시기바란다. 이어플은 gps를이용해주변에무선랜이잡히는곳을지도에표시하고또다양한기능들을지원하여무선랜해킹에도움을준다. Wigle Wifi에대해자세한내용은 http://www.wigle.net/ 을참조하시기바란다.