Enumerando NetBIOS / SMB
O serviço NetBIOS e SMB são responsáveis por compartilhamento de arquivos e diretórios. O NetBIOS funciona na porta 139 TCP e o SMB na porta 445 TCP. Quando um host utiliza o NetBIOS, possivelmente esse host é mais antigo, pois o NetBIOS veio antes. Já o SMB é utilizado em sistemas mais modernos.
Enumerando no Windows
Ao acessarmos o prompt de comando e estando dentro da rede, podemos começar a explorar.
Para começo, podemos utilizar o nbtstat, ele mostra a estatĂstica do protocolo utilizando o NetBIOS sobre o protocolo TCP/IP.
Usamos o comando a seguir para buscar informações dessa máquina.
nbtstat -A <ip>
Usamos o comando a seguir para tentar também visualizar informações de determinada máquina, com seus compartilhamentos. Geralmente pode dar acesso negado por motivo de permissões.
net view \\<ip>
Uma das coisas que podemos fazer quando estamos enumerando SMB e NetBIOS, é usar a Null Session, que é basicamente estabelecer uma conexão sem usuário e senha. Usamos da seguinte forma.
net use \\<ip> "" /u:""
Onde ficam as duas aspas " " deveria ser passado a senha e o usuário.
Se houver sucesso, podemos agora tentar usar o net view novamente para visualizar.
net view \\<ip>
Para vermos todas as conexões estabelecidas, usamos o comando:
net use
Usamos o comando a seguir para ver o cache, exibindo todas as máquinas que esse host já se comunicou.
nbtstat -c
Vamos supor que conseguimos visualizar os compartilhamentos. Precisamos agora de definir uma letra para que o windows estabeleça uma comunicação.
net use <letra qualquer> \\<ip>\<pasta compartilhada que queremos conectar>
Executamos net use para verificar novamente, e apĂłs isso digitamos a letra e dois pontos para nos conectarmos nesse volume.
<letra qualquer>:
Uma outra técnica é tentarmos fazer uma autenticação com o usuário administrator sem senha.
net use \\<ip> "" /u:administrator
Se quisermos desmontar alguma das conexões usamos o comando a seguir.
net use h: /delete
Se quisermos excluir a conexão de determinada máquina usamos o comando a seguir.
net use \\<ip> /delete
Enumerando no Linux
Primeiramente, utilizamos o nbtscan para scanear os hosts passando o range da rede.
┌──(user㉿kali)-[~/Desktop]
└─$ nbtscan -r 172.16.1.0/24
Doing NBT name scan for addresses from 172.16.1.0/24
IP address NetBIOS Name Server User MAC address
------------------------------------------------------------------------------
172.16.1.4 WKS01 <server> <unknown> 00:0c:29:fb:ab:27
172.16.1.5 SERVER5 <server> SERVER5 00:00:00:00:00:00
172.16.1.60 SRVINT <server> <unknown> 00:0c:29:ce:87:ee
172.16.1.107 SMB <server> SMB 00:00:00:00:00:00
172.16.1.108 SRVWEB <unknown> 00:50:56:26:3d:f0
172.16.1.165 SRV-CPD-OLD <unknown> 00:50:56:3b:59:b2
172.16.1.233 SRVSPIDER <server> <unknown> 00:0c:29:fe:64:d7
Para enumerarmos os compartilhamentos utilizamos o smbclient. Caso não quisermos informar a senha, basta usar o parâmetro -N e se quisermos informar um certo usuário basta utilizar -U e o usuário.
smbclient -L \\<ip>
Para nos conectarmos em determinado diretĂłrio basta utilizar da seguinte forma.
smbclient //<ip>/<diretĂłrio> -N
Após conectar no diretório, podemos usar o help para ver as opções.
$ smbclient //172.16.1.4/_DOCS -N
Try "help" to get a list of possible commands.
smb: \> help
? allinfo altname archive backup
blocksize cancel case_sensitive cd chmod
chown close del deltree dir
du echo exit get getfacl
geteas hardlink help history iosize
lcd link lock lowercase ls
l mask md mget mkdir
more mput newer notify open
posix posix_encrypt posix_open posix_mkdir posix_rmdir
posix_unlink posix_whoami print prompt put
pwd q queue quit readlink
rd recurse reget rename reput
rm rmdir showacls setea setmode
scopy stat symlink tar tarmode
timeout translate unlock volume vuid
wdel logon listconnect showconnect tcon
tdis tid utimes logoff ..
!
smb: \>
Podemos ter um problema de versĂŁo para enumerar determinado host.
┌──(user㉿kali)-[~]
└─$ smbclient -L \\172.16.1.5 -N
protocol negotiation failed: NT_STATUS_CONNECTION_DISCONNECTED
Caso precisemos especificar uma versĂŁo mais antiga, podemos utilizar da seguinte forma.
┌──(user㉿kali)-[~]
└─$ smbclient -L \\172.16.1.5 -N --option='client min protocol=NT1'
Anonymous login successful
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
tmp Disk oh noes!
opt Disk
IPC$ IPC IPC Service (server5 server (Samba 3.0.20-Debian))
ADMIN$ IPC IPC Service (server5 server (Samba 3.0.20-Debian))
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful
Server Comment
--------- -------
Workgroup Master
--------- -------
GBUSINESS WKS01
GRANDBUSINESS SRV-CPD-OLD
WORKGROUP SERVER5
Last updated
Was this helpful?