NetBIOS nas mãos de um hacker

Este artigo apresentará uma breve história sobre o que podemos dizer sobre uma coisa tão familiar como o NetBIOS . Quais informações ele pode fornecer para um atacante / atacante em potencial.

A área de aplicação demonstrada das técnicas de reconhecimento refere-se a redes internas, isto é, isoladas e inacessíveis das redes externas. Como regra, essas redes existem para qualquer empresa, mesmo que minúscula.

O próprio NetBIOS é usado, como regra, para obter um nome de rede. E isso será suficiente para fazer pelo menos 4 coisas.

Descoberta do host


Devido ao fato de o NetBIOS poder usar o UDP como transporte, sua velocidade permite detectar hosts em redes muito grandes. Assim, por exemplo, a ferramenta nbtscan incluída no pacote com o mesmo nome pode resolver apenas endereços de rede do tipo 192.168.0.0/16 em 2 segundos (pode colocar uma rede), enquanto a verificação TCP tradicional leva dezenas de minutos. Esse recurso pode ser usado como uma técnica de varredura de host em redes muito grandes desconhecidas antes de iniciar o nmap. Embora o resultado não garanta 100% de detecção, uma vez que os hosts do Windows geralmente respondem e não todos, ele ainda permite determinar aproximadamente em quais intervalos os hosts ativos estão.

Identificação do host


Usando os resultados da obtenção de nomes de endereços IP:

imagem

você pode ver: além do fato de o nome revelar o proprietário da estação de trabalho (embora nem sempre seja esse o caso), um dos endereços se destaca claramente dos outros. Podemos ver que o nome KALI foi recebido. Esse comportamento é típico, como regra, para a implementação unix do SMB / NetBIOS como parte do pacote de software samba ou do Windows 2000 muito antigo.

Obter o nome KALI , enquanto em outros hosts isso < desconhecido > indica a presença da chamada sessão nula . Com as configurações padrão, o servidor SMB no Linux é propenso a isso. A sessão nula apenas permite obter muitas informações adicionais, como uma política de senha local, uma lista de usuários locais, grupos e uma lista de recursos compartilhados (bola), de forma absolutamente anônima (e não inserimos senhas, como você pode ver na tela):

imagem

Freqüentemente, em servidores linux SMB , existem bolas acessíveis ao público, não apenas para leitura, mas também para escrita. A presença de ambos carrega várias ameaças, cujo uso está além do escopo deste artigo.

O NetBIOS também permite que você obtenha os nomes de todos os tipos que a estação de trabalho armazena:

imagem

nesse caso, permite descobrir que o host também é um controlador de domínio ARRIVA .

