Giter Site home page Giter Site logo

zackattack's Introduction

===== ZackAttack! - Realying NTLM Like Nobody's Business

======= WTF Is This?

tl;dr version - ZackAttack! is a new Tool Set to do NTLM Authentication relaying unlike any other tool currently out there.

= So how is ZackAttack! different / better? Compared to other tools...

  • Supports NTLMv2 :)
  • Brings up external impact for NTLM by relaying to external Exchange Web Services servers ( think mobile phone users :) )
  • Custom Rogue HTTP and SMB Server funneling into a single pooled source and knows who the user is and keeps them authenticating without closing the socket
  • Rule based logic to auto-perform actions upon seing a user belonging to a group. When no rule exists, the rogue server holds on to the auth session as long as possible until a rule or api request comes in.
  • Auto / Guided generation to creating methods to get users to auto-authenticate without interaction
  • New methods for client auto authentication including geting FF/Chrome to auto-auth via UNC SMB shares (similar to IE)
  • Relaying to LDAP (critical for relaying to Domain Controllers), Exchange Web Services, and soon mssql.
  • SOCKS proxy to allow NTLM relay attacks with your favorite tools (proxychains smbclient....etc)
  • Focuses on not just poping the shells that traditional relays do, but leveraging dumb users as well and getting data through them.

So much for tl;dr ;) The goal? A Firesheep esque tool for relaying NTLM auths

= How do I Get Started

  1. ruby zackattack.rb

  2. open your favorite browser to http://zf:zf@localhost:4531/

  3. .....

  4. PROFIT! Or not. It's alpha still.

Code is written for ruby1.9 but should work with 1.8. Requires net/http(s) and webrick rubygems

= So What Are the Components

The Rogue Servers - HTTP and SMB. These get the auth requests and keep recycling them

The Clients - These connect to target servers and request NTLM creds from the Rogue Servers

The Rules - Define auto actions to perform upon seeing a user.

The Payloads - Methods to get users to autoauth with Integrated Windows Auth ergo not prompting the user for auth.

= XYZ Doesn't work

I'm sure it doesn't ;) I don't always code in ruby, but when i do, i make sure to introduce as many bugs as possible :)

Submit as much info as you can (comfortably) to the issues page. Please try to get a wireshark / pcap capture if it's a client issue. If it contains sensitive data (i.e. ntlm creds of a client) let me know and we can work around that if possible.

Feature request? I want to hear it! Check the todo file and see if i already mentioned it in there, otherwise submit!

I'll fill in more details later....

zackattack's People

Contributors

zfasel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zackattack's Issues

GUI - Cli

Not sure what to include in the CLI, but basic options that don't require full on http access. Such as:

  • Currently Authenticated Users
  • Create a rule
  • View Rules
  • Generate Payload

SMB Server - Detect One-off connections by IP that won't re-auth

Instances such as a vuln scanner or *nix system that won't respect the smb reauth and automatically perform it. Need to

  • Detect if user doesn't support reauth command
  • If IP is in the "internal range" (config option in future?) then mark that source IP as not supporting reauth
  • Use the auth from the detection that it doesnt work to say "this source IP is this user"

HTTP Proxy

HTTP(s) Proxy with keep-alive to use only one auth and provide access to a website.

Payload - SQLi

Payload for when access to sql is obtained or sqli is present to determine the connect to smb with the system account hosting the DB, write to a file (desktop.inis etc.)

Payload - Javascript

Create javascript payload for injection either MITM or persistent XSS. Provide for download or locally hosted.

EWS - More than pull emails

Add the following:

  • add email rules to fwd a copy to someone else
  • view / modify calendar
  • Send as user
  • pull contacts
  • access other folders other than their own

New issues to be created basd on which one of these get finished in time for derby

Alerts when new user detected

Either meta-refresh of iframe, ajax-ify, flash of window, or something to notify user that a wild new user has appeared!

EWS - Output Format?

Instead of dumping straight to xml file, should it go into a different file format for opening up in outlook/thunderbird/other or stay in xml file format and make a searchable/gui front end webmail?

API - Request Driven vs "wait for"

Currently API is only "wait for" with a timeout. Generate second API page to pass back a request ID and third to take requestid as param and spit back status. Should include another api request for deleting the requestid from actionlist.

Client - Sharepoint

Not sure how to integrate into rules. Possibly just rely on http proxy development.

Rule Logic for $DOMAIN\<anyuser>

Create rule logic to allow any user. Needs to do the following

  1. Perform API Actions First, then Other Rules, then rules.
  2. user domain == $DOMAIN
  3. User has not failed connecting to $TARGET before, else find another user.

base64 use of gsub("\n")

Testing in API reveals that some messages containing \x0a are getting the bytes removed as gsub is picking them up as \n.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.