public ArachniManager(ArachniSession session) { if (!session.IsInstanceStream) throw new Exception ("Session must be using an instance stream, not a dispatcher stream"); _session = session; }
public static void Main(string[] args) { using (ArachniSession session = new ArachniSession ("192.168.2.207", 4567, true)) { using (ArachniManager manager = new ArachniManager (session)) { Console.WriteLine ("Using instance: " + session.InstanceName); manager.StartScan ("http://demo.testfire.net/default.aspx"); bool isRunning = manager.IsBusy ().AsBoolean (); List<uint> issues = new List<uint> (); DateTime start = DateTime.Now; Console.WriteLine ("Starting scan at " + start.ToLongTimeString ()); while (isRunning) { var progress = manager.GetProgress (issues); foreach (MessagePackObject p in progress.AsDictionary()["issues"].AsEnumerable()) { MessagePackObjectDictionary dict = p.AsDictionary (); Console.WriteLine ("Issue found: " + dict ["name"].AsString ()); issues.Add (dict ["digest"].AsUInt32()); } Thread.Sleep (10000); isRunning = manager.IsBusy ().AsBoolean (); } DateTime end = DateTime.Now; Console.WriteLine ("Finishing scan at " + end.ToLongTimeString () + ". Scan took " + ((end - start).ToString ()) + "."); } } }