Ansible Roles - froyo75/SpREaD GitHub Wiki

Available Ansible Roles

Name Description Vars/Templates/Files Path
backup_server Backup Server Ansible/scripts/
change_hostname Change Hostname N/A
configure_dns Changing DNS settings on system Ansible/roles/configure_dns/defaults/main.yml
configure_gandi_dns_records Configure Gandi DNS Records Ansible/roles/configure_gandi_dns_records/templates/ (Available DNS Template using Gandi's APIs
configure_gandi_glue_records Configure Gandi Glue Records N/A
configure_mailu Install and Configure Mailu Service Ansible/roles/configure_mailu/templates/
configure_letsencrypt Configure Let's Encrypt SSL certificate N/A
configure_timezone Configure system's TimeZone N/A
disable_ipv6 Disable IPv6 on system N/A
disable_unnecessary_services Disable Unnecessary Services on system Ansible/roles/disable_unnecessary_services/vars/os_<Distribution>.yml
harden_iptables Harden Firewall rules Ansible/iptables/
harden_sshd Harden SSH Service Ansible/roles/roles/harden_sshd/templates/
install_apache2 Install and Configure Apache2 Service Ansible/roles/install_apache2/templates/ (Available Apache2 Templates)
install_brc4 Install and Configure BRC4 server Ansible/roles/install_brc4/files/
install_cobaltstrike Install and Configure Cobalt Strike team server Ansible/roles/install_cobaltstrike/files/ (a 'cs.zip' archive file containing configuration files, profiles, and a license is required)
install_havoc Install and Configure Havoc team server N/A
install_axiom Install, setup and configure a new axiom controller Ansible/axiom/
install_clonesite Install and Configure a clonesite Ansible/clonesite/
install_docker Install Docker service N/A
install_kernel_headers Install Kernel Headers N/A
install_nginx Install and Configure NGINX reverse proxy Ansible/roles/install_nginx/templates/ (Available NGINX Templates)
install_redirect_rules Install Redirect Rules for Apache2 service (redirect.rules) Ansible/redirect_rules/
setup_docker_container Setup Docker Containers Docker/
remove_ssh_keys Revoke users' access (using SSH public keys) Ansible/ssh/quarantine
update Update and Upgrade system

Ansible Folders Description

Name Description
axiom/<ansible_inventory_hostname> Contains the Axiom configuration file axiom.json to setup a new Axiom controller instance for a specific host
cobaltstrike/<ansible_inventory_hostname> Contains the service scripts
brc4/<ansible_inventory_hostname> Contains brc4 configuration files including certificates + license file + services scripts for a specific host
havoc/<ansible_inventory_hostname> Contains havoc C2 configuration files including certificates + license file + services scripts for a specific host
certs/<server_domain> Contains private keys and certificates in PEM format for a specific domain
clonesite/<server_domain> Contains the clonesite HTML files and folders for a specific domain
dkim/<server_domain> Contain the DKIM key for a specific domain
dkim/genDKIMKeys.sh Bash script to generate a new DKIM key pair for a specific domain and a given Key Size
inventory Contains Ansible’s inventory files and folders includings group's variables (inventory/group_vars) and host's variables (inventory/host_vars)
iptables/<service_type> Contains the iptables rules for a specific service type (e.g brc4 or clonesite or evilginx or gophish or website)
redirect_rules/<service_type>/<server_domain> Contains the dynamic redirect rules for a given service type (e.g c2proxy or clonesite or gophish) and a specific domain
roles Contains all available Ansible roles including variables, tasks, files, templates, and modules
scripts Contains the backup script used by the backup_server role
ssh/<op_name> Contains all SSH public keys (for public key authentication) that will be added to the "authorized_keys" file for the given user "ansible_user"
ansible.cfg Contains the Ansible configuration settings
init-axiom.yml Ansible playbook for deploying a new Axiom controller
init-vps.yml Ansible playbook for deploying and hardening a new VPS
init-clonesite.yml Ansible playbook for deploying a new clonesite
init-c2proxy.yml Ansible playbook for deploying a new C2Proxy
init-c2server.yml Ansible playbook for deploying a new C2 server
init-gophish.yml Ansible playbook for deploying a new Gophish server
init-gophish-evilginx.yml Ansible playbook for deploying a new Gophish server with Evilginx support
init-mailu.yml Ansible playbook for deploying a new Mailu server
init-nextcloud.yml Ansible playbook for deploying a new NextCloud server
init-evilginx.yml Ansible playbook for deploying a new Evilginx server
init-evilginx-cdn.yml Ansible playbook for deploying a new Evilginx server with CDN support
revoke-ssh-access.yml Ansible playbook for revoking users' access (using SSH public keys)

Available Service Type

Name Specific Options/Modes
c2server ratel or boomerang (brc4)
c2proxy N/A
axiom N/A
clonesite N/A
evilginx N/A
evilginx-cdn CDN endpoint names
gophish N/A
gophish-evilginx N/A
mailu dkim selector + key
nextcloud N/A

Available DNS Templates using Gandi's APIs

Template Path Description
Ansible/roles/configure_gandi_dns_records/templates/default-a.j2 Setting up a simple A Record for a given domain
Ansible/roles/configure_gandi_dns_records/templates/default-smtp.j2 Setting up standard SMTP DNS records for a given domain
Ansible/roles/configure_gandi_dns_records/templates/mailgun-eu.j2 Setting up Mailgun EU SMTP DNS records for a given domain

Available Apache2 Templates

Template Path Description
Ansible/roles/install_apache2/templates/c2proxy-https.j2 C2Proxy configuration with Let's Encrypt + dynamic redirect rules
Ansible/roles/install_apache2/templates/default-https.j2 Standard HTTPS server configuration with Let's Encrypt
Ansible/roles/install_apache2/templates/default-http.j2 Standard HTTP server configuration

Available NGINX Templates

Template Path Description
Ansible/roles/install_nginx/templates/default.j2 Default HTTP/HTTPS template configuration
Ansible/roles/install_nginx/templates/evilginx-cdn.j2 HTTP/HTTPS template configuration for Evilginx with CDN support
Ansible/roles/install_nginx/templates/nginx.conf.j2 NGINX server configuration

Additional Scripts

Path Description
Ansible/roles/install_axiom/files/axiom_aws_cleanup.sh Delete the security group and remove the Amazon Machine Image (AMI) associated with the Axiom profile.
Ansible/roles/install_axiom/files/fix_aws_axiom_account_setup.sh Fix AWS Axiom account setup when performing an unattended install, it also add a new security group for Axiom EC2 instances.
Ansible/roles/install_axiom/files/getinfos.sh Retrieve information from Axiom instances (e.g. Hostname, IP Infos, DNS config etc.).
Ansible/roles/install_axiom/files/recon_axiom.sh Automate reconnaissance using a specific Axiom fleet. It uses a lot of techniques (passive/active subdomain enumeration, ports scanning, screenshots, nuclei scans, Fetch known URLs etc...).
⚠️ **GitHub.com Fallback** ⚠️