Básico de Linux usuários e grupos sobre Os sistemas operacionais Linux e Windows têm número de coisas em comum e uma delas é a necessidade de usuários e grupos. Uma vez que você vai encontrar sistemas Linux durante os pentests, precisamos dar uma olhada neles também. Usuários no Linux, assim como no Windows, servem para logar e obter acesso ao sistema. As contas de usuários contém todas as propriedades que permitirão um usuário acessar todos os recursos, arquivos e pastas em um computador. As informações associadas com uma conta de usuário pode ser armazenada no host local ou na rede. Uma conta típica usada para logar num computador Linux consiste das seguintes informações: Usuário e user ID (UID); Senha Nome do grupo primário e group ID (GID); Nome do grupo secundário e grup IDs; Localização do diretório home; Shell preferido; Assim que um usuário é criado, o Linux armazena as informações do usuário e seus valores no arquivo etc/passwd do próprio host. O passwd pode ser visto e editado com qualquer editor de texto. Cada usuário tem um registro com o seguinte formato: usuario:senha:UID:GID:nome:diretorio home:shell Analisando cada um dos itens, temos o seguinte: O usuário e o user ID identificam o usuário no sistema. Quando um usuário é criado, é dado um nome e assinalado um UID de um predeterminado range de números. O UID deve ser um número positivo e geralmente acima de 500 para as contas de usuários. Contas de sistema normalmente tem um número abaixo de 100; Cada conta de usuário tem sua senha, a qual é criptografada e armazenada no próprio computador ou em outro computador em rede. Quando está no próprio computador, fica no arquivo /etc/passwd ou no /etc/shadow; Administradores sempre usam o arquivo /etc/passwd para gerenciar informações de contas mas também para armazenar as senhas criptografadas no /etc/shadow, o qual é possível ler através de uma conta root. Quando este método é usado, o arquivo passwd tem um x no campo de senha; Grupos são usados para administrar e organizar contas de usuários. Quando as permissões e direitos são atribuídos para um grupo, todos os usuários parte deste grupo irão receber os mesmos privilégios e permissões. Os grupos possuem um nome único e um número de identificação (GID). O GID primário e o nome do grupo são armazenados como registros no arquivo /etc/passwd/ no próprio computador; Cada usuário tem um grupo primário por padrão e pode pertencer a outros grupos adicionais chamados de secundários. Quando usuários criam arquivos ou executam programas, estes ficam associados com um grupo assim como o dono. Um usuário pode acessar arquivos e programas se eles forem membros de um grupo com permissões para acessar. O grupo pode ser do grupo primário do usuário ou de qualquer um de seus grupos secundários. Grupos e GIDs são usados para gerenciar os direitos e permissões de outros arquivos e pastas. Grupos secundários para cada usuário são listados como registros no próprio computador em /etc/group. Sugestões de livros: Enumeração Windows em ambiente O Windows é um sistema operacional feito para ser usado tanto no modo stand-alone, como em um ambiente conectado em rede. No mundo do Windows, a segurança de acesso aos seus recursos, objetos e outros componentes é feita através de vários mecanismos, como veremos a seguir. Você precisa entender como acessar recursos como são gerenciados os arquivos compartilhados ou outros itens. Windows usa o modelo que pode ser resumido da seguinte forma: quem tem acesso a que recurso. Por exemplo, um usuário tem acesso ao compartilhamento de arquivos ou impressora. Usuários Em qualquer sistema operacional, o item responsável por controlar o acesso ao sistema é o usuário. Contas de usuários são usadas no Windows para tudo, desde compartilhamento de arquivos até rodar serviços que permite componente de software acessar e executar com o privilégio apropriado. Na instalação padrão do Windows, existem duas contas de usuários presentes e prontos para serem usados pelo dono do sistema: o administrador e o convidado. Estas contas tem sofrido mudanças desde o Windows Vista até a versão 10. Convidado Esta conta está presente no sistema operacional por um bom tempo, mas não houve grandes mudanças. Em resumo, ela foi criada com um perfil bem limitado de funcionalidades e poder no ambiente, além de não ficar ativo por padrão. Ele deve ser ativado para ser usado (o que raramente é feito). Na prática, o convidado fica desativado. Administrador Esta conta sofreu diversas mudanças a partir do Windows Vista. Desde esta versão, ela sempre esteve presente e também não é ativada por padrão por questões de segurança. Além de estar presente, ele sempre era ativado pelos usuários, pois permitia ele fazer qualquer coisa que quisessem de forma consciente, mas ao mesmo tempo, traz o risco de malwares serem executados em background com as mesmas permissões da sessão do usuário: com privilégios administrativos. Para contrariar isso no Vista, a conta foi desativada e você será solicitado a criar sua própria conta ao instalar o SO a partir do zero. Embora essa conta possa ter privilégios de administrador, você deve usá-los somente em situações específicas que os exijam. No Windows, isso significa que, a menos que você tente executar uma função que exija privilégios de administrador, você não os usará mesmo se tiver a capacidade de ser um administrador. Mas quando você deseja acessar uma função ou recurso que requeira esses privilégios elevados, será questionado se você deseja executar o comando e, nesse caso, terá permissão para fazer. O que o Windows está realmente fazendo é aumentar os privilégios para esse único processo e deixar todo o resto em execução na sua conta com privilégios normais. Sim, isso significa que você está executando como um usuário padrão, se você for um administrador, e você só poderá executar privilégios de administrador caso a caso. Windows tem algumas contas embutidas que não são feitas para serem usadas pelo usuário diretamente. Estas contas foram feitas para executar processos no background e outras atividades necessárias. Processos no Windows podem ser executados dentro de um dos contextos dos usuários: Serviços Locais: Uma conta de usuário com acesso maior que o normal no sistema local com limite de acesso a rede; Serviço de Rede: Uma conta de usuário com acesso normal a rede, mas com limite ao sistema local; Sistema: Uma conta com estilo super-usuário que tem acesso praticamente ilimitado ao sistema local; Usuário atual: É o usuário atualmente em uso e logado no sistema, o qual pode rodar aplicativos e tarefas, mas ainda está sujeito a restrições que outros não estão sujeitos. As restrições nesta conta permanecem mesmo se a conta que está sendo usada por uma conta de administrador; Cada uma destas contas é usada por uma razão específica. Em uma sessão típica do Windows, cada um está rodando diferentes processos por trás para manter o sistema performando bem. De fato, no Windows, cada conta pode estar rodando um ou mais serviços de uma vez, embora muitas vezes seja um relacionamento um-para-um. O que todas estas contas tem em comum é sua estrutura e desenho. Cada objeto de usuário contém informações sobre a conta do usuário, nível de acesso, grupos os quais eles são membros, privilégios e outras informações importante como sua identidade única para prevenir conflitos. Sugestões de livros: Grupos Os grupos são usados por sistemas operacionais como Windows e Linux para controlar o acesso aos recursos, bem como para simplificar o gerenciamento. Os grupos são ferramentas de administração eficazes que permitem o gerenciamento de vários usuários. Um grupo pode conter um grande número de usuários que podem então ser gerenciados como uma unidade, para não mencionar o fato de que um grupo pode até ter outros grupos aninhados dentro dele para simplificar o gerenciamento. Essa abordagem permite que você atribua acesso a um recurso, como uma pasta compartilhada, para um grupo em vez de cada usuário individualmente, economizando tempo e esforço substanciais. Você pode configurar seus próprios grupos conforme achar adequado em sua rede e sistemas, mas a maioria dos fornecedores, como a Microsoft, inclui uma série de grupos predefinidos que você pode usar ou modificar conforme necessário. Há vários grupos padrão no Windows: Logon Anônimo (Anonymous Logon): Projetado para permitir acesso anônimo a recursos. Normalmente usado ao acessar um servidor web ou aplicativos da Web; Lote (Batch): Usado para permitir que tarefas em lote executem tarefas de agendamento, como um trabalho de limpeza noturno que exclui arquivos temporários; Grupo de criadores (Creator Group): O Windows 2000 usa este grupo para conceder automaticamente permissões de acesso a usuários que são membros do mesmo grupo(s) como o criador de um arquivo ou um diretório; Proprietário do Criador (Creator Owner): A pessoa que criou o arquivo ou diretório é um membro desse grupo. O Windows 2000 e versões posteriores usam esse grupo para conceder automaticamente permissões de acesso ao criador de um arquivo ou diretório; Todos (Everyone): Todos os usuários interativos, de rede, dial-up e autenticados são membros deste grupo. Esse grupo é usado para dar acesso amplo a um recurso do sistema; Interativo (Interactive): Qualquer usuário conectado ao sistema local tem a identidade interativa, que permite que apenas os usuários locais acessem um recurso; Rede (Network): Qualquer usuário acessando o sistema através de uma rede possui a identidade de rede, que permite que apenas usuários remotos acessem um recurso; Restrito (Restricted): Usuários e computadores com recursos restritos têm a identidade Restrita. Em um servidor membro ou estação de trabalho, um usuário local que é um membro do grupo Usuários (em vez do grupo Usuários avançados) tem essa identidade; Self: Refere-se ao objeto e permite que o objeto se modifique; Serviço (Service): Qualquer serviço que acesse o sistema possui a identidade de Serviço, que concede acesso aos processos sendo executados pelo Windows 2000 e serviços posteriores; Sistema (System): Os sistemas operacionais Windows 2000 e posteriores possuem a identidade de sistema, que é usada quando o sistema operacional precisa executar uma função no nível do sistema; Usuário do Terminal Server (Terminal Server User): Permite que usuários do Terminal Server acessem aplicativos do Terminal Server e executem outras tarefas necessárias com os Serviços de Terminal. Importante notar que dependendo do ambiente, do software e hardware instalado, e as políticas de configuração do sistema, você poderá encontrar mais grupos com nomes diferentes aparecerão. Identificadores de segurança De forma simples, o identificador de segurança (SID) é um número atribuído pelo sistema operacional para identificar exclusivamente um objeto específico, como um usuário, grupo ou até mesmo um computador. Quando um objeto é criado, o sistema gera e atribui o SID, verifica e garante que ele nunca é será novamente. Enquanto usuários e administradores de sistema podem viver usando os nomes comuns, para Windows internamente isso não funcionará. Se o Windows se referir a um nome comum como os seres humanos em vez de usar um SID, então tudo associado a esse nome ficaria vazio ou inacessível se o nome fosse alterado de alguma forma. Em vez de permitir que essa situação ocorra, a conta de usuário é em vez disso amarrada a uma sequência imutável (o SID), que permite que o nome de usuário para alterar sem afetar nenhuma das configurações do usuário. Isso significa que um nome de usuário pode mudar, mas o SID (enquanto ligado ao nome de usuário) não. Na verdade, não é possível alterar o SID associado a uma conta sem ter de atualizar manualmente todas as definições de segurança associadas a esse usuário para reconstruir a respectiva identidade. Entendendo a estrutura do SID Todos os SIDs começam com S-1-5-21, mas por outro lado eles são únicos. Como um pentester, pode-se decodificar o SID inteiro e determinar algumas informações sobre o usuário e grupo, mas vamos dar uma olhada especificamente nas contas dos usuários. As duas principais contas (visitante e administrador) tem algumas propriedades únicas. Especificamente, estas contas terminam com 500 na de administrador e 501 na do visitante. Não importa qual sistema Windows você esteja verificando. Você também achará SIDs em toda instalação do Windows que corresponda a certas contas embutidas. Por exemplo, o SID S-1-5-18 pode ser achado em qualquer cópia do Windows que você encontre e que corresponda a conta do sistema local, a conta de serviço que é carregada pelo Windows antes do usuário logar. Veja alguns exemplos de valores para grupos e usuários especiais que são universais no Windows: S-1-0-0 (Null SID) – Este é atribuído quando o valor do SID é desconhecido ou para um grupo sem membros; S-1-1-0 (World) – É o grupo que contém todos os usuários; S-1-2-0 (Local) – Este SID é atribuído para usuários que fazem log on no terminal local. Apesar de você usar um usuário para acessar o sistema, o Windows identifica cada usuário, grupo ou objeto pelo SID. Por exemplo, Windows usa o SID para olhar por uma conta e ver se a senha combina. Também são usadas em cada situação na qual permissões são validadas, por exemplo, quando um usuário tenta acessar uma pasta ou um recurso compartilhado. Tenha em mente que o SID é único e nunca é reusado. Onde eles ficam armazenados? Como as contas e grupos são importantes, eles precisam ser armazenados e manter um rastreio de tudo isto. No caso do Windows, eles ficam no Security Accounts Manager (SAM). Simplesmente, o SAM é um banco de dados local que contém usuários e senhas das contas específicas do sistema. Ele fica empacotado e é parte do Registro do Windows em cada sistema. Dentro do SAM, cada conta de usuário é relacionada com uns pedaços de informações. Informações associadas com as contas são as senhas, as quais são armazenadas criptografadas tanto em hash Lan Manager (LM) e em formato hash NTLM. Este hash permite o computador determinar se a senha inserida pelo usuário está correta ou incorreto e precisa ser inserida novamente. Caminha completo do SAM O arquivo SAM fica localizado na pasta \windows\system32\config\. Entretanto, somente em situações extremas como uma instalação corrompida ou similar, você deve alterar este arquivo. Remover, alterar ou mecher de alguma forma, poderá fazer o seu sistema não dar mais boot. Suporte e Versões do Windows Para todas as intenções e propósitos, o arquivo SAM está sendo usado em todas as versões do Windows, exceto aquelas com mais de 15 anos. Nas versões que suportam o SAM, o banco de dados roda em background e para o usuário é imperceptível. Sugestões de livros: Mapa Mental de Gerenciamento de Projetos – Grupos de Processos Mapa Mental de Gerenciamento de Projetos Grupos de Processos Grupos de Processos de Gerenciamento de Projetos Vamos aprender um pouco mais sobre os grupos de processos dentro do Gerenciamento de Projetos. Basicamente são 5 grupos de processos, que são os estados que o seu projeto se encontra. Já vimos alguns conceitos básicos nas postagens anteriores sobre este assunto, mas vamos tentar entrar um pouco mais a fundo e fixar melhor os conceitos abordados, mostrando as finalidades desse grupo de processos. O gerenciamento de projetos é a aplicação de conhecimento, habilidades, ferramentas e técnicas às atividades do projeto a fim de atender aos seus requisitos. O gerenciamento de projetos é realizado através de processos, usando conhecimento, habilidades, ferramentas e técnicas do gerenciamento de projetos que recebem entradas e geram saídas. De acordo com o PMBOK, esses processos são agregados em cinco grupos ou fases , definidos como os grupos de processos de gerenciamento de projetos: 1. Iniciação; 2. Planejamento; 3. Execução; 4. Monitoramento e Controle; 5. Encerramento. Grupos de Processos e suas interações Os grupos de processos de gerenciamento de projetos têm grande correspondência com o conceito do ciclo PDCA: Plan –Do – Check – Act ou planejar, fazer, verificar e agir (corrigir e melhorar) . O PDCA foi criado na década de 1920 por Walter A. Shewart, mas foi William Edward Deming que o aplicou no Japão após a guerra, consagrando-o. PDCA é a sigla das palavras em inglês que designam cada etapa do ciclo: “Plan” (planejar); “Do” (fazer); “Check” (checar) e “Act” (no sentido de corrigir ou agir de forma corretiva). PLAN: O primeiro passo para a aplicação do PDCA é o estabelecimento de um planejamento que deverá ser definido com base nas diretrizes da organização, considerando 3 fases importantes: 1) estabelecimento dos objetivos, 2) estabelecimento do caminho para que o objetivo seja atingido e 3) definição do método que deve ser utilizado para conseguilos. DO: O segundo passo do PDCA é a execução do plano que consiste no treinamento dos envolvidos, na execução do planejamento e na coleta de dados para posterior análise. CHECK: O terceiro passo do PDCA é a análise ou verificação dos resultados alcançados e dos dados coletados. Ela pode ocorrer junto com a realização do plano quando se verifica se o projeto está se desenvolvendo conforme o planejado, ou após a execução quando são feitas análises estatísticas dos dados e verificação dos itens de controle. ACT: a última fase do PDCA é a realização das ações corretivas, ou seja, a correção de falhas encontradas. Deve ser realizada a investigação das causas das falhas ou desvios no processo, aplicando o ciclo PDCA para corrigi-las. O ciclo PDCA pode ser visto na figura abaixo. Gráfico do PDCA Relacionando os grupos de processos do PMBOK (figura abaixo) e o PDCA, temos: O grupo de Planejamento corresponde ao P- Plan (planejar) O grupo de Execução, ao D- Do (fazer) O grupo de Monitoramento e Controle englobam o C- Check (verificar) e A-Act (agir) Como o projeto é finito, o PMBOK caracteriza grupos de processos que iniciam (Iniciação) e finalizam (Encerramento) um projeto. Grupos de Processos Lembramos que grupos de processos não são fases do projeto e descrevem: Grupo de processos de iniciação: define e autoriza o projeto. Grupo de processos de planejamento: define e refina os objetivos e planeja a ação necessária para alcançar os objetivos e o escopo para os quais o projeto foi realizado. Grupo de processos de execução: integra pessoas e outros recursos para realizar o plano de gerenciamento do projeto para o projeto. Grupo de processos de monitoramento e controle: mede e monitora regularmente o progresso para identificar variações em relação ao plano de gerenciamento do projeto, de forma que possam ser tomadas ações corretivas para atender aos objetivos do projeto. Grupo de processos de encerramento: formaliza a aceitação do resultado e conduz o projeto a um final ordenado. Os grupos de processos de gerenciamento de projetos estão ligados pelos objetivos que produzem. Em geral, as saídas de um processo se tornam entradas para outro processo ou são entregas do projeto. Por exemplo, o grupo de Processos de Planejamento fornece ao de Execução o plano de gerenciamento do projeto e uma declaração do escopo do projeto documentados, atualizando o plano de gerenciamento do projeto conforme o projeto se desenvolve. Os grupos de processos são atividades sobrepostas que ocorrem em diversos níveis de intensidade durante todo o projeto. A figura abaixo ilustra como os grupos de processos interagem e o nível de sobreposição em momentos diferentes dentro de um projeto. Nível de interação entre os processos A próxima figura ilustra o nível de esforço em cada grupo de processos em momentos diferentes dentro de um projeto. Nível de esforço por grupo de processos Grupo de Iniciação Processo de O grupo de processos de iniciação é constituído pelos processos que facilitam a autorização formal para iniciar um novo projeto. Estes processos são feitos fora do escopo de controle do projeto pela organização, o que pode tornar os limites do projeto menos evidentes para as entradas iniciais do projeto. Antes de iniciar as atividades do grupo de processos de iniciação, os requisitos ou as necessidades de negócios da organização são documentados, estabelecendo a viabilidade do novo empreendimento através de um processo de avaliação das alternativas para selecionar a melhor. São desenvolvidas descrições claras dos objetivos do projeto, incluindo as razões pelas quais um projeto específico se constitui na melhor solução alternativa para satisfazer os requisitos. A documentação dessa decisão também contém uma descrição básica do escopo do projeto, das entregas, da duração do projeto e uma previsão dos recursos para a análise de investimentos da organização. Limites do Projeto Grupo de Processos Planejamento de A equipe de gerenciamento de projetos usa o grupo de processos de planejamento para planejar e gerenciar um projeto bem sucedido para a organização. Esse grupo de processos ajuda a coletar informações de muitas fontes, algumas delas mais completas e confiáveis que outras. Este grupo de processos envolve a determinação do escopo do projeto (o que deve ser feito), a definição da equipe e suas funções e responsabilidades (quem deve fazer), o desenvolvimento do cronograma (quando deve ser feito) e do orçamento (a que custo), a determinação de padrões e métricas de qualidade, a identificação de riscos, a determinação do que deve ser comprado ou adquirido, a execução do Plano de Gerenciamento do Projeto (como deve ser feito) e sua aprovação e a reunião inicial do projeto. Em resumo, o grupo de processos de Planejamento envolve: Documentar e publicar a Declaração de Escopo do Projeto; Desenvolvimento da Estrutura Analítica do Projeto (EAP); Desenvolvimento do Cronograma do Projeto; Determinação de Necessidades de Recursos; Definição de Compras e Aquisições; Desenvolvimento do Orçamento do Projeto; Desenvolvimento e publicação do Plano de Gerenciamento do Projeto. À medida que forem descobertas novas informações sobre o projeto (dependências, requisitos, riscos, oportunidades, premissas e restrições adicionais) eles serão identificados ou resolvidos. Grupo de Execução Processos de O grupo de processos de execução é onde o trabalho do projeto é realizado. Este grupo de processos envolve a mobilização da equipe de execução do trabalho, a execução propriamente dita do trabalho de acordo com o planejado, o acompanhamento das especificações e padrões estabelecidos, a implementação de mudanças aprovadas e reparo de defeitos, o desenvolvimento da equipe e a seleção e contratação de fornecedores. A execução é a fase com mais dispêndio de recursos, sejam humanos, materiais ou financeiros. Em resumo, o grupo de processos Execução envolve: Alocação e desenvolvimento da equipe de execução do trabalho; Alocação dos recursos necessários à execução do trabalho; Execução do Plano de Gerenciamento do Projeto; Execução do trabalho do projeto. Este grupo de processos também aborda o escopo definido na declaração do escopo do projeto e implementa as mudanças aprovadas. Grupos de Processos Controle e Monitoramento de O grupo de processos de Monitoramento e Controle é também onde o trabalho do projeto está sendo executado, mas o foco é a verificação e a medição do trabalho para constatação da conformidade com o planejado. Caso ocorram divergências entre o planejado e o executado são tomadas medidas corretivas ou preventivas para realinhar o projeto com o planejado. Essa verificação e medição considera as linhas de base de escopo, tempo, custo, qualidade, riscos identificados e quaisquer outros parâmetros definidos no Plano de Gerenciamento do Projeto, bem como a ocorrência de novos riscos para o cumprimento dos objetivos do projeto. Em resumo, Monitoramento e Controle envolve: Medição do desempenho do projeto em comparação com as linhas de base; Determinação de variações e consequentes recomendações de ações corretivas ou preventivas; Avaliação das ações corretivas adotadas; Auditoria de riscos; Execução de relatórios de desempenho; Administração de contratos. Grupo de Processos Finalização/Encerramento de O grupo de processos de Encerramento inclui a confirmação de que o trabalho está em conformidade com os requisitos, a aceitação formal do produto pelo cliente, a emissão de relatórios de desempenho finais, a indexação e arquivamento dos registros, a atualização da base de conhecimento de lições aprendidas, o encerramento do projeto e a liberação dos recursos do projeto. Em resumo, o Encerramento envolve: Obtenção da aceitação formal das entregas; Arquivamento dos registros do projeto; Documentação das lições aprendidas; Formalização do encerramento do projeto. O grupo de processos de Finalização, quando terminado, verifica se os processos definidos estão terminados dentro de todos os grupos de processos para encerrar o projeto ou uma fase do projeto, conforme adequado, e estabelece formalmente que o projeto ou a fase do projeto está concluída. Concluindo Os processos dos grupos de processos de gerenciamento de projetos estão ligados e interagindo entre si durante toda a execução do projeto. Muitas das saídas de processos são entradas para processos subsequentes, que se tornam entradas para outros processos subsequentes e assim por diante, até o encerramento do projeto. Uma entrada geralmente define “o que eu preciso antes de fazer…?”, enquanto uma saída geralmente define “o que terei quando terminar?”. Geralmente, após obtermos as entradas do processo, utilizamos ferramentas e técnicas de gerenciamento de projetos para obtermos as saídas desejadas ou necessárias. Abaixo, a figura mostra o relacionamento entre os grupos de processos e um resumo dos principais documentos de entrada e saída. Relacionamento entre os grupos de processos