Beispiel #1
0
        public Integrity(int pid)
        {
            InitializeComponent();
            procid         = pid;
            textBox2.Text  = procid.ToString();
            label3.Visible = false;
            comboBox1.Items.Add("LOW");
            comboBox1.Items.Add("MEDIUM");
            comboBox1.Items.Add("HIGH");
            comboBox1.Items.Add("SYSTEM");

            comboBox3.Items.Add("ENABLE");
            comboBox3.Items.Add("DISABLE");

            System.Diagnostics.Process       process    = System.Diagnostics.Process.GetProcessById(pid);
            PrivilegeAndAttributesCollection privileges = process.GetPrivileges();

            if (privileges.Count == 0)
            {
                comboBox2.Items.Add("NO PRIVS");
            }
            else
            {
                int maxPrivilegeLebgth = privileges.Max(privilege => privilege.Privilege.ToString().Length);
                foreach (PrivilegeAndAttributes PrivNAtrr in privileges)
                {
                    Privilege      privilege      = PrivNAtrr.Privilege;
                    PrivilegeState privilegeState = PrivNAtrr.PrivilegeState;
                    string         StrComboBox2   = privilege.ToString();
                    comboBox2.Items.Add(StrComboBox2);
                }
            }
        }
Beispiel #2
0
        private void button3_Click_2(object sender, EventArgs e)
        {
            int id = Convert.ToInt32(textBox2.Text);

            //System.Diagnostics.Process proc = System.Diagnostics.Process.GetProcessById(id);

            //string argument = Convert.ToString(id);
            //var info = new System.Diagnostics.ProcessStartInfo(@"C:\Users\abuly_000\Documents\Visual Studio 2015\Projects\mbks2lab\x64\Debug\GetProcessPrivileges.exe", argument);
            //System.Diagnostics.Process.Start(info);

            //string text = System.IO.File.ReadAllText("C:\\Users\\abuly_000\\Documents\\Visual Studio 2015\\Projects\\mbks2lab\\Privileges.txt");
            //MessageBox.Show(text);
            System.Diagnostics.Process       process    = Process.GetProcessById(id);
            PrivilegeAndAttributesCollection privileges = process.GetPrivileges();

            if (privileges.Count == 0)
            {
                MessageBox.Show("NO PRIVILEGES");
            }
            else
            {
                int    maxPrivilegeLength = privileges.Max(privilege => privilege.Privilege.ToString().Length);
                string Out = null;
                foreach (PrivilegeAndAttributes privilegeAndAttributes in privileges)
                {
                    Privilege      privilege      = privilegeAndAttributes.Privilege;
                    PrivilegeState privilegeState = privilegeAndAttributes.PrivilegeState;
                    string         PaddingString  = GetPadding(privilege.ToString().Length, maxPrivilegeLength);
                    Out += privilege + " " + PaddingString + " => " + privilegeState + "\n";
                }
                MessageBox.Show(Out);
            }
        }
        internal static PrivilegeAttributes GetPrivilegeAttributes(Privilege privilege, PrivilegeAndAttributesCollection privileges)
        {
            foreach (PrivilegeAndAttributes privilegeAndAttributes in privileges)
            {
                if (privilegeAndAttributes.Privilege == privilege)
                {
                    return privilegeAndAttributes.PrivilegeAttributes;
                }
            }

            GetLuid(privilege);

            return PrivilegeAttributes.Removed;
        }
        protected void EnableFileSystemPrivileges(bool quite = true)
        {
            privileges = (new PrivilegeControl()).GetPrivileges();

            if (!TryEnablePrivilege(Privilege.TakeOwnership))
            {
                WriteDebug("The privilige 'TakeOwnership' could not be enabled. Make sure your user account does have this privilige");
            }

            if (!TryEnablePrivilege(Privilege.Restore))
            {
                WriteDebug("The privilige 'Restore' could not be enabled. Make sure your user account does have this privilige");
            }

            if (!TryEnablePrivilege(Privilege.Backup))
            {
                WriteDebug("The privilige 'Backup' could not be enabled. Make sure your user account does have this privilige");
            }

            if (!TryEnablePrivilege(Privilege.Security))
            {
                WriteDebug("The privilige 'Security' could not be enabled. Make sure your user account does have this privilige");
            }

            if (!quite)
            {
                if (privControl.GetPrivileges()
                    .Where(p => p.PrivilegeState == PrivilegeState.Enabled)
                    .Where(p =>
                           (p.Privilege == Privilege.TakeOwnership) |
                           (p.Privilege == Privilege.Restore) |
                           (p.Privilege == Privilege.Backup) |
                           (p.Privilege == Privilege.Security)).Count() == 4)
                {
                    WriteVerbose("The privileges 'Backup', 'Restore', 'TakeOwnership' and 'Security' are now enabled giving you access to all files and folders. Use Disable-Privileges to disable them and Get-Privileges for an overview.");
                }
                else
                {
                    WriteError(new ErrorRecord(new AdjustPriviledgeException("Could not enable requested privileges. Cmdlets of NTFSSecurity will only work on resources you have access to."), "Enable Privilege Error", ErrorCategory.SecurityError, null));
                    return;
                }
            }
        }
        protected void EnablePrivilege(Privilege privilege)
        {
            //throw an exception if the specified prililege is not held by the client
            if (!privileges.Any(p => p.Privilege == privilege))
            {
                throw new System.Security.AccessControl.PrivilegeNotHeldException(privilege.ToString());
            }

            //if the privilege is disabled
            if (privileges.Single(p => p.Privilege == privilege).PrivilegeState == PrivilegeState.Disabled)
            {
                WriteDebug(string.Format("The privilege {0} is disabled...", privilege));
                //activate it
                privControl.EnablePrivilege(privilege);
                WriteDebug(string.Format("..enabled"));
                //remember the privilege so that we can automatically disable it after the cmdlet finished processing
                enabledPrivileges.Add(privilege.ToString());

                privileges = privControl.GetPrivileges();
            }
        }
