• Stars
    star
    113
  • Rank 308,711 (Top 7 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

DeepSea Phishing Gear

DeepSea Phishing Gear

DeepSea phishing gear aims to help RTOs and pentesters with the delivery of opsec-tight, flexible email phishing campaigns carried out on the outside as well as on the inside of a perimeter.

Goals

  • Operate with a minimal footprint deep inside enterprises (Internal phish delivery).
  • Seamlessly operate with external and internal mail providers (e.g. O365, Gmail, on-prem mail servers)
  • Quickly re-target connectivity parameters.
  • Flexibly add headers, targets, attachments
  • Correctly format and inline email templates, images and multipart messages.
  • Use content templates for personalization
  • Account for various secure email communication parameters
  • Clearly separate artifacts, mark databases and content delivery for multiple (parallel or sequential) phishing campaigns.
  • Help create content with minimal dependencies. Embedded tools to support Markdown->HTML->TXT workflow. |

45 config lines is all you need to consistently send a decent phish ...


Usage

Read more here

Build

cd ~/go/src/
export GOPATH=~/go

git clone  https://github.com/dsnezhkov/deepsea
cd deepsea

export GO111MODULE=on
go get
go build -o deepsea main.go

Operations

Setup campaigns workspace

mkdir -p campaigns/campaign1
cp conf/template.yaml campaigns/campaign1/campaign1.yaml
cd campaigns/campaign1

Set Workspace tasks

  • edit campaign.yaml

See descriptions of directives in template

  • edit marks.csv
ident,email,firstname,lastname
<dynamic>,[email protected],,

Load Marks

Note: Manual step (TBD for resolution):

  • Create DB file: touch campain.db

  • load marks from CSV (command like params shown, but could also be defined in the yml)

../../deepsea  --config campaign1.yaml  storage -d ./campaign.db  load -s ./marks.csv

Alternatively, split db management tasks:

  • create DB
../../deepsea  --config campaign1.yaml  storage  -d ./campaign.db manager  -T createtable
Using config file: ./campaign1.yaml
2019/11/18 13:16:16 Task: createtable
2019/11/18 13:16:16 Creating Marks table
  • load marks from CSV
../../deepsea  --config campaign1.yaml  storage -d ./campaign.db  load -s ./marks.csv
Using config file: ./campaign.yaml
2019/11/18 13:21:11 Dropping table Mark if exists
2019/11/18 13:21:11 Creating Marks table
2019/11/18 13:21:11 Pointing to mark table
2019/11/18 13:21:11 Removing existing rows if any
2019/11/18 13:21:11 Inserting a row
2019/11/18 13:21:11 Querying for result : find()
2019/11/18 13:21:11 Getting all results
2019/11/18 13:21:11 Printing Marks

vobi97v7, [email protected], , .
  • you can verify the marks are loaded
../../deepsea  --config ./campaign.yaml  storage  -d ./campaign.db manager  -T showmarks
Using config file: ./campaign.yaml
2019/11/18 13:22:17 Task: showmarks
2019/11/18 13:22:17 Querying for result : find()

-= Table: Marks =-
vobi97v7, [email protected], , .

Create Content

Tow methods: templated and hand-rolled

Templated
  1. Get a decent HTML template Ex: wget https://raw.githubusercontent.com/leemunroe/responsive-html-email-template/master/email.html

  2. write content introduce key/value pairs from yml's template-data/dictonary and interpolate in the template

  3. Inline CSS (if needed) when done with the template (.htpl)

../../deepsea mailclient --config ./campaign.yaml  content inline
  1. Create a TXT verson from the HTML version (.ttpl)
../../deepsea mailclient --config ./campaign.yaml  content multipart
Hand rolled. Tools

DeepSea provides tools to help roll yourt own html. Most likely you might want to:

  • Cretate HTML snippets from Markdown for fast prototyping
  • HTML to TEXT for seeing how HTML structure looks in terminal and multipart testing
  • Inline CSS Styling for older clients
  • Multipart messages

Example (MD2HTML):

../../deepsea mailclient --config ./campaign.yaml  content md2html  -M ./campaigns/campaign1.md -H ./campaigns/campaign1.html

#STDOUT
../../deepsea mailclient --config ./campaign.yaml  content md2html  -M ./campaigns/campaign1.md 
../../deepsea mailclient --config ./campaign.yaml  content html2text  -K ./campaigns/campaign1.html -L ./campaigns/campaign1.txt

Mail Campaign

../../deepsea mailclient --config ./campaign.yaml 

Using config file: ./campaign.yaml
SMTP Server : smtp.office365.com
SMTP Port   : 587
SMTP User : [email protected]
SMTP TLS : yes
From: [email protected]
To: campaign.db
Subject: Subject.
Text Template: message.ttpl
HTML Template: message.htpl

-= SMTP Authentication Credentials for smtp.office365.com =-
Enter Password: 

2019/11/18 18:14:18 Pointing to mark table
2019/11/18 18:14:18 Querying for result : find()
2019/11/18 18:14:18 Getting all results
2019/11/18 18:14:18 -= Marks =-
Emailing: [email protected] [id:vobi97v7] 

Note: We ask for password on the email provider account interactively for now.

Testing

If you need to run campaign to a test emails, you can reload test marks. For that, just recycle the data in the marks table like so:

../../deepsea  --config ./campaign.yaml storage manager -T recycletable
Using config file: ./campaign.yaml
2019/11/18 18:39:17 Task: recycletable
2019/11/18 18:39:17 Dropping table Mark if exists
2019/11/18 18:39:17 Creating Marks table
  • edit marks.csv
  • load test marks
../../deepsea  --config ./campaign.yaml storage load

More Repositories

1

zombieant

Zombie Ant Farm: Primitives and Offensive Tooling for Linux EDR evasion.
C
197
star
2

SSHoRTy

A progressive, customizable armored SSH tunnel implant for Linux and MacOS systems
Go
123
star
3

typhoon

C#
109
star
4

TruffleSnout

Iterative AD discovery toolkit for offensive operations
C#
82
star
5

racketeer

C#
67
star
6

elfpack

C++
41
star
7

foxtrot

C&C to deliver files and shuttle command execution instructions between an external actor and an internal agent with the help of Firefox Private Encrypted File Sharing
Python
37
star
8

octohook

Git Web Hook Tunnel for C2
Python
27
star
9

shutter

C++
22
star
10

exclave

C++
15
star
11

RunDllMShim

Run Managed Assemblies with RunDll
C++
14
star
12

HandsFreeCOM

Self-Loading Registration Free COM Functions
C++
11
star
13

cflsh

CloudFlare Worker Shell
Go
11
star
14

h53

A utility to force query DNS over DoH off of CloudFlare API when DNS block is in place
Go
10
star
15

mdns

mdns is a scanner to query services that respond to mDNS, one or many (over 12K). List of services is based on https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
Go
9
star
16

pufferfish

C
8
star
17

socksdll

Experiments in Go/C bridging and SOCKS5 server
C
8
star
18

USBeacon

Simple auditing beacon framework for USB payloads
Python
7
star
19

redphin

RedPhin - A framework for coding and executing phishing and sec awareness campaigns
Ruby
6
star
20

amoeba

Amoeba: Corporate Subsidiary Search and Intel
Python
6
star
21

LST

A collection of tools created with the goal of overcoming restrictions on data exfiltration and infiltration vectors placed by enterprise captive portals with or without DLP tech, in the form of screen remote sessions, terminal services and kiosks.
JavaScript
6
star
22

webglance

Compact web site screenshot utility based on Chrome Dev Tools Debugging Protocol
Go
4
star
23

coalmine

Coalmine: De-mining canaries in common file formats
Go
4
star
24

nciscoaudit

Nessus Cisco .audit vs static "show [running] config file" reporter
Ruby
3
star
25

burprpt

Rudimentary Burp scanner XML report converter to TXT
Ruby
2
star
26

rcert

Go
2
star
27

caa-twit

CAA record fetch for a domain or a list of domains
Go
1
star
28

codebook

Ruby
1
star
29

xsnake-workflows

Repository of sample workflows for xsnake
Java
1
star
30

htsnap

JavaScript
1
star
31

scrapers

Ruby
1
star
32

malstor

C++
1
star
33

redscraper

JavaScript
1
star
34

xsnake

HTML
1
star