예제 #1
0
        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();
        }
예제 #2
0
        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);
        }