https://github.com/nosmo/fess_up
Unintelligent DNS record guesser in Python
https://github.com/nosmo/fess_up
Last synced: 3 months ago
JSON representation
Unintelligent DNS record guesser in Python
- Host: GitHub
- URL: https://github.com/nosmo/fess_up
- Owner: nosmo
- Created: 2014-06-10T15:55:02.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2017-01-23T19:43:12.000Z (over 9 years ago)
- Last Synced: 2026-02-15T07:41:39.393Z (4 months ago)
- Language: Python
- Size: 24.4 KB
- Stars: 4
- Watchers: 1
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
fess_up
=======
Fess Up is an unintelligent DNS record guesser in Python. It offers
both a library and a command-line tool to scan specific domains for
(currently) one layer of subdomains. The scan is dictionary-based and
it will attempt to avoid superfluous queries by basing subsequent
queries off of previously discovered records.
fess_up's scanning wordlist is based on files installed in the
fess_up/dnsnames/ directory. To expand this list, either edit
`default.txt` or add another .txt file to the directory and it
will be automatically loaded.
Command-line tool
-------
To scan a domain using the `fess_up.py` (installed as
`fess_up` when using the Debian package) command line tool, simply
provide the domain as an argument:
```
fess_up nosmo.me
nosmo.me
{'@': {'A': ['92.51.245.61'],
'MX': [('nosmo.me.', 10)],
'TXT': ['v=spf1 mx -all']},
'www': {'A': ['92.51.245.61'],
'CNAME': ['nosmo.me.'],
'MX': [('nosmo.me.', 10)],
'TXT': ['v=spf1 mx -all']}}
```
`fess_up` can also output in a bind-like fashion when using the -B flag.
```
fess_up.py nosmo.me -B
nosmo.me
@ IN A 92.51.245.61
@ IN TXT v=spf1 mx -all
@ IN MX 10 nosmo.me.
www IN A 92.51.245.61
www IN CNAME nosmo.me.
www IN MX 10 nosmo.me.
www IN TXT v=spf1 mx -all
```
Library
--------
`fess_up`'s domain scan can be used as a library:
```
>>> from fess_up import dnsnames, DomainScan
>>> domain_scanner = DomainScan("nosmo.me", dnsnames.dnsnames)
>>> domain_scanner.runScan()
>>> dict(domain_scanner.data)
{'www': {'A': ['92.51.245.61'], 'CNAME': ['nosmo.me.'], 'MX': [('nosmo.me.', 10)], 'TXT': ['v=spf1 mx -all']}, None: {'A': ['92.51.245.61'], 'TXT': ['v=spf1 mx -all'], 'MX': [('nosmo.me.', 10)]}}
```