본문으로 바로가기

SPT (Simple Phishing Test)

category Offensive Security/Open Source 2015.05.26 01:57

1. 개요

기업 보안을 진단하는 과정에서 "피싱 메일에 대한 테스트를 하자" 라는 취지에서 다양한 오픈소스 도구들을 검토하는 중 단순하면서도 직관적인 이 도구가 눈에 띄어 구축 및 테스트를 진행해 보았다. 간단하게 요약하면 다음과 같다.

장점

    • 구축 및 설치가 간단
    • 다양한 형태로 피싱 메일 템플릿을 운영
    • 피싱 링크를 클릭한 경우 클릭한 사용자의 간단한 정보(클릭한 시간, 아이피)들을 전송
    • csv 파일을 파싱하여 다양한 사용자들의 메일을 한번에 추가(Import)
    • 클릭한 경우 피싱 교육 페이지를 보여주며, 해당 페이지는 템플릿 형태로 운영 관리

단점

    • 첨부파일 형태로 진행할 수 없기에 스피어 피싱(Spear Phishing)에는 적합하지 않음
    • 템플릿을 만들기 위해서는 간단한 클라이언트 기반 웹 언어를 사용 할 수 있어야 함
    • 도구 사용에 적응이 필요

2. 구축

구축은 기본 웹 서버 구축과 SMTP 메일 서버 구축 그리고 SPT 구축으로 구분되어 진다.

2.1. LAMP 및 필요 패키지 설치

우선 spt 도구는 웹 애플리케이션 형태로 운영하기 때문에 웹 서버 구축을 사전에 진행한다. 설치 환경은 우분투 14.04 LTS에 진행하였고, LAMP를 설치한다. 그리고 도구의 다운로드는 github로 다운로드 받으며 일부 php5 라이브러리들을 사용한다.


sudo apt-get update && upgrade
sudo apt-get install -y apache2 php5 mysql-server mysql-client php5-mysql phpmyadmin libmysqlclient15-dev php5-curl git php5-ldap vim

설치하는 과정에서 TUI로 입력하는 구간들이 생긴다. 해당 구간들은 MySQL의 root 사용자의 비밀번호이다.

2.2. Apache2 설정

웹 서버로 접근할 때 루트 디렉터리 위치를 변경하기 위해 /etc/apache2/sites-available/spt.conf 파일을 생성하고 다음 내용을 입력한다.


sudo vim /etc/apache2/sites-available/spt.conf

<VirtualHost *:80>
        ServerAdmin me@me.local
        ServerName spt.local
        DocumentRoot /var/www/spt
        <Directory /var/www/spt>
                Options -Indexes
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>

        LogLevel warn
        ErrorLog /var/log/apache2/spt.local_error.log
        CustomLog /var/log/apache2/spt.local_access.log combined
        ServerSignature Off
</VirtualHost>

spt.conf 파일을 아파치에서 사용할 수 있도록 심볼링크를 설정하고, 기존에 설정되어 있는 000-default.conf의 심볼링크는 해제한다. 설정이 완료되면 아파치 데몬을 재시작한다.


sudo a2ensite spt.conf
sudo a2dissite 000-default.conf
sudo service apache2 restart

2.3. spt 도구 설정

spt 도구는 github를 이용하여 다운로드 한다.


git clone https://github.com/sptoolkit/sptoolkit

다운로드 받은 파일 안에는 extensions 디렉터리와 spt 디렉터리를 볼 수 있다. 이 중 spt 디렉터리를 /var/www/ 디렉터리에 복사한다. 그리고 사용자와 사용자 그룹을 www-data 로 설정한다.


sudo cp -r sptoolkit/spt /var/www
sudo chown -R www-data:www-data /var/www/spt/

2.4. 데이터베이스 생성

spt가 이용한 데이터베이스를 생성한다.


mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 51
Server version: 5.5.47-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database spt;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
| spt                |
+--------------------+
5 rows in set (0.00 sec)

