– root@injetionsec:~#

Gerar senhas no linux

25.02.2016 (4:05 pm) – Filed under: Linux ::

Galera segue uma dica para quem  quer gerar senhas no linux, vejo o comando.]

random

r00t@lab:~$ cat /dev/urandom|tr -dc “A-Za-z0-9-_\$\?”|fold -w 20|head
..
Você pode usar o while e for para gerar quantas senhas randômicas quiserem, perceba que podemos aumentar o tamanho dos caracteres pelo : “fold -w [nº de caracteres]”.
..
r00t@lab:~$ for ((i=1; i <= 5; i++)); do cat /dev/urandom|tr -dc “A-Za-z0-9-_\$\?”|fold -w 20|head ; done
..
r00t@lab:~$ while [ 1 ]; do cat /dev/urandom|tr -dc “A-Za-z0-9-_\$\?”|fold -w 20|head ; done

Inté 😉

 

Referências
https://www.facepunch.com/threads/1005690
https://docs.meshwith.me/notes/cryptography.html
http://dev-loki.blogspot.com.br/2010/02/generate-moderately-secure-random.html https://www.reddit.com/r/ProgrammerHumor/comments/41r5wm/has_satan_infected_your_blocking_pseudorandom/

Usando o wget

16.10.2015 (6:06 pm) – Filed under: Linux ::

Estava navegando na deep web a alguns dias e vi a necessidade de fazer alguns downloads de arquivos em “.pdf” via wget, mas estava com alguns problemas estava me retornando erro 503 “503 service unavailable”  veja á imagem e as possíveis causas:

errr00o

– Pode ser causado por alguma restrições de largura de banda do servidores que hospedam os sites .onion por impor uma limitação para download máximo dos arquivos, torna-se difícil de fazer o download.
– Pode ser problema de proxy(você deve entrar em contato com o administrador do site, ou desativar o uso de um proxy)[1]
– Se o site remoto não aceitar proxy pode tentar o seguinte comando:
______ root@kali:~# wget –no-proxy www.site.com/9yyrh.rar
– Talvez o servidor devido a vários pedidos pode gerar uma sobrecarga temporária ou esta em manutenção do servidor
– Servidor pode ter alguma proteção contra DDoS como CloudFlare, nesse caso você pode acessar esse link[2] é ver os comentários que a galera faz sobre.

A solução que encontrei para o meu problema é forçar o wget baixar arquivos em um ritmo mais lento, isso deve ser feito usando a opção -w[3], que por padrão tem um argumento em segundos (você também pode especificar minutos). Se os arquivos não são grandes pode especificar entre 40-60 segundos por arquivo que devera ser o suficiente.

Dependendo do argumento que passar o download pode levar várias horas; caso tenha um grande número de arquivos escolha um intervalo ponderado, para que não exceda o limite de largura de banda do servidor. No meu caso o que funcionou foi o seguinte comando.

wget -r -np -w 5 -A “.pdf” http://www.site.com/eletronic/

 

Referências
[1]http://askubuntu.com/questions/283394/why-does-wget-fail-with-503-service-unavailable-error
[2]http://superuser.com/questions/888507/problems-with-wget-to-a-cloudflare-hosted-site-503-service-unavailable
[3]http://www.gnu.org/software/wget/manual/html_node/Download-Options.html
http://ubuntuforums.org/showthread.php?t=884447
http://www.gnu.org/software/wget/manual/html_node/Recursive-Download.html

Permutando usando python, sed e awk

08.09.2015 (5:00 pm) – Filed under: Linux ::

Estava querendo gerar uma lista de possíveis permutações de user/pass em um  pentest que estava fazendo, como meu nível de programação e básico-intermediário, resolvi pesquisar, achei interessante uma abordagem em python

per1

mas á saída desse simples script gera:

per2

Agora é simples usarei o sed e o awk (é claro que demorou um pouco..heheh), mas nada que algumas pesquisas que me gerou  dúvidas não esclareceram, vamos ao comando enorme.

per3

A saída do novo arquivo é mostrado abaixo

per4

Meio que um “recurso técnico” quando se quer algo rápido e não entende tão bem de programação ..ehheheh