Também vale a pena prestar atenção adicional, pois o NetBIOS permite obter um endereço mac . Além disso, diferentemente das solicitações arp, as solicitações NetBIOS podem ir além da sub-rede. Isso pode ser útil se, por exemplo, você precisar encontrar um laptop ou hardware específico na rede, conhecendo o fabricante. Como os três primeiros octetos do endereço mac identificam o fabricante, você pode enviar solicitações NetBIOS semelhantes a todas as sub-redes conhecidas para tentar encontrar o dispositivo necessário (http://standards-oui.ieee.org/oui.txt).

Determinação de associação ao domínio


Frequentemente, ao se deslocar por redes corporativas internas, é necessário atacar a estação de trabalho incluída no domínio (por exemplo, para elevar privilégios ao nível de administrador do domínio) ou vice-versa. Nesse caso, o NetBIOS pode novamente ajudar:

imagem

Nesse caso, usando o NetBIOS , todos os nomes de todos os tipos foram obtidos. Entre eles, você pode ver, além do nome do PC (o que já foi recebido antes), o nome do grupo de trabalho. Por padrão, no Windows, geralmente é algo como WORKGROUP ou IVAN-PC , mas se a estação de trabalho estiver em um domínio, seu grupo de trabalho será o nome do domínio.

Assim, usando o NetBIOS, você pode descobrir se uma estação de trabalho está em um domínio e, se estiver, em qual.

Se você deseja obter uma lista de hosts de domínio dentro da sub-rede, basta uma solicitação de transmissão com o nome do domínio necessário:

imagem

Como resultado, todos os hosts neste domínio responderão.

Descoberta de hosts com hospedagem múltipla


E, finalmente, outra técnica provavelmente muito pouco conhecida, que é simplesmente indispensável para encontrar maneiras de proteger, possivelmente até redes fisicamente isoladas. Pode ser uma rede de oficinas de empresas cheias de controladores. Para um invasor, o acesso a essa rede significa uma oportunidade de influenciar o processo tecnológico e, para uma empresa, existe o risco de grandes perdas.

Portanto, o ponto principal é que, mesmo que a rede esteja isolada da rede corporativa, geralmente alguns administradores, por causa de sua preguiça ou de alguma forma, gostam de criar outra placa de rede em seus PCs para acessar essa mesma rede. Além disso, tudo isso acontece, é claro, ignorando todo tipo de regras de firewalls corporativos. Conveniente, sim, mas não muito seguro, se você for hackeado, você se tornará uma ponte para esta rede e assumirá a responsabilidade.
No entanto, para o invasor, há um problema: encontrar o próprio administrador que ingressou na rede segura de maneira ilegal semelhante. Além disso, esse não é um problema fácil para o próprio pessoal de segurança da rede. Nas grandes empresas, essa é realmente uma tarefa difícil, como se fosse encontrar uma agulha no palheiro.

Nessa situação, haveria duas opções óbvias para um invasor:

  1. tente usar cada PC na sub-rede corporativa como um gateway para a rede desejada. Seria muito conveniente, mas isso raramente é visto, porque no Windows hosts o encaminhamento de IP quase sempre está desativado. Além disso, essa verificação é possível apenas dentro de sua própria sub-rede e também exige que o invasor saiba exatamente o endereço de destino da rede isolada
  2. tente conectar-se remotamente a cada host e execute o comando banal ipconfig / ifconfig . E aqui nem tudo é tão suave. Mesmo que um invasor tenha garantido os direitos de um administrador de domínio, ninguém cancelou os firewalls e os firewalls locais. Portanto, essa tarefa não é 100% automatizada. Como resultado, continua sendo doloroso ir a cada host, superando firewalls (geralmente bloqueando exatamente a porta 445 / tcp), esperando finalmente ver a interface de rede cobiçada.

No entanto, tudo é muito mais simples. Há um truque extremamente simples que permite obter uma lista de interfaces de rede de um determinado host. Digamos que temos um certo host:

imagem

este é o endereço IP do resolvedor reverso → nome da rede. Se agora tentarmos fazer um nome de rede com resolução direta → endereço IP:

imagem

descobriremos que esse host também é um gateway (aparentemente) em alguma outra rede. Vale ressaltar que, neste caso, a solicitação foi transmitida. Em outras palavras, os hosts ouvirão apenas da sub-rede do invasor.

Se o host de destino estiver fora da sub-rede, você poderá enviar uma solicitação de destino:

imagem

Nesse caso, pode ser visto que o alvo está fora da sub-rede do atacante. Usando a opção -B, foi indicado que a solicitação deve ser enviada para um endereço específico, e não para o endereço de broadcast.

Agora resta apenas coletar informações rapidamente de toda a sub-rede de interesse, e não de um único endereço. Para fazer isso, você pode usar um pequeno script python :

imagem

E depois de alguns segundos:

imagem

Era um host dedicado, nesse caso improvisado, que se tornaria o primeiro alvo do atacante se ele perseguisse a rede 172.16.1 / 24.

imagem

Nomes duplicados em ip diferente indicam que o host também possui duas placas de rede, mas na mesma sub-rede. Vale ressaltar que o NetBIOS não divulga alias (que pode ser facilmente calculado através de solicitações arp como ip com o mesmo mac ). Nesse caso, os endereços IP têm macs diferentes.

Outro exemplo do uso dessa técnica é o Wi-Fi público. Às vezes, é possível atender a uma situação em que, entre os dispositivos convidados, o pessoal que trabalha no segmento corporativo fechado está conectado à rede pública. Então, com a ajuda dessa técnica de reconhecimento, um invasor poderá rapidamente determinar por si mesmo um caminho para passar para uma rede fechada:

imagem

Nesse caso, entre 65 clientes Wi-Fi públicos, havia duas estações de trabalho com uma interface adicional, provavelmente relacionadas à rede corporativa.

Se algumas vezes a filtragem do tráfego para a porta 445 / tcp for observada entre segmentos de rede ou diretamente nas estações de trabalho, o que impede o login remoto no sistema (execução remota de código), nesse caso, a porta 137 / udp é usada para resolver nomes no NetBIOS , que quase nunca é bloqueado conscientemente ocorre, porque a usabilidade da rede sofrerá muito com isso, por exemplo, o ambiente de rede pode desaparecer etc.

Como se costuma dizer, a enumeração é a chave
Existe alguma proteção contra isso? Não é, porque não é uma vulnerabilidade em tudo. Esta é apenas a funcionalidade padrão do pouco que o Windows possui por padrão (no Linux, o comportamento é um pouco diferente). E se você, subitamente inconsistentemente, ignorando as regras de roteamento de rede ingressou em um segmento fechado, o invasor certamente o encontrará e o fará muito rapidamente.

Source: https://habr.com/ru/post/pt445212/


All Articles