ou a autenticação é segura, ou é centralizada

0x1C - Especificações da linguagem C

Este artigo vai ajudá-lo a entender (e quando utilizar) os padrões de programação da linguagem C. Não ache que a utilidade é teórica, pois não é. Seguir um padrão pode ajudar na segurança de código, otimização e até aumentar a produtividade. Sabia que C tem o tipo booleano, por exemplo?.

0x1B - Extraindo dados de dumps

Dumps de memória, discos ou arquivos binários em geral podem conter outros arquivos dentro. Este artigo sugere uma forma de extração de dados sem ferramentas automatizadas, de modo didático e preciso. O texto é particularmente interessante para entusiastas em computação forense.

0x1A - (Des)protegendo mídias USB

Neste artigo descrevo o processo de criação do OpenVaccine, ferramenta para "imunização" de mídias USB, baseado na engenharia reversa de um software proprietário. O OpenVaccine cria um autorun.inf quase indeletável no raíz de uma mídia FAT-32, evitando que vírus e malwares injetem seu próprio autorun.inf.

0x19 - Como criar um pacote deb "na unha"

O formato do pacote deb é simples e genial. Neste texto mostro o que é e como fazer um de forma manual, para fins de estudo. A ideia aqui é atingir um objetivo maior: despertar o interesse pelos pacotes, por parte dos leitors quem não os conhece muito bem, conseguindo assim novos colaboradores para a distro que já tem mais de 35.000 pacotes em seu acervo!

0x18 - Análise do malware IMG2005M.exe

Mês passado eu postei no blog uma análise básica de um malware brasileiro que recebi por e-mail [1]. Algumas pessoas se ofereceram para continuar a análise mas não o fizeram, por motivos diversos. Eu tomei vergonha e achei uma máquina virtual com o XP e alguns programas velhos que ajudariam na análise. Este artigo é o meu relato sobre esse malware. :)

0x17 - Como são feitos os keygens

Keygen, que abrevia "Key Generator" é um software capaz de gerar chaves válidas de registro para um software protegido. A prática desta técnica pode (e provavelmente vai) infringir algumas leis quando usada em softwares comerciais. No entanto, existem alguns desafios na internet chamados de "keygenmes", que são programas feitos justamente para serem quebrados. O desafio está em criar keygens para eles. Este é um estudo muito interessante que treina bastante a lógica, matemática, assembly e até mesmo massageia o ego, se você vencer. :)

0x16 - O processo de criação de um analisador de executáveis

Um analisador de executáveis é um software capaz de prover informações sobre um executável que podem ser muito úteis para pesquisadores de Segurança da Informação na análise de malware, forense computacional ou engenharia reversa.
Este artigo, apresentado no Web Security Forum 2011, objetiva demonstrar como um analisador de executáveis é construído, abordando técnicas para uma análise precisa e eficiente. É utilizado como base, um software de código aberto chamado "pev", de desenvolvimento próprio, que analisa binários PE32 (usados no MS-Windows) e pode ser compilador tanto em sistemas UNIX-like quanto no próprio Windows, pois foi escrito em ANSI C.

0x15 - Informações demais em fotos

Com as vantagens óbvias das câmeras digitais, incluindo as dos smartphones, mais e mais pessoas tiram fotos todos os dias, em todos os lugares, fazendo as mais variadas "tripulias". O que pouca gente sabe é que esses arquivos de fotos podem conter dados um tanto quanto comprometedores, como data, condições em que a foto foi tirada e até mesmo onde você estava!

0x14 - Criando formulários no MediaWiki com o Semantic Forms

Muitas vezes nos deparamos com situações que poderiam ser resolvidas com um sistema wiki, mas infelizmente nos esbarramos de frente com a experiência do usuário, que encontra dificuldades imensas em formatar e manter organizado as páginas dentro de um sistema de edição colaborativa, foi este o motivo que me levou a procurar por extensões que pudesse me ajudar a manter o usuário distante do campo de edição da wiki, e eis que me apareceu o Semantic Forms.

0x13 - O que fazer com o C que se aprendeu na faculdade

Em muitas faculdades brasileiras a linguagem C é ensinada aos alunos de cursos de tecnologia. Mesmo assustando os novatos, a maioria resiste e vence a matéria. O problema é entender por qual motivo o C foi escolhido para iniciar o curso de programação. Seria uma linguagem didática para se aprender a programar? Ou é um teste para ver quem tem ou não o "jeito pra coisa"? Alguns diriam que o correto seria começar com Pascal, mas há quem defenda linguagens mais modernas como Python, Perl, Ruby ou PHP. E aí, pra que serve o C no primeiro período? Neste artigo farei uma análise sobre o que se aprende da linguagem, o motivo pelo qual ela surge no início do curso, seu valor de mercado e o que é possível fazer com esse start que a faculdade nos dá.

