private void AddListenerSave_Click(object sender, RoutedEventArgs e) { string hosts = ""; foreach (ListBoxItem listBoxItem in HttpHostsListBox.Items) { if (hosts == "") { hosts = listBoxItem.DataContext.ToString(); } else { hosts = hosts + "," + listBoxItem.DataContext.ToString(); } } ListenersListView listener = new ListenersListView { name = ListenerName.Text, payload = ListenerPayload.Text, hosts = hosts, stagerHost = HttpHostStager.Text, port = HttpPortC2.Text, bindto = HttpPortBind.Text, header = HttpHostHeader.Text, proxy = HttpProxy.Text, profile = ListenerProfile.Text }; if ("" == listener.name) { MessageBox.Show("name is empty"); return; } else if ("" == listener.port) { MessageBox.Show("port is empty"); return; } bool isE = false; foreach (ListenersListView listenerFormat in this.listeners) { if (listenerFormat.name == listener.name) { MessageBox.Show("name is exits"); return; } else if (listenerFormat.port == listener.port) { MessageBox.Show("port is exits"); return; } else { isE = true; } } if (this.listeners.Count == 0 || isE) { this.listeners.Add(listener); DataFormat MessageData; MessageData.type = "3"; MessageData.token = userProfile.token; MessageData.data = new Dictionary <string, string> { { "port", listener.Port } }; string sendMessage = JsonConvert.SerializeObject(MessageData); SslTcpClient sslTcpClient = new SslTcpClient(userProfile.host, int.Parse(userProfile.port), "localhost"); sslTcpClient.StartSslTcp(); SslStream sslStream = sslTcpClient.SendMessage(sendMessage); sslTcpClient.ReadMessage(sslStream); JObject rMJson = (JObject)JsonConvert.DeserializeObject(sslTcpClient.resultMessage); if (rMJson["code"].ToString() == "200") { MessageBox.Show("监听成功"); } else { MessageBox.Show(rMJson["error"].ToString()); sslTcpClient.CloseSslTcp(); return; } sslTcpClient.CloseSslTcp(); } this.TransfEvent(this.listeners);//触发事件 this.Close(); }
private void Window_Loaded(object sender, RoutedEventArgs e) { this.Mainpage = new MainPage(); this.Payloadpage = new MainPayload(); this.Settingpage = new MainSetting(); // this.Mainpage.userProfile = this.userProfile; this.Payloadpage.userProfile = this.userProfile; this.Payloadpage.listeners = this.listeners; ChangePage.Content = new Frame() { Content = this.Mainpage }; //检测是否有listeners并拉去 DataFormat MessageData; MessageData.type = "6"; MessageData.token = userProfile.token; MessageData.data = null; string sendMessage = JsonConvert.SerializeObject(MessageData); userProfile.sslTcpClient.ReadMessage(userProfile.sslTcpClient.SendMessage(sendMessage)); JObject rMJson = (JObject)JsonConvert.DeserializeObject(userProfile.sslTcpClient.resultMessage); if (rMJson["code"].ToString() == "200") { foreach (var item in rMJson["result"]) { if ((bool)item["status"]) { ListenersListView LLV = new ListenersListView( Function.GenerateRandomString(6), "", "", "", item["port"].ToString(), "", "", "", "" ) { }; this.listeners.Add(LLV); } //Console.WriteLine(Function.GetDateTime(item["time"].ToString()).ToString()); } //Thread.Sleep(1000); } else if (rMJson["code"].ToString() == "500") { MessageBox.Show(rMJson["error"].ToString()); } else if (rMJson["code"].ToString() == "401") { MessageBox.Show(rMJson["error"].ToString()); } //拉取implant AsyncObservableCollection <TargetListView> targetListViews = new AsyncObservableCollection <TargetListView>(); this.Mainpage.BodySessionListView.ItemsSource = targetListViews; EventsContent eventsContent = new EventsContent() { }; this.Mainpage.EventsTextBox.DataContext = eventsContent; GetImplantResultClass myThread = new GetImplantResultClass { userProfile = this.userProfile, targetListViews = targetListViews, eventsContent = eventsContent //BodySessionListView = this.Mainpage.BodySessionListView }; Thread thread = new Thread(myThread.GetImplantResult); thread.Start(); //Console.WriteLine(this.userProfile.sslTcpClient.resultMessage); }