1. 먼저 중계 서버를 맡아줄 vmware 가상머신(ip38)과 낚시 사이트 서버(.24)를 지정하여 만들어보기로 했다. hacker는 칼리로 두고, 피해서버는 감염 피시 리스트를 보기 위해 두 컴퓨터 모두 접속해보도록 했다. 중계서버는 하송님이 낚시 사이트는 내가 맡기로 했다. 낚시 사이트를 만들기 위해 .24에 ci4를 구축했다. 과정AllowOverride All Require all granted Options None writable 권한 바꾸기 chmod -R 777 writable (권한변경) a2enmod rewrite cd /home/ci4/public_html cp env .env nano .env CI_ENVIRONMENT = development (개발자모드 변경) <->production 에러 뜨면 이유를 알려준다. dns확인 netplan sudo netplan apply sudo apt update sudo apt install php-intl php-mbstring app > config >App.php public string $baseURL = 'http://192.168.0.24'; app > Views > template > header.php 생성 app > Controllers > Home.php return view('template/header'); 중계 서버의 경우 아나콘다를 설치하고 placeholder-master.zip을 풀어두었다. 2. placeholder 폴더의 messageRelayServer.py와 packet.py등의 소스코드를 분석하여 Placeholder.java가 어떻게 동작되는지 이해한다. 3. 설치가 필요한 모듈들 p_trojan.pdf를 참고한다. [1] pywin32 - "Unofficial Windows Binaries for Python Extension Packages". http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32 >>>pip install pywin23 [2] Pillow (PIL) - "Pillow". https://pillow.readthedocs.org/ >>>pip install pillow [3] PyCrypto - "PyCrypto - The Python Cryptography Toolkit". https://www.dlitz.net/software/pycrypto/ >>>pip install pycryptodome [4] pyHook - "A wrapper for global input hooks in Windows". http://www.lfd.uci.edu/~gohlke/pythonlibs/ [5] pbkdf2 - "pbkdf2 1.3". https://pypi.python.org/pypi/pbkdf2 >>>pip install pbkdf2 [6] psutil - "A cross-platform process and system utilities module for Python". https://code.google.com/p/psutil/ >>>pip install psutil 자바 [7] JNA - "Java Native Access (JNA)". https://github.com/twall/jna#readme [8] slowloris - "The low bandwidth, yet greedy and poisonous HTTP client!". http://ha.ckers.org/slowloris/ 4. 중계서버에서 client.py를 실행시키기 위한 시행착오들 - 모듈 설치 시 이미 지원이 종료된 모듈이 있어서 대체할 수 있는 모듈로 변경해야 했다. ---> pycrypto 대신 pycryptodome 설치 - 모듈 설치 시 리눅스에서 사용되지 않는 모듈이 있어서 일단 그 부분을 주석으로 처리하고 실행에 집중했다. ---> Imagegrab 미설치 - 그 외에도 버전이나 설치환경에 의하여 설치되지 않는 모듈이 있었다. ---> pyHook 미설치 - 중계서버로 지정한 ip와 포트를 맞추기 위해 일일이 .py를 수정하는 번거로움을 겪었다. 이 과정들에 시간을 가장 많이 지체하게 되었다. => 파일을 수정하는 방식이 아닌 파일에 맞춰 환경을 구축하는 방식으로 문제 접근 방법을 바꾸어 리눅스가 아닌 윈도우 가상머신을 사용하여 먼저 gns 가상환경 상에서 만들어보도록 계획을 수정했다.