Utilizando GNUPG como ferramenta pessoal de criptografia no terminal

Hoje falaremos de uma ferramenta que há algum tempo tem destaque no mundo Linux: O GNUPG, uma implementação livre do protocolo OpenPGP (RFC4880), através do qual podemos criptografar/descriptografar dados e/ou assinar mensagens utilizando chaves assimétricas.

Gerando as chaves

O primeiro passo para começar a utilizar este belíssimo conjunto de código é gerar um par de chaves (uma pública e outra privada). Podemos realizar esta tarefa através do seguinte comando:

gpg --gen-key 

Após isto será necessário digitar seu nome e e-mail (Identificadores das chaves). Uma senha também será solicitada, essa informação será utilizada posteriormente para acessar a chave privada. Após isto, aguarde alguns minutos realizando tarefas normais enquanto o sistema gera entropia suficiente para criação da chave.

Exportando sua chave pública

Criadas as chaves, podemos agora compartilhar informações de maneira segura. Para tanto, devemos exportar a chave pública (referente ao par pública/privada) que servirá para que somente o destinatário conheça o conteúdo da mensagem ou mesmo para que se possa verificar a autenticidade do remetente. Para tanto, executaremos o seguinte comando:

gpg --export -a "User Name" > /tmp/public.key

Agora compartilhe sua chave pública com todas as pessoas que necessitam conhecer o conteúdo de suas mensagens e documentos assinados.

Cifrando uma mensagem

Para cifrar uma mensagem qualquer podemos utilizar:

 echo "Minha Mensagem" | gpg --encrypt -r "User Name" > /tmp/message.txt

Decifrando uma mensagem

Para realizar a operação reversa utilizamos (Será solicitada a senha referente a chave privada):

cat /tmp/message.gpg | gpg
Referências:

http://irtfweb.ifa.hawaii.edu/~lockhart/gpg/
https://fedoraproject.org/wiki/Creating_GPG_Keys/pt-br

Convertendo arquivos FLAC em MP3 pelo terminal no Linux (Ubuntu 14.04)

E a pergunta de hoje é:

Seria possível converter arquivos de áudio pelo terminal?

Existem diversas alternativas gráficas como o Sound Converter, mas podemos realizar a mesma tarefa utilizando o bom e velho terminal. Neste exemplo vamos converter todos os arquivos .flac de uma pasta para .mp3, para realizar a tarefa precisaremos instalar os pacotes flac e lame, assim:

sudo apt-get install flac lame

Uma vez instalados os dois pacotes, utilize o terminal na pasta com os arquivos para realizar a conversão de todos os arquivos:

for f in *.flac; do flac -cd "$f" | lame -b 320 - "${f%.*}".mp3; done

Como de costume no linux: simples, rápido e fácil.

Até,

Fonte: How to Convert FLAC to MP3, Ubuntu Command Line

Como exportar arquivo para PDF com o VIM/GVIM

Se você, assim como eu, é um fã do editor de Texto VIM, talvez já tenha se perguntado:

É possível exportar o texto que estou vendo (Incluindo sua formatação e realce) para um PDF?

Bem, nativamente não temos ferramenta para exportação direta para PDF, no entanto, com um pouco de criatividade é possível chegar a este resultado.

A partir de um documento qualquer aberto pelo editor, podemos realizar a exportação para um formato intermediário (e.g: PostScript) e então podemos converter para o formato final.

O primeiro passo é abrir o arquivo no editor (e.g: /tmp/python-hello.py), habilitando o realce utilizando, por exemplo (:syntax on)

#!/usr/bin/env python

# Meu Hello World
print 'Hello World'

Agora crie um arquivo PostScript utilizando o modo iterativo do GVIM:

:hardcopy > /tmp/python-hello.ps

De posse do arquivo PostScript, podemos agora converte-lo para PDF com o seguinte comando no terminal:

ps2pdf /tmp/python-hello.ps

Assim, conseguimos gerar um PDF a partir do arquivo PostScript de um documento qualquer aberto no VIM. O mais interessante é que exportamos inclusive as características de texto como é o caso do realce.

Software malicioso, educação e o projeto Sculevta (Suco Levanta)

Hoje compartilho o código do mais novo brinquedo para estudo que desenvolvi: SCULEVTA (Acrônimo de Suco Levanta — don’t ask —), um malware escrito em linguagem C que tem por objetivo ajudar os iniciantes no estudo de pragas digitais.

A ideia surgiu durante uma das aulas de Análise de Malware da Pós-Graduação, onde o professor nos conduziu na análise de um software desta espécie. Basicamente o que o software fazia era criar uma chave no registro e depois tentava obter uma página da web por meio do Internet Explorer (Muito esperto! rs).

Conversando com o Prof. Marcello Zillo Neto (confira o blog dele aqui), tive a oportunidade de entender que estes softwares não são assim tão diferentes dos softwares que estamos acostumados a implementar, afinal, todos fazem acesso ao registro do Sistema Operacional, ocasionalmente necessitam realizar operações em rede e utilizam o armazenamento para tarefas especificas.

A partir desta conversa, desenferrujei meu compilador GCC (MinGW) e fui a codificação da praga digital que se parecia com que havíamos estudado, no intuito de desenvolver algo com propósito acadêmico procurei simplificar ao máximo o funcionamento do software.

O Algoritmo Principal

  1. Basicamente o que o software malicioso desenvolvido (a.k.a SCULEVTA) faz é:
  2. Infecta o disco, copiando-se para a raiz com um nome randômico.
  3. Infecta o registro, criando uma chave para ser executado a partir da cópia feita nas próximas vezes em que o usuário logar.
  4. Realiza uma chamada utilizando socket a um servidor externo, recebe um comando e executa-o.
  5. Encerra.

Muitas coisas ainda podem ser acrescentadas para tornar o projeto ainda mais interessante para fins de estudo de pragas digitais, incluindo:

  • Utilização de PWDUMP para obter os hashes dos usuários locais do sistema;
  • Utilização de OCX nativo para não criar socket no software, mantendo-se mais discreto;
  • Implementação de mecanismo de loop, melhorando a inteligência da praga;
  • Implementação de verificação de ambiente virtualizado visando dificultar a vida do analista de malware;
  • ETC (Use a sua imaginação);

Espero com este projeto elucidar alguns pontos básicos da construção de software malicioso, contribuindo para o estudo destas ferramentas por mais pessoas a fim de evoluir técnicas de detecção e análise.

O código fonte na íntegra pode ser obtido no meu repositório GitHub.

Até Já!

“Hello world”, Olá, bem-vindo e vamos lá

Resolvi criar este blog pra compartilhar informações interessantes que encontro pela web, sobre coisas que eu leio nos blogs e revistas que costumo consumir, artefatos que vejo pela rua ou mesmo em filmes ou simplesmente sobre coisas que resolvo testar.

Sou aficionado por computação, programação e segurança da informação, portanto farei muitos posts sobre estes assuntos. Gosto também de filosofia, música, poesia, basquete, empreendedorismo, economia, organização pessoal, etc.

Comentários e criticas são bem vindos, contatos serão respondidos o mais breve possível.

Até já,