public override void ProcessRequest(HttpContext context)
        {
            ISession sess = this.CurrentSession;

            PersistentUser user = sess.Get<PersistentUser>(new Guid(context.Request["UserID"]));
            PersistentClient client = sess.Get<PersistentClient>(new Guid(context.Request["ClientID"]));

            if (user == null || !user.HasAPIAccess)
                throw new Exception("no api access");

            if (client == null || !client.HasAPIAccess)
                throw new Exception("no api access");

            string readableName = context.Request["ReportReadableName"];

            if (string.IsNullOrEmpty(readableName))
                throw new Exception("no readable name");

            NessusManagerSession nessusSession = new NessusManagerSession ("192.168.56.101");

            bool loggedIn = false;
            nessusSession.Authenticate ("nessus", "nessus", 1234, out loggedIn);

            if (!loggedIn)
                throw new Exception ("Invalid username/password");

            NessusObjectManager nessusManager = new NessusObjectManager (nessusSession);

            NessusReport report = nessusManager.GetReports()
                .Where(r => r.ReadableName == readableName)
                .SingleOrDefault();

            context.Response.Write(report.ToBusinessXml());
        }
Example #2
0
        private bool NessusScanIsRunning(string nessusScanID)
        {
            using (NessusManagerSession nessusSession = new NessusManagerSession (this.Configuration["nessusHost"])) {
                bool loggedIn = false;
                nessusSession.Authenticate (this.Configuration ["nessusUser"], this.Configuration ["nessusPass"], 1234, out loggedIn);

                if (!loggedIn)
                    throw new Exception ("Invalid username/password");

                using (NessusObjectManager nessusManager = new NessusObjectManager (nessusSession)) {
                    var report = nessusManager.GetReports ()
                                .Where (r => r.ReadableName == nessusScanID)
                                .SingleOrDefault ();

                    if (report.Status == "completed")
                        return false;

                    return true;
                }
            }
        }