0% menganggap dokumen ini bermanfaat (0 suara)
5 tayangan23 halaman

Dasar Jaringan: Model OSI dan TCP/IP

Dokumen ini menjelaskan konsep dasar jaringan komputer, termasuk Model OSI dan TCP/IP, serta protokol komunikasi seperti HTTP/HTTPS dan DNS. Terdapat penjelasan tentang cara kerja TCP/IP, NAT, port, dan firewall, serta contoh perintah untuk troubleshooting jaringan. Selain itu, dokumen ini memberikan panduan praktis untuk melihat IP yang terhubung dalam satu jaringan.

Diunggah oleh

anjelorere
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
5 tayangan23 halaman

Dasar Jaringan: Model OSI dan TCP/IP

Dokumen ini menjelaskan konsep dasar jaringan komputer, termasuk Model OSI dan TCP/IP, serta protokol komunikasi seperti HTTP/HTTPS dan DNS. Terdapat penjelasan tentang cara kerja TCP/IP, NAT, port, dan firewall, serta contoh perintah untuk troubleshooting jaringan. Selain itu, dokumen ini memberikan panduan praktis untuk melihat IP yang terhubung dalam satu jaringan.

Diunggah oleh

anjelorere
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

🧩 1.

Model OSI (Open Systems Interconnection)

Model OSI adalah kerangka konseptual yang menggambarkan bagaimana data berpindah
dari satu perangkat ke perangkat lain dalam jaringan.

Ada 7 lapisan (layer) dari bawah ke atas:

Layer Nama Fungsi Utama

7 Application Tempat aplikasi berinteraksi (contoh: browser, email client)

6 Presentation Format data, enkripsi, kompresi (contoh: SSL/TLS, ASCII, JPEG)

5 Session Mengatur sesi komunikasi (login, logout, dll)

4 Transport Mengatur pengiriman data antar host (TCP/UDP)

3 Network Menentukan rute (routing) dan alamat IP

2 Data Link Menangani alamat MAC dan frame data

1 Physical Transmisi sinyal fisik (kabel, gelombang, listrik)

🧠 Analogi:Bayangkan kamu mengirim surat lewat pos.

 Layer 7–5: kamu menulis surat dan memasukkannya ke amplop.

 Layer 4–3: menentukan jalur ke tujuan (alamat rumah, kode pos).

 Layer 2–1: surat dikirim lewat kendaraan fisik.

2. TCP/IP (Transmission Control Protocol / Internet Protocol)

Model TCP/IP adalah versi praktis dari OSI yang benar-benar digunakan di dunia nyata.

TCP/IP punya 4 layer utama:

Model TCP/IP Fungsi Contoh Protokol

4. Application Komunikasi antar aplikasi HTTP, FTP, DNS, SMTP

3. Transport Pemecahan & pengiriman paket data TCP, UDP

2. Internet Penentuan alamat dan rute IP, ICMP

1. Network Access Transmisi fisik Ethernet, Wi-Fi

🧭 Hubungan TCP/IP dengan OSI:

 OSI layer 7–5 ≈ TCP/IP Application

 OSI layer 4 ≈ TCP/IP Transport


 OSI layer 3 ≈ TCP/IP Internet

 OSI layer 2–1 ≈ TCP/IP Network Access

3. Cara TCP/IP Bekerja (Secara Sederhana)

Misalnya kamu buka situs [Link]

1. Browser kirim permintaan ke DNS untuk tahu IP address [Link].


→ (pakai protokol DNS, di layer Application)

2. DNS server balas: “Alamat IP [Link] adalah [Link].”

3. Browser membuka koneksi TCP ke [Link] di port 443 (HTTPS).


→ (pakai TCP, layer Transport)

4. TCP memecah data jadi paket kecil dan memastikan semua sampai utuh dan urut.
Jika paket hilang, dikirim ulang (inilah kelebihan TCP dibanding UDP).

5. IP menentukan rute paket-paket itu ke tujuan di internet (routing).

6. Server menerima paket, menyusunnya kembali, dan mengirimkan halaman web.

7. Browser menampilkan isi halaman ke kamu 🎉

🔒 4. HTTP dan HTTPS

Aspek HTTP HTTPS

Kepanjangan HyperText Transfer Protocol HyperText Transfer Protocol Secure

