Linux – Forçar Usuário a Trocar Senha Após Primeiro Login

É natural encontrar pessoas que utilizam linux a pouco tempo (ou que nunca utilizaram) questionando aspectos simples que seguem o jargão: “Mas no Windows eu consigo fazer isso, enquanto que no Linux….”

Isso não é novidade alguma e, de fato, é um comportamento esperado, embora demonstre apenas uma mera falta de boa vontade para pesquisar um pouco. O fato é que por vezes encontro pessoas me questionando sobre alguns destes recursos em falta no mundo Linux, quando na verdade eles, na grande maioria das vezes, não estão em falta.

Um exemplo recente disto se deu quando um colega (não se preocupe, seu nome está a salvo) me perguntou:

Porque o Linux não tem um recurso para forçar um usuário a alterar sua senha após o primeiro login? Isso me ajuda muito como SysAdmin em servidores Windows.

Devo concordar com ele no sentido de que este recurso ajuda muito a vida de um SysAdmin. Sejamos justos, as pessoas vivem esquecendo suas senhas. Segunda-feira? Dia mundial do “esqueci minha senha, você pode gerar outra por favor?”

Porém, devo acrescentar que o Linux possui sim este recurso (e não é uma novidade). O chage é apenas uma das formas de o fazer.

Supondo que seu usuário esqueceu sua senha e você deseja possibilitar que ele crie uma nova. Você pode mudar a senha dele para qualquer coisa que venha em sua mente, por exemplo: 123mudar456

Em seguida, digite o seguinte comando:

1
 # chage -d 0 {nome-do-usuário}

Supondo que eu tenha alterado a senha do usuário linus.torvalds para 123mudar456, o comando seria:

1
 # chage -d 0 linus.torvalds

O parâmetro -d determina quando a senha do mesmo expira, ou deverá ser trocada. Você pode determinar uma data específica, a qual deve ser indicada no formato AAAA-MM-DD, porém, ao invés da data, o 0 indica que a senha deverá ser trocada após o primeiro login daquele usuário.

Simples certo?!

 

Fonte: Marcelo Cavalcante

Anúncios

Executando comando no Linux do seu historico

Muitas vezes, as coisas podem tipo assim, você quer executar um comando muito longo e você é tão preguiçoso como eu sou, ou esquecido, não conseguiu memoriar o comando, mas sabe que já rodou ele no Linux, Então, aqui está o que você faz:

history |grep COMANDO_OU_PARTE_DO_COMANDO

Exemplo do rsync:

history |grep rsync
  110  man rsync 
  111  rsync -h
  116  rsync -h |grep time
  117  rsync -h |grep -i time
  122  rsync -arH some/local/dir some-machine-name:/some/remote/dir

Você pode copiar ou dar um exclamação o ID do historico:
!122
rsync -arH some/local/dir some-machine-name:/some/remote/dir

Resolvendo Problema repositório do Kali Linux

Ao isntalar o Kali Linux, ao rodar o comando apt-get install , você vê que nenhuma pacote é encontrado.

Para resolver:

sudo vi /etc/apt/sources.list

e adicionar

deb http://http.kali.org/ /kali main contrib non-free
deb http://http.kali.org/ /wheezy main contrib non-free
deb http://http.kali.org/kali kali-dev main contrib non-free
deb http://http.kali.org/kali kali-dev main/debian-installer
deb-src http://http.kali.org/kali kali-dev main contrib non-free
deb http://http.kali.org/kali kali main contrib non-free
deb http://http.kali.org/kali kali main/debian-installer
deb-src http://http.kali.org/kali kali main contrib non-free
deb http://security.kali.org/kali-security kali/updates main contrib non-free
deb-src http://security.kali.org/kali-security kali/updates main contrib non-free

Seguidamente, executar

sudo apt-get update
sudo apt-get upgrade 

Divirta-se!

Kali Linux, Backtrack 6?!

Backtrack é um dos mais amplamente utilizados no campo da pentesting. A distribuição vem com uma série de ferramentas que usamos para fazer nosso teste de penetração.

