Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/evilsocket/brutemachine
A Go library which main purpose is giving an interface to loop over a dictionary and use those words/lines as input for some custom logic such as HTTP file bruteforcing, DNS bruteforcing, etc.
https://github.com/evilsocket/brutemachine
Last synced: 6 days ago
JSON representation
A Go library which main purpose is giving an interface to loop over a dictionary and use those words/lines as input for some custom logic such as HTTP file bruteforcing, DNS bruteforcing, etc.
- Host: GitHub
- URL: https://github.com/evilsocket/brutemachine
- Owner: evilsocket
- License: gpl-3.0
- Created: 2017-06-28T12:46:23.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-07-03T14:51:04.000Z (over 7 years ago)
- Last Synced: 2024-08-05T17:25:57.459Z (3 months ago)
- Language: Go
- Size: 17.6 KB
- Stars: 54
- Watchers: 1
- Forks: 18
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hacking-lists - evilsocket/brutemachine - A Go library which main purpose is giving an interface to loop over a dictionary and use those words/lines as input for some custom logic such as HTTP file bruteforcing, DNS bruteforcing, etc. (Go)
README
# BruteMachine
This is a Go library which main purpose is giving an interface to loop over a dictionary and use those words/lines as input for some
custom logic such as HTTP file bruteforcing, DNS bruteforcing, etc. Brute-Machine will take care of parallelism, job dispatching and
so on, allowing you to focus on what matters most, the actual logic of your software.[![baby-gopher](https://raw.githubusercontent.com/drnic/babygopher-site/gh-pages/images/babygopher-badge.png)](http://www.babygopher.org)
## Example
The following is an example of how to use `brutemachine` to perform HTTP files bruteforcing.
```go
package mainimport (
"fmt"
"net/http"
"strings""github.com/evilsocket/brutemachine"
)const base = "http://some-url.com/"
func DoRequest(page string) interface{} {
url := strings.Replace(fmt.Sprintf("%s%s", base, page), "%EXT%", "php", -1)
resp, err := http.Head(url)
// Only pass valid responses to the handler.
if err == nil && resp.StatusCode == 200 {
return url
}return nil
}func OnResult(res interface{}) {
fmt.Printf("@ Found '%s'\n", res)
}func main() {
m := brutemachine.New( -1, "dictionary.txt", DoRequest, OnResult)
if err := m.Start(); err != nil {
panic(err)
}m.Wait()
fmt.Printf("\nDONE:\n")
fmt.Printf("%+v\n", m.Stats)
}
```## Installation
go get github.com/evilsocket/brutemachine
## License
This project is copyleft of [Simone Margaritelli](http://www.evilsocket.net/) and released under the GPL 3 license.