{"adoption": {"forks": 265, "observed_at": "2026-08-28T04:05:54.011710+00:00", "stars": 1918}, "canonical_url": "https://ross.abutalabs.com/products/mitm6", "card": {"archived": false, "artifact_type": "cli-tool", "description": "pwning IPv4 via IPv6", "domain": ["security", "penetration-testing", "networking"], "enriched": true, "function": ["security", "penetration-testing", "networking"], "health_score": 20, "homepage": null, "language": "Python", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["dirkjanm/mitm6"], "name": "dirkjanm/mitm6", "platform": ["python", "cli"], "pushed_at": "2024-02-20T16:11:53+00:00", "repo": "dirkjanm/mitm6", "stars": 1918, "tags": ["mitm", "ipv6", "dhcpv6", "dns-spoofing", "wpad", "ntlm-relay", "active-directory", "pentesting", "linux"], "topics": [], "urls": [], "use_cases": ["spoof DNS in a Windows Active Directory network during a pentest", "perform DHCPv6 attacks to take over the default DNS server", "relay NTLM credentials captured via WPAD spoofing with ntlmrelayx", "demonstrate IPv6-based man-in-the-middle attacks on IPv4 networks", "test whether a network detects rogue router advertisements", "redirect victim traffic to an attacker machine via fake DNS answers"], "what_it_is": "mitm6 is a Python pentesting tool that exploits Windows' default IPv6 configuration by answering DHCPv6 requests, assigning victims a link-local IPv6 address, and setting the attacker's host as their DNS server. It then selectively spoofs DNS responses to redirect traffic and is designed to pair with impacket's ntlmrelayx for WPAD spoofing and credential relaying.", "when_to_avoid": ["you need a general-purpose DNS server or proxy rather than an attack tool", "your target network is not Windows-based or lacks DHCPv6-enabled hosts", "you cannot run with root privileges for raw packet capture", "you need a stealthy tool on networks that detect rogue router advertisements"], "when_to_choose": ["you are conducting an authorized penetration test against a Windows/AD environment", "you need to combine DNS spoofing with NTLM credential relaying", "you want to demonstrate the risks of default IPv6/DHCPv6 configuration on Windows"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mitm6", "repo": "dirkjanm/mitm6", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:10:00.010044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f70c2bd4d8a7e6f179de53797a62ae6bcdc455e9b45527a534389168f8da52fb", "fetched_at": "2026-08-28T04:05:54.011710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dirkjanm/mitm6"}, {"content_hash": "b7cb04ea16eb74c259fae2b0700284e1b43b120c61f83e2842d8db64cc0beff0", "fetched_at": "2026-08-29T10:49:18.051381+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mitm6/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:10:00.010044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f70c2bd4d8a7e6f179de53797a62ae6bcdc455e9b45527a534389168f8da52fb", "fetched_at": "2026-08-28T04:05:54.011710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dirkjanm/mitm6"}, {"content_hash": "b7cb04ea16eb74c259fae2b0700284e1b43b120c61f83e2842d8db64cc0beff0", "fetched_at": "2026-08-29T10:49:18.051381+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mitm6/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:10:00.010044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f70c2bd4d8a7e6f179de53797a62ae6bcdc455e9b45527a534389168f8da52fb", "fetched_at": "2026-08-28T04:05:54.011710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dirkjanm/mitm6"}, {"content_hash": "b7cb04ea16eb74c259fae2b0700284e1b43b120c61f83e2842d8db64cc0beff0", "fetched_at": "2026-08-29T10:49:18.051381+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mitm6/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:10:00.010044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f70c2bd4d8a7e6f179de53797a62ae6bcdc455e9b45527a534389168f8da52fb", "fetched_at": "2026-08-28T04:05:54.011710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dirkjanm/mitm6"}, {"content_hash": "b7cb04ea16eb74c259fae2b0700284e1b43b120c61f83e2842d8db64cc0beff0", "fetched_at": "2026-08-29T10:49:18.051381+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mitm6/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:10:00.010044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f70c2bd4d8a7e6f179de53797a62ae6bcdc455e9b45527a534389168f8da52fb", "fetched_at": "2026-08-28T04:05:54.011710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dirkjanm/mitm6"}, {"content_hash": "b7cb04ea16eb74c259fae2b0700284e1b43b120c61f83e2842d8db64cc0beff0", "fetched_at": "2026-08-29T10:49:18.051381+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mitm6/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:10:00.010044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f70c2bd4d8a7e6f179de53797a62ae6bcdc455e9b45527a534389168f8da52fb", "fetched_at": "2026-08-28T04:05:54.011710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dirkjanm/mitm6"}, {"content_hash": "b7cb04ea16eb74c259fae2b0700284e1b43b120c61f83e2842d8db64cc0beff0", "fetched_at": "2026-08-29T10:49:18.051381+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mitm6/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:54.011710+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:10:00.010044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f70c2bd4d8a7e6f179de53797a62ae6bcdc455e9b45527a534389168f8da52fb", "fetched_at": "2026-08-28T04:05:54.011710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dirkjanm/mitm6"}, {"content_hash": "b7cb04ea16eb74c259fae2b0700284e1b43b120c61f83e2842d8db64cc0beff0", "fetched_at": "2026-08-29T10:49:18.051381+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mitm6/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:10:00.010044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f70c2bd4d8a7e6f179de53797a62ae6bcdc455e9b45527a534389168f8da52fb", "fetched_at": "2026-08-28T04:05:54.011710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dirkjanm/mitm6"}, {"content_hash": "b7cb04ea16eb74c259fae2b0700284e1b43b120c61f83e2842d8db64cc0beff0", "fetched_at": "2026-08-29T10:49:18.051381+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mitm6/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:10:00.010044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f70c2bd4d8a7e6f179de53797a62ae6bcdc455e9b45527a534389168f8da52fb", "fetched_at": "2026-08-28T04:05:54.011710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dirkjanm/mitm6"}, {"content_hash": "b7cb04ea16eb74c259fae2b0700284e1b43b120c61f83e2842d8db64cc0beff0", "fetched_at": "2026-08-29T10:49:18.051381+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mitm6/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:10:00.010044+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f70c2bd4d8a7e6f179de53797a62ae6bcdc455e9b45527a534389168f8da52fb", "fetched_at": "2026-08-28T04:05:54.011710+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dirkjanm/mitm6"}, {"content_hash": "b7cb04ea16eb74c259fae2b0700284e1b43b120c61f83e2842d8db64cc0beff0", "fetched_at": "2026-08-29T10:49:18.051381+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mitm6/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3157, "days_push": 925, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}