Commit graph

172 commits

Author SHA1 Message Date
byt3bl33d3r
fd9b79c617 first pass at refactoring:
directory structure has been simplified by grouping all the poisoners and servers in one folder
impacket smb server has been replaced with responder's
flask http server has beem replaced with responder's
modified config file to support new changes
2015-08-02 21:15:10 +02:00
byt3bl33d3r
8270f337ad DHCP poisoner now takes into account the requested IP of clients WPAD server address
Specifying interface is now optional
2015-07-30 16:56:11 +02:00
byt3bl33d3r
87bca5e7dd Added new beefapi.py , modified beefautorun plugin: now handles hook injection + ARE autoloading 2015-07-30 00:54:59 +02:00
byt3bl33d3r
7ec9f7b395 This commit adds active packet filtering/modification to the framework (replicates etterfilter functionality)
by using netfilterqueue, you can pass a filter using the new -F option, (will be adding an example later)
additionaly removed some deprecated attributes and the --manual-iptables option
2015-07-27 20:44:23 +02:00
byt3bl33d3r
f0fce41c88 App-Cache poison and BrowserSniper plugins have been refactored, added supported python version tags in README 2015-07-26 14:03:56 +02:00
byt3bl33d3r
f4df9971f9 added CHANGELOG.md, CONTRIBUTORS.md and modded README.md 2015-07-25 03:37:45 +02:00
byt3bl33d3r
ba14ed8687 This commit refactors ARP and DHCP poisoning:
DHCP poisoning now works on Windows, additionaly it's been optimized for performance improvements
ARP poisoning has been optimized with and internal cache and some algo improvements

cve-details-parser.py has been added to the utils/ directory to help adding exploits to the BrowserSniper config file

I'm currently working on adding to the filepwn plugin all of the missing options that bdfproxy stand-alone has
2015-07-25 02:49:41 +02:00
byt3bl33d3r
5e2f30fb89 This is a vewwwy big commit
- The inject plugin now uses beautifulsoup4 to actually parse HTML and add content to it as supposed to using regexes
- The logging of the whole framework has been compleatly overhauled
- plugindetect.js now includes os.js from the metasploit framework for os and browser detection, let's us fingerprint hosts even if UA is lying!
- New plugin HTA Drive-by has been added, prompts the user for a plugin update and makes them download an hta app which contains a powershell payload
- the API of the plugins has been simplified
- Improvements and error handling to user-agent parsing
- Some misc bugfixes
2015-07-18 20:14:07 +02:00
byt3bl33d3r
ff0ada2a39 Revamped logging , plugins will be re-added later once refactored 2015-07-14 17:40:19 +02:00
byt3bl33d3r
fb0e8a3762 fixed #126 2015-06-20 14:16:29 +02:00
byt3bl33d3r
951937bac4 commented out unfinished option in Inject.py 2015-06-15 00:27:09 +02:00
byt3bl33d3r
bb8ee46b82 added kali setup script and updated readme 2015-06-15 00:18:55 +02:00
byt3bl33d3r
b73ac99de3 re-added scapy, changed imports 2015-06-11 22:27:31 +02:00
byt3bl33d3r
aa246130e2 updated requirements.txt, changed imports to mitmflib 2015-06-11 22:05:22 +02:00
byt3bl33d3r
e3aa8ba617 fixes #117 2015-06-08 13:38:45 +02:00
byt3bl33d3r
96d1078d42 Merge branch 'webserver' 2015-06-08 04:30:11 +02:00
byt3bl33d3r
316246e3cc Re-Wrote Beef-api, refactored the beefAutorun plugin as per #113, this also should address any problems left over from #106 2015-06-08 04:13:55 +02:00
byt3bl33d3r
d56ce5447e This commit should resolve issues #106 and #109
Issue #106 was caused by a 'None' value being returned when BeEF was unable to detect the hooked browser's OS