Port default 80 443

Keamanan Tidak terenkripsi Terenkripsi dengan SSL/TLS

Transfer data web (HTML, CSS, Transfer data web aman dari
Fungsi
gambar) penyadapan

🔑 HTTPS bekerja dengan sertifikat digital (SSL/TLS) yang memastikan:

1. Identitas server asli (bukan palsu).

2. Data antara browser dan server terenkripsi.

3. Tidak bisa diubah di tengah jalan (integritas data).

🧭 5. DNS (Domain Name System)


DNS adalah “buku telepon internet”.

Fungsi: mengubah nama domain (misal [Link]) menjadi alamat IP (misal


[Link]).

📜 Alur sederhana:

1. Kamu buka [Link]

2. Komputer tanya ke DNS Resolver lokal: “IP [Link] berapa?”

3. Resolver tanya ke Root Server, lalu ke TLD Server (.com), lalu ke Authoritative Server
([Link])

4. DNS server menjawab IP-nya.

5. Komputer menyimpan (cache) hasilnya, supaya akses berikutnya lebih cepat.

Rangkuman Gampang

Konsep Fungsi Utama

Model OSI Konsep teoritis 7 lapisan jaringan

TCP/IP Model praktis 4 lapisan untuk internet

HTTP/HTTPS Protokol komunikasi web

DNS Mengubah nama domain menjadi alamat IP

TCP Menjamin data sampai dengan aman dan urut

IP Menentukan alamat dan jalur pengiriman data

Bagus — saya buat penjelasan lengkap tapi tetap praktis tentang dasar jaringan: TCP/IP,
NAT, port, firewall, plus contoh nyata dan perintah yang bisa dicoba. Saya tulis dalam bahasa
Indonesia, langkah demi langkah dan disertai contoh angka/diagram supaya gampang
dimengerti.

TCP/IP — gambaran umum

TCP/IP adalah sekumpulan protokol yang dipakai internet untuk mengirim data antar
perangkat. Sering digambarkan dalam 4 lapisan utama:Link (Network Interface) — hardware
& protokol lokal (Ethernet, Wi-Fi).Internet — IP (Internet Protocol): alamat & pengiriman
paket antar [Link] — TCP (reliable, connection-oriented) dan UDP (fast,
connectionless).Application — HTTP, DNS, SMTP, dsb.

IP (Internet Protocol)

 IPv4: alamat 32-bit, contoh [Link]. Ditulis dalam 4 oktet desimal.

 Subnet mask / CIDR menentukan ukuran jaringan, mis. /24 = mask [Link].
Contoh subnetting (harus dihitung langkah demi langkah)

Ambil jaringan [Link]/24:

 Panjang prefix = 24 → sisa host bits = 32 − 24 = 8.

 Jumlah alamat total = 2^8 = 256.

 Alamat network = [Link].

 Alamat broadcast = [Link].

 Alamat host usable = [Link] sampai [Link].

 Jumlah host usable = 256 − 2 = 254.

Contoh /30 (dipakai untuk link point-to-point):

 Sisa host bits = 32 − 30 = 2 → total alamat = 2^2 = 4.

 Host usable = 4 − 2 = 2 (cukup untuk dua perangkat di kedua ujung link).

Perintah/troubleshooting IP dasar

 ping [Link] — cek konektivitas IP.

 ipconfig /all (Windows) atau ifconfig / ip addr show (Linux) — lihat alamat IP.

 traceroute [Link] (Linux) / tracert [Link] (Windows) — lihat jalur paket.

 nslookup [Link] atau dig [Link] — cek DNS.

TCP vs UDP (konsep + contoh)

TCP (Transmission Control Protocol)

 Connection-oriented: sebelum data dikirim ada handshake 3 langkah (SYN, SYN-ACK,


ACK).

 Menjamin pengiriman berurutan dan retransmisi bila hilang.

 Contoh aplikasi: HTTP(S) (port 80/443), SSH (22), SMTP (25).

UDP (User Datagram Protocol)

 Connectionless: tidak ada handshake, lebih ringan dan cepat.

 Tidak menjamin pengiriman / urutan.

 Contoh aplikasi: DNS (biasanya UDP/53), VoIP, streaming video, DHCP (client/server
67/68).