Tem havido várias versões de retorno, o último é 5 R3. Mas não vao publicar um Backtrack 6, já decidiu mudar o nome e colocar outro sistema de distribuição como base. Se Backtrack R3 5 foi baseado no Ubuntu, Kali , o nome da nova versão é baseada em Debian .

Eu tenho instalado para testá-lo, a verdade é que a experiência até agora tem sido muito positivo.

barrilha

O sistema conta com diversas novas ferramentas.

Kali Linux é baseado em Debian Linux, em vez de novos repositórios do Ubuntu e simplificados sincronizar com os repositórios do Debian 4 vezes ao dia, sempre oferecendo aos usuários com as últimas atualizações de pacotes e correções de segurança disponíveis.

Outra grande característica introduzida é que, por causa do sistema Debian compatível, ele agora é capaz de Bootstrap uma Kali Instalação / ISO diretamente do Kali repositórios. Isso permite que qualquer usuário facilmente construir sua própria personalização de Kali, bem como executar instalações de rede da empresa a partir de um repositório local ou remoto.

kali2

A Kali   Linux trabalha com folga em ARM Samsung Chromebook, Pi Raspberry, U2 ODROID / X2 e SainSmart SS808.

Com mais de 300 ferramentas de testes de penetração, completamente livre, open source, suporte a dispositivos sem fio Vast, GPG assinado pacotes e acordos de recompra, multi-linguagem, Totalmente personalizável fazer essa distribuição uma das melhores obra-prima disponível de comunidade de hackers.

Mais uma vez, a senha de root padrão é “toor” mesmo, você pode fazer o download Kali Linux aqui.

 

Linux: A estrutura de diretórios

A estrutura de diretórios do Linux é completamente diferente da estrutura presente no Windows, chegando ao ponto de não apresentar semelhança alguma com aquele sistema operacional. Porém, tal estrutura é bastante semelhante à da maioria dos outros sistemas *nix que você vai encontrar pela frente. Por estas e outras razões é muito importante que você saiba o papel exato de cada um dos diretórios e os use de acordo.

O objetivo deste post é dar uma breve explicação sobre o papel de cada um deles para que você tenha uma ideia do que vai encontrar neles ou mesmo para saber onde colocar os arquivos.

 

O diretório /

O diretório / (diz-se diretório “root”, mas não tem nada a ver com o usuário “root”) é o topo da hierarquia de diretórios do Linux. Todos os outros diretórios ficam abaixo dele e apenas o usuário root pode criar diretórios neste nível.

O diretório /bin

O diretório /bin contém os comandos essenciais do sistema, que podem ser utilizados tanto pelo root quanto por qualquer outro usuário não-privilegiado. Aqui você vai encontrar os comandos que mais vai usar como o ls, cat, chown, cp, date, mkdir, etc.

Este diretório contrasta com o /sbin, que contém comandos que podem ser usados apenas pelos administradores do sistema, com permissões elevadas.

O diretório /boot

Se alguma coisa é necessária durante o boot do sistema, ela será armazenada neste diretório. Da imagem do kernel ao arquivo de configuração do GRUB, tudo fica armazenado neste diretório que sempre deve estar na mesma partição do /. Qualquer coisa não-essencial para que o sistema inicialize está disponível ou em /bin ou em /sbin.

Não recomendo que você altere as coisas aqui a não ser que tenha a mais absoluta certeza do que está fazendo. Se o sistema não inicializar, vai ser bem complicado resolver o problema!

O diretório /dev

Tudo no Linux é um arquivo. Tudo, mas tudo mesmo, inclusive os dispositivos que estão conectados na sua máquina! Seja placa de som, rede, vídeo, partição do HD, teclado, mouse, pendrive enfim, tudo é um arquivo. E os arquivos de sistema que representam os dispositivos estão todos armazenados no diretório /dev.

Atualmente, você raramente precisa entrar neste diretório pra fazer alguma coisa já que tudo é tratado automaticamente pelo Linux. Mas, pra conferir se um dispositivo realmente foi reconhecido pelo sistema e está pronto para operar, você pode ver se o arquivo relacionado a ele foi criado neste diretório.

NOTA: Tome muito cuidado ao fazer alterações em qualquer arquivo ou link no diretório /dev. Fazer alguma coisa errada aqui pode fazer um dispositivo parar de funcionar corretamente!

O diretório /etc

Você já deve ter ouvido falar nos famosos “arquivos de configuração” do Linux. Estão todos (em um sistema bem configurado) presentes neste diretório e subdiretórios. Seja um software do sistema ou um programa que você mesmo instalou, toda a configuração é feita através de um arquivo texto puro (não um binário ou executável, um arquivo texto simples).

Por exemplo, neste diretório você encontra o arquivo de configuração do SSH (dentro do subdiretório /etc/ssh), do sudo(/etc/sudoers), do Apache, etc. Enfim, se você precisa mudar a configuração de um serviço do sistema é muito provável que você vá editar um arquivo dentro do /etc.

O diretório /home

A esta altura você já deve saber que o Linux é um sistema multi-usuário. Para o monte de usuários (e seus respectivos arquivos) que um sistema Linux pode ter organizados, foi criado o diretório /home.

Este é o diretório pessoal de cada usuário criado junto com a conta. Neste diretório o dono pode fazer o que quiser: colocar seus arquivos pessoais, instalar programas, criar seus próprios arquivos de configuração personalizados para algum programa, etc.

Como você pode imaginar, o /home pode acabar ficando muito grande. Por isso, em alguns sistemas o administrador define quotas para garantir que os diretórios não passem de um determinado tamanho. O /home também pode ser montado através de NFS e ficar armazenado em uma outra máquina da rede.

O diretório /lib

No /lib você encontra todas as bibliotecas que são necessárias para que os outros programas do sistema sejam executados corretamente. Pense nos arquivos presentes dentro do /lib como as DLLs do Windows. Se elas não estiverem no lugar certo, na versão certa na hora da execução do programa as coisas não vão funcionar como deveriam.

Minha recomendação é que você não altere os arquivos presentes neste diretório. Deixe que o sistema faz tudo sozinho!

O diretório /mnt

O diretório /mnt foi criado com o intuito de ser um ponto de montagem para sistemas de arquivos externos ao sistema. Por exemplo, nele você pode montar um CD-ROM, um pendrive, um HD removível, etc. e usá-lo normalmente para armazenar arquivos.

Atualmente, este diretório já não é mais tão utilizado como antigamente. Distribuições Linux mais modernas têm preferido usar o diretório /media para montar estes tipos de dispositivos. Este diretório funciona da mesma maneira que o /mnt e tem a mesma finalidade.

O diretório /proc

O /proc não é um diretório criado no seu disco rígido. Ele é uma estrutura de dados criada na memória RAM da sua máquina.

Dentro deste diretório você vai encontrar informações sobre o sistema como um todo. Por exemplo, informações sobre o processador, memória RAM, dispositivos montados, quais processos estão sendo executados no momento (inclusive os argumentos de linha de comando utilizados para iniciá-los), entre várias outras coisas. Alguns comandos do sistema simplesmente leem os arquivos presentes neste diretório para apresentar as informações na tela para você. Exemplos destas ferramentas são lsmod, lsusb e lspci

O diretório /opt

Aqui devem ficar os arquivos de qualquer software que não faça parte da distribuição básica. Ou pelo menos era assim quando ele foi criado!

Hoje em dia, a maioria dos pacotes de software distribuidos para vários sistemas Linux diferentes simplesmente não usam o /opt. Portanto, geralmente este diretório fica vazio.

O diretório /root

Assim como todos os outros usuários do sistema, o usuário root também tem o seu próprio diretório pessoal. Porém, ao invés de ficar no /home, o diretório pessoal do usuário root fica diretamente abaixo do diretório root em /root. Este diretório pode ser acessado apenas pelo root e, por padrão, as quotas definidas para o sistema não se aplicam aqui. Além disso, 5% do espaço da partição ficam reservados para o /root.

O principal motivo para o /root não ficar embaixo de /home é que o /home não necessariamente fica na mesma partição do “/”. Portanto, se algum problema ocorrer e a partição /home não puder ser montada (e isso acontece, acredite em mim!) o root não poderia acessar o seu próprio diretório, causando problemas chatos de se resolver no sistema.

O diretório /sbin

Em contraste com o /bin, que armazena ferramentas essenciais que podem ser utilizados por qualquer usuário, o /sbin contém ferramentas que apenas usuários com privilégios mais altos (ou através do sudo) podem usar. Se algum comando administrativo não está presente aqui, ele terá sido armazenado em /usr/sbin.

Exemplos de comandos que você encontra aqui são ifconfig, fdisk, init, etc.

O diretório /tmp

O /tmp é simplesmente um diretório temporário para que alguma aplicações (ou você mesmo) crie e use arquivos que serão úteis apenas por um curto período de tempo. Todos os usuários do sistema podem escrever neste diretório e todo o conteúdo é removido sempre que o sistema é reiniciado.

NOTA: Veja que o diretório /tmp tem todo o seu conteúdo removido quando o sistema é reiniciado. Por isso, nunca deixe nada de importante lá se não você vai perdê-lo!

O diretório /usr

Este é o diretório que sem dúvidas vai ocupar mais espaço no seu disco rígido. Originalmente, dentro do /usr armazenava-se tudo relacionado ao usuário (inclusive o diretório home, ou seja, não se usava o /home). Hoje em dia a ideia deste diretório é mais armazenar dados e programas que são utilizados por usuários normais (não-privilegiados) do sistema.

O /usr geralmente é montado na sua própria partição, separado do /.

Dentro deste diretório, entre outras coisas, você encontra o X Window System. Alguns dos subdiretórios mais importantes são o /usr/include (que contém os headers de desenvolvimentos das bibliotecas. Bastante necessário quando se compila um programa do zero), /usr/info (contém os arquivos de ajuda usados pelo comando info) e /usr/man (que contém as man pages, usadas pelo comando man).

O diretório /var

Como o nome indica, este diretório contém todo tipo de informações que variam (mudam) com o tempo. Arquivos de log,e-mail, spool de impressão, etc. todos estão presentes aqui. O /var não pode ser compartilhado com outras máquinas pois as informações que ele contém são relevantes apenas para a máquina local. Também é interessante que o /var seja montado em uma partição à parte, diferente da partição do /.

Alguns subdiretórios importantes são /var/log (que contém os arquivos de log do sistema), /var/mail (e-mails internos), /var/cache (é aqui onde as aplicações armazenam informações de cache), /var/backups (que contém backups de vários arquivos importantes do sistema, como /etc/shadow).

Conclusão

Saber para que servem os principais diretórios do Linux é o mínimo para que você consiga usar o sistema direito. Sem saber para que servem, você vai ficar completamente perdido e não vai conseguir encontrar nem as informações mais básicas do sistema. Conhecer bem esta hierarquia faz com que você seja muito mais produtivo.

Restou mais alguma dúvida? Deixe seu comentário para que eu possa te ajudar com ela!

Fonte:PedroPereira

Best Metasploit Meterpreter Script

Getcountermeasure

Getcountermeasure is an automated script Disable security measures such as antivirus, firewall, and more.

countermesure Best Metasploit Meterpreter Script

getgui

getgui script is used to enable RDP on a target system.

getgui Best Metasploit Meterpreter Script

Telnet

gettelnet script is used to enable telnet on the victim.

telnet Best Metasploit Meterpreter Script

Winenum

Winenum script is used to dump tokens, hashes and more

winenum Best Metasploit Meterpreter Script

winenum+1 Best Metasploit Meterpreter Script

Hostedit

Hostedit Meterpreter script is used to edit host file of windows

hostedit Best Metasploit Meterpreter Script

Getlocalsubnet

getlocalsubnet script is used to get the local subnet mask of a victim

subnet Best Metasploit Meterpreter Script

Checkvm

