githubEditar

Linux

1. Fundamentos Essenciais de Bash

Histórico e atalhos

  • !! → repete o último comando.

  • !$ → último argumento do último comando.

  • !* → todos os argumentos do último comando.

  • !^ → primeiro argumento do último comando.

mkdir /tmp/test; cd !$   # cria diretório e entra nele

Expansão de chaves

  • {1..5} → gera 1 2 3 4 5.

  • {a,b,c} → gera a b c.

for i in {1..3}; do touch file$i.txt; done

Substituição de processo

Permite tratar a saída de um comando como se fosse arquivo.

diff <(ls dir1) <(ls dir2)

Criar vários arquivos, dentro de uma pasta

touch cmd/{root,completion,interactive,version}.go


2. Manipulação de Texto

grep

  • Buscar recursivo: grep -RIn "pattern" dir

  • Somente match: grep -oE 'https?://[^ ]+' file

sed

  • Substituir globalmente: sed -i 's/foo/bar/g' file

  • Deletar linhas com padrão: sed -i '/DEBUG/d' logfile

awk

  • Extrair colunas:

  • Somatório:

cut, sort, uniq, column

👉 Insight: essa cadeia (sort | uniq -c | sort -nr) é o padrão ouro para descobrir “Top-N mais frequentes”.


3. Localizar Arquivos

find

  • Compressão em massa:

  • Hash de todos os arquivos (NUL-safe):

Regex no find

👉 Insight: prefira -exec {} + a -exec {} \; para performance.


4. Loops Úteis

Loop de rede (/24)

Loop NUL-safe


5. Rede e Netcat

Inspeção de rede

Netcat (variações)

/dev/tcp

👉 Insight: muitos EDRs monitoram /dev/tcp — red teamers usam, blue teamers caçam.


6. SSH Avançado

Encadeamentos

Transferência rápida sem scp


7. OPSEC (sem rastros)

Bash history

Outros históricos

  • ~/.wget-hsts

  • ~/.psql_history

  • ~/.viminfo

👉 Insight: blue teams monitoram deleção de histórico como IOC.


8. Servidores Rápidos

Tip: alias pastebin rápido:


9. Reverse Shells

Bash puro

FIFO Trick

Ncat com TLS


10. Upgrade de TTY

👉 Insight: essencial para usar su, ssh dentro de shell limitada.


11. Engenharia Reversa / Binários

Dumpar seção .text em bytes escapados

Alternativa com hexdump


12. SQL Injection (didático)

Exemplo básico

Brute force substrings com curl

👉 Blue tip: procurar UNION SELECT, information_schema, uso de substr ou sleep() em logs.


One Liners

0) Filosofia do fluxo — Up, edit, enter, repeat

Ideia: repita o ciclo incremental até chegar ao resultado. Exemplo:

Pareto 80/20: dominar pipes + 5 utilitários (grep, sed, awk, sort, cut) resolve a maioria das tarefas.


1) Fundamentos (que multiplicam poder)

  • Pipes & Redireções: cmd1 | cmd2 (saída → entrada), >, >>, <, 2>, &>.

  • Descritores: &0 (stdin), &1 (stdout), &2 (stderr), &n (custom). Ex.: exec 3<>/dev/tcp/10.1.1.1/80; echo -e "GET / HTTP/1.0\n" >&3; cat <&3 (HTTP manual via /dev/tcp).

  • Substituição de comando: $(...) — ex.: diff <(cmdA) <(cmdB) (substituição de processo cria pseudo‑arquivo).

  • Expansão de chaves: {1..10}, {a,b,c} — ótimo para loops e nomes.

  • Expansão de til: ~ (home), ~user (home de user), ~+ ($PWD), ~- ($OLDPWD).

  • Quoting correto: "$var" para evitar word splitting/globbing acidental.

  • NUL‑safety: find -print0 | xargs -0 ... (lida com nomes com espaço/\n).

  • História inteligente: !$ (último argumento), !! (último comando), !* (todos args), !^ (primeiro arg).

  • Aliases úteis: alias ll="ls -aLF"; alias l.="ls -d .[^.]*".


2) Texto em alta velocidade (grep | sed | awk | cut | sort | uniq | tr | column)

grep (buscar)

sed (editar stream)

awk (formatar, extrair, somar)

cut | sort | uniq | tr | column

Ordenar IPs (POSIX puro):


3) Encontrar & agir (find | xargs | -exec)

Regex com find:


4) Loops práticos


5) Rede (ss | ip | lsof | nc/ncat | /dev/tcp)

netcat (atenção à variante)

Bash /dev/tcp (portável em muitas distros)

SSH (tunelamento & file‑copy sem scp)


6) OPSEC — “Leave No Trace” (deixe menos rastros)

Arquivos que “deduram”: ~/.bash_history, ~/.wget-hsts, ~/.lesshst, ~/.viminfo/*.swp, ~/.psql_history, etc.

Bash mudo:

Outros silenciados:

“Pegadinhas” de user implicado: ssh, rdesktop, xfreerdp, ftp usam seu username atual se não especificar.

Higiene local sugerida:

Blue Team insight: bloquear/alertar RWX, uso de /dev/tcp, FIFO em /tmp, outbound incomum, history zerado e HSTS desabilitado.


7) Exploração quando há limitações

Sem espaços:

Sem ls(1)/cat(1):

“Texto‑only” (transferir binários por canal textual)


8) Servir/compartilhar rápido (sem infra)

Dica: alias p/ pastebin via termbin — alias tb='nc termbin.com 9999'; echo "HELLO" | tb


9) Upgrade de TTY (shell interativa “de verdade”)


10) Shellcode → bytes escapados (inliner)


11) Dicas MECE (portabilidade & precisão)

  • GNU vs BSD/macOS: sed -i difere; grep -P (PCRE) nem sempre existe; column/sort -V variam.

  • NUL everywhere: padronize com -print0 | xargs -0 para nomes “difíceis”.

  • Evite -e do nc: indisponível no netcat-openbsd; prefira FIFO ou ncat --ssl -e (quando permitido e com consentimento).

  • OPSEC ≠ invisibilidade: logs de rede, DNS e EDR ainda verão o tráfego. Combine com tunnels SSH e segregação de infra.

  • Documente seu chain: cole o pipeline final (comentado) na engagement report para reprodutibilidade.


12) Snippets prontos (copiar/colar)

Top N strings mais comuns:

Buscar IOCs (IPs/domínios/hash) em árvore:

Mini exfil segura (quando autorizado):

Gerar lista de gadgets (ex.: pop rdi; ret) com Ropper:


13) Referências rápidas

  • Bash Pitfalls; Bash Hackers Wiki; ExplainShell; THC Tips & Tricks; OverTheWire Bandit; LinuxZoo; CAPA/YARA (para signatures).

  • Manuais: man bash, man sed, man awk, man find, man xargs, man ssh, man ss, man ip, man lsof, man nc/ncat.

Checklist final: pipes ok • quoting ok • NUL‑safe • portable flags • OPSEC ligado • registrar pipeline final.

Atualizado