Referências/Leitura recomendada
http://stackoverflow.com/questions/8306654/finding-all-possible-permutations-of-a-given-string-in-python
http://sed.sourceforge.net/sed1line_pt-BR.html
http://www.sos-admins.com/programacao/bash/bash-retirar-linhas-em-branco
http://pt.stackoverflow.com/questions/27245/como-adicionar-quebra-de-linha-usando-sed
http://aurelio.net/sed/sed-HOWTO/sed-HOWTO-7.html
http://www.sos-admins.com/programacao/bash/bash-retirar-linhas-em-branco

O que é o bit SUID

28.07.2015 (5:34 pm) – Filed under: Linux ::

Temos algumas permissões de arquivo adicionais como o bit SUID,SGID e sticky.

puis3_0603

 

O bit SUID

Se você estiver escrevendo programas que são SUID ou SGID , você deve tomar precauções adicionais, temos varias problemas de (in)seguraça por parte desse tipo de permissão, devemos considerar algumas coisas, um programa que estiver com bit SUID e que pertence a root rodara como usuário root. Podemos pensar no seguinte exemplo, gerando uma subshell a partir de um programa SUID, podemos usar um editor qualquer, nesse caso iremos usar o nano.

O editor nano permite que você emita um comando para criar um subshell enquanto estiver no editor,sabemos entao que todo que todo subprocesso herda o contexto e permissões do seu processo anterior, se o editor nano esta com bit SUID podemos entao gerar um subprocesso do shell com a mesma permissão de usuário root.

Ataque:

Um invasor pode explorar essa inseguraça usando um shell script ou fornecendo dados falsos, um exemplo simples jose quer executar o seguinte arquivo em “/home/documentos/user_pass.txt”, temos as seguintes permissões do arquivo “user_pass.txt” e o editor nano:

-rwxr-xr-x 1 root root 153516 2009-03-30 16:57 /bin/nano
-rw——- 1 root root 167 2009-03-30 16:57 /home/documentos/user_pass.tx

jose tem somente a permissão para executar “/bin/nano”, mas não tem permissão para ler o “/home/documentos/user_pass.tx”, se você tentar ler o arquivo não ira ter permissões, mas com a simples mudança definindo o bit SUID do editor nano:

chmod u+s /bin/nano

Podemos ver agora o conteúdo do arquivo  arquivo em “/home/documentos/user_pass.tx”

Fonte:
http://docstore.mik.ua/orelly/other/puis3rd/0596003234_puis3-chp-6-sect-5.html
http://cs.wellesley.edu/~cs342/fall08/handouts/06_more_linux_exploits.pdf
http://pen-testing.sans.org/resources/papers/gcih/discovering-local-suid-exploit-105447
http://lists.gnu.org/archive/html/bug-gnulib/2009-06/msg00042.html
http://docstore.mik.ua/orelly/networking/puis/ch23_04.htm
https://nixshell.wordpress.com/2007/04/21/suid-shell-scripts-setting-the-sticky-bit/
http://www.cyberciti.biz/faq/unix-bsd-linux-setuid-file/

PDFs Linux Security/Admin Guide

07.07.2015 (8:47 pm) – Filed under: Linux ::

 

Compartilhando alguns .pdf que achei interessante

Linux Security Quick Reference Guide | | LINUX Admin Quick Reference

=)

Hierarquia de diretório do linux

07.07.2015 (7:03 pm) – Filed under: Linux ::

Achei interessante compartilhar a hierarquia de diretório do linux que encontrei nesse site, veja o .pdf

Fonte: http://www.blackmoreops.com/

Expressões regulares grep e sed

26.06.2015 (1:49 am) – Filed under: Linux ::

Expressão regular: é um método formal de se especificar um padrão de texto á ser procurado em um ou mais arquivos, é uma composição de caracteres com funções especiais(meta caracteres) que são agrupados entre si com caracteres literais (de A á Z) e números, as expressões regulares são úteis para validar texto e variais; alguns exemplos como : ips,e-mail,dados em colunas,cnpj,rg e etc.

O comando grep é muito utilizado no dia a dia em tarefas no linux, ele filtra as linhas de um determinado arquivo procurando as expressões regulares como padrão

root@test:~# grep [opcao] [expressoa regular][arquivos]

Suas opções são :

-c : mostra somente a contagem das ocorrências nos arquivos e não as linhas onde as ocorrências foram encontradas
-h : mostra somente as linhas encontradas sem indicação do nome dos arquivos
-i : procura as ocorrências ignorando se as letras estão em maiúsculas ou minúsculas
-v : mostra todas as opções dos arquivos procuradas menos as ocorrências encontradas
-n : mostra alem dos textos encontrados o numero de linhas
-B [n]: mostra n linhas antes da linha encontrada
-A [n]: mostra n linhas depois da linha encontrada

expressão:
‘^[palavra]’ : procura linhas começadas com a letra
‘[palavra]$’: procura linhas terminadas com a letra
‘^[aeiou]’: procura qualquer linha que começem com qualquer vogal
‘^.[aeiou]’: fara com grep procura qualquer caractere que comece com qualquer vogal e o [aeiou] significa o segundo ponto
‘[0-9][0-9][0-9][0-9]’ : procura uma linha que contem uma sequencia de intervalos consecutivos de numero

O comando sed é um editor de texto simples,utilizado para editar pequenos arquivos, ele recebe um ou mais arquivos passados como argumento na linha de comando e transforma enviando para saida padrão

root@test:~# sed [opcao]{script}[arquivo]

‘ : as aspas simples são utilizadas para delimitar o texto dentro delas como um caractere literal
” : as aspas dupla são utilizadas para delimitar o texto dentro delas como caractere literais exceto os sinais “$” e “\”
[aeiou]: uma sequencia de caractere dentro de colchetes e interpretadas coomo todos os caracteres são validos para a busca
[a-z] : qualquer caractere entre a letra a e z são validos
[0-9]: qualquer numero entre 0 e 9 são validos
[^abc]: qualquer caractere e valido menos as letras a,b,c
/palavra/ : indica que a palavra a ser buscada deve ser separada por um espaço tanto na esquerda quanto na direita
. : o ponto final indica qualquer caractere menos uma linha em branco

=)

Usando find em arquivos e diretórios

03.04.2015 (2:23 pm) – Filed under: Linux ::

› Pesquisando arquivos com permissão octal 0666
root@debian:~# find . -perm 0666 -type f -exec ls -l {} \;

› Pesquisando arquivos executáveis no diretorio Download/programas:
root@debian:~# find /Download/programas -executable -type f -exec ls –color {} \;

› Pesquisar os 10 maiores arquivos no diretório /usr/bin, incluindo seus subdiretórios
root@debian:~# find /usr/bin/ -type f -exec ls -s {} \; | sort -n -r | head -10

› Vamos acrescentar o bit SGID aos diretórios embaixo do diretorio /home
root@debian:~# find /home/* -type d -exec chmod g+s ‘{}’ \;

› Remover todos os arquivos em /home que terminem com .tmp
root@debian:~# find /home -type f -name ‘*.tmp’ -exec rm -f ‘{}’ \;

› Pesquisando no diretorio atual
root@debian:~# find . -name new_file.txt

› Pesquisando no diretorio atual letras maiuscula e minusculas
root@debian:~# find . -iname new_file.txt

› Pesquisando no diretório raiz
root@debian:~# find / -iname new_file.txt

› Pesquisando arquivos com modificações feitas nos últimos 3 dias
root@debian:~# find /home/ -mtime -3

› Pesquisando arquivos e executando comandos simultaniamente com “-exec” , vamos procura arquivos com tamanho igual a 3M (na pasta /home/imagens) e copiar o resultado encontrado para pasta /home/Download/ simultaneamente:
root@debian:~# find /home/imagens/ -size 3M -exec cp {} /home/Download/ \;

› Pesquisando o arquivo “new_file.txt”, ignorando letras minúsculas ou maiúsculas, e ainda executa o programa md5sum em cada um deles.
root@debian:~# find -iname “new_file.txt” -exec md5sum {} \;

› Pesquisando arquivos com permissão de leitura para um grupo
root@debian:~# find . -perm -g=r -type f -exec ls -l {} \;