Checkvm used to see if you exploited a virtual machine

checkvm Best Metasploit Meterpreter Script

Killav

Killav used to disable most antivirus programs.

iiav Best Metasploit Meterpreter Script

Scraper

Scraper is an automated script that gathers the victim machine environment information

scraper Best Metasploit Meterpreter Script

Screenspy

screenspy used to take screenshot f remote pc.

screenspy Best Metasploit Meterpreter Script

Keylogrecorder

keylogrecorder used to start keylogger in victim pc.

keylogrecorder Best Metasploit Meterpreter Script

Credcollect

credcollect used collect the hashes of victim users.

cred+collect Best Metasploit Meterpreter Script

Run get_application_list used to get list of installed applications
Run netenum Network Enumerator Meterpreter Script
Run metsvc used to make permanent backdoor

Fonte:HackingArticles

CAM Table Overflow – Exploitation

É muito provável que você já tenha lido em algum lugar ou mesmo ouvido alguém falar que o switch não permite que você sniffe o tráfego que não é direcionado à sua máquina por que ele apenas envia os pacotes para as partes interessadas. Ou seja, se o tráfego não era direcionado para você, ele nunca chegará na placa de rede da sua máquina. Embora em seu funcionamento padrão o este seja o caso, existem meios de se subverter esse sistema e fazer com que o tráfego seja enviado para todas as portas do switch. Efetivamente fazendo com que o switch se comporte como um hub.

Isso acontece quando um atacante começa a enviar milhares de endereços MAC inválidos para o switch armazenar em memória. Quando essa memória se esgota, o seu switch vai começar a enviar pacotes por todas as portas. Interessante, né?

Aqui você vai aprender como isso é possível, qual ferramenta se usa para executar o ataque e também como mitigar o ataque em switches Cisco.

 

Como funciona um switch

Quando o switch foi introduzido no mercado há anos atrás, ele causou uma pequena revolução nas redes da época. Antes do switch, você tinha (entre outros) o hub. Este equipamento atua apenas na camada 1 do modelo OSI, ou seja, ele atua apenas replicando o sinal elétrico que entra em uma porta para todas as outras portas. Assim, todos os equipamentos que estão ligados ao mesmo hub receberão os pacotes enviados por uma estação mesmo que eles não sejam o destino final. Isso fazia com que apenas uma transmissão pudesse ocorrer por vez e que qualquer um pudesse facilmente sniffartodo o tráfego da rede, bastando colocar a sua interface em modo promíscuo.

Com o switch, isso mudou drasticamente. Agora, você pode ter múltiplas transmissões simultaneas desde que estas não envolvam os mesmos hosts (no caso de envolver os mesmos hosts, os pacotes serão entregues de maneira alternada) e colisões não acontecem mais. Vamos imaginar que você tenha quatro hosts ligados ao mesmo switch, como na figura abaixo:

No cenário acima, o switch é capaz de trabalhar com transmissões simultaneas entre A e B e C e D. Isso aumenta muito o desempenho da rede, diminui a chance de colisões (que minam qualquer arquitetura de rede) e também economiza recursos já que nenhum pacote da transmissão entre A e B será enviado para C ou D. Trocando em miúdos:

  • Um frame chega em uma porta do switch
  • Se for um broadcast, ele será enviado para todas as portas do switch menos para a porta onde o frame foi recebido
  • Se o frame for destinado a um único host e não se sabe em qual porta este host está conectado (ou seja, este endereço MAC não está na CAM table), o frame é enviado para todas as portas menos para a porta onde ele foi recebido
  • Se o MAC estiver na CAM table e o host não estiver conectado na mesma porta onde recebemos o frame, o frame é enviado para a porta correta

Como você viu, a CAM table tem um papel importante no switching de pacotes. Mas o que é a CAM table?

O que é a CAM table?