Beispiel #6
0
        private static string GetPrivil(Process process)
        {
            string allPriv = "";
            //Process p;
            //p = Process.GetProcessById(Int32.Parse(process.Id));
            PrivilegeAndAttributesCollection privileges = process.GetPrivileges();

            int maxPrivilegeLength = privileges.Max(privilege => privilege.Privilege.ToString().Length);

            foreach (PrivilegeAndAttributes privilegeAndAttributes in privileges)
            {
                Privilege      privilege      = privilegeAndAttributes.Privilege;
                PrivilegeState privilegeState = privilegeAndAttributes.PrivilegeState;

                if (privilegeState.ToString() == "Enabled")
                {
                    allPriv += privilege + "; ";
                }
            }
            return(allPriv);
        }
Beispiel #7
0
        private void Table_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int PID = 0;

            try
            {
                #region Получение DLL и вывод в TextBox
                PID = Int32.Parse(Table.CurrentCell.Value.ToString());
                DLLBox.Clear();
                Process proc = Process.GetProcessById(PID);

                DLLBox.Text += "Процесс: " + proc.ProcessName + Environment.NewLine;
                foreach (ProcessModule module in proc.Modules)
                {
                    DLLBox.Text += module.FileName + Environment.NewLine;
                }
                #endregion

                #region Получение привелегий процесса
                Priveleges_dataGridView.Rows.Clear();

                PrivilegeAndAttributesCollection privileges = proc.GetPrivileges();

                //int maxPrivilegeLength = privileges.Max(privilege => privilege.Privilege.ToString().Length);

                foreach (PrivilegeAndAttributes privilegeAndAttributes in privileges)
                {
                    Privilege privilege = privilegeAndAttributes.Privilege;

                    PrivilegeState privilegeState = privilegeAndAttributes.PrivilegeState;

                    Priveleges_dataGridView.Rows.Add(privilege /*+ GetPadding(privilege.ToString().Length, maxPrivilegeLength)*/, privilegeState);
                }
                #endregion
            }
            catch (Win32Exception) { }
            catch (ArgumentException) { }
            catch (FormatException) { }
            catch (InvalidOperationException) { }
        }
