Skip to main content

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)

Source distribution for python3-libraccoon 3.3.6
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)

Table of built distributions (wheels) for python3-libraccoon 3.3.6
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page