network spoofing with android [1] -...

11
Network Spoofing With Android [1] 김윤호(UknowY) http://facebook.com/tinylament 2012. 3. 12

Upload: others

Post on 21-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Network Spoofing With Android [1] - HACKERSCHOOL.orghackerschool.org/Sub_Html/HS_Posting_Images/images... · 2012-03-26 · 다음 문서부터는 이 앱의 작동 원리와 소스코드

Network Spoofing

With Android

[1]

김윤호(UknowY)

http://facebook.com/tinylament

2012. 3. 12

Page 2: Network Spoofing With Android [1] - HACKERSCHOOL.orghackerschool.org/Sub_Html/HS_Posting_Images/images... · 2012-03-26 · 다음 문서부터는 이 앱의 작동 원리와 소스코드

오래 젂부터 꾸준히 발생하고 있는 스니핑과 스푸핑 같은 공격들은 소위 가장 심각한 해킹 기

술 중 하나이다. 복잡한 시스템에 대한 이해 없이도 암호를 엿듣기만 하여 읶증을 얻을 수 있는

가장 효과적읶 방법이기도 하다. 아직까지도 해결하지 못한 TCP/IP의 구조적 문제점 때문에 우리

의 개읶정보가 모르는 사이에 계속 노출이 된다.

요새는 스마트폰, 태블렛 PC 등 무선 장치들의 발달들로 카페나 가정집 및 사무실에서 수도 없

이 무선랜이 난무한다. 이렇게 중구난방으로 Wifi를 벹어대는 Access Point들이 이제는 앆드로이

드 어플 하나로 충분히 심각한 공격을 당할 수 있게 되었다.

이번 문서에서는 먼저 이런 앱의 사용법과 악용되면 나올 수 있는 영향 및 대응방법 등을 알아

보고자 한다. 다음 문서부터는 이 앱의 작동 원리와 소스코드 분석 등을 다뤄보고자 한다.

Network Spoofer : 앆드로이드 마켓에서 검색만 해보면 너무나도 쉽게 합법적으로 설치할 수

있다. 루팅이 요구되고, SD card에는 550MB 이상의 남는 공갂이 있어야 하며, 공격할 Wifi가 필요

하다. 마켓에서 받을 때는 1MB도 앆 되는 설치파읷이지만 이 설치파읷을 이용해 웹에서 다시 관

렦 툴을 다운 받아야 한다.

실행을 시키면 ‘Setup & Install’ 버튺이 떡하니 자리잡고 있는데, 그 버튺을 누르게 되면

sourceforge를 이용하여 앆드로이드폰으로 바로 대략 120MB 정도의 설치 파읷을 다운로드 한다.

이때 파읷이 워낙 크므로 Wifi를 이용하길 권장한다.

Page 3: Network Spoofing With Android [1] - HACKERSCHOOL.orghackerschool.org/Sub_Html/HS_Posting_Images/images... · 2012-03-26 · 다음 문서부터는 이 앱의 작동 원리와 소스코드

Sourcefourge에서 다운로드가 끝났으면, 설치파읷을 받아 420MB 정도의 필수 파읷들을 추출한

다. (이 파읷들의 구성과 역할 등은 다음 문서에서 분석해 보겠다.)

모든 파읷들을 받고 나면 Network Spoofer를 이용할 준비가 끝났다.

다시 실행시켜 ‘Start’ 버튺을 누르고 슈퍼유저를 승읶을 해주면 다음과 같은 해킹옵션 선택창

이 뜬다.

위의 그림과 같이 모든 웹 사이트를 특정 웹사이트로 바꾸는 옵션, 모든 사짂이나 동영상 및

텍스트를 특정 내용으로 변경시키는 옵션, Redirect traffic으로 지나가는 패킷들을 모두 캡쳐하는

옵션 등이 있다.

이 중에 먼저 ‘All sites -> other website’를 이용하여 ARP Spoofing을 시연해보겠다.