› Pesquisando diretórios pelo nome
root@debian:~# find / -type d -name /Download/filmes

› Pesquisando arquivos com todas extensões .jpge
root@debian:~# find / -type f -name “*.jpge”

› Pesquisando arquivos com tamanho superior a 1GB
root@debian:~# find /opt/ -size +1G

› Pesquisando arquivos de tamanho inferior a 500MB
root@debian:~# find /opt/ -size -500M

Para mais informações você pode consultar o manual do fin (man find) para saber mais comandos.

T+ galera

Sistema de Boot, Shutdown e Runlevels

15.03.2015 (2:20 pm) – Filed under: Linux ::

Esses níveis no sistema linux e muito utilizado para administração,reparo e outras tarefas executadas em processos no sistema em si.

runlevels

nivel 0 : e um nivel de desligamento rapido do sistema
nivel 1 : mono usuario e utilizado para manutenção do sistema quando a situação esta critica
nivel 2 : multi-usuario com compartilhamento de NFS desabilitado
nivel 3 : multi-usuario com todos os serviços abilitados, não carrega a interface grafica como X windows para login do usuario
nivel 4 : não e utilizado
nivel 5 : e utilizado com todos os serviços abilitados e todos o X11 e login ativados
nivel 6 : esse dara um reboot no sistema

quando o linux inicia uma serie de scripts no diretorio “/etc/rc.d” são executados para dar uma carga no sistemas,o “rc.local” e utilizado para
modificarem a carga do sistemar e utilizado para fazer transição entre runlevels “/etc/rc.d/init.d” ele que faz a carga de todos os serviços do
sistema, os niveis de serviço saõ definidos atravez dos diretorios “/etc/rc<n>.d” onde esse <n> pode variar de 0 a 6 e dentro de cada runlevels
tem um link simbolico para os servicos do /etc/rc.d/init.d

Os links simbolicos seguem o seguinte padrão:

[K|S] nn [nomedoscript]

K: indica que um determinado serviço deve terminar
S: indica que um determinado serviço deve carregar
nn : indica a seguencia de execução do script,onde o menor numero e indicado como sendo o primeiro a ser executado
[nomedoscript]: facilita para leitura do script

/etc/rc.d/rc.sysinit // processos basicos do sistemas como montagem de disco,executando o init,processos
_____|
_____|
/etc/rc.d/rc.local // onde o admin pode alterar alguns serviços de cargas, e n e alterado qd e feito update/upgrade
_____|
_____|
/etc/rc.d/rc // o rc e utilizado para fazer a transição dos runlevels
_____|
_____|
/etc/init.d // logo depois o link simbolico tera diversos scripts de daemons rc1.d,rc2.d,rc3.d
O arquivo que define qual o runlevel que o sistema assumira durante a carga do sistema e o /etc/inittab,neste arquivo procuramos a seguinte linha

id:n:initdefault

Onde o n sera o numero de runlevel de 0 a 6

O comando shutdown e utilizado para desligar ou reiniciar o sistema com determinados horarios durante o procedimento,veja abaixo a sintaxe:

#shutdown [opções] horário [mensagem]

suas opções :
– r : reinicia a maquina
– h : paralisa o sistema e depois termina a sequencia de desligamento
– k : manda mensagem de desligamento
– f : faz a carga rapida do sistema com checagem de disco
– F : força a chegagem de disco qd for reniciar o sistema

 

=)

Eliminando,executando e gerenciando processos

05.03.2015 (2:58 pm) – Filed under: Linux ::

Bem galera explicar um pouco dos comando usados para execução,gerenciamento e eliminação de processos no linux, muito útil em diversas tarefas, sem blá,blá …

Os 5 sinais que devemos saber do kernel para tomar algumas ações são :

HUP 1 – e utilizado por servidores para re-leitura do arquivo de configuração, terminal fecha/desliga
INIT 2 – Interrompe o processo,utilizamos a tecla ctrl + c
KILL 9 – termina o processo rapidamente de forma drástica,ele pode deixar os arquivos abertos ou corrompidos,evite usa-lo
TERM 15 – termina o processo elegante
TSTP 18 – termina a execução para continuarmos depois,a grosso modo congelamos quando utilizamos a tecla ctrl + z