TCP 3-way handshake (step by step)

1. Client → Server: SYN (minta koneksi).


2. Server → Client: SYN-ACK (terima & setuju).

3. Client → Server: ACK (konfirmasi).


Setelah itu data dapat dikirim. Tutup koneksi biasanya lewat FIN/ACK exchange.

Port — apa dan contoh

 Port adalah angka (0–65535) yang mengidentifikasi aplikasi pada host.

 Dibagi jadi:

o Well-known ports: 0–1023 (HTTP 80, HTTPS 443, SSH 22, DNS 53).

o Registered: 1024–49151 (aplikasi terdaftar).

o Dynamic/Ephemeral: 49152–65535 (dipakai klien saat membuat koneksi


keluar).

Contoh: ketika browser ke [Link] client menggunakan ephemeral port (mis.


55000) dan menghubungi server di port 80. Lalu paket berisi info port sumber/destinasi.

Perintah untuk melihat port yang digunakan:

 netstat -tuln (Linux) — list TCP/UDP yang mendengarkan.

 ss -tulpn (Linux modern) — lebih detail.

 netstat -ano (Windows) — lihat PID + port.

NAT (Network Address Translation)

NAT mengubah alamat IP sumber/destinasi paket saat lewat router, umum pada
rumah/kantor untuk pakai 1 alamat publik.

Tipe NAT utama:

1. Static NAT — satu alamat privat ↔ satu alamat publik (1:1).

2. Dynamic NAT — pool alamat publik, satu-satu sewaktu terpakai.

3. PAT (Port Address Translation) a.k.a NAT Overload — banyak alamat privat
dipetakan ke 1 alamat publik menggunakan nomor port berbeda (paling umum di
rumah).

Contoh PAT (rumah)

 Komputer A [Link]:50000 → router NAT → publik [Link]:40001.

 Komputer B [Link]:50001 → router NAT → publik [Link]:40002.


Router menyimpan tabel NAT: (private IP:port) ↔ (public IP:port). Saat paket
balasan datang ke [Link]:40001, router tahu untuk meneruskannya ke
[Link]:50000.
Port forwarding (NAT + aturan)

Jika kamu punya server di belakang NAT dan ingin orang luar mengakses (mis. web server di
port 80), router perlu aturan port forwarding:

 External [Link]:80 → Internal [Link]:80.

Firewall — konsep & contoh

Firewall memfilter trafik berdasarkan aturan (IP, port, protocol, state). Ada:

 Stateless firewall: filter per-paket tanpa konteks.

 Stateful firewall: melacak koneksi (mis. mengizinkan paket balasan).

Contoh aturan singkat (iptables — Linux)

Catatan: contoh ini untuk tujuan pembelajaran. Jalankan hanya jika paham konsekuensinya.

Izinkan SSH, HTTP, HTTPS, drop sisanya:

# flush rules (hati-hati)

sudo iptables -F

# default drop incomingsudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP

sudo iptables -P OUTPUT ACCEPT

# allow loopbacksudo iptables -A INPUT -i lo -j ACCEPT

# allow established/related (balasan koneksi)sudo iptables -A INPUT -m conntrack --ctstate


ESTABLISHED,RELATED -j ACCEPT

# allow SSHsudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT

# allow HTTP and HTTPSsudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW
-j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT

Penjelasan singkat:

 Baris ESTABLISHED,RELATED memungkinkan paket balasan masuk (penting untuk


stateful firewall).

 --dport = destination port.

Contoh Windows (power shell / netsh)

Izinkan RDP (3389):

# PowerShell run as admin


New-NetFirewallRule -DisplayName "Allow RDP" -Direction Inbound -Protocol TCP -LocalPort
3389 -Action Allow

Contoh skenario end-to-end (rumah / kantor kecil)

Skenario 1 — Internet di rumah (PAT)

 ISP memberikan 1 alamat publik [Link].

 Router di rumah pakai NAT/PAT, private network [Link]/24.

 Laptop ([Link]) akses YouTube → source port ephemeral, NAT menerjemah →


akses sukses.

 Inbound: jika ingin akses kamera IP di [Link]:8080, lakukan port forwarding di


router: [Link]:8080 → [Link]:8080.

