DAY55
DAY55

트로이목마 만들기 프로젝트 1일차


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 가상환경 상에서 만들어보도록 계획을 수정했다.