
.NET IPv4/IPv6 machine-in-the-middle उपकरण, पैठ परीक्षकों के लिए
Inveigh एक क्रॉस-प्लेटफ़ॉर्म .NET IPv4/IPv6 मशीन-इन-द-मिडल टूल है जो पेनिट्रेशन टेस्टरों के लिए है। इस रेपो में मुख्य C# संस्करण और लीगेसी PowerShell संस्करण दोनों शामिल हैं।
Inveigh पैकेट स्निफिंग और प्रोटोकॉल-विशिष्ट लिसनर/सॉकेट दोनों के माध्यम से स्पूफिंग हमले और हैश/क्रेडेंशियल कैप्चर करता है। पैकेट स्निफिंग विधि, जो इस टूल के मूल PowerShell संस्करण का आधार थी, के निम्नलिखित लाभ हैं:
मुख्य नुकसान आवश्यक एलिवेटेड एक्सेस है।
विंडोज के वर्तमान संस्करणों पर, डिफ़ॉल्ट रूप से चलने वाली UDP सेवाएं पोर्ट पुन: उपयोग की अनुमति देती हैं। इसलिए, पैकेट स्निफिंग अब उपयोग में UDP पोर्ट से बचने का लाभ प्रदान नहीं करती है। Inveigh के सभी UDP लिसनर पोर्ट पुन: उपयोग का लाभ उठाने के लिए कॉन्फ़िगर किए गए हैं।
Inveigh के C# संस्करण में निम्नलिखित प्रोटोकॉल के लिए हमले शामिल हैं:
Inveigh उन मामलों में IPv4 और IPv6 दोनों के साथ काम करता है जहां अंतर्निहित प्रोटोकॉल दोनों का समर्थन प्रदान करता है।
Inveigh का SDK शैली प्रोजेक्ट फ़ाइल .NET 3.5, 4.6.2 और 6.0 के लिए सेटअप है, जिसमें 6.0 वह संस्करण है जो Linux और macOS के साथ भी काम करता है।
<TargetFrameworks>net35;net62;net6.0</TargetFrameworks>
sudo route -nv add -net ff02::1:2 -interface en0dotnet Inveigh.dll
लक्ष्य सिस्टम पर .NET 6.0 स्थापित होने पर
dotnet publish -r linux-x64 -f net8.0 -p:AssemblyName=inveigh
dotnet publish -r osx-x64 -f net8.0 -p:AssemblyName=inveigh
लक्ष्य सिस्टम पर .NET 6.0 स्थापित न होने पर
dotnet publish --self-contained=true -p:PublishSingleFile=true -r linux-x64 -f net8.0 -p:AssemblyName=inveigh
dotnet publish --self-contained=true -p:PublishSingleFile=true -r osx-x64 -f net8.0 -p:AssemblyName=inveigh
डिफ़ॉल्ट पैरामीटर मान Program.cs की शुरुआत में स्थित हैं। मैं संकलन से पहले सब कुछ समीक्षा करने और अपनी आवश्यकताओं के अनुसार सेट करने की सलाह देता हूं। सभी सक्षम/अक्षम पैरामीटर Y/N मानों के साथ सेट किए जा सकते हैं।```
//begin parameters - set defaults as needed before compile
public static string argCert = "MIIKaQIBAzCCC..."
public static string argCertPassword = "password";
public static string argChallenge = "";
public static string argConsole = "5";
public static string argConsoleLimit = "-1";
public static string argConsoleStatus = "0";
public static string argConsoleUnique = "Y";
public static string argDHCPv6 = "N";
public static string argDHCPv6TTL = "30";
public static string argDNS = "Y";
...
//end parameters
### पैरामीटर सहायता```
.\Inveigh.exe -?
Control:
-Inspect Default=Disabled: (Y/N) inspect traffic only.
-IPv4 Default=Enabled: (Y/N) IPv4 spoofing/capture.
-IPv6 Default=Enabled: (Y/N) IPv6 spoofing/capture.
-RunCount Default=Unlimited: Number of NetNTLM captures to perform before auto-exiting.
-RunTime Default=Unlimited: Run time duration in minutes.
Output:
-Console Default=5: Set the level for console output. (0=none, 1=only captures/spoofs, 2=no disabled, no informational, 3=no disabled, no filtered, 4=no disabled, 5=all)
-ConsoleLimit Default=Unlimited: Limit to queued console entries.
-ConsoleStatus Default=Disabled: Interval in minutes for auto-displaying capture details.
-ConsoleUnique Default=Enabled: (Y/N) displaying only unique (user and system combination) hashes at time of capture.
-FileDirectory Default=Working Directory: Valid path to an output directory for enabled file output.
-FileOutput Default=Enabled: (Y/N) real time file output.
-FilePrefix Default=Inveigh: Prefix for all output files.
-FileUnique Default=Enabled: (Y/N) outputting only unique (user and system combination) hashes.
-LogOutput Default=Disabled: (Y/N) outputting log entries.
Spoofers:
-DHCPV6 Default=Disabled: (Y/N) DHCPv6 spoofing.
-DHCPv6TTL Default=300: Lease lifetime in seconds.
-DNS Default=Enabled: (Y/N) DNS spoofing.
-DNSHost Fully qualified hostname to use SOA/SRV responses.
-DNSSRV Default=LDAP: Comma separated list of SRV request services to answer.
-DNSSuffix DNS search suffix to include in DHCPv6/ICMPv6 responses.
-DNSTTL Default=30: DNS TTL in seconds.
-DNSTYPES Default=A: (A, AAAA, SOA, SRV) Comma separated list of DNS types to spoof.
-ICMPv6 Default=Enabled: (Y/N) sending ICMPv6 router advertisements.
-ICMPv6Interval Default=200: ICMPv6 RA interval in seconds.
-ICMPv6TTL Default=300: ICMPv6 TTL in seconds.
-IgnoreDomains Default=None: Comma separated list of domains to ignore when spoofing.
-IgnoreIPs Default=Local: Comma separated list of source IP addresses to ignore when spoofing.
-IgnoreMACs Default=Local: Comma separated list of MAC addresses to ignore when DHCPv6 spoofing.
-IgnoreQueries Default=None: Comma separated list of name queries to ignore when spoofing.
-Local Default=Disabled: (Y/N) performing spoofing attacks against the host system.
-LLMNR Default=Enabled: (Y/N) LLMNR spoofing.
-LLMNRTTL Default=30: LLMNR TTL in seconds.
-MAC Local MAC address for DHCPv6.
-MDNS Default=Enabled: (Y/N) mDNS spoofing.
-MDNSQuestions Default=QU,QM: Comma separated list of question types to spoof. (QU,QM)
-MDNSTTL Default=120: mDNS TTL in seconds.
-MDNSTypes Default=A: Comma separated list of mDNS record types to spoof. (A,AAAA,ANY)
-MDNSUnicast Default=Enabled: (Y/N) sending a unicast only response to a QM request.
-NBNS Default=Disabled: (Y/N) NBNS spoofing.
-NBNSTTL Default=165: NBNS TTL in seconds.
-NBNSTypes Default=00,20: Comma separated list of NBNS types to spoof. (00,03,20,1B)
-ReplyToDomains Default=All: Comma separated list of domains to respond to when spoofing.
-ReplyToIPs Default=All: Comma separated list of source IP addresses to respond to when spoofing.
-ReplyToMACs Default=All: Comma separated list of MAC addresses to respond to when DHCPv6 spoofing.
-ReplyToQueries Default=All: Comma separated list of name queries to respond to when spoofing.
-SpooferIP Default=Autoassign: IP address included in spoofing responses.
-SpooferIPv6 Default=Autoassign: IPv6 address included in spoofing responses.
-Repeat Default=Enabled: (Y/N) repeated spoofing attacks against a system after NetNTLM capture.
Capture: