28 de mar. de 2016

Writeup - Brazilian Protests:

0 comentários
    Nesse fds teve o CTF do Pwn2win, onde participei com a nosso time GAROA HC ficando em 28 posição!! 
    Uma das challenges que achei bem interesante foi a "Brazilian Protests". A proposta era encontrar a mensagem secreta em uma foto da nossa presidente:


    Usando o comando file, podemos ver que a imagem está no formato tiff:
$ file par.jpg
par.jpg: TIFF image data, little-endian

2 de mar. de 2016

XenServer - Importando e Exportando VMs

0 comentários
Nesse artigo vou falar como exportar e importar uma vm do Citrix Xenserver via USB.

1) Primeiro temos que determinar o dispositivo USB a ser usado para exportar a vm:
# fdisk -l
   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1   *           1      121601   976760000+   7  HPFS/NTFS

 

2) Depois  é preciso criar um ponto de montagem e montar o drive USB:
# mkdir /mnt/usb
# mount -v /dev/sdd1 /mnt/usb

 

3) Formatando o dispositivo:
# mkfs –t ext3 /dev/sdd1
 

4) Exportando:
Para listar as vms e assim obter o uuid ou nome da vm a ser exportada:
# xe vm-list
uuid ( RO)           : ef30f232-8306-6614-b19f-40843884411e
     name-label ( RW): KALI01
    power-state ( RO): halted

13 de dez. de 2015

Esteganografia - A arte de ocultar Informações

0 comentários
Criptografia é a arte de escrever mensagens ilegíveis. Esteganografia é um tipo especial de criptografia.. É a arte de esconder mensagens de forma imperceptível. Na era da informação, ela consiste em substituir os bits de dados menos significativos no arquivo original por bits de dados escondidos. A esteganografia é útil quando a criptografia é proibida.