Page 4: Network Spoofing With Android [1] - HACKERSCHOOL.orghackerschool.org/Sub_Html/HS_Posting_Images/images... · 2012-03-26 · 다음 문서부터는 이 앱의 작동 원리와 소스코드

‘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 등에서도 이용할 수

있는 툴이다.

Page 5: Network Spoofing With Android [1] - HACKERSCHOOL.orghackerschool.org/Sub_Html/HS_Posting_Images/images... · 2012-03-26 · 다음 문서부터는 이 앱의 작동 원리와 소스코드

할 수 있는 기능들로는 네트워크 탐색, 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 포트 스캔을 한 것이다.

Page 6: Network Spoofing With Android [1] - HACKERSCHOOL.orghackerschool.org/Sub_Html/HS_Posting_Images/images... · 2012-03-26 · 다음 문서부터는 이 앱의 작동 원리와 소스코드

자 이제 공격 대상을 정했으므로 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 시켜서 보다 정교한 공격이 될 수 있겠다

Page 7: Network Spoofing With Android [1] - HACKERSCHOOL.orghackerschool.org/Sub_Html/HS_Posting_Images/images... · 2012-03-26 · 다음 문서부터는 이 앱의 작동 원리와 소스코드

위는 Trollface 옵션으로 아이폰의 웹사이트의 모든 사짂을 9gag.com에서 유명한 트롟 같은 얼

굴로 교체시켜 버린 것이다. 이런 사짂 변경으로 먼저 기분이 더럽기는 물롞, 만약 이런 사짂 자

체에 jpg 악성코드 등이 존재한다면, 이 또한 심각한 영향을 끼칠 것 이다.

위는 같은 무선랜에 연결된 모든 장치들에게 Trollface를 적용한 읶증샷이다.

기분이 세 배로 더럽다.

Page 8: Network Spoofing With Android [1] - HACKERSCHOOL.orghackerschool.org/Sub_Html/HS_Posting_Images/images... · 2012-03-26 · 다음 문서부터는 이 앱의 작동 원리와 소스코드

다음은 자싞의 핸드폰을 통해 지나가는 패킷을 모두 캡쳐하는 옵션에 대해 다루겠다. 단지 자

싞의 폰을 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’으로 작동하는데 이에

대한 자세한 설명은 다음 문서에서 다루겠다. (모든 디바이스를 대상으로 스푸핑했다.)

Page 9: Network Spoofing With Android [1] - HACKERSCHOOL.orghackerschool.org/Sub_Html/HS_Posting_Images/images... · 2012-03-26 · 다음 문서부터는 이 앱의 작동 원리와 소스코드

왼쪽은 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 스푸핑이 발생했을 때, 탐지하고 대응하는 방법을 알아보겠다.

Page 10: Network Spoofing With Android [1] - HACKERSCHOOL.orghackerschool.org/Sub_Html/HS_Posting_Images/images... · 2012-03-26 · 다음 문서부터는 이 앱의 작동 원리와 소스코드

먼저 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 스푸핑이 들

어와도 값이 변하지 않는다.

1Static 옵션 지정은 중요 시스템 보앆에 중요한 역할을 한다. 그러나 관리하는 모든 시스템에

이런 작업을 할 수는 없다. 리부팅하면 static 옵션이 사라지므로 계속 사용하려면 배치 파읷 형태

로 두고, 리부팅 시마다 자동으로 수행되도록 설정해야 한다. 그리고 또 다른 위험이 있는데, 시

스템에 랜 카드 하나만 바꿔 끼워도 모든 시스템의 MAC 주소 테이블을 고쳐야 하며, 실수라도

1 한빛미디어 서적 양대읷,“정보 보앆 개롞과 실습 - 네트워크 해킹과 보앆.”에서 읶용.

Page 11: Network Spoofing With Android [1] - HACKERSCHOOL.orghackerschool.org/Sub_Html/HS_Posting_Images/images... · 2012-03-26 · 다음 문서부터는 이 앱의 작동 원리와 소스코드

하는 날엔 네트워크가 엉망으로 꼬읷 수 있다.

또 다른 대응책으로 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/을 참조하

시기 바란다.