28 de dez. de 2018

Configurando o Apache

0 comentários
  • Desabilitando acesso aos diretórios e links simbolicos:
  • Edite o arquivo /etc/apache2/apache2.conf (Debian/Ubuntu):
    <Directory /var/www/zeldani/>
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>
    E mude para:
    <Directory /var/www/zeldani/>
            Options -Indexes
            Options -FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>
    Depois reinicie o Apache: $ sudo service apache2 restart
    • Escondendo a versão do Apache e OS:
    Quando instalamos o Apache, ele mostra a versão do servidor, sistema operacional e informações sobre os módulos nas páginas de Erro. Para esconder esses detalhes, edite o arquivo de configuração:
    $ sudo vim /etc/apache2/apache2.conf 
    Adicione as linhas:
    ServerSignature Off
    ServerTokens Prod
    
    E reinicie o Apache.

    10 de jul. de 2017

    Exploring the Buffer

    0 comentários
    * Warning: My english sux. 
    "Computers, in a slightly schizoid fashion, work in base 2 and base 16 - all the same time." - Jeff Duntemann
    The natural way to find any program vulnerability is disassembling it so we need to know this weird base 16 number system also some assembly. If you don't have any knowledge about it you can keep reading otherwise just skip this intro. 

    Basic of Hexadecimal:
    Base 16 or Hexadecimal number system has 16 digits so 6 additional digits are added in the form of A-F. This makes hex extremely useful for representing binary data. One digit of hex is equal to one nibble or 4 bits of data. Two hex digits are equal to a byte or 8 bits. Four hex digits are equal to a 32 bit word. Eight hex digits are equal to a 64 bit word. You can see from the following chart of counting with hexadecimal(HEX) decimal(DEC) and binary(BINARY) values what is going on:

    HEX   DEC   BINARY       HEX   DEC   BINARY       HEX  DEC   BINARY
    ----  ----  ----------   ----  ----  ----------   ---- ----  ----------
    0x00  (00)  (00000000)   0x10  (16)  (00010000)   0x20 (32)  (00100000)
    0x01  (01)  (00000001)   0x11  (17)  (00010001)   0x21 (33)  (00100001)
    0x02  (02)  (00000010)   0x12  (18)  (00010010)   0x22 (34)  (00100010)
    0x03  (03)  (00000011)   0x13  (19)  (00010011)   0x23 (35)  (00100011)
    0x04  (04)  (00000100)   0x14  (20)  (00010100)   0x24 (36)  (00100100)
    0x05  (05)  (00000101)   0x15  (21)  (00010101)   0x25 (37)  (00100101)
    0x06  (06)  (00000110)   0x16  (22)  (00010110)   0x26 (38)  (00100110)
    0x07  (07)  (00000111)   0x17  (23)  (00010111)   0x27 (39)  (00100111)
    0x08  (08)  (00001000)   0x18  (24)  (00011000)   0x28 (40)  (00101000)
    0x09  (09)  (00001001)   0x19  (25)  (00011001)   0x29 (41)  (00101001)
    0x0A  (10)  (00001010)   0x1A  (26)  (00011010)   0x2A (42)  (00101010)
    0x0B  (11)  (00001011)   0x1B  (27)  (00011011)   0x2B (43)  (00101011)
    0x0C  (12)  (00001100)   0x1C  (28)  (00011100)   0x2C (44)  (00101100)
    0x0D  (13)  (00001101)   0x1D  (29)  (00011101)   0x2D (45)  (00101101)
    0x0E  (14)  (00001110)   0x1E  (30)  (00011110)   0x2E (46)  (00101110)
    0x0F  (15)  (00001111)   0x1F  (31)  (00011111)   0x2F (47)  (00101111)

    For a byte this chart would continue until it reached 0xFF  (255) (1111 1111) 255 is the largest number that can be represented with a byte.

    22 de fev. de 2017

    Eggdrops - Criando scripts Tcl

    0 comentários
    Um Eggdrop é um dos IRC bots mais populares escrito em C, open source e roda em ambientes unix. Suas funcionalidades incluem: suporte a vários canais e scripts ou módulos Tcl, permitindo que você inclua novas funções ao seu bot.
    • O que é um IRC bot:
    É um programa que controla 24h os canais do IRC (Internet Relay Chat), que é uma rede onde vários servidores são conectados uns aos outros. Os clientes IRC usam o protocolo RFC1459 para enviar comandos ao servidor. O bot serve para proteger o canal contra abusos, gravar logs, hospedar jogos, etc. Bastante útil em redes IRC onde não existe o ChanServ, evitando que o canal seja removido quando não há ninguém nele ou que alguém tome posse do canal.
    • Instalando um Eggdrop:
    Primeiro você vai precisar de uma conta shell, que nada mais é do que uma conta em um servidor unix remoto que dá acesso a uma shell pela linha de comando, via telnet ou ssh. A maioria das contas shells são pagas, mas existem algumas gratuítas como: Bitcoin Shell (owne jogando Pong!), xShellz ou aShellz

    1) Logue-se em sua conta shell e digite:
    $ wget http://ftp.eggheads.org/pub/eggdrop/source/1.8/eggdrop-1.8.0.tar.gz
    2) Descompacte e acesso o novo diretório.
    $ tar -zxvf eggdrop-1.8.0.tar.gz 
    $ cd eggdrop-1.8.0
    3) Configure seu eggdrop.
    $ ./configure
    4) Depois compile todos os módulos (opcional) e gere o eggdrop.
    # make config
    # make && make install
    5) Configure seu eggdrop:
    # vim eggdrop.conf
    * Para configurar, leia os comentários que está tudo explicado passo a passo. :)
    6) Mude o nome do seu arquivo de configuração para o nome do seu bot:
    # mv eggdrop.conf pikachu.conf
    7) Execute seu eggdrop.
    ./eggdrop -m pikachu.conf

    13 de out. de 2016

    Python - Revertendo bytecodes

    0 comentários
    Caso você precise recuperar um arquivo .py de um .pyc uma boa opção é usar o Decompyle++, que reverte os bytecodes compilados à um código python legível por humanos. 

    • Instalando o Decompyle++:
    1) Primeiro precisamos instalar o cmake:
    $ wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
    $ tar xzvf cmake-2.8.12.2.tar.gz
    $ cd cmake-2.8.10.2
    $ ./bootstrap
    $ make
    # make install

    2) Faça o download do Decompile++ e compile:
    $ git clone git@github.com:zrax/pycdc.git
    $ cd pycdc
    $ /usr/local/bin/cmake ../pycdc/
    $ make

    • Recuperando o arquivo .py original:
    $ ./pycdc dicionario.pyc > dicionario.py

    16 de set. de 2016

    Enviando Emails Criptografados usando o PGP

    0 comentários
        Nesse artigo fiz um passo a passo de como enviar emails criptografados usando o PGP no Linux (debian). ;)
    • Criando o seu par de chaves:
    1) Instale o GnuPG com o comando: $ sudo apt-get install gnupg2
    2) Gere o par de chaves (público e privada): $ gpg –gen-key
    3) Selecione a opção: 1 (RSA)
    4) Por segurança, use 4096 bits.
    5) Depois escolha se as chaves vão expirar, se sim informe a data.
    6) Informe o seu nome, email e comentário.
    7) Informe a sua senha.
    8) Hora da Entropia!!! Movimente o seu mouse, aperte teclas aleatórias, rode o seu loop bugado infinito, etc.
    9) Pronto, agora vc possui seu belo par de chaves.
    10) Gere o certificado de revogação do seu par de chaves:
    $ gpg -o zeldani-rev-cert.asc --gen-revoke
    1C644907
        
       O certificado de revogação serve para quando você esquece sua senha ou perde a chave privada e precisa informar aos seus destinatários que sua chave foi desativada. Sem a senha ou chave privada os servidores PGP não permitem a revogação de suas chaves, a não ser que voce tenha em mãos o certificado de revogação, pois ao ser publicado ele automaticamente revoga seu par de chaves!

    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.