Skenario 2 — Server di DMZ kantor

 Kantor punya firewall yang memisah jaringan publik (DMZ) dan internal.

 Web server di DMZ ([Link]) hanya buka port 80/443 ke publik. Database server di
jaringan internal sama sekali tidak langsung diekspos.

Praktik aman & tips

 Jangan buka port yang tidak perlu. Prinsip: least privilege (hanya izinkan apa yang
diperlukan).

 Gunakan HTTPS, dan untuk akses remote gunakan VPN+2FA (jangan langsung buka
SSH/RDP ke publik tanpa proteksi).

 Monitor log firewall (/var/log/ atau syslog) untuk trafik mencurigakan.

 Untuk debugging: tcpdump/wireshark (paket capture) — pakai dengan bijak (data


sensitif).

Ringkasan singkat tiap bagian

 TCP/IP = model & protokol dasar Internet (IP untuk alamat; TCP/UDP untuk
transport).

 NAT = terjemahkan alamat privat ↔ publik; PAT memungkinkan banyak privat pakai
1 publik.

 Port = pintu untuk aplikasi; angka 0–65535; well-known (0–1023).

 Firewall = aturan filter jaringan; stateful lebih pintar karena melacak koneksi.

Kalau mau, saya bisa:


 Buat latihan subnetting (5 soal dengan pembahasan langkah demi langkah).

 Tunjukkan contoh konfigurasi port forwarding di merk router tertentu (mis. TP-Link /
Mikrotik) — kalau mau sebut merk/model router.

 Atau buat cheat-sheet perintah (Linux/Windows) untuk troubleshooting jaringan.

Mau lanjut ke latihan atau ada bagian yang ingin diperdalam dulu?

You said:

cara lihat ip yang terkoneksi dalam satu jaringan

ChatGPT said:

Bagus banget pertanyaannya 💡 — ini penting banget buat belajar jaringan!


Kita bahas cara melihat IP yang terkoneksi dalam satu jaringan LAN/Wi-Fi, baik di
Windows, Linux, Android, maupun router langsung. Saya kasih contoh dan perintahnya biar
bisa langsung dicoba.

1. Cara Melihat IP yang Terhubung (Windows)

🔹 Langkah dasar:

1. Buka Command Prompt (CMD).


→ Tekan Win + R, ketik cmd, [Link]:

2. arp -a

Contoh output:

Interface: [Link] --- 0x7

Internet Address Physical Address Type

[Link] 00-1a-2b-3c-4d-5e dynamic

[Link] 80-2a-a8-5d-33-22 dynamic

[Link] 14-cc-20-9a-bf-10 dynamic

➜ Artinya:

o Internet Address = IP di jaringanmu

o Physical Address = MAC address perangkat

o Type = apakah dynamic (DHCP) atau static

⚠️Catatan: arp -a hanya menampilkan perangkat yang baru saja berkomunikasi dengan PC
kamu.
Kalau ingin scan semua IP aktif, lanjut ke cara berikut.
2. Scan Semua IP dalam Jaringan (Windows / Linux)

🔹 Dengan ping sweep (manual)

Misal jaringan kamu [Link]/24


Ketik di CMD:

for /l %i in (1,1,254) do @ping 192.168.1.%i -n 1 -w 200 >nul && echo 192.168.1.%i aktif

Penjelasan:

 -n 1 → ping sekali saja

 -w 200 → timeout 200 ms

 Menampilkan IP yang merespons “aktif”

Hasil contoh:

[Link] aktif

[Link] aktif

[Link] aktif

[Link] aktif

🔹 Dengan nmap (lebih cepat dan detail)

1. Instal nmap.

2. Jalankan di CMD / PowerShell:

3. nmap -sn [Link]/24

Contoh hasil:

Nmap scan report for [Link] (Router)

Nmap scan report for [Link] (Laptop)

Nmap scan report for [Link] (Smartphone)

➜ -sn artinya hanya “ping scan” tanpa port scan, jadi aman.

🐧 3. Di Linux / macOS

Perintah sama, tapi lebih sederhana:

sudo arp -a

Atau gunakan nmap:


sudo nmap -sn [Link]/24

Kalau mau cepat banget:

fping -a -g [Link]/24 2>/dev/null

(fping lebih cepat, tapi harus diinstal dulu.)

📱 4. Di Android / iPhone