Issue #109 was probably caused by locked resources when send() and sendp() where being called, adding in sleep() seems to have resolved the issue (at least on my machine)
2015-06-06 14:20:54 +02:00
byt3bl33d3r
ffdb4ff55c fixed DHCP and ICMP spoofing calling wrong vars 2015-06-05 21:06:20 +02:00
byt3bl33d3r
b0fa2e010d fixed #108 2015-06-03 01:44:12 +02:00
byt3bl33d3r
c2354b9b63 Merged the SMBTrap plugin to master and relative code changes 2015-06-02 23:54:33 +02:00
byt3bl33d3r
4de7d3e67e fixed a wrong var 2015-06-02 18:53:30 +02:00
byt3bl33d3r
14580f1589 second implementation of the HTTP server, you can now define shares for the SMB server in the config file, added an option to switch between the normal SMB server and the Karma version.
removed some useless code (left over from the responder plugin), serverResponseStatus hook now returns a dict (tuple was causing errors)
2015-05-30 15:00:41 +02:00
byt3bl33d3r
87cb98b6ac fixes 98 2015-05-28 13:49:40 +02:00
byt3bl33d3r
f86457b300 fixes #96 2015-05-27 22:02:41 +02:00
byt3bl33d3r
e985d42a8a The new changes caused an exception when unpacking the tuple, fixed it 2015-05-23 00:37:08 +02:00
byt3bl33d3r
840e202e5b handleStatus() is now hooked through serverResponseStatus, were now able to modify the server response code and message
added the SMBTrap plugin
2015-05-22 20:16:47 +02:00
byt3bl33d3r
8b915064c1 fixed wrong var name in beefautorun 2015-05-20 14:35:03 +02:00
byt3bl33d3r
929520fcc8 Initial webserver implementation, plus organized directory structure a bit better 2015-05-19 22:43:43 +02:00
byt3bl33d3r
563a8d37c1 Fixed a bug in SSLstrip+ code, when redirecting to certain sites
Created a wrapper class around Msfrpc to limit code re-use when interacting with msf
2015-05-19 00:00:40 +02:00
byt3bl33d3r
b9371f7cdc Screenshotter plugin now live!
Added an interval option to specify the interval at which to take the sceenshots

Ferret-NG plugin is pretty much set also, was a bit of a dummy and didn't take into account that we would have sessions from multiple clients (duh!) , so I added a section in the config file to specify the client to hijack the sessions from , also added an option to load the cookies from a log file!
2015-05-16 21:22:11 +02:00
byt3bl33d3r
ff39a302f9 This commit is just to push the changes so far to github , still have to tidy things up here and there and fix some bugs (also I really hate javascript)
JavaPwn plugin has been renamed to BrowserSniper (cause it now supports java, flash and browser exploits), it's been completly re-written along with it's config file section
Addition of the screenshotter plugin, currently there is a bug when decoding the base64 encoded png files (a very wierd one) , but other than that it works (did i mention i hate js?)
Jskeylogger's javscript now works on every browser except FF mobile (have no clue what's with that) p.s. did i mention i hate JS?
Plugins that deal with javascript now read it from a file as supposed to having it built in (encoding issues) fu javascript
User agent parsing is now built in and handled by core/httpagentparser.py, this because the user-agent library is a pain to install on some distros , also removes 3-4 deps which is a plus

also fuck javascript
2015-05-16 00:43:56 +02:00
byt3bl33d3r
79025dc77e Initial working PoC for the Ferret-NG plugin that will replace the SessionHijacker plugin: it will capture cookies and trasparently feed them to the proxy it starts up on port 10010 (by default), this way we just have to connect to the proxy, browse to the same website as the victim and we will automatically hijack their session! \o/
The way MITMf hooks SSLstrip's functions has been modified to improve plugin code readability, additionally corrected some useless function hooks that were placed in early framework realeases and never removed.

Replace plugin has been given it's own section in the config file

currently the BeedAutorun and Javapwn plugins have to be cleaned up...

BrowserProfile plugin's Pinlady code has been updated to the latest version (v0.9.0) and will now detect Flash player's version

Javapwn plugin will be renamed to BrowserPwn and will support Flash exploits too , as supposed to only Java exploits

Since we now have a built in SMB server, removed options to specify a host in the SMBauth plugin