Beispiel #8
0
        /// <summary>
        /// Ativar() - Cria instancia do servico, para uso local ou como WCF
        /// </summary>
        public void Ativar()
        {
            bool bSingleton = false;

            try
            {
                if (bAtivado)
                {
                    logger.Info("Servico já ativado por outra interface, ignorando");
                    return;
                }


                // Cria o tipo da interface
                Assembly[] assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
                foreach (string nomeInterface in this.ServicoInfo.NomeInterface)
                {
                    logger.Debug("Servico.Ativar(): procurando interface nos assemblies:" + nomeInterface);
                    foreach (Assembly assembly in assemblies)
                    {
                        Type Interface = assembly.GetType(nomeInterface);
                        if (Interface != null)
                        {
                            _interfaces.Add(Interface);
                        }
                    }
                }

                // Melhorar....
                if (_interfaces.Count == 0 || _interfaces.Count < this.ServicoInfo.NomeInterface.Count)
                {
                    foreach (string nomeInterface in this.ServicoInfo.NomeInterface)
                    {
                        logger.Info("Interface " + nomeInterface + " nao encontrada direto, usando Type.GetType()");
                        Type Interface = Type.GetType(nomeInterface);
                        if (Interface != null)
                        {
                            _interfaces.Add(Interface);
                        }
                        else
                        {
                            logger.Error("Interface " + nomeInterface + " nao encontrada em nenhum dos assemblies.");
                            return;
                        }
                    }
                }

                if (this.ServicoInfo.NomeInstancia == null || this.ServicoInfo.NomeInstancia.Length == 0)
                {
                    throw new Exception("Erro em Ativar(): Nome da instancia nao pode ser nula! Verifique a tag <NomeInstancia>");
                }


                // ATP: verificar esse ponto: se nao achou a interface, nao deve continuar aqui.
                // Tem instancia criada?
                if (this.Instancia == null)
                {
                    this.TipoInstancia = Type.GetType(this.ServicoInfo.NomeInstancia);
                    if (this.TipoInstancia != null)
                    {
                        this.Instancia = Activator.CreateInstance(this.TipoInstancia);
                    }
                    else
                    {
                        string msg = "Ativar(): ClassType da instancia nao encontrado para " + this.ServicoInfo.NomeInstancia;
                        msg += "\nVerifique Assemblies/Namespace da classe: " + this.ServicoInfo.NomeInstancia;
                        throw new Exception(msg);
                    }
                }

                // Registra o canal de comunicação se necessário (casos de wcf)
                if (this.ServicoInfo.AtivarWCF && this.Instancia != null)
                {
                    logger.Info("Ativando " + this.ServicoInfo.NomeInstancia + " como WCF");

                    ServiceBehaviorAttribute [] srvbehavior = this.Instancia.GetType().GetCustomAttributes(typeof(ServiceBehaviorAttribute), true) as ServiceBehaviorAttribute[];
                    if (srvbehavior != null && srvbehavior.Length > 0)
                    {
                        foreach (ServiceBehaviorAttribute attribute in srvbehavior)
                        {
                            logger.Info("InstanceContextMode : " + attribute.InstanceContextMode.ToString());
                            if (attribute.InstanceContextMode == InstanceContextMode.Single)
                            {
                                bSingleton = true;
                                logger.Info("ConcurrencyMode: " + attribute.ConcurrencyMode.ToString());
                                //if (attribute.ConcurrencyMode == ConcurrencyMode.Single)
                                //{
                                //    attribute.ConcurrencyMode = ConcurrencyMode.Multiple;
                                //    logger.Info("Novo ConcurrencyMode: " + attribute.ConcurrencyMode.ToString());
                                //}
                            }
                            else
                            {
                                logger.Warn("********************************************************");
                                logger.Warn("InstanceContextMode para a classe " + this.ServicoInfo.NomeInstancia);
                                logger.Warn("Esta definida como: " + attribute.InstanceContextMode.ToString());
                                logger.Warn("NÃO É UM SINGLETON!!! VERIFIQUE SE SUA CLASSE FOI PENSADA");
                                logger.Warn("PARA TER MAIS DE UMA INSTANCIA ATIVA");
                                logger.Warn("********************************************************");
                            }
                        }
                    }

                    // Faz a ativação WCF
                    if (bSingleton)
                    {
                        this.Host = new ServiceHost(this.Instancia);
                    }
                    else
                    {
                        this.Host = new ServiceHost(this.Instancia.GetType());
                    }
                    this.Host.OpenTimeout = new TimeSpan(0, 2, 0);
                    this.Host.Faulted    += new EventHandler(_hostFaulted);

                    logger.Info("Adicionando MetaData Behavior para " + this.ServicoInfo.NomeInstancia);

                    //ATP: Adicionando informacoes do MEX
                    ServiceMetadataBehavior metadataBehavior;
                    metadataBehavior = this.Host.Description.Behaviors.Find <ServiceMetadataBehavior>();
                    if (metadataBehavior == null)
                    {
                        logger.Info("Criando MetaData Behavior para " + this.ServicoInfo.NomeInstancia);
                        metadataBehavior = new ServiceMetadataBehavior();
                        string mexendpointaddr = this.MexBaseAddress + "/" + this.Instancia.ToString();
                        metadataBehavior.HttpGetUrl     = new Uri(mexendpointaddr);
                        metadataBehavior.HttpGetEnabled = true;
                        this.Host.Description.Behaviors.Add(metadataBehavior);
                    }


                    // Se configurado, acrescenta as configurações de throttling
                    if (this.ServicoInfo.MaxConcurrentCalls > 0 &&
                        this.ServicoInfo.MaxConcurrentInstances > 0 &&
                        this.ServicoInfo.MaxConcurrentSessions > 0)
                    {
                        logger.Info("Adicionando ServiceThrottleBehavior para " + this.ServicoInfo.NomeInstancia);

                        ServiceThrottlingBehavior throttleBehavior = new ServiceThrottlingBehavior();
                        throttleBehavior.MaxConcurrentCalls     = this.ServicoInfo.MaxConcurrentCalls.Value;
                        throttleBehavior.MaxConcurrentInstances = this.ServicoInfo.MaxConcurrentInstances.Value;
                        throttleBehavior.MaxConcurrentSessions  = this.ServicoInfo.MaxConcurrentSessions.Value;
                        logger.Info("MaxConcurrentCalls ......: " + throttleBehavior.MaxConcurrentCalls);
                        logger.Info("MaxConcurrentInstances ..: " + throttleBehavior.MaxConcurrentInstances);
                        logger.Info("MaxConcurrentSessions ...: " + throttleBehavior.MaxConcurrentSessions);

                        this.Host.Description.Behaviors.Add(throttleBehavior);
                    }


                    logger.Info("Adicionando ErrorServiceBehavior para " + this.ServicoInfo.NomeInstancia);
                    this.Host.Description.Behaviors.Add(new ErrorServiceBehavior());

                    logger.Info("Configurando ServiceDebugBehavior para " + this.ServicoInfo.NomeInstancia);
                    ServiceDebugBehavior debugBehavior = this.Host.Description.Behaviors.Find <ServiceDebugBehavior>();
                    if (debugBehavior != null)
                    {
                        debugBehavior.IncludeExceptionDetailInFaults = true;
                    }
                    else
                    {
                        debugBehavior = new ServiceDebugBehavior();
                        debugBehavior.IncludeExceptionDetailInFaults = true;
                        this.Host.Description.Behaviors.Add(debugBehavior);
                    }

                    // Cria endpoint se nao tiver algum definido no app.config
                    logger.Info("Adicionando endpoints para " + this.ServicoInfo.NomeInstancia);
                    if (this.Host.Description.Endpoints.Count == 0)
                    {
                        logger.Info("Nenhum endpoint declarado para o servico : " + this.ServicoInfo.NomeInstancia);

                        foreach (string baseAddress in this.BaseAddress)
                        {
                            Binding tcpBinding = null;

#if PRIVILEDGED_NAMED_PIPE
                            // NAO REMOVER O CODIGO ABAIXO
                            // PODERA SER USADO PARA ESCALAR A CAPACIDADE DO AMBIENTE
                            if (!baseAddress.StartsWith("net.pipe"))
                            {
                                tcpBinding = Utilities.GetBinding(baseAddress);
                            }
                            else
                            {
                                Process myproc = Process.GetCurrentProcess();

                                // Get the privileges and associated attributes.
                                PrivilegeAndAttributesCollection privileges = myproc.GetPrivileges();

                                //int maxPrivilegeLength = privileges..Max(privilege => privilege.Privilege.ToString().Length);

                                foreach (PrivilegeAndAttributes privilegeAndAttributes in privileges)
                                {
                                    // The privilege.
                                    Privilege privilege = privilegeAndAttributes.Privilege;

                                    // The privilege state.
                                    PrivilegeState privilegeState = privilegeAndAttributes.PrivilegeState;

                                    // Write out the privilege and its state.
                                    logger.DebugFormat(
                                        "{0}{1} => {2}",
                                        privilege,
                                        privilege.ToString(),
                                        privilegeState);
                                }


                                // Enable the TakeOwnership privilege on it.
                                AdjustPrivilegeResult result = myproc.EnablePrivilege(Privilege.CreateGlobal);

                                tcpBinding = new AclSecuredNamedPipeBinding();

                                try
                                {
                                    SecurityIdentifier allow = (SecurityIdentifier)(new NTAccount("Everyone").Translate(typeof(SecurityIdentifier)));

                                    ((AclSecuredNamedPipeBinding)tcpBinding).AddUserOrGroup(allow);
                                }
                                catch (Exception ex)
                                {
                                    logger.Error(ex);
                                }

                                try
                                {
                                    SecurityIdentifier allow = (SecurityIdentifier)(new NTAccount("Todos").Translate(typeof(SecurityIdentifier)));

                                    ((AclSecuredNamedPipeBinding)tcpBinding).AddUserOrGroup(allow);
                                }
                                catch (Exception ex)
                                {
                                    logger.Error(ex);
                                }

                                logger.Debug("Apos setar privilegios");
                                // Get the privileges and associated attributes.
                                privileges = myproc.GetPrivileges();


                                foreach (PrivilegeAndAttributes privilegeAndAttributes in privileges)
                                {
                                    // The privilege.
                                    Privilege privilege = privilegeAndAttributes.Privilege;

                                    // The privilege state.
                                    PrivilegeState privilegeState = privilegeAndAttributes.PrivilegeState;

                                    // Write out the privilege and its state.
                                    logger.DebugFormat(
                                        "{0}{1} => {2}",
                                        privilege,
                                        privilege.ToString(),
                                        privilegeState);
                                }
                            }
#else
                            tcpBinding = Utilities.GetBinding(baseAddress);
#endif
                            foreach (Type iface in this._interfaces)
                            {
                                string endpointaddr = baseAddress + "/" + iface.ToString();

                                logger.Info("Criando endpoint: Interface=[" + iface.ToString() + "]  Instancia=[" + this.Instancia.ToString() + "] Address=[" + endpointaddr + "]");

                                this.Host.AddServiceEndpoint(iface, tcpBinding, endpointaddr);
                            }
                        }
                    }

                    // Adiciona o enpoint MEX para o fim da lista
                    logger.Info("Criando endpoint MEX para " + this.ServicoInfo.NomeInstancia);
                    this.Host.AddServiceEndpoint(typeof(IMetadataExchange), new BasicHttpBinding(), this.MexBaseAddress + "/" + this.Instancia.ToString());

                    // Popula as informacoes dos endpoints para o servico Localizador
                    // Ver Ativador.Get<>()
                    if (this.Host.Description.Endpoints.Count > 0)
                    {
                        // Para cada endpoint do wcf, cria na colecao do ServicoInfo para publicar no localizador
                        foreach (System.ServiceModel.Description.ServiceEndpoint endPoint in this.Host.Description.Endpoints)
                        {
                            logger.Info("Verificando validade do endpoint [" + endPoint.Address.Uri.ToString() + "] tipo: [" + endPoint.Binding.GetType().FullName + "] para localizador");

                            if (endPoint.Address.Uri.ToString().Contains("/MEX") == false)
                            {
                                logger.Info("Adicionando informacoes do endpoint [" + endPoint.Address.Uri.ToString() + "] tipo: [" + endPoint.Binding.GetType().FullName + "] para localizador");
                                this.ServicoInfo.EndPoints.Add(
                                    new ServicoEndPointInfo()
                                {
                                    Endereco = endPoint.Address.Uri.ToString(),
                                    //NomeBindingType = endPoint.Binding.GetType().FullName
                                    NomeBindingType = Utilities.GetBindingType(endPoint.Address.Uri.ToString())
                                });
                            }

                            ContractDescription cd = endPoint.Contract;

                            foreach (OperationDescription od in cd.Operations)
                            {
                                DataContractSerializerOperationBehavior serializerBh = od.Behaviors.Find <DataContractSerializerOperationBehavior>();
                                if (serializerBh == null)
                                {
                                    logger.Info("Adicionando DataContractSerializerOperationBehavior");
                                    serializerBh = new DataContractSerializerOperationBehavior(od);
                                    od.Behaviors.Add(serializerBh);
                                }

                                logger.Info("Setando MaxItemsInObjectGraph para operacao: " + od.Name);
                                serializerBh.MaxItemsInObjectGraph = 8000000;
                            }
                        }
                    }

                    logger.Info("Servico: " + this.ServicoInfo.NomeInstancia + " opening host...");

                    // Inicia o ServiceHost
                    this.Host.Open();
                }

                // Marca servico como ativo.
                bAtivado = true;

                // Registra no localizador se necessário
                if (this.ServicoInfo.RegistrarLocalizador)
                {
                    logger.Info("Registrando servico no Localizador");
                    LocalizadorCliente.Registrar(this.ServicoInfo);
                }

                logger.Info("***");
                logger.Info("   ");
            }
            catch (Exception ex)
            {
                logger.Error("Erro em Servico.Ativar(): ", ex);
                throw ex;
            }
        }
