430 likes | 564 Views
Ataques com Backdoors. Conceito. Backdoor (porta dos fundos) é um trecho de código mal-intencionado que cria uma ou mais falhas de segurança para dar acesso ao sistema operacional para pessoas não autorizadas.
E N D
Conceito • Backdoor (porta dos fundos) é um trecho de código mal-intencionado que cria uma ou mais falhas de segurança para dar acesso ao sistema operacional para pessoas não autorizadas. • Esta falha de segurança criada é análoga a uma porta dos fundos por onde a pessoa mal intencionada pode entrar (invadir) o sistema.
Como inserir • Backdoors podem ser inseridos propositalmente pelos criadores do sistema ou podem ser obra de terceiros mal intencionados, usando para isso, um vírus, verme ou cavalo de tróia).
Backdoor • O termo pode ser usado de forma mais ampla para designar formas furtivas de se obter informações privilegiadas em sistemas de todo tipo.
Spywares • Consistem programas automáticos de computador, que recolhem informações sobre o usuário, sobre seus costumes na Internet e transmite esta informação a uma entidade externa na Internet, sem o seu conhecimento e o seu consentimento.
Spywares • Diferem dos Cavalos de Tróia por não terem como objetivo que o sistema do usuário seja dominado, seja manipulado, por uma entidade externa, por um cracker.
Proteção • A proteção mais comum contra Backdoors em computadores pessoais é o uso de firewalls e de IDS. De modo geral, Backdoors que atuam através da Internet podem ser detectados (por um IDS) ou impedidos de atuar (pelo firewall). • Ou por programas Anti-Spiwares.
Backdoors • Criam “portas de fundo” em um sistema operacional. • Backdoor em sistemas UNIX. • Necessitam de acesso local à máquina. • Técnica que consiste em garantir uma forma de acesso a um determinado sistema operacional de forma não-convencional. • Acesso com direitos de root (superusuário). • Portas ocultas através de serviços triviais.
Backdoors • Meio de garantir a volta ao sistema (acessos futuros), numa nova intrusão, no sentido de poupar trabalho. • Vão desde aquelas que abrem uma porta através de um shell, até aquelas que surgem da instalação de rootkits capazes de automatizar o processo de uma intrusão.
Backdoors • Backdoor do Passwd Registrar uma conta do usuário backdoor: /etc/passwd (UNIX) /etc/shadow (distribuições Linux) • A mais fácil de se fazer, mas a mais fácil de ser detectada.
Backdoor • Backdoor do SetUID • Existe uma permissão especial em UNIX e Linux, que um determinado arquivo pode vir a ser executado por qualquer usuário com direito de root. • Isto é chamado SetUID. • A partir dessa possibilidade pode-se criar uma backdoor para dar direito a usuário do sistema o mesmo direito de root.
Backdoor • Backdoor do Inetd O /etc/inetd.conf é o arquivo por onde se pode iniciar serviços do UNIX e Linux. Assim, é possível criar um serviço especial para que possamos ter acesso aos sistema com direito de root.
Backdoor • Backdoor com Hora Marcada A backddoor é criada de forma agendada, aproveitando, os recursos do AT ou Crontab. Por exemplo, agendando no Crontab uma tarefa que nada mais é que o script para fazer funcionar a backdoor no tempo agendado.
Backdoors Inetd e Passwd • Técnicas antigas • Script com requinte de engenhosidade usando-se o comando split (o uso do esquema de dividir o arquivo e jogar as informações no meio do arquivo através do comando split).
Backdoors de SuitBit • Backdoors baseados em SuitBit • SuitBit significa acesso com SetUID e SetGID. • Consistem em fazer cópia de um shell vulnerável à manipulação de SuitBit (chmod a+s na máquina vítima) e atribuir SuitBit a essa cópia.
Backdoors de SuitBit • Sofisticação das backdoors de SuitBit, que na sua maioria já não são simplesmente arquivos ocultos cópias de shell, são camufladas de maneira que um comando genérico possa acioná-la. • São bastante populares, por poderem ser adaptados a qualquer UNIX.
Backdoors de SuitBit • Um exemplo é um cracker executar com senha de root, um programa para executar um shell baseado na técnica de SuidBit.
Backdoor de SuidBit • Uma forma de proteger o sistema contra esse tipo de backdoor, é usar a instrução “nosuid” no arquivo /etc/fstab, na respectiva linha correspondente ao /home e /tmp, que são onde os crackers geralmente tentam criar esse tipo de backdoor.
Backdoor de SuidBit Substituindo Arquivo de Comando • Criar um arquivo que pode substituir um arquivo de comando, não muito usado, como por exemplo, /bin/cpio ou /bin/rm. • O cracker move o rm original para /bin/rm.original. • Compila o código “gcc –o rm backdoor”. • Atribui SuidBit. • Toda vez que é executado rm sem argumentos, na realidade é executado, via chamada interna do sistema, o /bin/rm.original e, quando for passado o parâmetro “ninja”, é executada a backdoor.
Exemplos de Backdoor • O código, após compilado, estabelece o SuidBit e a backdoor só é gerada com a digitação da palavra-chave reconhecida. • Backdoor desenvolvida em script para o shell BASH, com o uso do esquema de dividir o arquivo e colocar as informações no meio do arquivo através do comando split.
Backdoors através de Ferramentas • Úteis para um administrador, mas podendo serem usadas por crackers. • Netcat • SBD • NSSL • Hping2 (montador de pacotes)
Netcat • Netcat pode ser usada para varreduras UDP e TCP. • Um recurso para um invasor em um ambiente que tenha instalado o Netcat é a possibilidade de colocá-lo no modo de “listen” (ouvindo) em uma porta com uma aplicação vinculada. • Imagine que essa aplicação seja um interpretador de comando (shell) sh.
Netcat • Teremos uma backdoor simples em atividade, fazendo: • O Netcat é ativado através de um shell na porta 55555: #> nc -l -p 55555 -e /bin/sh & • Para se conectar o invasor deve fazer: #> nc ip.ip.ip.ip 55555 isto cria um socket na porta ativa 55555 de um servidor de <ip>, que tem o serviço TCP ativo fornecido pelo shell sh.
Netcat • Se esse procedimento for executado com senha de root, o usuário que ativou o Netcat é que terá esse direito.
SBD (Variante do Netcat) • Para sistemas UNIX ou Windows. • Possui todos os recursos do Netcat, mas o que é notável é que suporta criptografia com “AES-CBC-128+HMAC-SHA1 encryption)”, o que permite comunicações cifradas.
SBD (Variante do Netcat) • Para plataformas UNIX (Linux, FreeBSD, OpenBSD, NetBSD, ... ) deve-se executar o comando make para obter as várias formas de compilação: #> make unix • Para SunOS/Solaris: #> make sunos
SBD (Variante do Netcat) • Para Windows Win32 (NT/2000/XP) é necessário o MinGW+MSYS ou Cygwin instalado com toda a base de desenvolvimento: • Para compilar para Cygwin padrão: #> make win32 Com MSYS: #> make mingw Para modo WinMain com Cygwin: #> make win32bg Sob MSYS: #> make mingwbg • Para compilar para console Cygwin: #> make cygwin
SBD (Variante do Netcat) • O que é Pen-Test Deve-se confrontar o que denominamos como seguro em nossos sistemas computacionais e ter uma dimensão mais realista de quanto são (ou não são) realmente seguros. • Pen-Test com SBD (exemplo a seguir)
Backdoor para Pen-Test com SBD 1. De forma simples (sem chave) #> sbd -l -p 12345 -e /bin/sh Para se concetar à backdoor: #> sbd 192.168.200.171 12345 2. Criando uma chave “ninja”para a conexão: #> ./sbd -l -p 12345 -k ninja -e /bin/sh Para se concetar à backdoor com a chave: #> sbd -k ninja 192.168.200.171. 12345
NSSL • Uma variante do Netcat com suporte a SSL. • Requer OpenSSL. • Suporte SSL v.3 • Possibilita leitura de banners em serviços que utilizam SSL.
Exemplos de backdoor com NSSL 1. Sem suporte a SSL: nssl –rcl 1111 –e /bin/bash Para se conectar à backdoor: nssl 192.168.100.171 1111 2. Com suporte a SSL: nssl –cl 2222 –e /bin/bash Para se conectar à backdoor: nssl 192.168.100.171 2222
Hping2 • Similar ao Netcat, o Hping pode ser utilizada por um cracker na construção de uma backdoor. • Hping2 deve ser instalada somente na máquina do administrador e não num servidor. Nem em uma DMZ. • Documentação original do Hping: referência sobre como se criar uma backdoor utilizando Hping2.
DMZ – Zona Desmilitarizada • DMZ = Uma LAN de Isolamento • Um ambiente parcialmente protegido. • É uma rede local que isola uma rede corporativa do mundo exterior. • Assim, isola a rede corporativa, da Internet. • Possui um endereço de rede exclusivo, que difere do endereço da rede corporativa. • A DMZ é a única que pode ser vista de fora.
DMZ – Uma LAN parcialmente protegida • Uma DMZ é criada por um roteador de perímetro (o ponto de demarcação entre uma rede desprotegida e uma rede parcialmente protegida – a Internet e a DMZ, por exemplo); • Hosts de segurança (um servidor protegido que fornece serviços ao mundo exterior, tais como FTP, Web, DNS, SMTP e Proxy Web) e; • Gateways de aplicativo (firewalls que inspeciona mensagens no nível dos aplicativos)
Hping2 • Para a construção de uma backdoor, utiliza-se a opção -9 (listen) combinada com o “|” (pipe) com uma chamada de shell, como /bin/sh. • #> hping -i eth0 -9 cmd | /bin/sh • Todos os pacotes que contenham “cmd” (uma string pré-definida) serão processados e os bytes seguintes ao “cmd”, também. • Desta forma, uma backdoor com Hping2 pode ser furtiva o suficiente em um sistema violado.
Hping2 • Imagine um cenário em que um administrador costume instalar aplicativos poderosos, como o Hping2, para fins de teste e não os remova. • A backdoor é um processo ativo, mas um invasor pode ocultar esse processo forjando comandos com ps e fuser. • Um servidor com o Hping2 instalado pode ser facilmente manipulado remotamente por uma backdoor que não precisa criar um usuário da porta de qualquer serviço TCP ativo.
Hping2 • Mesmo que exista uma política de segurança de perímetro bem elaborada, ainda assim seria possível a passagem de comandos para a máquina invadida, pois seria feita através de um serviço oficialmente disponível cuja comunicação seria liberada via Firewall. • Veja exemplo a seguir:
Backdoor com Hping2 através de SMTP • Seja uma string pré-definida concatenada a um comando: cmdls • O seguinte exemplo mostra uma conexão com a backdoor através do serviço SMTP Sendmail, porta 25 de serviço TCP ativo. • O “;” final indica o fim do comando para o Hping2 que irá executá-lo. • $> telnet 192.168.1.1 25 (xpto.lammer.xxx.br) Trying... 192.168.1.1 Connected to lammer (192.168.1.1). Escape character is `^]`. 220 192.168.1.1 ESMTP Sendmail cmdls;
Contramedidas para Backdoors • Lembrar das backdoors mais engenhosas ! Uma backdoor simples como a do /etc/passwd pode ser instalada apenas para desviar a atenção do administrador. Este a remove e na sequência aplica um patch de correção e assume que o problema está resolvido. • Técnicas de backdoor podem ser empregadas por invasores internos.
Contramedidas para Backdoors • Um mecanismo recomendável para qualquer servidor é a utilização de IDS de hosts, para que o administrador tenha a capacidade de avaliar o quanto seu sistema foi comprometido.
Contramedidas para Backdoors • Mas, invasores com conhecimentos avançados podem utilizar técnicas para ultrapassar o IDS de host, caso este tenha alguma limitação visível. • Para UNIX BSD e Linux, temos o IDS de host Tripwire (Tripwire.org - Home of the Tripwire Open Source Project) • http://www.tripwire.org/downloads/index.php
Contramedidas para Backdoors • Aplicar políticas de segurança no sistema de arquivos dos servidores. Em Linux e UNIX BSD, opções noexec, nodev e nosuid, tornarão os sistemas mais seguros.
Contramedidas para Backdoors • Eliminar do servidor todo recurso desnecessário. • Serviços que não são usados e ferramentas propícias a invasores, como Hping, Netcat, Wget, ... • Wget (GNU wget is a free software package for retrieving files using HTTP, ...) www.gnu.org/software/wget/wget.html • Recomendação da Norma Internacional de Segurança BS17799 (item 9.5.5), seguida pela ABNT.