diff options
Diffstat (limited to 'Inveigh/Program.cs')
-rw-r--r-- | Inveigh/Program.cs | 640 |
1 files changed, 640 insertions, 0 deletions
diff --git a/Inveigh/Program.cs b/Inveigh/Program.cs new file mode 100644 index 0000000..3ae0293 --- /dev/null +++ b/Inveigh/Program.cs @@ -0,0 +1,640 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.IO; +using System.Collections; + +namespace Inveigh +{ + class Program + { + //begin parameters - set defaults as needed before compile + public static string argCert = "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"; + public static string argCertPassword = "password"; + public static string argChallenge = ""; + public static string argConsole = "3"; + 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"; + public static string argDNSHost = ""; + public static string argDNSTTL = "30"; + public static string[] argDNSTypes = { "A" }; + public static string[] argDNSSRV = { "LDAP" }; + public static string argDNSSuffix = ""; + public static string argFileOutput = "Y"; + public static string argFileDirectory = Directory.GetCurrentDirectory(); + public static string argFilePrefix = "Inveigh"; + public static string argFileUnique = "Y"; + public static string argHelp = ""; + public static string argHTTP = "Y"; + public static string argHTTPAuth = "NTLM"; + public static string argHTTPRealm = "ADFS"; + public static string[] argHTTPPorts = { "80" }; + public static string argHTTPResponse = ""; + public static string argHTTPS = "N"; + public static string[] argHTTPSPorts = { "443" }; + public static string argICMPv6 = "N"; + public static string argICMPv6Interval = "200"; + public static string argInspect = "N"; + public static string argIPv4 = "Y"; + public static string argIPv6 = "Y"; + public static string argSniffer = "Y"; + public static string argSnifferIP = ""; + public static string argSnifferIPv6 = ""; + public static string argListenerIP = "0.0.0.0"; + public static string argListenerIPv6 = "::"; + public static string argLDAP = "Y"; + public static string[] argLDAPPorts = { "389" }; + public static string argLLMNR = "Y"; + public static string argLLMNRTTL = "30"; + public static string[] argLLMNRTypes = { "A" }; + public static string argLogOutput = "Y"; + public static string argMAC = ""; + public static string argMachineAccounts = "N"; + public static string argMDNS = "N"; + public static string[] argMDNSQuestions = { "QU", "QM" }; + public static string argMDNSTTL = "120"; + public static string[] argMDNSTypes = { "A" }; + public static string argMDNSUnicast = "Y"; + public static string argNBNS = "N"; + public static string argNBNSTTL = "165"; + public static string[] argNBNSTypes = { "00", "20" }; + public static string argProxy = "N"; + public static string argProxyAuth = "NTLM"; + public static string argProxyPort = "8492"; + public static string argRunCount = "0"; + public static string argRunTime = "0"; + public static string argSMB = "Y"; + public static string[] argSMBPorts = { "445" }; + public static string[] argIgnoreAgents = { "Firefox" }; + public static string[] argIgnoreDomains; + public static string[] argIgnoreIPs; + public static string[] argIgnoreHosts; + public static string[] argIgnoreMACs; + public static string[] argReplyToDomains; + public static string[] argReplyToHosts; + public static string[] argReplyToIPs; + public static string[] argReplyToMACs; + public static string argSpooferIP = ""; + public static string argSpooferIPv6 = ""; + public static string argLocal = "N"; + public static string argRepeat = "Y"; + public static string argWebDAV = "Y"; + public static string argWebDAVAuth = "NTLM"; + public static string argWPADAuth = "NTLM"; + public static string argWPADResponse = ""; + //end parameters + public static ConsoleColor colorPositive = ConsoleColor.Green; // change output colors here + public static ConsoleColor colorNegative = ConsoleColor.Red; + public static Hashtable smbSessionTable = Hashtable.Synchronized(new Hashtable()); + public static Hashtable httpSessionTable = Hashtable.Synchronized(new Hashtable()); + public static IList<string> outputList = new List<string>(); + public static IList<string> consoleList = new List<string>(); + public static IList<string> logList = new List<string>(); + public static IList<string> logFileList = new List<string>(); + public static IList<string> cleartextList = new List<string>(); + public static IList<string> cleartextFileList = new List<string>(); + public static IList<string> hostList = new List<string>(); + public static IList<string> hostFileList = new List<string>(); + public static IList<string> ntlmv1List = new List<string>(); + public static IList<string> ntlmv2List = new List<string>(); + public static IList<string> ntlmv1UniqueList = new List<string>(); + public static IList<string> ntlmv2UniqueList = new List<string>(); + public static IList<string> ntlmv1FileList = new List<string>(); + public static IList<string> ntlmv2FileList = new List<string>(); + public static IList<string> ntlmv1UsernameList = new List<string>(); + public static IList<string> ntlmv2UsernameList = new List<string>(); + public static IList<string> ntlmv1UsernameFileList = new List<string>(); + public static IList<string> ntlmv2UsernameFileList = new List<string>(); + public static IList<string> dhcpv6List = new List<string>(); + public static IList<string> IPCaptureList = new List<string>(); + public static IList<string> HostCaptureList = new List<string>(); + public static IList<string> commandHistoryList = new List<string>(); + public static bool enabledConsoleOutput = true; + public static bool enabledConsoleUnique = false; + public static bool enabledDHCPv6 = false; + public static bool enabledDNS = false; + public static bool enabledElevated = false; + public static bool enabledFileOutput = false; + public static bool enabledFileUnique = false; + public static bool enabledHTTP = false; + public static bool enabledHTTPS = false; + public static bool enabledICMPv6 = false; + public static bool enabledInspect = false; + public static bool enabledIPv4 = false; + public static bool enabledIPv6 = false; + public static bool enabledLDAP = false; + public static bool enabledLLMNR = false; + public static bool enabledLocal = false; + public static bool enabledLogOutput = false; + public static bool enabledMachineAccounts = false; + public static bool enabledMDNS = false; + public static bool enabledMDNSUnicast = false; + public static bool enabledNBNS = false; + public static bool enabledProxy = false; + public static bool enabledRepeat = false; + public static bool enabledSMB = false; + public static bool enabledSniffer = false; + public static bool enabledWebDAV = false; + public static bool enabledWindows = true; + public static bool isRunning = true; + public static bool isSession = false; + public static bool isNTLMv1Updated = false; + public static bool isNTLMv2Updated = false; + public static bool isCleartextUpdated = false; + public static bool isNTLMv1UniqueUpdated = false; + public static bool isNTLMv2UniqueUpdated = false; + public static bool isCleartextUniqueUpdated = false; + public static IPAddress listenerIPAddress = IPAddress.Any; + public static IPAddress listenerIPv6Address = IPAddress.IPv6Any; + public static int dhcpv6Random = (new Random()).Next(1, 9999); + public static uint dnsSerial = (uint)(new Random()).Next(1, 9999); + public static int icmpv6Interval; + public static int dhcpv6IPIndex = 1; + public static int console; + public static int consoleQueueLimit = -1; + public static int consoleStatus = 0; + public static int runCount = 0; // todo check + public static int runTime = 0; + public static int ntlmv1Count = 0; + public static int ntlmv2Count = 0; + public static int cleartextCount = 0; + public static int ntlmv1UniqueCount = 0; + public static int ntlmv2UniqueCount = 0; + public static int cleartextUniqueCount = 0; + public static string computerName = Environment.MachineName; + public static string netbiosDomain = Environment.UserDomainName; + public static string dnsDomain = ""; + public static ulong smb2Session = 5548434740922023936; // todo check + public static string version = "2.0"; + + static void Main(string[] arguments) + { + +#if !NETFRAMEWORK + if (!System.OperatingSystem.IsWindows()) + { + enabledWindows = false; + } +#endif + + if (arguments.Length > 0) + { + + foreach (var entry in arguments.Select((value, index) => new { index, value })) + { + string argument = entry.value.ToUpper(); + + try + { + + switch (argument) + { + + case "-CERT": + case "/CERT": + argCert = arguments[entry.index + 1]; + break; + + case "-CERTPASSWORD": + case "/CERTPASSWORD": + argCertPassword = arguments[entry.index + 1]; + break; + + case "-CHALLENGE": + case "/CHALLENGE": + argChallenge = arguments[entry.index + 1].ToUpper(); + break; + + case "-CONSOLE": + case "/CONSOLE": + argConsole = arguments[entry.index + 1].ToUpper(); + break; + + case "-CONSOLELIMIT": + case "/CONSOLELIMIT": + argConsoleLimit = arguments[entry.index + 1]; + break; + + case "-CONSOLESTATUS": + case "/CONSOLESTATUS": + argConsoleStatus = arguments[entry.index + 1]; + break; + + case "-CONSOLEUNIQUE": + case "/CONSOLEUNIQUE": + argConsoleUnique = arguments[entry.index + 1].ToUpper(); + break; + + case "-DHCPV6": + case "/DHCPV6": + argDHCPv6 = arguments[entry.index + 1].ToUpper(); + break; + + case "-DHCPV6TTL": + case "/DHCPV6TTL": + argDHCPv6TTL = arguments[entry.index + 1]; + break; + + case "-DNS": + case "/DNS": + argDNS = arguments[entry.index + 1].ToUpper(); + break; + + case "-DNSHOST": + case "/DNSHOST": + argDNSHost = arguments[entry.index + 1]; + break; + + case "-DNSSUFFIX": + case "/DNSSUFFIX": + argDNSSuffix = arguments[entry.index + 1]; + break; + + case "-DNSSRV": + case "/DNSSRV": + argDNSSRV = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-DNSTTL": + case "/DNSTTL": + argDNSTTL = arguments[entry.index + 1].ToUpper(); + break; + + case "-DNSTYPES": + case "/DNSTYPES": + argDNSTypes = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-FILEDIRECTORY": + case "/FILEDIRECTORY": + argFileDirectory = arguments[entry.index + 1].ToUpper(); + break; + + case "-FILEOUTPUT": + case "/FILEOUTPUT": + argFileOutput = arguments[entry.index + 1].ToUpper(); + break; + + case "-FILEPREFIX": + case "/FILEPREFIX": + argFilePrefix = arguments[entry.index + 1].ToUpper(); + break; + + case "-FILEUNIQUE": + case "/FILEUNIQUE": + argFileUnique = arguments[entry.index + 1].ToUpper(); + break; + + case "-HTTP": + case "/HTTP": + argHTTP = arguments[entry.index + 1].ToUpper(); + break; + + case "-HTTPAUTH": + case "/HTTPAUTH": + argHTTPAuth = arguments[entry.index + 1].ToUpper(); + break; + + case "-HTTPBASICREALM": + case "/HTTPBASICREALM": + argHTTPRealm = arguments[entry.index + 1]; + break; + + case "-HTTPPORTS": + case "/HTTPPORTS": + argHTTPPorts = arguments[entry.index + 1].Split(','); + break; + + case "-HTTPS": + case "/HTTPS": + argHTTPS = arguments[entry.index + 1].ToUpper(); + break; + + case "-HTTPSPORTS": + case "/HTTPSPORTS": + argHTTPSPorts = arguments[entry.index + 1].Split(','); + break; + + case "-HTTPRESPONSE": + case "/HTTPRESPONSE": + argHTTPResponse = arguments[entry.index + 1]; + break; + + case "-ICMPV6": + case "/ICMPV6": + argICMPv6 = arguments[entry.index + 1].ToUpper(); + break; + + case "-ICMPV6INTERVAL": + case "/ICMPV6INTERVAL": + argICMPv6Interval = arguments[entry.index + 1]; + break; + + case "-IGNOREAGENTS": + case "/IGNOREAGENTS": + argIgnoreAgents = arguments[entry.index + 1].Split(','); + break; + + case "-IGNOREDOMAINS": + case "/IGNOREDOMAINS": + argIgnoreDomains = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-IGNOREHOSTS": + case "/IGNOREHOSTS": + argIgnoreHosts = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-IGNOREIPS": + case "/IGNOREIPS": + argIgnoreIPs = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-IGNOREMACS": + case "/IGNOREMACS": + argIgnoreMACs = arguments[entry.index + 1].ToUpper().Replace(":", "").Replace("-", "").Split(','); + break; + + case "-INSPECT": + case "/INSPECT": + argInspect = arguments[entry.index + 1].ToUpper(); + break; + + case "-IPV4": + case "/IPV4": + argIPv4 = arguments[entry.index + 1].ToUpper(); + break; + + case "-IPV6": + case "/IPV6": + argIPv6 = arguments[entry.index + 1].ToUpper(); + break; + + case "-LDAP": + case "/LDAP": + argLDAP = arguments[entry.index + 1].ToUpper(); + break; + + case "-LDAPPORTS": + case "/LDAPPORTS": + argLDAPPorts = arguments[entry.index + 1].Split(','); + break; + + case "-LISTENERIP": + case "/LISTENERIP": + argListenerIP = arguments[entry.index + 1]; + break; + + case "-LISTENERIPV6": + case "/LISTENERIPV6": + argListenerIPv6 = arguments[entry.index + 1]; + break; + + case "-LLMNR": + case "/LLMNR": + argLLMNR = arguments[entry.index + 1].ToUpper(); + break; + + case "-LLMNRTTL": + case "/LLMNRTTL": + argLLMNRTTL = arguments[entry.index + 1].ToUpper(); + break; + + case "-LLMNRTYPES": + case "/LLMNRTYPES": + argLLMNRTypes = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-LOCAL": + case "/LOCAL": + argLocal = arguments[entry.index + 1].ToUpper(); + break; + + case "-LOGOUTPUT": + case "/LOGOUTPUT": + argLogOutput = arguments[entry.index + 1].ToUpper(); + break; + + case "-MAC": + case "/MAC": + argMAC = arguments[entry.index + 1].ToUpper().Replace(":", "").Replace("-", ""); + break; + + case "-MACHINEACCOUNTS": + case "/MACHINEACCOUNTS": + argMachineAccounts = arguments[entry.index + 1].ToUpper(); + break; + + case "-MDNS": + case "/MDNS": + argMDNS = arguments[entry.index + 1].ToUpper(); + break; + + case "-MDNSQUESTIONS": + case "/MDNSQUESTIONS": + argMDNSQuestions = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-MDNSTTL": + case "/MDNSTTL": + argMDNSTTL = arguments[entry.index + 1].ToUpper(); + break; + + case "-MDNSTYPES": + case "/MDNSTYPES": + argMDNSTypes = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-MDNSUNICAST": + case "/MDNSUNICAST": + argMDNSUnicast = arguments[entry.index + 1].ToUpper(); + break; + + case "-NBNS": + case "/NBNS": + argNBNS = arguments[entry.index + 1].ToUpper(); + break; + + case "-NBNSTTL": + case "/NBNSTTL": + argNBNSTTL = arguments[entry.index + 1].ToUpper(); + break; + + case "-NBNSTYPES": + case "/NBNSTYPES": + argNBNSTypes = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-PROXY": + case "/PROXY": + argProxy = arguments[entry.index + 1].ToUpper(); + break; + + case "-PROXYPORT": + case "/PROXYPORT": + argProxyPort = arguments[entry.index + 1]; + break; + + case "-RUNCOUNT": + case "/RUNCOUNT": + argRunCount = arguments[entry.index + 1]; + break; + + case "-RUNTIME": + case "/RUNTIME": + argRunTime = arguments[entry.index + 1]; + break; + + case "-SMB": + case "/SMB": + argSMB = arguments[entry.index + 1].ToUpper(); + break; + + case "-SMBPORTS": + case "/SMBPORTS": + argSMBPorts = arguments[entry.index + 1].Split(','); + break; + + case "-SNIFFER": + case "/SNIFFER": + argSniffer = arguments[entry.index + 1].ToUpper(); + break; + + case "-SNIFFERIP": + case "/SNIFFERIP": + argSnifferIP = arguments[entry.index + 1]; + break; + + case "-SNIFFERIPV6": + case "/SNIFFERIPV6": + argSnifferIPv6 = arguments[entry.index + 1]; + break; + + case "-SPOOFERIP": + case "/SPOOFERIP": + argSpooferIP = arguments[entry.index + 1]; + break; + + case "-SPOOFERIPV6": + case "/SPOOFERIPV6": + argSpooferIPv6 = arguments[entry.index + 1].ToUpper(); + break; + + case "-REPEAT": + case "/REPEAT": + argRepeat = arguments[entry.index + 1].ToUpper(); + break; + + case "-REPLYTODOMAINS": + case "/REPLYTODOMAINS": + argReplyToDomains = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-REPLYTOHOSTS": + case "/REPLYTOHOSTS": + argReplyToHosts = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-REPLYTOIPS": + case "/REPLYTOIPS": + argReplyToIPs = arguments[entry.index + 1].ToUpper().Split(','); + break; + + case "-REPLYTOMACS": + case "/REPLYTOMACS": + argReplyToMACs = arguments[entry.index + 1].ToUpper().Replace(":", "").Replace("-", "").Split(','); + break; + + case "-WEBDAV": + case "/WEBDAV": + argWebDAV = arguments[entry.index + 1].ToUpper(); + break; + + case "-WEBDAVAUTH": + case "/WEBDAVAUTH": + argWebDAVAuth = arguments[entry.index + 1].ToUpper(); + break; + + case "-WPADAUTH": + case "/WPADAUTH": + argWPADAuth = arguments[entry.index + 1].ToUpper(); + break; + + case "-WPADRESPONSE": + case "/WPADRESPONSE": + argWPADResponse = arguments[entry.index + 1]; + break; + + case "-?": + case "/?": + if (arguments.Length > 1) + argHelp = arguments[entry.index + 1].ToUpper(); + Output.GetHelp(argHelp); + Environment.Exit(0); + break; + + default: + if (argument.StartsWith("-") || argument.StartsWith("/")) + throw new ArgumentException(paramName: argument, message: "Invalid Parameter"); + break; + } + + } + catch (Exception ex) + { + + if (ex.Message.Contains("Index was outside the bounds of the array")) + { + Console.WriteLine("{0} is missing a value", argument); + } + else + { + Console.WriteLine("{0} error - {1}", argument, ex.Message); + } + + Environment.Exit(0); + } + + } + + } + + Arguments.ValidateArguments(); + Arguments.ParseArguments(); + Control.ImportSession(); + Output.StartupOutput(); + Control.StartThreads(); + commandHistoryList.Add(""); + + while (isRunning) + { + + try + { + Output.OutputLoop(); + + if (isRunning) + { + Shell.ConsoleLoop(); + } + + } + catch (Exception ex) + { + Console.WriteLine(outputList.Count); + outputList.Add(String.Format("[-] [{0}] Console error detected - {1}", DateTime.Now.ToString("s"), ex.ToString())); + } + + } + + Environment.Exit(0); + } + + } + +}
\ No newline at end of file |