Gunakan aplikasi gratis seperti:

 Fing – Network Tools (paling populer)

 IP Scanner

 NetX Network Tools

Langkah:

1. Buka aplikasi → otomatis mendeteksi subnet (mis. [Link]/24).

2. Tap “Scan”.

3. Hasilnya muncul daftar perangkat:

4. [Link] - Router - TP-Link

5. [Link] - Laptop ASUS

6. [Link] - HP Vivo

7. [Link] - Smart TV

🌐 5. Melalui Router Langsung (paling akurat)

1. Masuk ke halaman admin router (biasanya [Link] atau [Link]).

2. Login (username/password default: admin/admin atau sesuai ISP).

3. Cari menu:

o Device List / DHCP Clients / Attached Devices

4. Di sana muncul daftar IP + MAC + nama perangkat.

Contoh:

Device Name IP Address MAC Address Status

Router [Link] 00:1A:2B:3C:4D:5E Online


Device Name IP Address MAC Address Status

Laptop-ASUS [Link] 80:2A:A8:5D:33:22 Online

HP-Vivo [Link] 14:CC:20:9A:BF:10 Online

⚙️Tips Tambahan

 Pastikan kamu tahu alamat subnet: cek dengan ipconfig (Windows) atau ip addr
(Linux).
Contoh: jika IP kamu [Link]/24, berarti range yang aktif [Link]–
[Link].

 Gunakan nmap atau “Fing” untuk hasil paling lengkap.

 Kalau perangkat tidak muncul di daftar, bisa jadi pakai firewall, mode stealth, atau
tidak aktif ICMP reply.

Kalau kamu mau, saya bisa bantu tulis script otomatis (Windows atau Linux) untuk
menampilkan semua IP yang aktif, lengkap dengan nama perangkatnya (hostname dan
vendor MAC).
Apakah kamu ingin versi Windows CMD, PowerShell, atau Linux Bash?

You said:

oke

ChatGPT said:

Sip — aku buatkan langsung 3 versi script/cara otomatis yang bisa kamu jalankan:
PowerShell (Windows, rapi & modern), Batch/CMD (Windows, sederhana), dan Bash
(Linux/macOS). Semua sudah diberi penjelasan singkat + cara menjalankannya. Pilih yang
cocok dan tinggal copy–paste.

1) PowerShell (Windows) — rekomendasi

Script ini memanfaatkan Get-NetNeighbor + Resolve-DnsName untuk menampilkan IP, MAC,


dan hostname (kalau tersedia). Jalankan PowerShell sebagai Administrator.

# simpan sebagai list-devices.ps1 lalu jalankan: powershell -ExecutionPolicy Bypass -File .\


list-devices.ps1

# Ambil daftar neighbour ARP (IPv4)


$neigh = Get-NetNeighbor -AddressFamily IPv4 | Where-Object { $_.State -ne "Unreachable"
}

# Hasil struktur

$results = foreach ($n in $neigh) {

$ip = $[Link]

$mac = $[Link]

# Coba resolve hostname (jika ada), timeout cepat

$hostname = ""

try {

$dns = Resolve-DnsName -Name $ip -ErrorAction Stop -Server [Link]

$hostname = ($[Link] -join ", ")

} catch { $hostname = "" }

[PSCustomObject]@{

IPAddress = $ip

MAC = $mac

Hostname = $hostname

State = $[Link]

# Tampilkan tabel

$results | Sort-Object IPAddress | Format-Table -AutoSize

# (opsional) simpan ke CSV

$results | Export-Csv -Path .\devices_in_lan.csv -NoTypeInformation

Write-Host "Hasil juga disimpan ke devices_in_lan.csv (jika berhasil)."


Penjelasan singkat:

 Get-NetNeighbor baca tabel ARP lokal (siapa yang pernah berkomunikasi).

 Resolve-DnsName coba dapatkan nama host.

 Simpan CSV supaya gampang dibuka di Excel.

2) Batch / CMD (Windows) — ping sweep sederhana

Mudah dijalankan di Command Prompt. Ganti subnet jika perlu (contoh 192.168.1.x).

@echo off

setlocal enabledelayedexpansion

REM Ganti prefix sesuai jaringanmu, mis. 192.168.1

set PREFIX=192.168.1

echo Scanning %PREFIX%.0/24 ... tunggu sebentar

for /L %%i in (1,1,254) do ( ping -n 1 -w 200 %PREFIX%.%%i >nul if !errorlevel! EQU 0 (

echo %PREFIX%.%%i aktif

echo Selesai.

pause

Catatan:

 Ini hanya menampilkan IP yang merespon ICMP (ping). Beberapa perangkat memblok
ICMP jadi tidak muncul.

 Untuk hasil lebih lengkap gunakan nmap -sn (lihat bagian Linux).

3) Bash (Linux / macOS) — pakai nmap atau arp-scan

Dua opsi: (A) nmap ping scan; (B) arp-scan (lebih akurat untuk LAN).
A) nmap (instal nmap dulu)

# contoh: sudo apt install nmap (Debian/Ubuntu)

sudo nmap -sn [Link]/24

Output akan menampilkan daftar IP aktif dan (kadang) hostname/device type.

B) arp-scan (butuh instal)