Beispiel #9
0
        private void button3_Click(object sender, EventArgs e)
        {
            int number      = 0;
            var processList = Process.GetProcesses();


            foreach (var proc in processList)
            {
                try
                {
                    ListViewItem lvi = new ListViewItem(String.Format("{0}.exe", proc.ProcessName));

                    lvi.SubItems.Add(String.Format("{0}", proc.Id));

                    string a, b;

                    lvi.SubItems.Add(String.Format("{0}", GetProcessInfoByPID(proc.Id, out a, out b) + "  " + a));
                    try
                    {
                        string s = parrent(proc.Id);
                        number = Convert.ToInt32(s, 10);

                        try
                        {
                            lvi.SubItems.Add(String.Format(Process.GetProcessById(number).ProcessName + ".exe " + "(" + number + ")"));
                        }
                        catch { lvi.SubItems.Add(String.Format("{0}", " ")); };
                    }
                    catch (Win32Exception)
                    {
                        lvi.SubItems.Add(String.Format("{0}", " "));
                    }
                    MyGlobal = proc.Id;
                    if (InternalCheckIsWow64())
                    {
                        lvi.SubItems.Add(String.Format("{0}", "x32"));
                    }
                    else if (MyGlobal < 0)
                    {
                        lvi.SubItems.Add(String.Format("{0}", " "));
                    }
                    else
                    {
                        lvi.SubItems.Add(String.Format("{0}", "x64"));
                    }
                    try
                    {
                        string                  sdll = "";
                        ProcessModule           dll;
                        ProcessModuleCollection myProcessModuleCollection = proc.Modules;
                        for (int i = 1; i < myProcessModuleCollection.Count; i++)
                        {
                            dll  = myProcessModuleCollection[i];
                            sdll = sdll + " " + String.Format("{0}", dll.ModuleName);
                            //  lvi.SubItems.Add(String.Format("{0}", dll.ModuleName));
                        }

                        lvi.SubItems.Add(sdll);
                    }
                    catch (Win32Exception) {
                        lvi.SubItems.Add(String.Format("{0}", " "));
                    }
                    try
                    {
                        // Get and display the process integrity level.

                        int IL = GetProcessIntegrityLevel(proc.Id);
                        switch (IL)
                        {
                        case NativeMethod.SECURITY_MANDATORY_UNTRUSTED_RID:
                            lvi.SubItems.Add(String.Format("{0}", "Untrusted")); break;

                        case NativeMethod.SECURITY_MANDATORY_LOW_RID:
                            lvi.SubItems.Add(String.Format("{0}", "Low")); break;

                        case NativeMethod.SECURITY_MANDATORY_MEDIUM_RID:
                            lvi.SubItems.Add(String.Format("{0}", "Medium")); break;

                        case NativeMethod.SECURITY_MANDATORY_HIGH_RID:
                            lvi.SubItems.Add(String.Format("{0}", "High")); break;

                        case NativeMethod.SECURITY_MANDATORY_SYSTEM_RID:
                            lvi.SubItems.Add(String.Format("{0}", "System")); break;

                        default:
                            lvi.SubItems.Add(String.Format("{0}", "Unknown")); break;
                        }
                    }
                    catch (Exception)
                    {
                        lvi.SubItems.Add(String.Format("{0}", "System"));
                    }
                    PrivilegeAndAttributesCollection privileges = proc.GetPrivileges();
                    lvi.SubItems.Add(String.Format("{0}", privileges));
                    listView1.Items.Add(lvi);
                }
                catch { };
            }
        }
