Enumeração Linux e Unix Os sistemas linux e unix são similares ao Windows e podem ser enumerados. A diferença é nas ferramentas e na abordagem. Veremos como usar estas ferramentas e informações ao explorar estes sistemas. obter algumas É importante lembrar que os comandos são case-sensitive, ou seja, deve-se prestar atenção aos comandos. finger O comando finger foi feito para retornar informações sobre um usuário em um sistema. Quando executado, ele retorna informações sobre o usuário como o diretório home, hora do login, tempo ocioso, localização do escritório e a última vez que eles recebem ou leram e-mail. O comando do finger é semelhante a esta estrutura: finger <switches> usuário Os switches que podem ser usados são: -b remove a exibição do diretório home e o shell do usuário; -f remove a exibição do cabeçalho; -w remove o nome completo da exibição; -l retorna a lista de usuários; rpcinfo Este comando enumera informações expostas sobre o protocolo Remote Procedure Call (RPC). O comando é semelhante a esta estrutura: rpcinfo <switches> hostname Os switches que podem ser usados são: -m exibe a lista de estatísticas do RPC de um host; -s exibe a lista de aplicações RPC registradas de um host; showmount Este comando lista e identifica diretórios compartilhados presente em um sistema. showmount exibe a lista de todos os clientes que tem um sistema de arquivos montados remotamente. O comando é semelhante a esta estrutura: /usr/share/showmount [- ade ] [hostname] Os switches que podem ser usados são: -a imprime todas as montagens remotas; -d lista os diretórios que foram montadas remotamente pelos clientes; -e imprime a lista de sistemas de arquivos compartilhados; enum4linux Uma ferramenta que faz este tipo de enumeração é o enum4linux, o qual permite extrair informações do Windows ou Samba. Mas o que é o Samba? De acordo com o site samba.org, o software é descrito como: …software that can be run on a platform other than Microsoft Windows, for example, UNIX, Linux, IBM System 390, OpenVMS, and other operating systems. Samba uses the TCP/IP protocol that is installed on the host server. When correctly configured, it allows that host to interact with a Microsoft Windows client or server as if it is a Windows file and print server. Enum4linux permite a extração de informações onde o Samba está sendo usado. Informações que podem ser retornadas incluem as seguintes: Informações de grupos de membros; Informações compartilhadas; Membros do grupo de trabalho ou domínio; Identificação do SO; Obter a política de senha; Sugestões de livros: 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: Material LINUX gratuito Material gratuito sistema operacional LINUX básico disponível para download. Quem acompanha o Portal GSTI sabe que nós tentamos divulgar sempre os materiais e cursos de melhor qualidade, mesmo que oferecidos para download gratis. Agradecemos as pessoas que encaminham bons materiais. De todos que foram indicados para este tema, escolhemos o que segue abaixo. Em breve, selecionaremos muito mais, pois reconhecemos o interesse dos frequentadores do Portal em LINUX! Primeiramente, precisamos explicar a origem deste excelente material, como é de costume: ele está disponível para download no Portal comunitário do campus Campus São José – IF-SC, que pertence ao Centro Federal de Educação Tecnológica – Unidade São José dos Campos. Se estiver com um tempinho extra para conferir, recomendamos uma visita. O autor da apostila está identificado como Odilson Tadeu Valle. Feita estas apresentações, vamos ao que interessa! O material a seguir, contém um escopo excelente para uma introdução completa para o sistema operacional LINUX. São 56 páginas, mas consideramos a leitura leve e bem didática. Espero que seja útil! Nota: confira no rodapé desta postagem outros conteúdos diversos, tais como videoaulas e materiais. Aproveite: é grátis! via Material LINUX gratuito Comandos do Linux para Redes Configuração de endereço IPv4 fixo ifconfig eth0 192.168.1.1 netmask 255.255.255.0 (configura um ip manualmente) ifconfig eth0:1 192.168.1.1 netmask 255.255.255.0 (configura um alias, um segundo endereço ip) ifconfig eth0.1 192.168.1.1 netmask 255.255.255.0 IP com dot1.q) (configura ifconfig eth0 (verifica se a configuração foi realizada com sucesso) ifconfig eth0 down (desativa a placa de rede) ifconfig eth0 up (ativa a placa de rede) Configuração de gateway IPv4 fixo route add default gw 192.168.10.10 (configura um gateway) route (mostra se o gateway foi configurado) Configuração de endereço IPv4 fixo pelo arquivo de configuração Edite o arquivo de configuração “interfaces”, reinicie a interface e verifique a configuração. vi /etc/network/interfaces (entra no arquivo de configuração de interfaces de rede) #Configuração IPv4 fixo na eht0 #allow-hotplug eth0 (Quando o kernel detecta a interface física faz com que mesma levante. Está comentada e não habilitada. Pode ser utilizada ao invéz de “auto”) auto eth0 (configuração é iniciada após o restart) iface eth0 inet static (configura ainterface eth0 para ip estático) address 192.168.1.1 (configura o endereço ip) netmask 255.255.255.0 (configura a masrcara) broadcast 192.168.1.255 (configura o endereço de bradcast) gateway 192.168.1.254 (configura o endereço de gateway) dns-domain Lan_Senac-ti_FNS (nome da rede) dns-nameservers 192.168.11.1 (endereço do dns) ifconfig eth0 (verifica se a configuração foi realizada com sucesso) route (mostra se o gateway foi configurado) Verificar o status fisíco da interface de rede mii-tool -v (mostra se há conectividade na NIC) Verificar as conexões de internet ativas netstat -putan Verificar os processos ativos ps aux Configuração de endereço IPv4 dinâmico (dhcp) dhclient eth0 (configura um ip dinâmicamente por dhcp) Configuração de endereço IPv4 dinâmico (dhcp) pelo arquivo de configuração Edite o arquivo de configuração “interfaces”, reinicie a interface e verifique a configuração. vi /etc/network/interfaces (entra no arquivo de configuração de interfaces de rede) # Configuração IPv4 dinâmico na eht0 auto eth0 iface eth0 inet dhcp (configura ainterface eth0 para cliente dhcp) /etc/init.d/networking restart (reinicia as interfaces de rede) ifconfig eth0 (verifica se a configuração foi realizada com sucesso) route (verifica se o gateway foi configurado) Alteração de um endereço MAC ifconfig eth0 hw ether 00:90:F5:75:16:27 (altera o endereço MAC da interface eth0) Configuração de uma interface para o modo promíscuo ifconfig eth0 promisc (configura a interface eth0 para o modo promíscuo) ifconfig eth0 -promisc (desativa o modo promíscuo) ifconfig eth0 | grep -i PROMISC (verifica e interface eth0 está em modo promíscuo) Configuração de endereço IPv6 fixo ip -6 addr add 200::1/64 dev eth0 (configura um ipv6 200::1 com mascara /64 manualmente) ip -6 addr del 200::1/64 dev eth0 com mascara /64 manualmente) (configura um ipv6 200::1 ifconfig eth0 (verifica se a configuração foi realizada com sucesso) ifconfig eth0 down (desativa a placa de rede) ifconfig eth0 up (ativa a placa de rede) ping6 ::1 (faz um icmp para o endereço ipv6 de loopback ::1, equivalente ao 127.0.0.1 do ipv4) Configuração de endereço IPv6 fixo pelo arquivo de configuração Edite o arquivo de configuração “networking”, reinicie a interface e verifique a configuração. vi /etc/network/interfaces (entra no arquivo de configuração de interfaces de rede) # Configuração IPv6 fixo na eht0 auto eth0 iface eth0 inet6 static (configura ainterface eth0 para ip estático) address 200::1 (configura o endereço ip) netmask 64 (configura a masrcara) gateway 200::2 (configura o endereço de gateway) /etc/init.d/networking restart (reinicia as interfaces de rede) ifconfig eth0 (verifica se a configuração foi realizada com sucesso) ip -6 route show (verifica se o gateway foi configurado) Todos os comandos postados aqui são baseados na distribuição Debian Fonte: TI Redes – Via Oficina da Net Cavalo de multiplataforma Windows, Mac e Linux Tróia ataca Novo Cavalo de Tróia pode afetar máquinas rodando Windows, Mac ou Linux. Ele identifica o sistema operacional do usuário e baixa o malware mais adequado para completar a infecção. O objetivo final é transformar o computador afetado em um zumbi, suscetível a instruções posteriores de um servidor externo. Segundo o F-Secure, primeira empresa a identificar a ameaça multiplataforma em um site colombiano, otrojan se instala a partir de um applet Java malicioso. Ao visitar um site contaminado, o usuário é ludibriado a executar o aplicativo Java, o que abre passagem para a invasão. A partir daí, o programa tenta identificar o sistema operacional do computador. O Cavalo de Tróia foi nomeado TrojanDownloader:Java/GetShell.A. Os componentes adicionais para cada plataforma, Windows, Mac, e Linux são respectivamente: Backdoor:W32/GetShell.A, Backdoor:OSX/GetShell.A e Backdoor:Linux/GetShell.A. Por enquanto, o servidor de Command and Control (C&C) não enviou nenhuma instrução para as máquinas afetadas, de acordo com o monitoramento da F-Secure, mas isso pode acontecer a qualquer momento. Fonte: Código Fonte Versão 2.5 da ferramenta Intersect para sistemas Linux é liberada O Intersect, ferramenta automatizada de “post-exploitation” para sistemas Linux escrita em Python, recebeu nesta semana sua versão 2.5. O principal objetivo do projeto é dar assistências a testadores de infiltração na automação de tarefas que normalmente precisariam ser executadas manualmente. O Intersect coleta arquivos de senhas, cópia de chaves SSH, processos para enumerar aplicativos instalados, reúne informações detalhadas sobre a rede, mapeia a rede (hosts internos para dinamização), localiza e identifica aplicações comuns do antivírus e do firewall, entre outras funcionalidades. Na nova versão, houve a inclusão de todas as características da versão anterior, além da implementação de novos módulos como egress buster, reverse HTTP shells, persistent backdoors e cracking de senha. O “Egress Buster”, instaurado por Dave Kennedy (ReL1K), foi adaptado exatamente para a versão 2.5. Além disso, a Intersect 2.5 apresenta um novo XMLRPC Cracking Utility, para automatizar a quebra de senhas. A equipe desenvolvedora da ferramenta espera que aqueles que experimentarem as suas funcionalidades possam propagá-las, e tenham interessem em construir seus próprios módulos e contribuir para o crescimento do projeto Intersect. O Intersect 2.5 está disponível para download no GitHub. Com informações de Under-Linux Lançado DEFT Linux 7.1 No dia 02 de abril, foi liberada a versão 7.1 do DEFT Linux. Sendo um utilitário bastante conhecido e conceituado por todos os profissionais e por muitos interessados na área forense, DEFT Linux é sinônimo de inovação no âmbito forense computacional, trazendo um sistema ao vivo que utiliza como ambiente desktop, a leveza e a rapidez do LXDE, file manager thunar e mount manager como ferramenta para gerenciamento de dispositivos. DEFT Linux é muito fácil e prático de utilizar, além de apresentar um ótimo sistema de detecção de hardware e as melhores aplicações livres e de código aberto, dedicadas ao trabalho de resposta a incidentes e computação forense de um modo geral. Nesta versão de lançamento, houve correção de bugs relacionados ao Hb4most e ao GParted, atualização para os pacotes da libewf-20120304, para o bulk_extractor 1.2.0.tar.gz-, guymager 0.6.5-1, Analyzer iPhone Backup 10/2012 e para o Xplico 1.0. Outros detalhes sobre sas mudanças e recursos implementados ao DEFT Linux 7.1, podem ser encontrados em suas notas oficiais de lançamento. A versão lançada está disponível para download, a partir do seu próprio site. Fonte: Under-Linux Livro Grátis “Manual Sobrevivencia Linux” Ótimo livro para estudantes, entusiastas do software livre, que sempre buscam disseminar a cultura livre, para que todos possam compreender e utilizar suas ferramentas. Manual de Sobrevivência é um livro voltado para a parte técnica, indicado para usuário intermediários tentando para avançados. O objetivo do livro é de auxiliar o usuário de forma rápida e prática, ou seja, um Handbook. View this document on Scribd Baixe agora! Manual Sobrevivência Linux Fonte: Analista TI Sistemas de Arquivos Partições Podemos dividir um disco rígido em várias partes ou partições, onde cada partição é independente das outras, ou seja, cada partição pode ter o seu próprio sistema de arquivo. Isto significa que uma partição do disco não interfere nas outras partições. Podemos, por exemplo, instalar o Linux em uma partição e o Windows em outra partição. Um disco pode ser dividido em até 4 partições. Uma partição pode ser primária ou estendida. Sendo que, no máximo, apenas uma partição pode ser do tipo estendida. Isto significa que você pode ter 4 partições primárias ou 3 partições primárias e uma partição estendida. É possível dividir uma partição estendida em até 64 partições menores chamadas de partições lógicas (a partição estendida não armazena dados e sim, outras partições lógicas). Não é possível, entretanto, dividir uma partição primária. A tabela onde são armazenadas as informações sobre as partições fica no primeiro setor do disco e chamase MBR (Master Boot Record). Esta tabela possui 4 entradas onde cada entrada descreve uma única partição. Deve-se colocar o DOS em uma partição primária, pois este sistema operacional não consegue inicializar numa partição lógica, enquanto o Linux nã possui nenhuma restrição (veja LILO para mais detalhes). Por outro lado, o Linux requer na sua instalação a criação de pelo menos duas partições, uma para instalar o próprio Linux (partição Linux nativo) e a outra para servir de memória auxiliar para o Linux (partição de swap ou troca). A partição Linux nativo é conhecida por diretório raiz do Linux e é representada por /. O programa mais comumente usado para particionar discos é o fdisk. O problema com este aplicativo é que ele destrói os dados armazenados ao particionar o disco. Sistemas de arquivos A tabela abaixo mostra os tipos mais comuns de sistemas de arquivos que são reconhecidos pelo Linux. Tipo Descrição ext Sistema nativo Linux antigo ext2 Atual sistema nativo Linux de arquivos iso9660 Sistema de arquivos do CD-ROOM (read only) msdos Sistema de arquivos DOS nfs Sistema de arquivo remoto NFS proc Sistema de arquivos Linux Process Information swap Sistema de arquivos de troca (swap) umsdos Sistema de arquivos para suportar arquivos DOS e Linux coexistentes Sistema de arquivos Windows vfat (permite definição de nomes de arquivos com até 32 caracteres) Para verificar quais os sistemas de arquivos que o seu Linux suporta, basta verificar o conteúdo do arquivo /proc/filesystems. O exemplo abaixo mostra que o sistema pode montar um CD-ROOM e um sistema de arquivos DOS ou Windows. ext2 nodev proc iso9660 nodev devpts msdos O suporte para diferentes sistemas de arquivos pode ser obtido através de módulos de kernel carregáveis no diretório /lib/modules/XXX/fs, onde XXX é a versão atual do Linux. Sistemas de arquivos do Linux No Linux, um diretório (corresponde ao conceito de pasta do Windows) pode ter outros diretórios ou arquivos. Dizemos que um diretório é filho de outro diretório quando ele está logo abaixo do diretório em questão. O diretório que está um nível acima é chamado de diretório pai. O diretório raiz do Linux (ou diretório /) é o diretório com maior hierarquia entre todos os diretórios do sistema. Isto significa que todos os diretórios do Linux ficam abaixo deste diretório. Por padrão (independente da distribuição usada), temos no Linux diretório raiz : os seguintes diretórios abaixo do bin – diretório com os arquivos binários de comandos disponíveis para todos os usuários. boot – diretório com os arquivos do boot de inicialização. dev – diretório com as definições dos dispositivos de entrada/saída. etc – diretório com os arquivos de configuração do sistema. home – diretório que armazena os diretórios dos usuários do sistema. lib – diretório com as bibliotecas e módulos (carregáveis) do sistema. mnt – diretório usado para montagem de partições. opt – diretório usado para instalar pacotes opcionais que não fazem parte da distribuição Linux. proc – diretório com informações sobre os processos do sistema. root – diretório home do administrador do sistema. sbin – diretório com os arquivos binários de comandos disponíveis para administrar o sistema. tmp – diretório com arquivos temporários. usr – diretório com arquivos binários, páginas de manual e outros arquivos imutáveis utilizados pelos usuários do sistema, mas que não são essenciais para o uso do sistema como, por exemplo, o sistema de janelas X, jogos, bibliotecas compartilhadas e programas de usuários e de administração. var – diretório com arquivos de dados variáveis (spool, logs, etc). O diretório inicial de um usuário é conhecido como diretório home, diretório raiz do usuário ou diretório principal do usuário. Este diretório é o de maior hierarquia no conjunto de diretórios do usuário. O usuário tem total controle sobre o seu diretório home e sobre todos os arquivos e diretórios que estão abaixo dele. Isto significa que o usuário pode criar, deletar e modificar tudo que está abaixo do seu diretório principal. Além disso, o usuário pode definir as permissões de acesso (leitura, gravação e execução) dos outros usuários em relação aos seus arquivos. Normalmente, o diretório raiz de um usuário está localizado em /home e possui o mesmo nome do login de acesso do usuário (o root pode mudar este padrão durante a criação da conta do usuário). Por exemplo, o diretório raiz do usuário aluno, por padrão, é /home/aluno. Convém também observar que é possível colocar os subdiretórios do diretório raiz em partições separadas. O objetivo é facilitar a manutenção do sistema e aumentar a segurança dos dados. Portanto, a distribuição do diretório raiz em várias partições é uma escolha pessoal do administrador do sistema. Normalmente, é sugerido que os seguintes diretórios possuam uma partição própria: /home, /opt, /tmp, /usr e /usr/local. Estrutura de diretórios para iniciantes Segue abaixo para iniciantes um conceito de estrutura de diretórios no Linux. Trata-se deum sistema hierárquico de sistema de diretórios. O mais importante é o diretório”/” ou raiz . Esse diretório é montado inicialmente no momento em que o sistema é carregado, e ele contém o sitema base nescessário para preparar a entrada em modo de operação multi-usuário do sistema operacional. O diretório “/” contém ainda pontos de montagem para cada outro sistema de arquivos que você queira montar. Na imagem abaixo,se refere diretórios no Linux: a estrutura de sistema de Fonte: Blog Trackynx