BOMBOLOM.COM

(samba) Verificar a partilha de recursos numa rede com estações de trabalho windows

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> -         B 
        WINDOWS         <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:

  1. Se não necessita de partilhar recursos (e numa estação de trabalho, regra geral, não é necessário) deve desinstalar o serviço File and printer sharing for Microsoft Networks nas propriedades de ligação da rede:

    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)
  2. Nunca ter shares sem password partilhadas (anónimas);
  3. Instalar uma firewall;
  4. Se for possível não permitir que os utilizadores corram o windows com direitos de administrador;
  5. Mudar de sistema operativo ;-)

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>.

26.07.2006 | Ler mais | Comentários | Tags ,

Voltar à Página principal | Made with PyBlosxom