mysql> exit;

2.5. SMTP 설치

피싱 테스트이기 때문에 메일 전송 기능만 가지고 있으면 된다. 그래서 간단한 SMTP 서버인 POSTFIX를 설치한다.


sudo apt-get install postfix

설치하는 과정에서 TUI로 사용자에게 어떻게 설정할 것인가 묻는 화면이 나오는데 일단 <ok> 버튼을 누르고 설치를 완료한다. 그리고 다음 명령으로 POSTFIX를 상세히 설정한다.


sudo dpkg-reconfigure postfix

설정하는 과정은 총 9가지 물음이 있다. 각각의 물음에 다음과 같이 설정하여 진행 한다.

- Internet Site

- mail.spt.com

- 메일서버 관리자 시스템 아이디

- mail.spt.com 추가

- <No>

- 127.0.0.0/8 뒤에 메일서버 아이피 입력

- 0

- +

- all

3. spt 설치

spt 설치는 웹 애플리케이션으로 접근하면 간단하게 클릭으로 설치할 수 있다. 먼저 Go to Install 버튼을 클릭한다.

다음 내용은 라이센스 관련된 내용으로 "동의" 버튼을 클릭하고 지나간다.

spt 도구가 사용하는 라이브러리와 패키지들이 정상적으로 설치되어 있으면 다음 그림과 같이 초록핵 체크 표시를 볼 수 있다. 만약 구성이 안된 내용이 있다면 빨강색 엑스 표시를 볼 수 있으며 구성을 완료 해야 다음 내용으로 진행할 수 있다.

데이터베이스 연동 설정과 관련된 부분이다. MySQL 사용자 이름과 패스워드를 입력하고, 데이터베이스 이름을 입력하고 다음으로 진행한다.

데이터베이스와 연동이 잘되고 설치가 완료되면 다음과 같이 테이블들이 생성되었음을 출력해준다.

그 다음 정보는 spt 도구에 로그인하기 위한 정보를 보여주는 부분이다. 이 중 이메일 주소와 패스워드는 로그인 할 때 아이디와 패스워드로 사용된다.

그리고 다음과 같이 로그인 버튼이 활성화 된다.

로그인하면 다음 그림과 같이 메인 화면을 볼 수 있다.

4. 운영

다음 그림과 같이 메인페이지에서 제공하는 카테고리는 총 7개가 있다. Quick Start는 사용 방법에 대해 소개를 하고 있고, Targets는 피싱 테스트를 할 대상을 설정하는 부분, Templates는 피싱 템플릿을 Education은 피싱 링크를 클릭했을 때 보여주는 페이지의 템플릿을 관리한다. Campaigns는 피싱 테스트를 하기 위한 기능, Admins는 spt 웹 애플리케이션 관리자 및 사용자 그룹을 설정하는 기능이다. 마지막으로 Settings는 SMTP, LDAP, API 등 설정하는 부분이다.

그림 9. 카테고리

4.1. 설정(Settings)

가장 먼서 설정해야 할 부분은 SMTP 서버와의 연동이다. SMTP 서버와 연동은 Settings 안에 SMTP 설정이 있다. 포트 번호는 기본 25번을 사용하며, TLS는 설정하지 않았기에 사용하지 않는다. 그리고 기본 SMTP 서버로 설정한다.

그림 10. SMTP 연동 설정

4.2. 대상(Targets)

공격 대상을 설정하는 부분으로 테스트 대상의 간략한 정보 설정을 위한 Metrics, 한명의 사용자를 설정하기 위한 One, 한번에 다수의 사용자 정보를 입력하기 위한 Export 기능과 Import 기능이 있다. Metrics 설정에 따라 csv 파일을 Export 할 수 있으며, 다수의 정보를 입력한 후 Import 하면 바로 구성되는 것을 볼 수 있다.

설정이 완료 되면 대상 그룹이 ALL Targets 카테고리 아래에 생성이 된다. 해당 그룹을 클릭하면 그룹에 소속되어 있는 대상 리스트를 볼 수 있다.

