Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@ subdomain-bruteforcer (SubBrute)
=====================
SubBrute is a community driven project with the goal of creating the fastest, and most accurate subdomain enumeration tool. Some of the magic behind SubBrute is that it uses open resolvers as a kind of proxy to circumvent DNS rate-limiting (https://www.us-cert.gov/ncas/alerts/TA13-088A). This design also provides a layer of anonymity, as SubBrute does not send traffic directly to the target's name servers.

Installation
============

To install, just clone this repository with `git clone https://github.com/TheRook/subbrute.git` and then install with `cd subbrute && python setup.py install`.

SubBrute can then be called with `subbrute` (or `subbrute.exe` under Windows. Note that under Windows, the python 'Scripts' folder must be in the PATH). SubBrute can also be called without installation by running `python subbrute.py` from the project folder. For details, see [More Information](https://github.com/TheRook/subbrute#more-information)

Whats new in v2.0?
=====================
A lot of exciting updates... except for the readme file, which still needs to be updated.
Expand Down
31 changes: 31 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/usr/bin/env python
import os
from setuptools import setup, find_packages


long_description = open(
os.path.join(
os.path.dirname(__file__),
'README.md'
)
).read()


setup(
name='SubBrute',
version='2.0',
license='LICENSE',
url='https://github.com/TheRook/subbrute',
description='A fast and accurate subdomain enumeration tool.',
long_description=long_description,
packages=find_packages('.', exclude=["dnslib", "*.tests", "*.tests.*", "tests.*", "tests"]),
py_modules=["subbrute"],
data_files=[('', ['names.txt', 'resolvers.txt', 'names_small.txt'])],
install_requires=['dnslib'],
entry_points={
'console_scripts': [
'subbrute = subbrute:main',
]
},
keywords=['dns', 'subdomain', 'spider']
)
8 changes: 6 additions & 2 deletions subbrute.py
Original file line number Diff line number Diff line change
Expand Up @@ -794,7 +794,8 @@ def signal_init():
#Windows
pass

if __name__ == "__main__":

def main():
if getattr(sys, 'frozen', False):
# cx_freeze windows:
base_path = os.path.dirname(sys.executable)
Expand Down Expand Up @@ -856,4 +857,7 @@ def signal_init():
target = target.strip()
if target:
trace(target, record_type, options.subs, options.resolvers, options.process_count, options.print_data, output, json_output)
print_target(target, record_type, options.subs, options.resolvers, options.process_count, options.print_data, output, json_output)
print_target(target, record_type, options.subs, options.resolvers, options.process_count, options.print_data, output, json_output)

if __name__ == "__main__":
main()