Podemos colocar o processo em segundo plano colocando no final do comando o caractere “&” .

>>> Prioridades de execução

* quanto mais for a PRIORIDADE mais tempo de CPU o processo tem e e mais importante ele é.
* quanto menos for MENOR prioridade menos tempo de CPU o processo tem e menos importante ele é.

O comando ps gera todos os processo com uma lista de execução e seus atributos

root@debian:~$ ps [opção]

Opção são:

-a = mostra o processo de todos os usuários
-u = lista de processos e donos dos processos os usuários e o percentual de cpu,memoria utilizados pelo processo
-x = mostra uma lista de processos que não tem terminal associado a ele,utilizado em servidores(daemos”segundo plano”)
-f = mostra processo em forma de arvore, e bom para identificarmos os processos pais e filhos

Comando pstree gera uma arvore de processos e bom para intendermos a hieraquia dos processos

root@debian:~$ pstree [opção] [pid/usuario]

Suas opções são:

-a = linha de comando
-c = desabilita a função de mesclar os processos no mesmo nível de hierarquia
-G = utiliza o formato VT100 , com caractere mais bonitos
-h = destaca os processos, quais o processos que estão em primeiro plano ou segundo plano
-p = inclui o PID dos processos

Comando top mostra todos os processos em execução e fica sempre em atualização, e bom para monitoramento ordenando os processos e também consome o uso da cpu,use quando necessário

root@debian:~$ top [opção]

Suas opção são:

-b = arquivo de lote e bom para direcionar em outro arquivo
-d [n] = determina o tempo de vezes que as atualização são feita
-n [n] = mostra o numero de vezes que as atualizações são feita,seria eu quero que o top atualize 4 vezes e saia
-q = executa as atualizações em tempo real
-u = monitora os processos daquele usuário
-p = monitora a um determinado processo identificado pelo PID

Apos o comando top estiver em execução podemo utilizar as seguintes opções

Z = muda o esquema de cores, para quem suporte a ANSI
F = add colunas
u = mostra os processos de um determinado usuário
k = termina (kill) um processo
r = muda a prioridade do processo (renice)
R = muda as cores dos processos de acordo com a utilização da CPU
q = sai do modo interativo do top

Comando kill e para enviar sinais,e geralmente utilizado para terminar um processo itendificado pelo seu PID

root@debian:~$ kill [-sinal] PID

Comando killall vai enviar todo o sinal a todos os processo não usa o PID e sim o nome do processo e utilizado mais para enviar sinal a mais de um processo no caso os processos filhos

root@debian:~$ killall [-sinal] [nome do processo]

Comando jobs lista os processos que estão em execução em segundo plano,no caso se você fornecer somente o numero da tarefa sera então listado somento aquele valor que forneceu

root@debian:~$ jobs [opção] [numero da tarefa]

O comando bg coloca o processo em segundo plano um processo que ja esteja em execução, colocando o caractere “&” funciona da mesma forma

root@debian:~$ bg [numero da tarefa]

O comando bg coloca o processo em segundo plano

root@debian:~$ fg [numero da tarefa]

O comando fg faz o contrario do comando bg ele coloca o processo no em primeiro plano

root@debian:~$ nice [-n ajuste de prioridade] [comando]

O comando nice ele ajusta o tempo de CPU de um processo para mais ou menos prioridade

~> Uma dica lembrando : nice significa “legal” ou seja se o processo tiver prioridade positiva quer dizer que ele e legal com os outros processos diminuindo assim a prioridade dos outros programas, caso o ajuste for negativo e o programa esta sendo menos legal e aumento a prioridade de execução e aumentando a consumo de CPU.

Comando renice ajusta a prioridade de execução dos processos que ja estejam rodando,esse ajuste vai de -20(maior prioridade) ate +20 (menor prioridade)

root@debian:~$ renice [+/-] ajuste de prioridade [opção] PID/usuario

Suas opções são
-p = recebe o PID
-u = recebe o nome de usuário para alterar a prioridade de um determinado usuário
-g = recebe um nome de um grupo para determinar a prioridade para os mesmo

até + galera … =)