Os objetivos da esteganografia incluem: 1. segurança (se o dado é perceptível aos outros); 2. capacidade (quantidade de dados a ser escondida). Quanto mais dados a serem escondidos mais perceptível ela se torna. Temos também um terceiro objetivo, a robustez (utiliza maior quantidade de dados, o que difere da esteganografia sendo usado como marca d'agua).

As principais falhas da esteganografia são: 1. detecção (quando o dado é detectado, acabou-se a brincadeira); 2. extração (pode ser dificultada criptografando os dados); 3. destruição (manter a integridade dos dados escondidos sem danificar o arquivo).

E temos 3 níveis de percepção: 1. indistinguíveis; 2. pode ver/ouvir a distorção ao olhar/ouvir atentamente para ele; 3. bastante óbvio para o observador.

12 de out. de 2015

Revertendo a base64

1 comentários
A codificação base64 é usada para transmitir dados binários por meios de transmissão que lidam somente com texto, como por exemplo o protocolo SMTP ou o próprio HTTP que foi projetado para transferir textos ASCII, assim como imagens (que são convertidas em texto ASCII).

As conexões TCP suportam transmissão de bytes com 8 bits. Os dados do protocolo SMTP são caracteres ASCII de 7 bits, onde cada caractere é transmitido como um byte de 8 bits com o bit mais significativo zerado. No entanto, o protocolo SMTP interpreta o octeto 998 ou o caractere '.' como sendo uma nova linha, podendo gerar danos aos arquivos que contenham essa sequência de octetos. Assim, a conversão de bytes para ASCII tem sido bastante útil.

Conversão:
Na conversão da base64 o arquivo é dividido em bytes de 6 bits gerando 64 (0...63) possíveis valores, que são representados pelos caracteres: [A-Z] para (0-25)[a-z] para (26-51)[0-9] para (52-61)'+' para 62, '/' para 63 e '=' para adição, dando origem ao seu nome. A codificação da base64 não deve ser confundida com criptografia pois ela não garante nenhuma segurança.

5 de out. de 2015

Linux para desenvolvedores

0 comentários
A origem:
O Linux surgiu em 1991 quando o finlandês Linus Torvalds resolveu criar um novo núcleo de sistema operacional.

Mas e o tal do "Pinguim, pinguim, pinguim!!!" ? O famoso mascote surgiu em 96 na lista de discussão do Linux-Kernel. Alguns sugeriram tubarões e águias mas Torvalds entrou no meio e mencionou que gostava de pinguins. Então surgiu um concurso onde o desenho de Larry Ewing foi eleito recebendo o nome de Tux, de origem controversa na qual alguns afirmam que é devido ao termo "tuxedo" (roupa tipo "smoking") e outros dizem que é o nome de seu criador Torvalds Unix.

Instalação:
Após escolher a sua distro favorita (elementary OS, openSUSE, Debian, Bieber LinuxUbuntuUbuntu MATE, Arch Linux, Kali Linux, etc) é só fazer o download da .iso e nnf!!

Ambientes gráficos:
Assim como o Windows, o Linux possui uma variedade de ambientes gráficos (sim várias janelas) como: GNOME, Cinnamon, Xfce, KDEUnity, entre outros.

27 de set. de 2015

Python - Hashlib e HMAC

0 comentários
O HMAC (Hash-base Message Authentication Code) é usado para verificar a integridade de informações e arquivos. Mecanismos que verificam a integridade baseados em uma chave secreta são usualmente chamados de MAC (message authentication codes), baseados em 2 partes que compartilham 2 chaves secretas para validar a informação transmitida. O HMAC usa uma variedade de algoritmos como: MD5, SHA1, SHA256, RIPEMD-128/160, entre outros.

exemplo_hmac.py:
import hmac
import hashlib
# o hmac.new possui 3 argumentos: chave, msg e o modulo do hash
gerar_resumo=hmac.new('chave_secreta','',hashlib.md5)
f=open('arquivo.txt','rb')
try:
    while True:
        bloco=f.read(1024)
        if not bloco:
           break
        gerar_resumo.update(bloco)
finally:
    f.close()
resumo=gerar_resumo.hexdigest()
print resumo

14 de jul. de 2015

HTTP Proxy em Python

0 comentários
O proxy age como intermediário entre o servidor local e requisições da internet, facilitando a nagevagação, controlando o acesso e fornecendo anonimato.
  • Criando um HTTP Proxy:
Nesse proxy, vamos criar uma função start() para fazer conexão entre o navegador e o servidor web.
import socket, sys, thread, httplib, re
def start():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind(('', 8001))
        s.listen(10)
        print "[+] Ouvindo as conexoes..."
    except Exception, e:
        print "[-] Nao foi possivel iniciar o socket. :("
        sys.exit(3)
    while True:
        try:
            conn, addr = s.accept()
            data = conn.recv(4096)
            thread.start_new_thread(conn_string, (conn, addr, data))
        except KeyboardInterrupt:
            s.close()
            print "\n[-] Servidor Proxy finalizando..."
            print "[-] Saindo...\n"
            sys.exit(1)

30 de mai. de 2015

Edgar Allan Poe e Criptografia

1 comentários
"dizemos novamente deliberadamente que o engenho humano não pode inventar uma cifra que o engenho humano não possa resolver." - Edgar Allan Poe

Edgar Allan Poe (1809-1849), foi um autor, poeta, editor e crítico literário americano. Exerceu grande influência em autores como Baudelaire e Dostoievski. Poe, um dos autores de maior destaque dos contos de horror era fascinado pela criptografia. 

Durante a I Guerra Mundial, Edgar Allan Poe propôs um desafio em dezembro de 1839 na Alexander's Weekly Messenger, uma revista sobre literatura da Filadélfia, afirmando que ele poderia resolver qualquer cifra de substituição simples que for submetido à ele pelos leitores. 
Uma cifra por substituição simples consiste em um método de encriptação na qual unidades do texto plano são substituídas pelo texto cifrado. As unidades podem ser: uma letra, pares de letras, uma mistura de tudo, e assim por diante. Uma cifra por substituição simples é baseada em somente um alfabeto.