IDENTIFIQUE
BRECHAS, PROTEJA
SUA APLICAÇÃO
PHP Avenger e Octopus
ME CHAMO LEONN LEITE
Made in TAGUÁ
Entusiasta
PHP, PHPDF, PHPWOMEN
/leonnleite
@leonnleite
+leonnleite
SOU IRMÃO DO LENON LEITE
PROJETOS
● Heimdall Ransomware
● PHP Avenger
● Octopus
PROJETOS
● Heimdall Ransomware
● PHP Avenger
● Octopus
Heimdall Ransomware
Heimdall Ransomware
Heimdall Ransomware
PHP Octopus
Padrões, todo mundo comete o
mesmo erro.
PHP Octopus
PHP Octopus
Mas como funciona?
chmod
rwx
r=read (leitura)
w=write (gravação, alteração, deleção)
x=execute (execução)
rwx
rwx
000 | 0
001 | 1
010 | 2
011 | 3
100 | 4
101 | 5
110 | 6
111 | 7
rwx rwx
Dono Grupo Outros
rwx
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
chmod 777
chmod 666
Uai, mas como o
cara sabe meu
usuario?
/etc/passwd
644
PHP Avenger
Eu achava que os .gov tinham
vários erros de segurança
PHP Avenger
“É um erro grave formular teorias antes de se conhecer
os fatos. Sem querer, começamos a distorcer os fatos
para se adaptarem às teorias..”
- Sherlock Holmes
Processo
Identificação de padrão
Trabalhar a vulnerabilidade
Estudo das vulnerabilidades
Validar o retorno
Processo - Falso positivo
Anda como pato, nada como pato,
tem bico de pato
Processo - Falso positivo
“Cross Site Scripting”
“Cross-Site Scripting (XSS) attacks are a
type of injection, in which malicious
scripts are injected into otherwise
benign and trusted web sites.”
- Owasp
“Cross Site Scripting” Exemplo
<marquee></marquee>
“Cross Site Scripting” Exemplo
Url: indextodas.php?titulo=Nordeste+Desenvolvimento
“Cross Site Scripting” Exemplo
Url: indextodas.php?titulo=<marquee>Teste</marquee>
“Cross Site Scripting”
Estudo da
Vulnerabilidade
Identificando as
possibilidades e
como funciona
o ataque.
Identificação do
padrão
Texto na
requisição
GET/POST se
repete no corpo da
pagina.
Trabalhando a
vulnerabilidade
Alterar parâmetro
GET/POST,
inserindo
comandos como
tags html e scripts.
Validando o
retorno
Identificando se
a alteração da
requisição foi
mostrada na
tela.
“Sql Injection”
“Attack consists of insertion or "injection" of a SQL
query via the input data from the client to the
application.”
- owasp
“Sql Injection” exemplo
Url: /index.php?id=1
“Sql Injection” exemplo
Url: /index.php?id=1'
“Sql Injection” exemplo
Mas como funciona?
$sql = "select * from tabela where id = $id"
Ou seja
$sql = "select * from tabela where id = 1"
mas
$sql = "select * from tabela where id = 1'"
Que isso possibilita
$sql = "select * from tabela where id = 1" .
" union select password from user"
“Sql injection”
Estudo da
Vulnerabilidade
Foi feito estudo
de uma do
resultado e do
log de uma
ferramenta
chamada
sqlmap.
Identificação do
padrão
Quando é
utilizado aspas
nas requisições
é gerado um
erro padrão do
banco de dados.
Trabalhando a
vulnerabilidade
Utilização de
aspas.
Validando o
retorno
Identificar os
erros impresso
ao inserir aspas
e se os erros
não estava lá
anteriormente.
“Sql injection” errors
Mysql
○ mysql_
○ You have an
error in your
SQL syntax
○ Warning:
mysql_
○ MySQL result
index
PostgreSql
○ pg_
○ Warning: pg_
○ PostgreSql
Error:
○ Function.pg
Oracle
○ Microsoft OLE
DB Provider
for Oracle
○ ORA-01756
○ ORA-
Fatal error
Sql Server
○ Microsoft JET
Database
○ ODBC
Microsoft
Access Driver
○ 500 - Internal
server error
○ Microsoft OLE
DB Provider
“Local File Inclusion”
““The File Inclusion vulnerability allows
an attacker to include a file, usually
exploiting a "dynamic file inclusion"
mechanisms implemented in the target
application...”
owasp
“Local File Inclusion”
“Local File Inclusion”
“Local File Inclusion”
/etc/passwd
/etc/group
“Local File Download/Path Traversal”
Estudo da
Vulnerabilidade
Checando urls
possíveis,
identificando os
arquivos que
sempre vão
existir.
Identificação do
padrão
É utilizado
caminho do
arquivo no
GET/POST para
escolha de
arquivo para
leitura.
Trabalhando a
vulnerabilidade
Navegar pelas
pastas
utilizando ../
procurando
pelo arquivo de
origem ou
index.
Validando o
retorno
Verificar no
retorno se
aquele é
realmente um
arquivo de
sistema.
“Local File Download/Path Traversal”
“A path traversal attack (also known as
directory traversal) aims to access files
and directories that are stored outside
the web root folder.”
- Owasp
“Local File Download/Path Traversal”
exemplo
“Local File Download/Path Traversal”
exemplo
“Local File Download/Path Traversal”
Estudo da
Vulnerabilidade
Checando urls
possíveis,
identificando os
arquivos que
sempre vão
existir.
Identificação do
padrão
É utilizado
caminho do
arquivo no
GET/POST para
escolha de
arquivo para
download.
Trabalhando a
vulnerabilidade
Navegar pelas
pastas
utilizando ../
procurando
pelo arquivo de
origem ou
index.
Validando o
retorno
Verificar se o
retorno é um
arquivo de
sistema.
Validando tags
de sistema,
como <?php do
php.
“Local File Download/Path Traversal”
exemplo
“Local File Download/Path Traversal”
Estudo da
Vulnerabilidade
Checando urls
possíveis,
identificando os
arquivos que
sempre vão
existir.
Identificação do
padrão
É utilizado
caminho do
arquivo no
GET/POST para
escolha de
arquivo para
download.
Trabalhando a
vulnerabilidade
Navegar pelas
pastas
utilizando ../
procurando
pelo arquivo de
origem ou
index.
Validando o
retorno
Verificar se o
retorno é um
arquivo de
sistema.
Validando tags
de sistema,
como <?php do
php.
“Local File Download/Path Traversal”
Bonus
WordPress “Brute Force”
“...consists in an attacker configuring
predetermined values, making requests
to a server using those values, and then
analyzing the response.”
owasp
WordPress “Brute Force”
WordPress “Brute Force”
WordPress “Brute Force”
“Local File Download/Path Traversal”
Estudo da
Vulnerabilidade
O WordPress
retornar
usuários de
acordo com um
comando na
url.
Identificação do
padrão
Inserting,
/?author=1, the
system user name
is printed.
Trabalhando a
vulnerabilidade
A loop is looped to
list all possible
users
Validando o
retorno
Check if user
returns according
to id, to be used in
the brute-force list.
Localizando alvos
Search Engine
● Google
● Bing
● Yandex
● Others
Study
pattern
in search
Google
Bing
Yandex
DukeDukeGo
Baidu
Outros
Motores de busca
Curiosidades
Google
O google não traz
resultados infinitos,
trazem em torno de
mil resultados.
Bing
É possível rastrear páginas
através do IP.
Motores de busca
Curiosidades
DukeDukeGo
Utilizando de api para
retornar um resultado
sempre passando uma
chave.
Yandex
É russo, importante para
ataques efetuados ao leste
europeu.
Motores de busca
Mas como?
Já ouviu falar
de dork?
"dork"
“Inicialmente conhecido como
Google Hacking Database. Dorks
são pesquisas avançadas com
intuito de melhorar, específicar e
filtrar a pesquisa.”
-Meu irmão
"dork"
"dork"
Localizando sistemas
educacionais
que rodam WordPress
"dork"
Localizando sistemas
educacionais *.edu.br
que rodam WordPress
"dork"
Localizando sistemas
educacionais *.edu.br
que rodam WordPress
*/wp-content/*
"dork"
"dork"
Localizando backup do
banco de dados
De site brazuca
"dork"
Localizando backup do
banco de dados filetype:sql
De site brazuca
"dork"
Localizando backup do
banco de dados filetype:sql
De site brazuca site:com.br
"dork"
Localizando backup do
banco de dados filetype:sql
De site brazuca site:com.br
bonus
"dork"
Localizando backup do
banco de dados filetype:sql
De site brazuca site:com.br
Bonus intext:password
"dork"
Localizando backup do
banco de dados filetype:sql
De site brazuca site:com.br
Bonus intext:insert password
"dork"
Possíveis falha de Local File
Download / Path Traversal.
"dork"
Possíveis falha de Local File
Download / Path Traversal.
site:com.br inurl:baixar.php?arquivo=
"dork"
Possíveis falha de Local File
Download / Path Traversal.
site:com.br inurl:baixar.php?arquivo=
"dork"
Possíveis falhas de Sql Injection.
"dork"
Possíveis falhas de Sql Injection.
site:com.ar inurl: index.php?id=
"dork"
Possíveis falhas de Sql Injection.
site:com.ar inurl: index.php?id=
"dork"
Possible Cross Site Scripting fails
"dork"
Possible Cross Site Scripting fails
site:com.ar inurl:index.php?titulo=
"dork"
Possible Cross Site Scripting fails
site:com.ar inurl:index.php?titulo=
Automatizando
"Chefão"
“Hackear qualquer alvo específico
pode ser difícil, dependendo do que
for escolhido, até impossível. Mas
escaneie centenas de milhares de
sistemas, e você terá a certeza de
encontrar alguns vulneráveis.”
- Poulsen, Kevin.
Chefão
"Problemas/Soluções"
Brute force é lento
"Problemas/Soluções"
"Problemas/Soluções"
"Problemas/Soluções"
Tor/Proxys
"Problemas/Soluções"
Tor/Proxys
Php avenger
php avenger sh --dork=”index.php?titulo” --check=”xss”
php avenger sh --dork=”index.php?titulo” --check=”xss”
php avenger sh --dork=”site:com.br inurl:index.php?id=” --check=”sqli”
php avenger sh --dork=”site:com.br inurl:index.php?id=” --check=”sqli”
php avenger sh --dork=”site:com.br inurl:baixar.php?arquivo=”
--check=”lfd”
Brute force > Send email
Open source
https://github.com/aszone
Contribua
Open source
Phpeste outubro/2017
fortaleza
Dúvidas?
Obrigato

Identifique brechas, proteja sua aplicação | Php avenger e octopus

Notas do Editor

  • #2 Piadinha de quem já hackeou alguem? Roubar senha do amigo conta Delação premiada
  • #3 Bruno Neves que palestrou ontem é de Taguá Marcelo MX, Ciro, Abdala (mais importante que ele Raquel, mulher dele), Pokemão que são duas feras de BSB são de Taguá
  • #4 Quem aqui trabalha com PHP? Quem trabalha com infra? Quem trabalha com segurança? Quem trabalha com outra linguagem?
  • #5 Dor de cabeça Comunidade de segurança não gostou de um virus open source, achou irresponsavel
  • #6 Quem quiser ver funcionando, tem no youtube o meu irmão fazendo a maldade. Recomendo colocar fones, que todos os videos dele é tipo gemidão do zap, só que é um funk diferente (e bem alto)
  • #7 Quem quiser ver funcionando, tem no youtube o meu irmão fazendo a maldade. Recomendo colocar fones, que todos os videos dele é tipo gemidão do zap, só que é um funk diferente (e bem alto)
  • #8 Gabriel Couto falou uma vez na palestra dele, que ninguem inventou Python para trabalhar com redes neurais Ele fez um emulador gameboy em PHP, uma interface grafica em PHP. A galera não acredita em php, a não ser que seja
  • #9 Nessa talk, você vai ver várias vezes eu falar de padrões Porque mó galera faz os mesmos erros
  • #10 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #11 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #22 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #23 Darkmira teve a oportunidade de alfinetar e comprovar que isso realment era ruim Teve a inspiração do IN URL BR - Cleiton Pinheiro
  • #24 Validar retorno - Falso positivo
  • #25 Validar retorno - Falso positivo
  • #26 Validar retorno - Falso positivo
  • #27 Injeção de script dentro de uma aplicação - Pode ser persistido (na base de dados) e outro por request Pessoal não acha que xss é muito periogoso, porque é só fica zoando… mas no dia que fizerem um xss no seu banco, mandando usuário e senha para outra url cê vai ver
  • #28 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #29 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #30 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #32 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #33 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #34 Quando vê um erro, quase certeza que é problema
  • #35 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #37 Sqlmap é em Python, bem madura
  • #39 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #41 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #42 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #44 Quem já teve um servidor compartilhado na locaweb? Quem já colocou a culpa do problema nos pobre coitado?
  • #99 hacktoberfest
  • #100 phpeste