Dá-se o caso de a segurança de um sistema operativo se medir pela pessoa que o instalou e configurou. Dá-se também o caso, de os sistemas windows serem menos seguros out of the box que outros sistemas. Somando isto ao facto de estes sistemas operativos serem utilizados pela maioria das pessoas, rapidamente somos conduzidos ao desastre se não tivermos cuidado.
Assim, para quem tem de utilizar uma rede local onde não se tenha 100% do controlo das máquinas instaladas e do software utilizado, convém periodicamente fazer um rastreio à rede para verificar as configurações dos computadores a ela ligados.
Vamos ver uma forma de fazer isso mesmo, utilizando ferramentas disponíveis no Linux.
Se tivermos uma rede do género: 192.168.56.0/24 podemos verificar que hosts têm o File and Printer Sharing for Microsoft Networks instalado:
$ nmap -sT 192.168.56.0/24 -p 139
O comando nmap verifica e reporta o estado da porta 139 dos hosts ligados à rede. Vai devolver qualquer coisa como:
$ nmap -sT 192.168.56.0/24 -p 139 Starting Nmap 4.03 ( http://www.insecure.org/nmap/ ) at 2006-07-26 22:32 WEST Interesting ports on 192.168.56.144: PORT STATE SERVICE 139/tcp open netbios-ssn
Neste caso temos um host com a porta 139 no estado open. Devemos nesta altura investigar este endereço. Para isso utilizamos o comando nmblookup que nos vai devolver os nomes NetBIOS registados:
nmblookup -A 192.168.56.144 Looking up status of 192.168.56.144 WINDOWS <00> - BWINDOWS <03> - B WORKGROUP <00> - B ADMINISTRATOR <03> - B WINDOWS <20> - B WORKGROUP <1e> - B WORKGROUP <1d> - B ..__MSBROWSE__. <01> - B MAC Address = XX-XX-XX-XX-XX-XX
A linha com <20> indica-nos o nome NetBIOS da máquina.
Podemos facilmente saber quais as shares partilhadas usando o comando smbclient:
$ smbclient -U ADMINISTRATOR -L \\WINDOWS -I 192.168.56.144 Password:
Se soubermos a password obtemos:
$ smbclient -U ADMINISTRATOR -L \\WINDOWS -I 192.168.56.144 Password: Domain=[WINDOWS] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager] Sharename Type Comment --------- ---- ------- IPC$ IPC Remote IPC ADMIN$ Disk Remote Admin C$ Disk Default share MyPictures Disk Domain=[WINDOWS] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager] Server Comment --------- ------- Workgroup Master --------- -------
No entanto, os recursos podem ser partilhados anonimamente, e são-o muitas vezes, fazendo enter na prompt de password obtemos:
$ smbclient -U ADMINISTRATOR -L \\WINDOWS -I 192.168.56.144 Password: Anonymous login successful Domain=[WORKGROUP] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager] Sharename Type Comment --------- ---- ------- Error returning browse list: NT_STATUS_ACCESS_DENIED Anonymous login successful Domain=[WORKGROUP] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager] Server Comment --------- ------- WINDOWS Workgroup Master --------- ------- WORKGROUP WINDOWS
Repare que o login anónimo teve sucesso. Se houvessem shares disponíveis sem serem protegidas por uma password seria muito fácil aceder-lhes.
Como evitar este problema:
Configuração resultante de uma instlação standard
A mesma coisa sem o serviço File and printer sharing for Microsoft Networks
Se fizer isso, o comando anterior devolve nesse caso:
$ smbclient -U ADMINISTRATOR -L \\WINDOWS -I 192.168..56.144 session request to WINDOWS failed (Called name not present) session request to *SMBSERVER failed (Called name not present)
Notar que nunca se deverão ter shares partilhadas na Internet, há outros métodos de transferir ficheiros e os riscos de segurança são pura e simplesmente demasiado grandes.
Para mais informações sobre o funcionamento destes comandos, não esqueça de consultar as páginas man: man <nome do comando>.