Beispiel #10
0
        private void button4_Click_1(object sender, EventArgs e)
        {
            int    id           = Convert.ToInt32(textBox2.Text);
            string StrPrivilege = comboBox2.SelectedItem.ToString();
            string StrState     = comboBox3.SelectedItem.ToString();

            System.Diagnostics.Process       process    = System.Diagnostics.Process.GetProcessById(id);
            PrivilegeAndAttributesCollection privileges = process.GetPrivileges();

            if (privileges.Count == 0)
            {
                MessageBox.Show("NO PRIVILEGES");
                return;
            }
            int maxPrivilegeLength = privileges.Max(privilege => privilege.ToString().Length);

            foreach (PrivilegeAndAttributes privilegeNattributes in privileges)
            {
                if (StrPrivilege == Privilege.AssignPrimaryToken.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.AssignPrimaryToken) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.AssignPrimaryToken);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.AssignPrimaryToken) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.AssignPrimaryToken);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.Audit.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Audit) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.Audit);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Audit) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.Audit);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.Backup.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Backup) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.Backup);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Backup) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.Backup);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.ChangeNotify.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.ChangeNotify) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.ChangeNotify);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.ChangeNotify) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.ChangeNotify);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.CreateGlobal.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.CreateGlobal) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.CreateGlobal);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.CreateGlobal) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.CreateGlobal);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.CreatePageFile.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.CreatePageFile) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.CreatePageFile);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.CreatePageFile) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.CreatePageFile);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.CreatePermanent.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.CreatePermanent) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.CreatePermanent);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.CreatePermanent) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.CreatePermanent);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.CreateSymbolicLink.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.CreateSymbolicLink) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.CreateSymbolicLink);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.CreateSymbolicLink) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.CreateSymbolicLink);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.CreateToken.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.CreateToken) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.CreateToken);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.CreateToken) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.CreateToken);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.Debug.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Debug) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.Debug);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Debug) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.Debug);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.EnableDelegation.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.EnableDelegation) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.EnableDelegation);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.EnableDelegation) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.EnableDelegation);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.Impersonate.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Impersonate) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.Impersonate);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Impersonate) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.Impersonate);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.IncreaseBasePriority.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.IncreaseBasePriority) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.IncreaseBasePriority);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.IncreaseBasePriority) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.IncreaseBasePriority);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.IncreaseQuota.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.IncreaseQuota) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.IncreaseQuota);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.IncreaseQuota) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.IncreaseQuota);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.IncreaseWorkingSet.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.IncreaseWorkingSet) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.IncreaseWorkingSet);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.IncreaseWorkingSet) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.IncreaseWorkingSet);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.LoadDriver.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.LoadDriver) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.LoadDriver);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.LoadDriver) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.LoadDriver);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.LockMemory.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.LockMemory) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.LockMemory);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.LockMemory) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.LockMemory);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.MachineAccount.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.MachineAccount) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.MachineAccount);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.MachineAccount) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.MachineAccount);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.ManageVolume.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.ManageVolume) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.ManageVolume);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.ManageVolume) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.ManageVolume);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.ProfileSingleProcess.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.ProfileSingleProcess) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.ProfileSingleProcess);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.ProfileSingleProcess) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.ProfileSingleProcess);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.Relabel.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Relabel) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.Relabel);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Relabel) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.Relabel);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.RemoteShutdown.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.RemoteShutdown) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.RemoteShutdown);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.RemoteShutdown) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.RemoteShutdown);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.Restore.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Restore) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.Restore);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Restore) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.Restore);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.Security.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Security) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.Security);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Security) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.Security);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.Shutdown.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Shutdown) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.Shutdown);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Shutdown) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.Shutdown);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.SyncAgent.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.SyncAgent) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.SyncAgent);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.SyncAgent) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.SyncAgent);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.SystemEnvironment.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.SystemEnvironment) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.SystemEnvironment);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.SystemEnvironment) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.SystemEnvironment);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.SystemProfile.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.SystemProfile) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.SystemProfile);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.SystemProfile) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.SystemProfile);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.SystemTime.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.SystemTime) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.SystemTime);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.SystemTime) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.SystemTime);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.TakeOwnership.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.TakeOwnership) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.TakeOwnership);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.TakeOwnership) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.TakeOwnership);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.TimeZone.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.TimeZone) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.TimeZone);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.TimeZone) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.TimeZone);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.TrustedComputerBase.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.TrustedComputerBase) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.TrustedComputerBase);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.TrustedComputerBase) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.TrustedComputerBase);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.TrustedCredentialManagerAccess.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.TrustedCredentialManagerAccess) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.TrustedCredentialManagerAccess);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.TrustedCredentialManagerAccess) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.TrustedCredentialManagerAccess);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.Undock.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Undock) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.Undock);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.Undock) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.Undock);
                        }
                    }
                }
                else if (StrPrivilege == Privilege.UnsolicitedInput.ToString())
                {
                    if (StrState == "ENABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.UnsolicitedInput) == PrivilegeState.Disabled)
                        {
                            AdjustPrivilegeResult result = process.EnablePrivilege(Privilege.UnsolicitedInput);
                        }
                    }
                    else if (StrState == "DISABLE")
                    {
                        if (process.GetPrivilegeState(Privilege.UnsolicitedInput) == PrivilegeState.Enabled)
                        {
                            AdjustPrivilegeResult result = process.DisablePrivilege(Privilege.UnsolicitedInput);
                        }
                    }
                }
            }
        }