0x12 - Usando a API do Google Charts com o BASH

A API Charts, desenvolvida pelo Google pode ser particularmente útil quando precisamos de uma maneira rápida de gerar gráficos a partir de scripts. Neste artigo, vamos ver como fazer isso a partir do BASH, o shell hoje mais utilizado no mundo Linux. Você verá que além de o BASH ser extremamente poderoso, pode facilmente interagir com a web através dos aplicativos básicos do sistema.

0x11 - Monitoração de serviços com o Zabbix

Uma importante parte da pós-implementação de um produto é a monitoração constante. Primeiro porque é a partir dela que o administrador do sistema obterá dados para servir de parâmetros numa anlálise e segundo porque, quando enfrentando problemas, o troubleshooting é bastante facilitado quando a monitoração bem feita existe.

0x10 - Recuperando mensagens do Outlook Express com Linux

Mesmo com tantos clientes de e-mail evoluídos e cheio de recursos, ainda há muitos usuários do Outlook Express. Talvez por comodidade, uma vez que ele acompanha uma instalação padrão do Windows, ou mesmo por já estar usando há tempos e não pensar em migração.

0x0F - Como remover vírus de pen drive

É notória a quantidade de pen drives e cartões de memória infectados com vírus. Freqüentemente nos deparamos com vírus novos, que os antivírus não conhecem (a vacina é criada depois de certo tempo). Essas pragas disseminadas por pen drives são tão perigosas quanto as disseminadas pela internet e às vezes até mais destruidoras, ou seja, o cuidado deve ser redobrado. Veja neste artigo como se defender de um pen drive ou cartão de memória infectado e saiba como remover o vírus destes dispositivos.

0x0E - Navegue na web com segurança

Atualmente o número de pessoas que navega na web todos os dias é alto. Estamos altamente dependentes de e-mail, sites de notícias, fóruns, sites de relacionamento, dentre outros. Muitos usuários da grande rede possuem contas em vários portais diferentes (já parou para se perguntar quantas contas em portais na web você possui?). Num mundo assim, onde vivemos de logins e logouts, não é muito prático manter vários nomes de usuário e senhas diferentes, por isso muita gente usa uma senha para [quase] tudo.

0x0D - Alterando o comportamento de um executável

Recentemente fui requisitado para verificar a possibilidade de um determinado sistema cliente-servidor funcionar em thin clients (terminais leves, que usam o processamento e o SO de um servidor de terminais).

O sistema baseia-se em um aplicativo servidor e um pequeno aplicativo cliente, que deve ser instalado em todas as estações. Mas ele não foi feito para funcionar com terminal services: este pequeno aplicativo instalado nas estações mantém suas configurações numa chave de registro em HKEY_LOCAL_MACHINE. Logo, cada estação precisa de um SO para que o aplicativo crie esta chave e armazene suas configurações individuais.

Imediatamente pensei que se este aplicativo armazenasse suas configurações em HKEY_CURRENT_USER, seu funcionamento em thin client seria viável, uma vez que esta chave do registro existe para cada usuário que se loga no sistema (diferente da chave HKEY_LOCAL_MACHINE, que é única no SO).

Neste artigo vou mostrar como alterar o comportamento de um executável que armazena suas configurações em HKLM, fazendo-o armazenar em HKCU, para atingir o objetivo desejado.

0x0C - Python - Enviar e-mail através do GMail com anexos

Este artigo mostrará como estabelecer uma conexão segura (SSL) com o SMTP do GMail e enviar e-mails com anexos. O e-mail é enviado com Relay (com identificação) e pode ter inúmeras aplicações, um bom exemplo disso é um script que envia logs para você.

0x0B - Servidor de máquinas virtuais com Linux

A virtualização tornou-se indispensável em ambientes de testes e é empregada até em ambientes de produção. Neste artigo vamos ver como criar um servidor de máquinas virtuais, uma máquina dedicada com o Debian GNU/Linux que armazenará todas as máquinas virtuais e terá um servidor que poderá receber conexões de qualquer máquina da rede para que os usuários compartilhem as máquinas virtuais existentes. Este tipo de servidor é muito útil em ambientes de testes, para o departamento técnico, para testes pré-venda ou mesmo para conhecer alguns produtos. E o melhor: o custo do projeto é zero! São usados somente softwares gratuitos com o um sistema operacional 100% GNU (open source).

Este artigo mostra um exemplo de como utilizar a ER para estudar o executável do game e saber o que o impede de rodar no Vista.