# instal di Debian/Ubuntu:

sudo apt update && sudo apt install arp-scan

# jalankan (ganti interface jika perlu, atau biarkan auto)

sudo arp-scan --localnet

arp-scan mengembalikan IP, MAC, dan vendor NIC (membantu identifikasi perangkat).

Contoh output yang mungkin kamu lihat

PowerShell tabel:

IPAddress MAC Hostname State

----------- ---------------- ------------- -------

[Link] 00-1A-2B-3C-4D-5E [Link] Reachable

[Link] 80-2A-A8-5D-33-22 LAPTOP-ASUS Reachable

[Link] 14-CC-20-9A-BF-10 PHONE-VIVO Reachable

nmap:

Nmap scan report for [Link]

Host is up (0.025s latency).

Nmap scan report for [Link]

Host is up (0.010s latency).

arp-scan:

[Link] 00:1a:2b:3c:4d:5e Cisco Systems, Inc

[Link] 80:2a:a8:5d:33:22 ASUSTek COMPUTER INC.


Tips & troubleshooting singkat
 Jika hasil sedikit/kurang lengkap:

o Jalankan sebagai Administrator / root.

o Beberapa perangkat memblok ICMP → gunakan nmap -sn atau arp-scan.

o Jika kamu ingin nama perangkat lebih jelas, cek DHCP client list di halaman
admin router (paling akurat).

 Ingin hasil disimpan? PowerShell script sudah menyimpan CSV; untuk nmap
tambahkan -oG [Link] atau -oX untuk XML.

Bagus — aku akan memberi teori + contoh yang aman & edukatif untuk tiap buku yang
kamu sebutkan, beserta source code / script yang bisa kamu pakai hanya di lab terisolasi
(VM / mesin milikmu sendiri).

PENTING: semua contoh di bawah dibuat untuk tujuan pembelajaran. Jangan gunakan untuk
menyerang sistem tanpa izin tertulis. Jalankan hanya di lingkungan latihan seperti VM
Kali/Ubuntu + target VM (Metasploitable, OWASP Juice Shop, WebGoat) atau mesin yang
kamu buat sendiri.

Aku susun tiap bagian: ringkasan teori → contoh kode rentan (lab) → cara memperbaiki /
analisis → skrip bantu. Langsung saja.

The Web Application Hacker’s Handbook — konsep + contoh (web vuln)

Teori singkat

 Fokus: bagaimana aplikasi web menerima input, memproses, menyimpan, dan


mengeluarkan data. Kerentanan muncul saat validasi/escaping/auth/session salah.
Contoh umum: SQL Injection, XSS, CSRF, insecure direct object references (IDOR).

 Prinsip utama: trust nothing, validate & escape everywhere, use least privilege,
enforce auth/ACL, gunakan parameterized queries.

Contoh (aman untuk lab)

1. Contoh rentan SQL (PHP + MySQL) — [Link]


Jalankan hanya di lab.

<?php

// [Link] — contoh yang TIDAK aman (untuk demonstrasi)

// Database: contoh sederhana, gunakan di VM lab

$host = '[Link]';

$db = 'testdb';
$user = 'test';

$pass = 'test';

$dsn = "mysql:host=$host;dbname=$db;charset=utf8mb4";

