libraccoon
libraccon a library for high performance offensive security tool for reconnaissance based on raccoon scanner. This library is based on Raccoon A high performance offensive security tool for reconnaissance and vulnerability scanning. The difference is we are providing a library to be used as a module.
This is because we wanted to integrated raccoon to our nmmapper, but we couldn't do it easily, so we just had to re-write this tool to provide module level import.
Installing the module
How to use python3-libraccoon
As mentioned this module is designed to be used like a module in other python scripts
from libraccoon.libs import waf
from libraccoon.libs.sub_domain import SubDomainEnumerator
from libraccoon.libs.storage_explorer import StorageExplorer
This is how we intended to use this module.
Detecting WAF
WAF Stands for web application firewall.
from libraccoon.libs.host import Host
from libraccoon.libs import waf
# Initiate host
host = Host(target="nmmapper.com")
# Begin the waf
w = waf.WAF(host)
await w.detect()
results = w.get_waf # Returns dict
print(results)
{'waf': 'Cloudflare'}
You will always get results in dict or list
Querying subdomains
from libraccoon.libs.host import Hos
from libraccoon.libs.sub_domain import SubDomainEnumerator
host = Host(target="nmmapper.com")
subs = SubDomainEnumerator(host)
await subs.run()
# Enumerating Subdomains
# Trying to discover subdomains in Google
.....
# Done enumerating Subdomains
subs.get_subdomains
['nmmapper.com',
'mail.nmmapper.com',
'upstream.nmmapper.com',
'flower.nmmapper.com',
'analytics.nmmapper.com',
'www.nmmapper.com']
Once again this is module type, can be used in any other external python programs
Querying virtual-host with bingip2host
If you want to find which ips are hosted on the same network, you can use bingip2host, this tool still requires improvements.
ip="172.67.209....." # CloudFlare
from libraccoon.libs.bingip2host import BingIp2Host
bing = BingIp2Host(ip)
await bing.search()
print(await bing.get_domains())
[{'ip': '172.67.209....', 'domain': 'www.------.fi', 'source': 'bing'},
{'ip': '172.67.209....',
'domain': '-----.uk',
'source': 'bing'},
.......
# More results are hidden
.....
]
Querying Whois information
This is how you can query whos information
from libraccoon.libs.dns_handler import DNSHandler
who = DNSHandler("nmmapper.com")
# Registrar
r = await who.grab_whois("nmmapper.com")
{'domain_name': 'NMMAPPER.COM',
'registrar': 'NameCheap, Inc.',
'whois_server': 'whois.namecheap.com',
#... More records truncated
}
# Querying invididual records
txt = await who.query_dns("google.com", "TXT")
A = await who.query_dns("google.com", "A")
Ipv6 = await who.query_dns("google.com", "AAAA")
Fierce Perform A DNS reconnaissance tool for locating non-contiguous IP space.
This module is a port of the fierce tool, we wanted something non commandline we wanted something that can be used as a module, so we had to re-write it to support being used as a module.
#!/usr/bin/python3/
# Basic search
from libraccoon.libs.fierce import LibFierce
lib = LibFierce("facebook.com")
ret = lib.search("www")
{'102.132.96.16': 'edge-shortwave-shv-01-mba1.facebook.com.',
'102.132.96.35': 'edge-star-mini-shv-01-mba1.facebook.com.',
'102.132.96.19': 'edge-stun-shv-01-mba1.facebook.com.',
'102.132.96.22': 'edge-z-p1-shv-01-mba1.facebook.com.',
#....More result has been truncated
}
The module is not yet fully complete.
Traverse IPs near discovered domains to search for contiguous blocks
#!/usr/bin/python3/
# Basic search
from libraccoon.libs.fierce import LibFierce
lib = LibFierce("facebook.com")
ret = lib.search("www", 10)
{'102.132.96.16': 'edge-shortwave-shv-01-mba1.facebook.com.',
'102.132.96.35': 'edge-star-mini-shv-01-mba1.facebook.com.',
'102.132.96.19': 'edge-stun-shv-01-mba1.facebook.com.',
'102.132.96.22': 'edge-z-p1-shv-01-mba1.facebook.com.',
#....More result has been truncated
}
Whatweb tools can also be invoked from this tool.
Remember the tool is designed to be used as a library to be incorporated into other tools. Just want caveat ensure that whatweb tool is installed.
from libraccoon.libs.whatwebapi import WhatWebAsync
what = WhatWebAsync()
host = "https://www.nmmapper.com"
result = await what.scan(host)
[{'target': 'https://www.nmmapper.com',
'http_status': 200,
'request_config': {'headers': {'User-Agent': 'WhatWeb/0.5.5'}},
'plugins': {'Content-Language': {'string': ['en']},
'Cookies': {'string': ['csrftoken', 'sessionid']},
'Country': {'string': ['UNITED STATES'], 'module': ['US']},
'Django': {},
'HTML5': {},
'HTTPServer': {'string': ['cloudflare']},
'HttpOnly': {'string': ['sessionid']},
'IP': {'string': ['104.21.54.232']},
'Meta-Author': {'string': ['Nmmapper.com']},
'Open-Graph-Protocol': {'version': ['article']},
'Script': {'string': ['Javascript',
'application/ld+json',
'text/Javascript',
'text/javascript']},
'Strict-Transport-Security': {'string': ['max-age=15552000; includeSubDomains; preload']},
'Title': {'string': ['Nmmapper Subdomain finder,Nmap online,theharvester']},
'UncommonHeaders': {'string': ['x-content-type-options,referrer-policy,cross-origin-opener-policy,access-control-allow-origin,cf-cache-status,report-to,nel,cf-ray,alt-svc,server-timing']},
'X-Frame-Options': {'string': ['DENY']}}}]
Metadata
Release files for python3-libraccoon 3.3.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| python3_libraccoon-3.3.6.tar.gz | 261.7 kB | Without provenance | Details for python3_libraccoon-3.3.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| python3_libraccoon-3.3.6-py3-none-any.whl | Python 3 | none | any | Details for python3_libraccoon-3.3.6-py3-none-any.whl |
Total release size: 532.5 kB
Release files / python3_libraccoon-3.3.6.tar.gz
| Download URL | python3_libraccoon-3.3.6.tar.gz |
|---|---|
| Size | 261.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b36e088717126aef08009c58c7a8af98e2320619ea0cc83ea20001facfcc4ed3
|
|
BLAKE2b-256 checksum How to use checksums |
b383a85c18b7dc25daf7c149ca5594de8b206324bd9e1b0884bdd75b8e17de98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / python3_libraccoon-3.3.6-py3-none-any.whl
| Download URL | python3_libraccoon-3.3.6-py3-none-any.whl |
|---|---|
| Size | 270.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ae7e569178b63ddc0c43d5ec1411462aec751af6364db7b200566d7cede80cb8
|
|
BLAKE2b-256 checksum How to use checksums |
e7ceba1cfe5e28a146092779a41e93db199967588ed12de5a01612a844c13c65
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for python3-libraccoon 3.3.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.