Você verá como uma simples alteração em 2 bytes de um arquivo PE pod salvar seu fim de semana. :P

0x0A - Forçando um game a rodar no Vista

Muitos jogos antigos apresentam problemas ao serem executados ou simplesmente instalados no Windows Vista. Isto acontece por conseqüência de diversos fatores, mas o principal é que quando o jogo (ou software) foi desenvolvido, o Windows Vista ainda não estava no mercado, o que impediu testes de serem realizados, dentre outros aspectos.

Este artigo mostra um exemplo de como utilizar a ER para estudar o executável do game e saber o que o impede de rodar no Vista.

Você verá como uma simples alteração em 2 bytes de um arquivo PE pod salvar seu fim de semana. :P

0x09 - Transformando MIDI em instrumento real

Esse artigo mostrará todo o processo da transformação de MIDI em áudio real sampleado, vou dividir isso tudo em partes, como deve ter dado para notar pelo título...

0x08 - Mascarando o endereço MAC da placa de rede

Muitos mecanismos de proteção em redes para liberar acesso a certos recursos ou obter um IP privilegiado são baseados no endereço MAC da interface rede.

O endereço MAC é fixado no hardware da placa de rede. Não é possível alterá-lo, mas é possível mascará-lo.

Neste artigo vamos ver como essa proteção dos servidores funciona, como é burlável e como proteger nossa rede deste tipo de falha.

0x07 - Controle de dispositivos com a porta paralela

Neste guia vamos montar um projeto que usa a porta paralela do PC para controlar dispositivos externos. Estes podem ser pequenos circuitos eletrônicos, lâmpadas, alarmes de segurança, etc. Montaremos um controle de LEDs para testes com a porta paralela.

0x06 - Remoção manual de vírus

A maioria dos vírus e pragas virtuais compartilham de certos métodos de auto-inicialização com o SO. Isto inclui os spywares e seus similares.

Os sistemas Windows possuem métodos para inicializar programas junto ao seu carregamento limitados. Na maioria das vezes os vírus iniciam justamente por eles e daí a importância de conhecê-los e saber gerenciá-los. Desta forma, o técnico pode remover manualmente muitas pragas, o que economizará tempo com scans de softwares antivírus e anti-spys, além de ser extremamente útil quando o vírus ataca estes softwares de proteção, impedindo sua inicialização.

0x05 - Sniffing com o Wireshark

O Wireshark é um dos sniffers (analisadores de tráfego de rede) mais conhecidos atualmente. Ficou muito famoso com seu antigo nome, Ethereal. Além de ter uma ótima interface gráfica, também possui uma interface em linha de comando muito poderosa. Neste artigo vamos ver como são frágeis os sistemas de login em texto puro. Sniffaremos uma tentativa de login num servidor FTP e num site HTTP, que inclusive, é o nosso. :)

0x04 - Extensões perigosas no Windows

Apesar de ser um assunto que já foi tratado em muitos sites e fóruns, continuo a observar que alguns usuários do Windows devem ter mais atenção com o tipo de arquivo que aplica o famoso duplo-clique. Identificar se o arquivo é inofensivo ou se é uma ameaça pode ser mais fácil do que se imagina. Este artigo tem como intenção desmistificar as lendas sobre as extensões de arquivos maliciosos e alertar sobre as extensões perigosas.

0x03 - Ghost pela rede

Há alguns dias precisei realizar a clonagem de discos rígidos de diversas máquinas ligadas em rede. Iria utilizar, como de praxe, o Norton Ghost de disco a disco mas para isso teria que abrir todas as máquinas (e eram muitas) e retirar os discos pra depois recolocar. Procurei então usar as opções de rede TCP/IP que o Ghost me oferece. Pois bem, não consegui sucesso com nenhuma. Precisava de um software "antes" do SO, ou seja, que carregasse após o POST e permitisse a clonagem dos discos. Foi aí que fui apresentado por um amigo (obrigado Michael) ao UDP Cast, um software que roda a partir de um disquete ou CD-ROM, sobre um kernel linux.

0x02 - Beryl, Guia de instalação com nVidia no Ubuntu

Para quem teve dificuldades em instalar o Beryl ou pra quem não o conheça ainda mas queira um novo visual, melhor que o Aero, do Windows Vista em minha opinião. Segue o tutorial mais rápido que achei.

0x01 - VMware Server 1.04 no Ubuntu

Antes eu usava o VMware Player no meu Ubuntu Feisty Fawn pra rodar as máquinas virtuais e as criava no site EasyVMX [1] ou na mão mesmo (depois que compreendi o script .vmx).