try {

$pdo = new PDO($dsn, $user, $pass);

} catch (Exception $e) {

die("DB error");

// input dari user (GET parameter)

$username = $_GET['username'] ?? 'guest';

// VULNERABLE: query dibangun dengan concatenation langsung

$sql = "SELECT id, username, email FROM users WHERE username = '$username'";

$stmt = $pdo->query($sql);

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

echo "<pre>";

print_r($rows);

echo "</pre>";

?>

Tujuan lab: lihat bagaimana username dimasukkan langsung ke query → rentan SQLi.

2. Perbaikan: gunakan prepared statement (parameterized)

<?php

// [Link] — perbaikan

// ... (sama up to pdo)

$username = $_GET['username'] ?? 'guest';


// SAFE: prepared statement

$sql = "SELECT id, username, email FROM users WHERE username = :username";

$stmt = $pdo->prepare($sql);

$stmt->execute([':username' => $username]);

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

echo "<pre>";

print_r($rows);

echo "</pre>";

?>

Langkah lab & script bantu

 Siapkan DB sederhana: buat tabel users dan beberapa row dummy.

 Coba injeksi di [Link] (misal ?username=' OR '1'='1) — lihat hasil (hanya di


VM lab).

 Gunakan Burp Suite atau browser devtools untuk melihat request/response.

 Checklist mitigasi singkat: prepared statements, input validation, least privilege DB


user, parameterized ORM, limit error output.

Hacking: The Art of Exploitation — konsep teknik + contoh C (low-level)

Teori singkat

 Buku ini menjelaskan memory model (stack/heap), pointers, format string, buffer
overflow, dan debugging. Intinya: banyak bug terjadi karena lack of bounds checking
dan salah pengelolaan memori.

 Modern systems punya mitigasi: ASLR, DEP/NX, stack canaries. Belajar exploit harus
dimulai di lab dengan mitigasi dimatikan untuk memahami konsep, lalu pelajari
bypass secara etis.

Contoh yang aman untuk belajar (C program rentan — vuln.c)

 Tujuan: tunjukkan buffer overflow yang membuat program crash — tanpa


memberikan shellcode/remote exploit.

// vuln.c — contoh sederhana (kompilasi di Linux VM)


// Compile: gcc -fno-stack-protector -z execstack -o vuln vuln.c

#include <stdio.h>

#include <string.h>

void secret() {

printf("Kamu tidak seharusnya memanggil fungsi ini secara langsung.\n");

void echo_input() {

char buf[64];

printf("Masukkan teks: ");

fflush(stdout);

gets(buf); // intentionally unsafe, untuk demonstrasi di lab saja

printf("Kamu memasukkan: %s\n", buf);

int main() {

echo_input();

printf("Program selesai.\n");

return 0;

Catatan: gets() sengaja dipakai agar terjadi overflow. gets sudah usang dan DILARANG di
produksi.

Cara praktik aman

1. Kompilasi di VM dengan opsi yang menonaktifkan mitigasi bila perlu (hanya di VM


test): gcc -fno-stack-protector -z execstack -o vuln vuln.c

2. Jalankan gdb ./vuln, beri input panjang untuk melihat crash, periksa stack layout (info
frame, x/40x $rsp).
3. Tujuan pembelajaran: pahami frame, return address, dan bagaimana overflow
memodifikasi memori — bukan untuk menulis exploit yang memberi akses.

Cara memperbaiki

 Jangan gunakan gets. Pakai fgets dengan size limit atau read yang terbatas:

fgets(buf, sizeof(buf), stdin);

 Aktifkan protections: stack canaries, NX, ASLR.

Practical Malware Analysis — teori & contoh analisis (RE)

Teori singkat

 PMA menjelaskan teknik static & dynamic analysis: mengenali struktur PE, strings,
imports, melakukan debugging (OllyDbg/x64dbg) & decompiling (Ghidra/IDA),
behavioral analysis (procmon), unpacking.

 Prinsip: analisis sample di lingkungan terisolasi (VM snapshot), gunakan tooling


read-only, dokumentasikan IOCs.

Contoh aman: analisis program benign + skrip analisis statis (Python)

Buat sample benign (Windows) — sample_behavior.c (contoh cross-platform sederhana)

// sample_behavior.c — program benign untuk analisis

#include <stdio.h>

#include <stdlib.h>

#ifdef _WIN32

#include <windows.h>

#endif

int main() {

FILE *f = fopen("[Link]", "a");

if (f) {

fprintf(f, "Program dijalankan\\n");

fclose(f);

// panggil sleep untuk meniru proses berjalan


#ifdef _WIN32

Sleep(5000);

#else

sleep(5);

#endif

return 0;

Kompilasi jadi exe (di Windows VM) atau binary Linux di lab sendiri. Itu aman dan meniru
perilaku (file creation + sleep).

Skrip Python untuk static analysis sederhana (menggunakan pefile untuk PE)

Gunakan hanya untuk menganalisis file yang kamu buat sendiri atau sample yang legal.

# analyze_pe.py — butuh modul pefile (pip install pefile)

import pefile

import sys

def analyze(path):

pe = [Link](path)

print("=== Basic info ===")

print("EntryPoint:", hex(pe.OPTIONAL_HEADER.AddressOfEntryPoint))

print("ImageBase:", hex(pe.OPTIONAL_HEADER.ImageBase))

print("\n=== Imports ===")

if hasattr(pe, 'DIRECTORY_ENTRY_IMPORT'):

for entry in pe.DIRECTORY_ENTRY_IMPORT:

print([Link]())

for imp in [Link]:

print(" ", [Link])

else:

print("No imports found or packed/obfuscated")


# strings (simple)

print("\n=== Strings (short) ===")

data = open(path, 'rb').read()

import re

for s in [Link](b'[ -~]{4,}', data):

print([Link](errors='ignore'))

if __name__ == "__main__":

if len([Link]) < 2:

print("Usage: python analyze_pe.py [Link]")

[Link](1)

analyze([Link][1])

Tujuan: lihat imports (API yang dipanggil), entry point, dan strings — ini banyak mengungkap
perilaku.

Dynamic analysis (panduan singkat)

1. Jalankan sample di Windows VM snapshot.

2. Monitor dengan Process Monitor (Procmon) dan Process Explorer untuk melihat
file/registry/network yang diakses.

3. Gunakan Wireshark pada jaringan lab untuk memantau traffic (jika sample mencoba
network).

4. Ambil snapshot sebelum/ sesudah, catat perubahan file/registry.

Contoh writeup singkat (struktur)

 Sample ID / Source

 Environment (OS, tools, snapshot)

 Static findings (PE headers, imports, strings) — keluarkan hasil analyze_pe.py.

 Dynamic findings (files created, network, registry keys)

 Conclusion & mitigation/recommendation

Skrip pendukung umum untuk lab

1. Scanner port simple (Python) — hanya untuk lab milikmu:


# [Link] — very small scanner for lab only

import socket

import sys

def scan(host, ports):

for p in ports:

s = [Link]()

[Link](0.5)

try:

[Link]((host, p))

print(f"{host}:{p} OPEN")

except Exception:

pass

finally:

[Link]()

if __name__ == "__main__":

host = [Link][1] if len([Link])>1 else "[Link]"

ports = [22,80,443,8080,3306]

scan(host, ports)

Jalankan di jaringan & mesin milikmu saja.

2. Simple HTTP request tester (Python requests) — test header/session handling


locally:

# http_test.py

import requests

url = "[Link]

r = [Link](url, params={'q': "test"})


print("Status:", r.status_code)

print([Link])

Penutup — etika & langkah selanjutnya

 Semua contoh di atas dimaksudkan untuk belajar konsep & teknik — bukan untuk
menyerang.

 Jika mau, aku bisa:

o Buat lab step-by-step (VM + perintah lengkap) untuk tiap contoh di atas.

o Buat template writeup pentest / malware analysis yang bisa kamu pakai di
GitHub.

o Kembangkan contoh exploit yang benar-benar aman (mis. overflow yang


hanya menunjukkan crash) dan tutorial debugging langkah-demi-langkah —
tetap hanya di lab.

Mau aku lanjutkan dengan lab step-by-step untuk salah satu topik (mis. tutorial debugging
C vuln dengan GDB, atau analisis PE menggunakan pefile + Procmon)? Pilih satu, aku buat
instruksi dan file yang bisa kamu copy-paste ke VM.

Anda mungkin juga menyukai