티스토리 뷰

Malware

익명 네트워킹 – REMnux

RCE_Mania 2015. 5. 30. 17:54

악성코드를 분석하다보면 종종 익명 네트워킹이 필요할 때가 있다. IP기반으로 감염시스템을 인증하는 경우, 악성코드 분석 과정상 다시 한번 인증이 필요할때 인증을 못할 수도있다. 또 스마트폰을 이용한 스미싱의 경우 스미싱URL이 User-Agent기반으로 사용자 시스템을 확인해 IE나 Firefox로 악성APK를 다운받지 못하는 경우가 생긴다. 이 뿐만아니라 악성코드 분석가의 입장에서는 악성코드 분석되고 있는 상황을 해커에서 들키지 않을 필요성이 있기 때문에 익명 네트워킹 기술이 필요합니다.

토르를 이용한 익명 브라우징

REMnux는 우분투 기반이기 때문에 토르를 설치하기 위해서는 apt-get을 이용해 설치해야합니다.


root@remnux:~# apt-get install tor
Reading package lists... Done
Building dependency tree       
Reading state information... Done
tor is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

제가 사용하는 REMnux v5에서는 최신버전의 tor가 이미 설치되어 있습니다.


또 다른 설치 방법으로는 파이어폭스 에드온으로 토르를 설치해 익명 브라우징이 가능하나, 업데이트가 되지 않아 현재 파이어폭스 20.0버전에서는 지원이 되지 않습니다.


root@remnux:~# /etc/init.d/tor start
Raising maximum number of filedescriptors (ulimit -n) to 32768.
Starting tor daemon: tor...
Dec 17 00:37:20.219 [notice] Tor v0.2.1.30. This is experimental software. Do not rely on it for strong anonymity. (Running on Linux i686)
Dec 17 00:37:20.220 [notice] Initialized libevent version 2.0.12-stable using method epoll. Good.
Dec 17 00:37:20.220 [notice] Opening Socks listener on 127.0.0.1:9050
done.

설치된 토르를 실행하면 localhost의 9050포트를 로컬프록시에 이용합니다.


root@remnux:~# netstat -ano | grep 9050
tcp        0      0 127.0.0.1:9050          0.0.0.0:*               LISTEN      off (0.00/0/0)

익명 브라우징을 하기 위해서는 브라우저에서 해당 포트를 SOCKS Host로 지정해야합니다. REMnux v5에 설치된 Firefox 20.0에서는 아래와 같이 설정됩니다.
Edit - Preferences - Advanced - Network - Settings



프록시 설정을 마치고 www.whatsmyip.org에 접속해보면 IP가 바뀐것을 확인할 수 있습니다.



토르를 이용해 익명 브라우징을 할 때는 새로운 세션을 연결할 때마다 IP가 바뀌게 됩니다.

토르를 이용한 소켓 통신

토르를 이용한 소켓 통신을 하기 위해서는 torsocks을 설치해야 합니다.


root@remnux:~# apt-get install torsocks
Reading package lists... Done
Building dependency tree       
Reading state information... Done
torsocks is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

제가 사용하는 REMnux v5에서는 최신버전의 torsocks이 이미 설치되어 있습니다.

사용법은 리눅스에서 사용하는 소켓통신 명령앞에 usewithtor 명령을 써주면 간단하게 이용할 수 있습니다.


  • usewithtor wget [TargetURL]
  • usewithtor ftp [TargetURL]
  • usewithtor sftp [TargetURL]
  • usewithtor telnet [TargetURL]


토르를 이용한 익명 다운로더

토르를 이용할 경우 IP가 변경되기 때문에 익명성이 보장됩니다. 하지만 wget같이 User-agent값이 웹 서버 로그에 남는 경우에는 강한 익명성을 보장받을 수 없습니다.
그렇지만, wget에서는 -U 옵션을 통해 User-agent값을 별도로 설정할 수 있도록 제공해주기 때문에 해당 기능와 Tor를 이용하면, 좀더 강력한 익명성을 제공받을 수 있습니다.


토르의 로컬프록시서버(localhost:9050)와 wget의 -U옵션을 통해 익명 다운로드를 제공하는 파이선 스크립트를 작성할 수 있습니다.


root@remnux:~# wget https://malwarecookbook.googlecode.com/svn/trunk/1/3/torwget.py

root@remnux:~# ./torwget.py -help
Usage: torwget.py [options]

Options:
  -h, --help            show this help message and exit
  -r REFERRER, --referrer=REFERRER
                        use this Referrer
  -u USERAGENT, --useragent=USERAGENT
                        use this User Agent
  -c SITE, --connect=SITE
                        Connection string (i.e. www.sol.org/a.txt)
  -z, --randomize       Choose a random User Agent

위 스크립트에서 사용되는 User-agent 값은 아래 목록과 같습니다.


'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; )'
'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.8.1.18) Gecko/20081029 Firefox/2.0.0.18'
'Opera/9.80 (Windows NT 5.1; U; cs) Presto/2.2.15 Version/10.00'
'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; en-us) AppleWebKit/525.26.2 (KHTML, like Gecko) Version/3.2 Safari/525.26.12'
'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Avant Browser; Avant Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)'
'Opera/9.51 (Macintosh; Intel Mac OS X; U; en)'
'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.2.1; MultiZilla v1.1.32 final) Gecko/20021130'

좀더 다양한 User-agent를 원하신다면 스크립트 파일을 직접 수정하여 User-agent값을 변경시킬 수 있습니다.

'Malware' 카테고리의 다른 글

악성코드 분석용 리눅스 배포판 - REMnux  (0) 2015.05.30
댓글