0799bfbae8
Sanitized version of red team infrastructure automation platform. Operational content (implant pipelines, lures, credential capture) replaced with documented stubs. Architecture and infrastructure automation code intact.
150 lines
4.5 KiB
YAML
150 lines
4.5 KiB
YAML
---
|
|
# Common task for configuring integrated email tracker on C2 server
|
|
|
|
- name: Check if integrated tracker setup is requested
|
|
debug:
|
|
msg: "Setting up integrated email tracker on C2 server"
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Install required packages for tracker
|
|
apt:
|
|
name:
|
|
- python3-pip
|
|
- python3-venv
|
|
- python3-pillow
|
|
- nginx
|
|
- certbot
|
|
- python3-certbot-nginx
|
|
- jq
|
|
state: present
|
|
update_cache: yes
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Create tracker directory
|
|
file:
|
|
path: /root/Tools/tracker
|
|
state: directory
|
|
mode: '0755'
|
|
owner: root
|
|
group: root
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Create tracker data directory
|
|
file:
|
|
path: /root/Tools/tracker/data
|
|
state: directory
|
|
mode: '0755'
|
|
owner: root
|
|
group: root
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Create tracker system user
|
|
user:
|
|
name: tracker
|
|
system: yes
|
|
shell: /usr/sbin/nologin
|
|
home: /root/Tools/tracker
|
|
create_home: no
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Create Python virtual environment for tracker
|
|
pip:
|
|
virtualenv: /root/Tools/tracker/venv
|
|
name:
|
|
- flask
|
|
- pillow
|
|
- gunicorn
|
|
virtualenv_command: /usr/bin/python3 -m venv
|
|
environment:
|
|
PATH: "/usr/local/bin:/usr/bin:/bin"
|
|
vars:
|
|
ansible_python_interpreter: /usr/bin/python3
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Copy tracker application code
|
|
copy:
|
|
src: "../../tracker/files/simple_email_tracker.py"
|
|
dest: /root/Tools/tracker/simple_email_tracker.py
|
|
mode: '0755'
|
|
owner: root
|
|
group: root
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Copy tracker statistics CLI tool
|
|
copy:
|
|
src: "../../tracker/files/tracker-stats.sh"
|
|
dest: /root/Tools/tracker/tracker-stats.sh
|
|
mode: '0755'
|
|
owner: root
|
|
group: root
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Copy systemd service file for tracker
|
|
copy:
|
|
src: "../../tracker/files/tracker.service"
|
|
dest: /etc/systemd/system/tracker.service
|
|
mode: '0644'
|
|
owner: root
|
|
group: root
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Set correct permissions for tracker directories
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: tracker
|
|
group: tracker
|
|
recurse: yes
|
|
loop:
|
|
- /root/Tools/tracker
|
|
- /root/Tools/tracker/data
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Create NGINX site config for tracker
|
|
template:
|
|
src: "../../tracker/files/tracker-nginx.conf"
|
|
dest: /etc/nginx/sites-available/tracker
|
|
mode: '0644'
|
|
owner: root
|
|
group: root
|
|
vars:
|
|
tracker_domain: "{{ tracker_domain | default('track.' + domain) }}"
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Enable tracker NGINX site
|
|
file:
|
|
src: /etc/nginx/sites-available/tracker
|
|
dest: /etc/nginx/sites-enabled/tracker
|
|
state: link
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Configure redirector to proxy tracking requests
|
|
lineinfile:
|
|
path: /etc/nginx/sites-available/default
|
|
insertafter: "^\\s*location / {"
|
|
line: " # Email tracker proxy path\n location /px/(.*)\\.png$ {\n proxy_pass http://{{ c2_ip }}:443/pixel/$1.png;\n proxy_set_header Host {{ tracker_domain }};\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-Proto https;\n }"
|
|
delegate_to: "{{ groups['redirectors'][0] }}"
|
|
when: setup_integrated_tracker | default(false) | bool and groups['redirectors'] is defined
|
|
|
|
- name: Set up SSL if requested
|
|
shell: |
|
|
certbot --nginx -d {{ tracker_domain }} --non-interactive --agree-tos -m {{ tracker_email }}
|
|
args:
|
|
creates: /etc/letsencrypt/live/{{ tracker_domain }}/fullchain.pem
|
|
when: setup_integrated_tracker | default(false) | bool and tracker_setup_ssl | default(true) | bool
|
|
ignore_errors: yes
|
|
|
|
- name: Start and enable tracker service
|
|
systemd:
|
|
name: tracker
|
|
state: started
|
|
enabled: yes
|
|
daemon_reload: yes
|
|
when: setup_integrated_tracker | default(false) | bool
|
|
|
|
- name: Add tracker alias to bashrc for easy access
|
|
lineinfile:
|
|
path: /root/.bashrc
|
|
line: 'alias tracker="/root/Tools/tracker/tracker-stats.sh"'
|
|
state: present
|
|
when: setup_integrated_tracker | default(false) | bool |