본문으로 바로가기


1. 개요


Thug가 구글의 자바스크립트 엔진인 V8을 사용한다면, PhoneyC는 모질라 재단의 자바스크립트 엔진인 SpiderMonkey를 사용한다. SpiderMonkey는 V8보다 다소 무겁고 느리다. 하지만 Thug에는 다양한 기능이 구현되어 있는 반면 PhoneyC는 단순한 형태(크롤링 기능이 구현되어 있지 않다.)이며 릴리즈가 중단된지 오래되어 구현과정이 단순하고 탐지 속도가 빠른 장점이 있다.


tools/phoneyc$ svn info

경로: .
URL: http://phoneyc.googlecode.com/svn/phoneyc/trunk
저장소 루트: http://phoneyc.googlecode.com/svn
저장소 UUID: fc4c6f4e-0ff0-11de-8c37-e1423f7a4931
리비전: 1631
노드 종류: 디렉토리
스케쥴: 일반
마지막 수정 작업자: angelo.dellaera
마지막 수정 리비전: 1631
마지막 수정 일자: 2011-01-17 19:36:19 +0900 (2011-01-17, 월)


PhoneyC는 각종 유용한 HTML 태그들을 이해하고, 스크립트 언어를 이해하기 위해 SpiderMonkey와 VBScript 언어를 이해하기 위해 vb2py를 사용한다. 난독화에 대한 대응은 어느레벨까지 될지는 향후 테스트 해봐야 알겠지만, 모질라 재단에서 만들어졌으며 SpiderMonkey를 사용하는 Malzilla에서 분석 가능한 레벨까지 될 것으로 추측하고 있다. Thug에서 패턴형태로 탐지하기 위해 Yara를 사용하는 반면 PhoneyC는 ClamAV를 통한 Anti-Virus 탐지와 ActiveX 취약점의 공격 탐지 모듈을 지원하고 있다.



2. 설치


2.1. 환경


  • Kali Linux(Debian 3.12.6)


2.2. 주요 모듈/패키지 리스트


  • libnspr4-dev - NSPR 라이브러리는 SpiderMonkey의 소스 빌딩하기 위해 사용한다.
  • python-setuptool - python 패키지 관리 도구이다.
  • hcalert - shellcode와 heapspray를 탐지하기 위한 코드로 phoneyc의 일부로 동작한다.
  • honeyjs - Python을 통해 자바스크립트 코드를 실행하는데 SpiderMonkey를 이용한다.
  • libemu, pylibemu - libemu는 GetPC 휴리스틱을 사용하여 basic x86 에뮬레이션과 쉘코드를 탐지하는 라이브러리이다. 이 라이브러리는 허니팟과 IDS/IPS 내에서 사용할 수 있도록 설계되었다.


2.3. Optional 모듈/패키지 리스트


XULRunner - XULRunner가 설치된 시스템은 SpiderMonkey의 라이브러리 링크를 통해 확장 기능을 사용할 수 있다.


2.4. 설치


2.4.1. 모듈/패키지/라이브러리 설치



$ apt-get install libnspr4-dev python-setuptool xulrunner-dev


2.4.2. libemu & pylibemu 설치 - 링크



$ apt-get install git automake libtool
$ git clone git://git.carnivore.it/libemu.git
$ cd libemu
libemu$ autoreconf -v -i
libemu$ ./configure --prefix=/opt/libemu
libemu$ make install
libemu$ git clone https://github.com/buffer/pylibemu
libemu$ cd pylibemu
libemu/pylibemu$ python setup.py build
libemu/pylibemu$ python setup.py install
libemu/pylibemu$ sh -c "echo /opt/libemu/lib > /etc/ld.so.conf.d/libemu.conf"
libemu/pylibemu$ ldconfig


2.4.3. phoneyc 다운로드



$ svn checkout http://phoneyc.googlecode.com/svn/phoneyc/trunk phoneyc


2.4.4. hcalert, honeyjs 설치



$ cd phoneyc/modules
phoneyc/modules$ make
phoneyc/modules$ make install


3. 실행


phoneyc.py는 ./phoneyc 디렉터리 안에 있다.


tools/phoneyc$ python phoneyc.py -h

Synopsis:
    PHoneyC: Pure python honeyclient implementation.

Usage:
    python phoneyc.py [ options ] url

Options:
    -h                      , --help                       Display this help information.
    -l <filename>           , --logfile=<filename>         Output file name for logs.
    -v                      , --verbose                    Explain what is being done (DEBUG mode).
    -d <debuglevel>         , --debug=<debuglevel>         Debug Level, 1-10.
    -r                      , --retrieval-all              Retrieval all inline linking data.
    -c                      , --cache-response             Cache the responses from the remote sites.
    -u <personality>        , --user-agent=<personality>   Select a user agent (see below for values, default: 2)
    -n                      , --replace-nonascii           Replace all non-ASCII characters with spaces(0x20) in all HTML or JS contents
    -m                      , --universal-activex          Enable Universal ActiveX object 

User Agents: [ 1] Internet Explorer 6.0 (Windows XP) [ 2] Internet Explorer 6.1 (Windows XP) [ 3] Internet Explorer 7.0 (Windows XP) [ 4] Internet Explorer 8.0 (Windows XP) [ 5] Internet Explorer 6.0 (Windows 2000) [ 6] Internet Explorer 8.0 (Windows 2000)


4. Error Report



설치 과정중에 위와 같은 에러가 발생할 수 있다. 이는 python-setuptools를 설치하지 않은채 phoneyc에서 제공하는 모듈들을 설치 할 경우에 발생하는데, 이는 make에서 설정한 python-setuptools의 버전을 찾지 못해 404: Not Found가 발생한다. 수동으로 python-setuptools를 설치해 주면 해결된다.


저작자 표시 비영리 동일 조건 변경 허락
신고

댓글을 달아 주세요

티스토리 툴바