Tweaked the output of some plugins
2015-05-11 03:13:45 +02:00
byt3bl33d3r
d3e509d4cd Added error handling to DNS and SMB servers when port is in use
Added check to see if a plugins options were called without loading the actual plugin
2015-05-06 23:07:59 +02:00
byt3bl33d3r
70ec5a2bbc All plugins are now modified to support dynamic config file changes
Responder functionality fully restored
2015-05-05 19:04:01 +02:00
byt3bl33d3r
dfa9c9d65e Added debug logging to ProxyPlugins, it will now print a traceback if errors occur in hooked functions 2015-05-05 00:39:59 +02:00
byt3bl33d3r
5d07551a50 WPAD Poisoner back online, removed options in config file and rellative code for choosing which DNS server to use. (there really was not point in keeping it)
the --basic and --force options and the EXE serving in the Responder plugin have been removed, until I can find a better way of implementing them.
Modified and re-added the JS-keylogger and SMBauth plugins
2015-05-04 23:13:21 +02:00
byt3bl33d3r
aa4e022ab0 Kerberos sever back online, squashed some bugs 2015-04-30 00:10:55 +02:00
byt3bl33d3r
08b9029a96 Responder's MDNS/LLMNR/NBTNS poisoners are back in action (better than ever), only WPAD remains.
Tested against Windows 7 and 8, got hashes 100% of the time! \o/

The rest of the servers will be added in after WPAD is fixed.

Next step is to fix the logging... frankly i rather just log everything into the main mitmf.log folder since it's very grep'able.
Also the exact output is going to need tweaking, the lines are wayy to long
2015-04-28 02:03:12 +02:00
byt3bl33d3r
9712eed4a3 This is 1/2 of the work done... lot's of cool stuff!
I've re-written a decent amount of the framework to support dynamic config file updates, revamped the ARP Spoofing 'engine' and changed the way MITMf integrates Responder and Netcreds.

- Net-creds is now started by default and no longer a plugin.. It's all about getting those creds after all.
- Integrated the Subterfuge Framework's ARPWatch script, it will enable itself when spoofing the whole subnet (also squashed bugs in the original ARP spoofing code)
- The spoof plugin now supports specifying a range of targets (e.g. --target 10.10.10.1-15) and multiple targets (e.g. --target 10.10.10.1,10.10.10.2)
- An SMB Server is now started by default, MITMf now uses Impacket's SMBserver as supposed to the one built into Responder, mainly for 2 reasons:
  1) Impacket is moving towards SMB2 support and is actively developed
  2) Impacket's SMB server is fully functional as supposed to Responder's (will be adding a section for it in the config file)
  3) Responder's SMB server was unrealiable when used through MITMf (After spending a day trying to figure out why, I just gave up and yanked it out)

- Responder's code has been broken down into single importable classes (way easier to manage and read, ugh!)
- Started adding dynamic config support to Responder's code and changed the logging messages to be a bit more readable.
- POST data captured through the proxy will now only be logged and printed to STDOUT when it's decodable to UTF-8 (this prevents logging encrypted data which is no use)
- Responder and the Beefapi script are no longer submodules (they seem to be a pain to package, so i removed them to help a brother out)
- Some plugins are missing because I'm currently re-writing them, will be added later
- Main plugin class now inharates from the ConfigWatcher class, this way plugins will support dynamic configs natively! \o/
2015-04-27 18:33:55 +02:00
byt3bl33d3r
663f38e732 initial dynamic config support
added configwatcher.py
2015-04-19 23:33:44 +02:00
byt3bl33d3r
33c9eda05b fixed the responder plugin (im a dummy) 2015-04-17 02:11:00 +02:00
byt3bl33d3r
6121c67eaa Merge branch 'dev' 2015-04-15 18:25:59 +02:00
byt3bl33d3r
b91bb4271b - Fixed bug where sometimes DNS wouldn't resolve local IP's
- Added Metasploit integration to Filepwn plugin
2015-04-15 18:19:19 +02:00
byt3bl33d3r
360a6ba6ce addresses issue #63 2015-04-15 17:16:28 +02:00
byt3bl33d3r
8eb09309d2 Merged Filepwn plugin and config file changes 2015-04-15 00:40:01 +02:00
byt3bl33d3r
5e9158ce0a Updated FilePwn plugin with latest BDFProxy version
Removed exception handling in mitmf.py since I actually want a traceback
2015-04-14 16:16:29 +02:00
byt3bl33d3r
460399541f Modded Responder plugin to accomodate re-write
Started converting all string formatting to format() API
2015-04-13 20:25:14 +02:00
byt3bl33d3r
5b0a15ea56 fixed logging in responder and some plugins 2015-04-12 19:00:50 +02:00
byt3bl33d3r
9a1c3b0ec4 - Whole framework now requires root privs
- Added an internal DNS server
- Proxy can now use our custom DNS server (DNSChef) or Twisted's
- Removed priv check from plugins
- DNS spoofing fully re-written
- Iptables rules are now checked and set between plugins
2015-04-12 01:49:43 +02:00