O exemplo acima realmente não faz juz ao switch. Switches modernos são capazes de trabalhar com milhares de conexões simultaneas sem se perder. Isso acontece por que eles mantém um “mapeamento” em sua memória dizendo para ele em qual porta um host (ou hosts) está localizado. A esta tabela damos o nome de CAM (Content Addressable Memory) table, como dito anteriormente. Para popular a CAM table, o processo é o seguinte:

  • O switch recebe o frame enviado por um host
  • O endereço MAC de origem é lido
  • Verifica-se a CAM table procurando pelo endereço presente no frame em questão. Se este endereço não for encontrado, ele é adicionado à tabela.
  • O frame é encaminhado e o mesmo processo é feito para o próximo frame na fila.

Na CAM table então, há o mapeamento de endereço MAC e porta, por exemplo:

Porta1 F0-4D-A2-E4-59-5F
Porta2 AB-52-EF-C1-CF-32
Porta3 98-E1-CB-AD-33-AA,34-AA-BB-CC-DD-23

Vale notar também que, dependendo da configuração, uma porta do switch pode corresponder a vários MACs (por exemplo, quando se cascateia switches).

Bom, você já deve ter imaginado onde nós estamos chegando. A CAM table é armazenada em um recurso finito do switch: a memória RAM. E se nós enviarmos bilhões de endereços MACs inválidos para o switch? Ele vai começar a armazenar todos na CAM table até chegar a um ponto onde o espaço em memória será esgotado. Quando chegarmos a este ponto, o switch vai passar a agir exatamente como um hub: todos os pacotes que chegam serão enviados para todas as portas, permitindo que você sniffe todo o tráfego da rede.

Este ataque se chama CAM table overflow e pode ser executado utilizando uma ferramenta bem simples chamada Macof.

Macof: a ferramenta para executar o CAM table overflow

Macof é uma ferramenta integrante do pacote “dsniff”, disponível nos repositórios oficiais da maioria das distribuições Linux mais atuais. Ele é um port em C da ferramenta original (desenvolvida em Perl) por Ian Vitek. E tem um funcionamento simples: inunda a rede com endereços MAC aleatórios, fazendo com que switches configurados erroneamente passem a se comportar como um hub e minando a segurança de uma rede pois permite que um atacante consiga facilmente sniffar o tráfego.

O Macof é bem simples de usar e tem apenas algumas opções:

  • -i <interface>: Define qual será a interface por onde serão enviados os pacotes.
  • -s <endereço IP>: Define qual será o IP de origem do pacote.
  • -d <endereço IP>: Especifica o endereço IP de destino.
  • -e <endereço MAC>: Permite que você diga qual será o endereço MAC de destino no pacote a ser gerado.
  • -x <porta>: Define a porta TCP de origem.
  • -y <porta>: Define a porta TCP de destino.
  • -n <número>: Especifica quantos pacotes serão enviados.

Se você não quiser preencher alguns (ou mesmo nenhum) dos valores da lista acima, não tem problema: o Macof vai gerar valores aleatórios para você. Por exemplo, a maneira mais simples de se executar o Macof:

E pronto, a CAM table do switch já começou a ser inundada com endereços MAC aleatórios.

Uma vez que o limite de Tabela CAM tem sido alcançado, o comutador irá iniciar inundando os pacotes de todas as portas (semelhante ao comportamento de um hub). Para aproveitar isso, lançar ettercap usando o seguinte comando:
Quote

root@nullity:~/# ettercap -C

 Once in ettercap, do the following:
  • Options   => Promiscuous
  • Sniff      => Unified -> eth2 (or whatever your active interface is)
  • Start      => Start Sniffing
  • View      => Statistics

 

Etercap começa imediatamente a sniffing para o tráfego. Se desejar, os registros podem ser definidos e armazenados como especificado. Isto é ideal para inspeção posterior, e para inspeção de tráfego que ettercap não marcar como interessante.

Se um usuário se conecta a um site a partir de outro PC na rede, os dados são vomitou todas as portas, fazendo com que todo o tráfego não-SSL suscetível a ataques de reconhecimento:

Se algum tráfego interessante ou sinalizada é identificado por ettercap, vai exibi-lo no “User Messages”  na parte inferior da tela:

Pwned!

Fonte: Link1 , Link2