All Projects → C-Sto → Gosecretsdump

C-Sto / Gosecretsdump

Dump ntds.dit really fast

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Gosecretsdump

Ob3vil1on
Another archive cracker created in python | cracking [zip/7z/rar] by bruteforcing [ NOT MAINTAINED ]
Stars: ✭ 17 (-86.07%)
Mutual labels:  password, cracking
pdfcrack
An Advanced tool to Crack Any Password Protected PDF file. A very user friendly script especially for noob hackers.
Stars: ✭ 46 (-62.3%)
Mutual labels:  password, cracking
password-list
Password lists with top passwords to optimize bruteforce attacks
Stars: ✭ 174 (+42.62%)
Mutual labels:  password, cracking
Zydra
Stars: ✭ 178 (+45.9%)
Mutual labels:  password, cracking
Keychaincracker
macOS keychain cracking tool
Stars: ✭ 693 (+468.03%)
Mutual labels:  password, cracking
Filevaultcracker
macOS FileVault cracking tool
Stars: ✭ 199 (+63.11%)
Mutual labels:  password, cracking
SuperHackerTool5000
A tool that will hack literally anything on the planet. If you get your hands on this tool, be ready to get put behind bars.
Stars: ✭ 31 (-74.59%)
Mutual labels:  password, cracking
Dcipher Cli
🔓Crack hashes using online rainbow & lookup table attack services, right from your terminal.
Stars: ✭ 193 (+58.2%)
Mutual labels:  password, cracking
Duplicut
Remove duplicates from MASSIVE wordlist, without sorting it (for dictionary-based password cracking)
Stars: ✭ 352 (+188.52%)
Mutual labels:  password, cracking
Bopscrk
Tool to generate smart and powerful wordlists
Stars: ✭ 273 (+123.77%)
Mutual labels:  password, cracking
cracken
a fast password wordlist generator, Smartlist creation and password hybrid-mask analysis tool written in pure safe Rust
Stars: ✭ 192 (+57.38%)
Mutual labels:  password, cracking
Chasm
A CHaracter Aware Splitting Method for producing password candidates.
Stars: ✭ 37 (-69.67%)
Mutual labels:  password, cracking
Badtouch
Scriptable network authentication cracker
Stars: ✭ 262 (+114.75%)
Mutual labels:  password, cracking
Mentalist
Mentalist is a graphical tool for custom wordlist generation. It utilizes common human paradigms for constructing passwords and can output the full wordlist as well as rules compatible with Hashcat and John the Ripper.
Stars: ✭ 945 (+674.59%)
Mutual labels:  password, cracking
Hashcat
World's fastest and most advanced password recovery utility
Stars: ✭ 11,014 (+8927.87%)
Mutual labels:  password, cracking
Codo Tools
CODO运维工具支持:告警管理、告警自愈、项目管理、事件管理、加密解密、随机密码、提醒管理等
Stars: ✭ 103 (-15.57%)
Mutual labels:  password
Pwd.sh
GPG symmetric password manager
Stars: ✭ 1,468 (+1103.28%)
Mutual labels:  password
Wifipassword Stealer
Get All Registered Wifi Passwords from Target Computer.
Stars: ✭ 97 (-20.49%)
Mutual labels:  password
Cheetah Gui
Cheetah GUI
Stars: ✭ 96 (-21.31%)
Mutual labels:  password
Node Oauth2 Server Example
Working oauth2 server with minimal configuration
Stars: ✭ 115 (-5.74%)
Mutual labels:  password

Gosecretsdump

Have you been using Impacket to dump hashes out of (large) NTDS.dit files, and become increasingly frustrated at how long it takes? I sure have!

All credit for the original code to the impacket devs, it's much more complicated than I anticipated.

This is a conversion of the impacket secretsdump module into golang. It's not very good, but it is quite fast. Please let me know if you find bugs, I'll try and fix where I can - bonus points if you can provide sample .dit files for me to bash against.

Features

  • Dumps dits very fast. Operations that usually take hours are now done in minutes.
  • Can dump SAM/SYSTEM backups
  • Can dump local SAM/SYSTEM (must be run as the machine account/SYSTEM)
  • A somewhat usable interface for integration other other tooling (See lib example below)

Usage

You will need to obtain the NTDS.dit and SYSTEM file from the target domain controller as normal. This won't dump anything remotely, just local (for now at least).

  -enabled
        Only output enabled accounts
  -history
        Include Password History
  -livesam
        Get hashes from live system. Only works on local machine hashes (SAM), only works on Windows.
  -noprint
        Don't print output to screen (probably use this with the -out flag)
  -ntds string
        Location of the NTDS file (required)
  -out string
        Location to export output
  -sam string
        Location of SAM registry hive
  -status
        Include status in hash output
  -stream
        Stream to files rather than writing in a block. Can be much slower.
  -system string
        Location of the SYSTEM file (required)
  -version
        Print version and exit

Example (there is a test .dit and system file in this repo)

gosecretsdump -ntds test/ntds.dit -system test/system

Comparison

Using a large-ish .dit file (approx 1gb)

Impacket secretsdump.py

time ./secretsdump.py local -system ~/go/src/github.com/c-sto/gosecretsdump/test/big/registry/SYSTEM -ntds ~/go/src/github.com/c-sto/gosecretsdump/test/big/Active\ Directory/ntds.dit
<snip>
./secretsdump.py -system registry/SYSTEM -ntds  local  1197.36s user 12.01s system 98% cpu 20:23.78 total

gosecretsdump

time go run main.go -system ~/go/src/github.com/c-sto/gosecretsdump/test/big/registry/SYSTEM -ntds ~/go/src/github.com/c-sto/gosecretsdump/test/big/Active\ Directory/ntds.dit
<snip>
go run main.go -system  -ntds  26.28s user 3.78s system 114% cpu 26.178 total

Lib

So you want to use this in your cool Go implant? that should be easy. The pattern for all the 'dumping' functions is as follows:

note It's likely that the api will undergo changes. I'll try to keep to semver, but please understand that I don't really have any idea what I'm doing.

//Create the reader flavour of your choice
dr, err = samreader.New("C:\\pentest\\system.hive", "C:\\pentest\\sam.hive")
if err != nil {
      return err
}

//Get the output channel
dataChan := dr.GetOutChan()

//start dumping
go dr.Dump()

//read from the output channel (the channel will be closed once dumping is complete)
wg := sync.WaitGroup{}
wg.Add(1)
go func(){
      defer wg.Done() //This probably won't actually work, I can never remember if defer works on inline funcs
      for dh := range dataChan{
            fmt.Println("%+v\n", dh)
      }
}()
//do other things while you wait
wg.Wait()
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].