그림 11. 피싱 대상 설정

4.3. 캠페인(Campaigns)

운영 방법은 간단하다. 왼쪽 카테고리에서 Campaigns 항목을 클릭하면 다음 그림과 같이 볼 수 있다. 여기서 다시 Campaign 버튼을 클릭한다.

그림 12. 캠페인

다음 그림에서 캠페인 이름을 설정한다.

그림 13. 캠페인 이름 설정

그리고 Targets 카테고리에서 대상 그룹을 설정한다.

그림 14. 구성된 피싱 대상 선택

Schedule 카테고리에서는 피싱 메일 전송할 시간을 설정할 수 있는데, 즉시 보내기 위해서는 Background 항목의 체크를 해제한다.

그림 15. 피싱 테스트 일정 설정

그리고 Template과 Education 에서는 미리 구성된 템플릿을 선택하여 운영할 수 있다. 물론개별 환경에 따라 구성하여 운영해도 무방하다.

그림 16. 템플릿 선택

SMTP Relay 카테고리는 SMTP 설정 항목을 선택할 수 있다. 기본 SMTP를 설정하였다면 설정 변경 없이 진행 할 수 있다.

그림 17. 구성된 SMTP 선택

그외 시간 제어, 단축 URL 기능 Java 또는 Flash 버전 수집 항목을 활성화 할 수 있다. 설정한대로 진행하면 다음 그림과 같은 메시지를 볼 수 있다. 일시 정지 버튼 옆 진행 그래프가 가득 찬 것으로 설정한 모든 메일 주소에 피싱 메일을 보낸 것이다.

그림 18. 피싱 테스트 진행 결과 1

그리고 진행 그래프 옆 새로고침 버튼을 클릭하면 다음 그림과 같이 볼 수 있다. 상태(Status) 밑에 활성화된 아이콘을 마우스 오버하면 메일 전송 결과를 볼 수 있으며, 그림과 같은 메시지가 확인되어야 성공적인 전송이 된 것이다.

그림 19. 피싱 테스트 진행 결과 2

5. 결과

몇 가지 테스트를 해본 결과 naver와 nate에서는 피싱 메일을 보내도 어떠한 결과가 없었다. 유일하게 반응한 곳이 Gmail 인데, 이곳도 스팸으로 처리하고 있었다. 물론 몇가지 더 테스트를 진행해본 결과 아마존 메일로 보냈기에 아마존 제공 메일의 인증 항목이 빠져 스팸으로 처리되었던 것이고, 보내는 사람의 주소를 변경하면 스팸처리가 되지 않았다. 일단 이번 포스팅에선 스팸 메일 처리된 이메일을 스팸 해제하고 테스트를 진행해 보았다.

먼저 단순히 메일을 읽은 것만으로는 어떠한 반응이 일어나지 않는다. 그림과 같이 링크를 클릭해야 spt 도구에 정보들이 저장되고 운영된다.

그림 20. 구글 메일 피싱 테스트 결과

링크를 클릭하면 피싱되었음을 명시하는 내용과 교육 동영상을 볼 수 있다.

그림 21. 피싱 결과 메시지

그리고 spt 도구에서는 다음과 같이 클릭한 시간, 사용자의 아이피, 피싱 트레이닝 동의 시간, 사용하는 소프트웨어 버전 정보들을 확인 할 수 있다.

그림 22. spt에서 피싱 결과 관리

특히 트레이닝 동의 시간을 보려면 피싱 링크를 클릭하여 볼 수 있는 Education 페이지의 맨 아래에 동의 항목을 클릭해야 그 결과를 볼 수 있다.

그림 23. 피싱 교육 청취 확인 동의서

6. 참조 사이트


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

'Offensive Security > Open Source' 카테고리의 다른 글

SPT (Simple Phishing Test)  (0) 2015.05.26

댓글을 달아 주세요

티스토리 툴바