Linux Fundamentals — Menguasai Terminal sebagai “Rumah” Peretas
S3: Linux Fundamentals — Menguasai Terminal sebagai “Rumah” Peretas

Lupakan antarmuka grafis (GUI) yang penuh warna. Di dunia keamanan siber, efisiensi adalah segalanya, dan itu hanya bisa dicapai melalui Command Line Interface (CLI). Mayoritas server di dunia, perangkat IoT, hingga infrastruktur Cloud berjalan di atas Linux. Jika kamu tidak bisa mengoperasikan terminal Linux, kamu hanyalah tamu di rumah sendiri.
1. Struktur Direktori (Linux Filesystem / FHS)
Linux tidak mengenal “C:” atau “D:”. Semuanya dimulai dari akar atau Root (/). Struktur ini mengikuti standar FHS (Filesystem Hierarchy Standard). Memahami letak file sensitif adalah kunci utama dalam fase post-exploitation.
- / — Root of everything. Titik awal semua path di Linux.
- /etc — Pusat file konfigurasi sistem. Tempat
passwd,shadow,sudoers,hosts, dancrontabberada. SENSITIVE - /etc/passwd — Daftar semua user sistem, bisa dibaca siapa saja. Berisi UID, GID, home dir, dan shell yang digunakan. TARGET
- /etc/shadow — Menyimpan password hash semua user. Hanya root yang bisa membacanya — ini yang diincar saat privilege escalation. TARGET
- /etc/sudoers — Aturan siapa yang bisa menjalankan sudo. Misconfigurasi di file ini bisa menjadi privilege escalation instan. TARGET
- /var/log — “Kotak hitam” sistem. Berisi
auth.log,syslog,apache2/access.log. Semua aktivitas tercatat di sini. - /home — Direktori data pribadi semua user non-root. Sering menyimpan SSH keys, bash history, dan file config sensitif.
- /root — Home directory Superuser. Tidak bisa diakses user biasa secara default. Final destination. TARGET
- /tmp — Area penyimpanan sementara, bebas tulis (world-writable). Lokasi umum untuk menaruh payload karena tidak memerlukan izin khusus. ATTACK SURFACE
- /proc — Virtual filesystem berisi info real-time tentang proses dan kernel.
/proc/versiondan/proc/net/tcpberguna untuk enumeration. - /bin & /sbin — Tempat binary eksekusi sistem.
ls,cat,bashada di sini./sbinkhusus untuk admin tools. - /usr/share/wordlists — Di Kali Linux, wordlist seperti
rockyou.txttersimpan di sini. - /opt — Software pihak ketiga yang diinstall manual biasanya landing di sini.
~/.bash_history di setiap home directory. File ini sering menyimpan password yang pernah diketik langsung di terminal atau perintah sensitif yang pernah dijalankan user.2. Perintah Dasar — Survival Kit
Kamu harus hafal perintah ini seperti bernapas. Dibagi berdasarkan kategori fungsionalnya:
| Command | Fungsi | Level |
|---|---|---|
| ls -la | List semua file termasuk tersembunyi, tampilkan permission dan ownership. | BASIC |
| cd / pwd | Pindah direktori / tampilkan lokasi direktori saat ini. | BASIC |
| cat / less / head / tail | Baca isi file. Gunakan tail -f untuk monitoring log secara real-time. |
BASIC |
| grep -r “kata” /path | Cari string dalam file secara rekursif. Sangat powerful untuk mencari password yang di-hardcode. | BASIC |
| find / -name “*.conf” | Cari file berdasarkan nama, ekstensi, permission, atau ukuran di seluruh sistem. | INTER |
| chmod / chown | Ubah permission dan ownership sebuah file atau direktori. | BASIC |
| sudo / su | Jalankan perintah sebagai root / switch ke user lain. | BASIC |
| ps aux / top / htop | Lihat semua proses berjalan beserta user yang menjalankannya. | BASIC |
| kill / pkill | Hentikan proses berdasarkan PID atau nama proses. | BASIC |
| wget / curl | Download file dari URL. Curl lebih fleksibel untuk custom HTTP headers dan POST data. | INTER |
| env / printenv | Tampilkan environment variables. Sering mengandung credentials atau path sensitif. | INTER |
| crontab -l | Lihat scheduled tasks. Cron dengan script writable sering jadi vektor privilege escalation. | INTER |
| ss -tulnp / netstat | Tampilkan port yang terbuka beserta proses yang menggunakannya. | INTER |
| awk / sed / cut | Text processing powerhouse. Untuk parsing dan memanipulasi output command secara otomatis. | ADVANCED |
| strace / ltrace | Trace system calls dan library calls suatu program. Berguna untuk debugging dan reverse engineering. | ADVANCED |
root@kali:~# grep -r “password” /etc/ –include=”*.conf” 2>/dev/null
/etc/mysql/debian.cnf:password = someSecretPass123
/etc/phpmyadmin/config-db.php:$dbpass=’anotherPass456′;# Mencari binary dengan SUID bit (vektor privesc klasik)
root@kali:~# find / -perm -4000 -type f 2>/dev/null
/usr/bin/sudo
/usr/bin/passwd
/usr/lib/openssh/ssh-keysign
3. File Permissions — Bahasa Izin Linux
Linux menggunakan sistem izin berbasis tiga entitas: Owner, Group, dan Others. Masing-masing punya tiga bit izin: Read, Write, dan Execute.
[SECURITY_CONCEPT : FILE PERMISSIONS]
Linux menggunakan sistem izin Read (4), Write (2), Execute (1).
Contoh: chmod 755 file artinya Owner bisa segalanya (4+2+1=7), Group dan Others hanya bisa baca + eksekusi (4+1=5).
Jika kamu melihat -rwsr-xr-x, huruf s pada posisi execute Owner menandakan SUID bit aktif — binary ini berjalan dengan privilege pemiliknya (sering root). Ini adalah vektor Privilege Escalation paling umum.
| Notasi Simbolik | Oktal | Artinya | Konteks |
|---|---|---|---|
| rwxrwxrwx | 777 | Semua entitas bisa baca, tulis, eksekusi. | BERBAHAYA |
| rwxr-xr-x | 755 | Owner full access, lainnya hanya baca + eksekusi. | UMUM |
| rw-r–r– | 644 | Owner bisa baca + tulis, lainnya hanya baca. | AMAN |
| rw——- | 600 | Hanya owner yang bisa akses. | SANGAT AMAN |
| rwsr-xr-x | 4755 | SUID aktif — berjalan sebagai owner file (sering root). | PRIVESC VECTOR |
find / -perm -4000 -type f 2>/dev/null find / -perm -2000 -type f 2>/dev/nullBandingkan hasilnya dengan database GTFOBins (gtfobins.github.io) untuk mengetahui cara eksploitasinya.
4. Process & Service Management
Memahami proses yang berjalan di sistem adalah skill wajib — baik untuk enumeration saat pentest maupun untuk mempertahankan persistence setelah berhasil masuk ke sistem target.
root@kali:~# ps aux | grep root
root 1234 /usr/sbin/apache2 -k start
root 5678 /usr/sbin/sshd -D# Service management (systemd)
root@kali:~# systemctl list-units –type=service –state=running
root@kali:~# systemctl status apache2
root@kali:~# systemctl start / stop / restart / enable apache2
# Cek port yang terbuka
root@kali:~# ss -tulnp
tcp LISTEN 0.0.0.0:22 (“sshd”, pid=5678)
tcp LISTEN 0.0.0.0:80 (“apache2”, pid=1234)
crontab -e (menambahkan reverse shell yang berjalan berkala) atau membuat custom systemd service. Selalu audit dua lokasi ini saat melakukan hardening sistem.5. Networking dari Terminal
Linux adalah OS jaringan. Semua yang ada di CTF, pentest, bahkan server produksi bergantung pada kemampuan networking dari command line. Berikut tool-tool wajib yang harus kamu kuasai:
| Tool | Fungsi | Contoh Penggunaan |
|---|---|---|
| ifconfig / ip a | Lihat interface jaringan, IP address, dan MAC address. | ip addr show eth0 |
| ping / traceroute | Test konektivitas ke host dan trace jalur paket melewati jaringan. | ping -c 4 8.8.8.8 |
| nmap | Network scanner. Scan port, detect OS, enumerate service version. Tool recon #1. | nmap -sV -sC target |
| netcat (nc) | Swiss army knife networking. Port scan, reverse shell, file transfer, banner grabbing. | nc -lvnp 4444 |
| curl | HTTP client powerful. Bisa custom header, POST data, follow redirect, dan banyak lagi. | curl -X POST -d “data” url |
| ssh | Secure remote access. Bisa tunneling, port forwarding lokal/remote, dan dynamic proxy. | ssh -L 8080:localhost:80 user@host |
| tcpdump | Packet capture dari terminal. Alternatif Wireshark untuk environment tanpa GUI. | tcpdump -i eth0 -w cap.pcap |
| iptables / ufw | Firewall management. Penting untuk memahami traffic filtering dan teknik bypass. | iptables -L -n -v |
6. Privilege Escalation — Dari User ke Root
Privilege escalation adalah seni memanfaatkan misconfiguration, kelemahan software, atau kelalaian admin untuk mendapatkan akses yang lebih tinggi. Berikut checklist enumeration standar yang wajib dilakukan setelah mendapat akses awal:
Checklist Enumeration (Privesc):
- sudo -l — Cek command apa yang bisa dijalankan sebagai sudo tanpa password.
- SUID/SGID Binaries —
find / -perm -4000 -type f 2>/dev/null - Writable /etc/passwd — Jika writable, bisa tambahkan user root baru secara langsung.
- Cron Jobs —
crontab -ldancat /etc/crontab. Script yang writable = privesc. - Environment Variables / PATH Hijacking — Jika script root memanggil binary tanpa absolute path, bisa disubstitusi.
- Kernel Exploits —
uname -runtuk cek versi kernel, lalu cari CVE yang relevan (DirtyPipe, DirtyCow, dll). - LinPEAS / LinEnum — Script otomatis untuk enumerate semua vektor privesc. Drop ke
/tmpdan jalankan.
user@target:~$ sudo -l
(root) NOPASSWD: /usr/bin/vim# vim ada di GTFOBins — bisa spawn shell sebagai root!
user@target:~$ sudo vim -c ‘:!/bin/bash’
root@target:~# whoami
root
7. Log Management — Jejak Digital di Linux
Dalam konteks Blue Team, memahami lokasi log adalah kunci untuk deteksi insiden. Dalam konteks Red Team, ini adalah hal pertama yang perlu dipahami agar operasi tetap bersih.
| File Log | Isi |
|---|---|
| /var/log/auth.log | Login attempts, sudo usage, SSH authentication events. |
| /var/log/syslog | General system messages dari kernel dan services. |
| /var/log/apache2/access.log | Semua HTTP request yang masuk ke web server Apache. |
| /var/log/apache2/error.log | Error yang terjadi di web server Apache. |
| last / lastlog | Riwayat login semua user dan waktu login terakhir. |
| ~/.bash_history | Riwayat perintah bash setiap user. Sering mengandung data sensitif. |
root@kali:~# tail -f /var/log/auth.log# Cari aktivitas mencurigakan di log
root@kali:~# grep “Failed password” /var/log/auth.log | awk ‘{print $11}’ | sort | uniq -c | sort -rn
8. Terminal Shortcuts & Power Tips
Operator yang lambat adalah operator yang tertangkap. Kuasai shortcut berikut untuk efisiensi maksimal:
| Shortcut / Tip | Fungsi |
|---|---|
| Ctrl + C | Kill / hentikan proses yang sedang berjalan. |
| Ctrl + Z | Suspend proses ke background. Lanjutkan dengan fg atau bg. |
| Ctrl + L | Clear terminal (sama seperti command clear). |
| Ctrl + R | Reverse search di bash history. Ketik keyword, tekan Ctrl+R berulang untuk lanjut. |
| !! | Ulangi perintah terakhir. sudo !! = jalankan perintah terakhir sebagai root. |
| cmd1 | cmd2 | Pipe — output cmd1 jadi input cmd2. Contoh: ps aux | grep apache |
| cmd > file | Redirect output ke file (overwrite). Gunakan >> untuk append. |
| 2>/dev/null | Buang error messages. Berguna saat scanning agar output bersih. |
| command & | Jalankan perintah di background agar terminal tetap bisa digunakan. |
| tmux / screen | Terminal multiplexer — banyak window/pane dalam satu session SSH. Wajib untuk operasi panjang. |
| alias ll=’ls -la’ | Buat shortcut command. Simpan di ~/.bashrc agar permanen. |
kesimpulan
“Linux bukan sekadar OS — Linux adalah bahasa yang harus kamu kuasai sebelum bicara soal keamanan siber. Setiap tool, setiap exploit, setiap teknik bertumpu di atas fondasi ini.”
Jangan takut untuk merusak sistem (di lab sendiri) agar kamu paham cara memperbaikinya. Setup lab dengan VirtualBox + Kali Linux + intentionally vulnerable VM dari VulnHub atau HackTheBox.
Selanjutnya: S4 — Scripting & Automation →