Rabu, 05 Juli 2023
hacking 3
Juli 05, 2023
hacking 3
berada di antara keduanya. Alasan utama Anda, sebagai Hacker pemula, harus mengetahui
ketiga metode tersebut adalah karena saat mengakses alat lain, Anda akan mengalami
berbagai jenis kompresi. Oleh karena itu, bagian ini menunjukkan cara menangani metode
utama kompresi.
Mengompresi dengan gzip
Mari kita coba gzip (GNU zip) pertama, karena ini adalah utilitas kompresi yang paling
umum digunakan di Linux. Anda dapat mengompres file HackersBangkit.tar dengan
memasukkan yang berikut (pastikan Anda berada di direktori yang menyimpan file yang
diarsipkan):
kali >gzip HackersBangkit.*
Perhatikan bahwa kami menggunakan karakter pengganti * untuk ekstensi file; ini memberi
tahu Linux bahwa perintah harus diterapkan ke file apa pun yang dimulai dengan
HackersBangkit dengan ekstensi file apa pun. Anda akan menggunakan notasi serupa untuk
contoh berikut. Saat kami melakukan daftar panjang di direktori, kami dapat melihat bahwa
HackersBangkit.tar telah digantikan oleh HackersBangkit.tar.gz, dan ukuran file telah
dikompresi menjadi hanya 3.299 byte!
kali >ls -l
--snip--
rw-r--r-- 1 root root 3299 Nov 27 2018 13:32 HackersBangkit.tar.gz
--snip -
Kemudian, kita dapat mendekompresi file yang sama dengan menggunakan perintah
gunzip, kependekan dari GNU unzip.
kali >gunzip HackersBangkit.*
Setelah tidak dikompresi, file tidak lagi disimpan dengan ekstensi .tar.gz tetapi
dengan ekstensi .tar sebagai gantinya. Selain itu, perhatikan bahwa ia telah kembali ke
ukuran aslinya yaitu 40.960 byte. Coba buat daftar panjang untuk mengonfirmasi ini. Perlu
diperhatikan bahwa gzip juga dapat digunakan untuk mengekstrak file .zip.
Mengompresi dengan bzip2 Utilitas kompresi lain yang banyak digunakan di Linux
adalah bzip2, yang bekerja mirip dengan gzip tetapi memiliki rasio kompresi yang lebih baik,
artinya file yang dihasilkan akan lebih kecil. Anda dapat mengompresi file HackersBangkit.tar
dengan memasukkan yang berikut:
kali >bzip2 HackersBangkit.*
Saat Anda melakukan daftar panjang, Anda dapat melihat bahwa bzip2 telah mengompresi
file hingga hanya 2.081 byte! Perhatikan juga bahwa ekstensi file sekarang adalah .tar.bz2.
Untuk membuka kompresi file yang dikompresi, gunakan bunzip2, seperti:
kali >bunzip2 HackersBangkit.* kali >
Saat Anda melakukannya, file kembali ke ukuran aslinya, dan ekstensi filenya kembali ke .tar.
Mengompresi dengan compress
Terakhir, Anda dapat menggunakan compress perintah untuk mengompresi file. Ini
mungkin adalah utilitas kompresi yang paling jarang digunakan, tetapi mudah diingat. Untuk
menggunakannya, cukup masukkan perintah compress diikuti dengan nama file, seperti:
kali >compress HackersBangkit.*
kali >ls -l
--snip --
-rw-r--r-- 1 root root 5476 Nov 27 2018 13:32 HackersBangkit.tar.Z
Perhatikan bahwa utilitas kompres mengurangi ukuran file menjadi 5.476 byte, lebih dari
dua kali ukuran bzip2. Perhatikan juga bahwa ekstensi file sekarang adalah .tar.Z (dengan
huruf besar Z). Untuk mendekompresi file yang sama, gunakan uncompress
kali >uncompress HackersBangkit.*
Anda juga dapat menggunakan perintah gunzip dengan file yang telah dikompres
dengan kompres.
9.4 MENCIPTAKAN BIT-BY-BIT ATAU SALINAN FISIK PERANGKAT PENYIMPANAN
Dalam dunia keamanan informasi dan peretasan, satu perintah pengarsipan Linux
berada di atas yang lainnya dalam kegunaannya. Perintah dd membuat salinan bitbybit dari
file, sistem file, atau bahkan seluruh hard drive. Ini berarti bahwa bahkan file yang dihapus
akan disalin (ya, penting untuk mengetahui bahwa file Anda yang dihapus mungkin dapat
dipulihkan), sehingga memudahkan penemuan dan pemulihan. File yang dihapus tidak akan
disalin dengan sebagian besar utilitas penyalinan yang logis, seperti cp.
Setelah Hacker memiliki sistem target, perintah dd akan memungkinkan mereka
menyalin seluruh hard drive atau perangkat penyimpanan ke sistem mereka. Selain itu,
orang-orang yang tugasnya menangkap Hacker—yaitu, penyelidik forensik—mungkin akan
menggunakan perintah ini untuk membuat salinan fisik hard drive dengan file yang dihapus
dan artefak lainnya yang mungkin berguna untuk menemukan bukti yang berguna.
Sangat penting untuk diperhatikan bahwa perintah dd tidak boleh digunakan untuk
penyalinan file dan perangkat penyimpanan pada umumnya karena ini sangat lambat;
perintah lain melakukan pekerjaan lebih cepat dan lebih efisien. Namun, sangat baik jika
Anda memerlukan salinan perangkat penyimpanan tanpa sistem file atau struktur logis
lainnya, seperti dalam penyelidikan forensik.
Sintaks dasar untuk perintah dd adalah sebagai berikut:
dd if=inputfile of=outputfile
Jadi, jika Anda ingin membuat salinan fisik flash drive Anda, dengan asumsi flash
drive adalah sdb (kita akan membahas penunjukan ini lebih lanjut di Bab 10), Anda harus
memasukkan yang berikut ini:
kali >dd if=/dev/sdb of=/root/flashcopy
1257441=0 records in
1257440+0 records out 7643809280 bytes (7.6 GB) copied, 1220.729 s, 5.2 MB/s
Mari kita uraikan perintah ini: dd adalah perintah "salin" fisik Anda; jika menunjuk file
input Anda, dengan /dev/sdb mewakili flash drive Anda di direktori/dev; untuk menunjukkan
file output Anda dan/root/nama copy adalah dari file yang ingin Anda salin dari salinan fisik.
(Untuk penjelasan yang lebih lengkap tentang penunjukan sistem Linux untuk drive di dalam
direktori/dev, lihat Bab 10).
Banyak opsi tersedia untuk digunakan dengan perintah dd, dan Anda dapat
melakukan sedikit riset tentang ini, tetapi di antara yang paling berguna adalah opsi noerror
dan opsi bs (ukuran blok). Seperti yang disiratkan oleh namanya, opsi noerror terus menyalin
bahkan jika ditemukan kesalahan. Opsi bs memungkinkan Anda menentukan ukuran blok
(jumlah byte yang dibaca/ditulis per blok) dari data yang disalin. Secara default, ini disetel ke
512 byte, tetapi dapat diubah untuk mempercepat prosesnya. Biasanya, ini akan disetel ke
ukuran sektor perangkat, paling sering 4 KB (4.096 byte). Dengan opsi ini, perintah Anda
akan terlihat seperti ini:
kali >dd if=/dev/media of=/root/flashcopy bs=4096 conv:noerror
Seperti yang disebutkan, ada baiknya melakukan lebih banyak penelitian sendiri, tetapi ini
adalah pengantar yang bagus untuk perintah dan penggunaan umumnya.
9.5 RINGKASAN
Linux memiliki sejumlah perintah untuk memungkinkan Anda menggabungkan dan
mengompresi file Anda untuk transfer yang lebih mudah. Untuk menggabungkan file, tar
adalah perintah pilihan, dan Anda memiliki setidaknya tiga utilitas untuk mengompresi file—
gzip, bzip2, dan compress—semuanya dengan rasio kompresi yang berbeda. Perintah dd
berlaku di atas dan di luar. Ini memungkinkan Anda untuk membuat salinan fisik perangkat
penyimpanan tanpa struktur logis seperti sistem file, memungkinkan Anda untuk
memulihkan artefak seperti file yang dihapus.
BAB 10
MANAJEMEN FILESYSTEM DAN PERANGKAT PENYIMPANAN
Jika Anda berasal dari lingkungan Windows, cara Linux merepresentasikan dan
mengelola perangkat penyimpanan akan terlihat agak berbeda bagi Anda. Anda telah
melihat bahwa sistem file tidak memiliki representasi fisik drive, seperti sistem C:, D:, atau E:
di Windows, tetapi memiliki struktur pohon file dengan/di bagian atas atau akarnya. Bab ini
membahas tentang bagaimana Linux merepresentasikan perangkat penyimpanan seperti
hard drive, flash drive, dan perangkat penyimpanan lainnya.
Pertama-tama kita melihat bagaimana drive tambahan dan perangkat penyimpanan
lainnya dipasang pada sistem file tersebut, yang mengarah ke direktori/(root). Memasang
dalam konteks ini hanya berarti memasang drive atau disk ke sistem file agar dapat diakses
ke operation system/sistem operasi (OS). Bagi Anda sebagai seorang Hacker, Anda perlu
memahami sistem manajemen file dan perangkat penyimpanan, baik pada sistem Anda
sendiri maupun sistem target Anda. Hacker biasanya menggunakan media eksternal untuk
memuat data, alat Hacker, atau bahkan OS mereka. Setelah Anda berada di sistem target
Anda, Anda perlu memahami apa yang sedang Anda kerjakan, di mana menemukan file
rahasia atau file penting lainnya, cara memasang drive ke target, dan apakah dan di mana
Anda dapat meletakkan file tersebut di sistem Anda. Kami membahas semua topik ini, plus
cara mengelola dan memantau perangkat penyimpanan, di bab ini.
Kita mulai dengan direktori yang dikenal sebagai /dev, yang mungkin sudah Anda
perhatikan di struktur direktori: dev adalah kependekan dari device, dan setiap perangkat di
Linux diwakili oleh filenya sendiri di dalam direktori/dev. Mari mulai dengan bekerja dengan
/dev.
10.1 DIREKTORI PERANGKAT /DEV
Linux memiliki direktori khusus yang berisi file yang mewakili setiap perangkat yang
terpasang: direktori/dev yang diberi nama yang sesuai. Sebagai pengantar pertama Anda,
navigasikan ke direktori/dev lalu lakukan daftar panjang di direktori tersebut.
Anda akan melihat sesuatu seperti Daftar 10.1.
kali >cd /dev
kali >ls -l
total 0
crw------- 1 root root 10,175 May 16 12:44 agpgart
crw------- 1 root root 10,235 May 16 12:44 autofs
drwxr-xr-x 1 root root 160 May 16 12:44 block
--snip--
lrwxrwxrwx 1 root root 3 May 16 12:44 cdrom -> sr0
--snip--
drwxr-xr-x 2 root root 60 May 16 12:44 cpu
--sni--
Daftar 10.1 Daftar panjang direktori /dev
Perangkat ditampilkan dalam urutan abjad secara default. Anda mungkin mengenali
beberapa perangkat, seperti cdrom dan cpu, tetapi yang lain memiliki nama yang agak samar.
Setiap perangkat di sistem Anda diwakili oleh file di direktori/dev, termasuk perangkat yang
mungkin belum pernah Anda gunakan atau bahkan belum pernah ada sebelumnya. Jika
Anda melakukannya, ada file perangkat yang menunggu untuk digunakan.
Jika Anda menggulir ke bawah layar ini sedikit, Anda akan melihat lebih banyak daftar
perangkat. Yang menarik adalah perangkat sda1, sda2, sda3, sdb, dan sdb1, yang merupakan
hard drive dan partisinya serta flash drive USB dan partisinya.
--snip--
brw-rw---- 1 root root 8, 0 May 16 12:44 sda
brw-rw---- 1 root root 8, 1 May 16 12:44 sda1
brw-rw---- 1 root root 8, 2 May 16 12:44 sda2
brw-rw---- 1 root root 8, 5 May 16 12:44 sda5
brw-rw---- 1 root root 8, 16 May 16 12:44 sdb
brw-rw---- 1 root root 8, 17 May 16 12:44 sdb1 --snip--
Mari kita lihat lebih dekat hal ini.
Cara Linux Merepresentasikan Perangkat Penyimpanan
Linux menggunakan label logis untuk drive yang kemudian dipasang pada sistem file.
Label logis ini akan bervariasi tergantung di mana drive dipasang, artinya hard drive yang
sama mungkin memiliki label yang berbeda pada waktu yang berbeda, tergantung di mana
dan kapan dipasang.
Awalnya, Linux mewakili floppy drive sebagai fd0 dan hard drive sebagai hda. Anda
masih akan kadang-kadang melihat representasi drive ini pada sistem Linux lama, tetapi hari
ini sebagian besar drive floppy sudah tidak ada (syukurlah). Meski begitu, hard drive lama
yang menggunakan antarmuka IDE atau EIDE masih direpresentasikan dalam bentuk hda.
Drive Newer Serial ATA (SATA) yang lebih baru dan hard drive Small Computer System
Interface (SCSI) direpresentasikan sebagai sda. Drive terkadang dibagi menjadi beberapa
bagian yang dikenal sebagai partisi, yang direpresentasikan dalam sistem pelabelan dengan
angka, seperti yang akan Anda lihat selanjutnya.
Jika sistem memiliki lebih dari satu hard drive, Linux cukup menamainya secara
berurutan dengan menambahkan huruf terakhir dalam urutan abjad, jadi drive pertama
adalah sda, dan drive kedua adalah sdb, drive ketiga adalah 1). Huruf serial
setelah sd sering disebut sebagai angka utama.
Tabel 10.1 Sistem Penamaan Perangkat
Partisi Drive
Beberapa drive dapat dipecah menjadi beberapa partisi untuk mengelola dan
memisahkan informasi. Misalnya, Anda mungkin ingin memisahkan hard drive Anda
sehingga file swap, direktori beranda, dan direktori Anda semua berada di partisi yang
terpisah—Anda mungkin ingin melakukan ini karena sejumlah alasan, termasuk untuk
menghubungkan dan berbagi ke sumber daya. izin. Linux memberi label pada setiap partisi
dengan nomor kecil yang muncul setelah penunjukan drive. Dengan cara ini, partisi pertama
pada drive SATA pertama adalah sda1. Partisi kedua adalah sda2, sda3 ketiga, dan
seterusnya, seperti yang diilustrasikan pada Tabel 10.2.
Tabel 10.2 Sistem Pelabelan Partisi
Kadang-kadang, Anda mungkin ingin melihat partisi di sistem Linux Anda untuk
melihat yang mana yang Anda miliki dan berapa banyak kapasitas yang tersedia di masingmasing. Anda dapat melakukannya dengan menggunakan utilitas fdisk. Menggunakan -l
switch dengan fdisk mendaftarkan semua partisi dari semua drive, seperti yang ditunjukkan
di Daftar 10.2.
kali >fdisk -l
Disk /dev/sda: 20GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos Disk identifier: 0x7c06cd70
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 39174143 39172096 18.7G 83 Linux
/dev/sda2 39176190 41940991 2764802 1.3G 5 Extended
/dev/sda5 39176192 41940991 2764800 1.3G 82 Linux swap / Solaris
Disk /dev/sdb: 29.8 GiB, 31999393792 bytes, 62498816 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos Disk identifier: 0xc3072e18
Device Boot Start End Sectors Size Id Type
/dev/sdb1 32 62498815 62498784 29.8G 7 HPFS/NTFS/exFAT
Daftar 10.2 Mencantumkan partisi dengan fdisk
Seperti yang Anda lihat di Daftar 102, perangkat sda1, sda2, dan sda5 tercantum di
bait pertama. Ketiga perangkat ini membentuk disk virtual dari mesin virtual saya, yang
merupakan drive 20GB dengan tiga partisi, termasuk partisi swap (sda5), yang berfungsi
seperti RAM virtual—mirip dengan file halaman di Windows ketika kapasitas RAM melebihi
kapasitas.
Jika Anda memindai Daftar 102 ke bait ketiga, Anda melihat output perangkat kedua
yang ditunjuk sdb1—label b memberi tahu kami bahwa drive ini terpisah dari tiga perangkat
pertama. Ini adalah flash drive 64GB saya. Perhatikan bahwa fdisk menunjukkan bahwa ini
adalah jenis sistem file HPFS/NTFS/ExFAT. Jenis file ini— High Performance File System
(HPFS), New Technology File System (NTFS), dan Extended File Allocation Table (exFAT)—
bukan asli sistem Linux, melainkan sistem macOS dan Windows. Ada baiknya untuk dapat
mengenali jenis file asli dari sistem yang berbeda saat Anda menyelidiki. Sistem file mungkin
menunjukkan jenis mesin tempat drive diformat, yang dapat menjadi informasi berharga.
Kali dapat menggunakan flash drive USB yang dibuat pada banyak sistem operasi yang
berbeda.
Seperti yang Anda lihat di Bab 1, sistem file Linux terstruktur secara signifikan
berbeda dengan Windows dan sistem operasi eksklusif lainnya. Selain itu, cara file disimpan
dan dikelola juga berbeda di Linux. Windows versi baru menggunakan sistem file NTFS,
sedangkan sistem Windows lama menggunakan sistem File Allocation Table (FAT).
Linux menggunakan sejumlah jenis sistem file yang berbeda, tetapi yang paling
umum adalah ext2, ext3, dan ext4. Ini adalah semua iterasi dari sistem file ext (atau
diperpanjang), dengan ext4 sebagai yang terbaru.
Karakter dan Blokir Perangkat
Hal lain yang perlu diperhatikan tentang penamaan file perangkat di direktori/dev
adalah bahwa posisi pertama berisi c atau b. Anda dapat melihat ini di Daftar 101 di awal
sebagian besar entri, dan terlihat seperti ini:
crw------- 1 root root 10,175 May 16 12:44 agpgart
Huruf-huruf ini mewakili dua cara perangkat mentransfer data masuk dan keluar. C adalah
singkatan dari character, dan perangkat ini dikenal seperti yang Anda harapkan sebagai
perangkat karakter. Perangkat eksternal yang berinteraksi dengan sistem dengan mengirim
dan menerima data karakter per karakter, seperti mouse atau keyboard, adalah perangkat
karakter.
b adalah singkatan dari jenis kedua: block device/memblokir perangkat. Mereka
berkomunikasi dalam blok data (beberapa byte pada satu waktu) dan termasuk perangkat
seperti hard drive dan drive DVD. Perangkat ini memerlukan throughput data berkecepatan
lebih tinggi dan karenanya mengirim dan menerima data dalam blok (banyak karakter atau
byte pada satu waktu). Setelah Anda mengetahui apakah perangkat adalah perangkat
karakter atau blok, Anda dapat dengan mudah mendapatkan lebih banyak informasi
tentangnya, seperti yang akan Anda lihat selanjutnya.
Daftar Block Device dan Informasi dengan lsblk
Perintah Linux lsblk, kependekan dari list block, mencantumkan beberapa informasi
dasar tentang setiap perangkat blok yang terdaftar di/dev. Hasilnya mirip dengan output dari
fdisk -l, tetapi juga akan menampilkan perangkat dengan banyak partisi dalam sejenis pohon,
menunjukkan setiap perangkat dengan partisinya sebagai cabang, dan tidak memerlukan hak
akses root. Di Daftar 10.3, misalnya, kita melihat sda, dengan cabangnya sda1, sda2, dan
sda5.
kali >lsblk
Name MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda1 8:0 0 20G 0 disk
|-sda1 8:1 0 18.7G 0 part /
|-sda2 8:2 0 1K 0 part
|-sda5 8:5 0 1.3G 0 part [SWAP]
sdb 8:16 1 29.8G 0 disk
|-sdb1 8.17 1 29.8G 0 disk /media
sr0 11:0 1 2.7G 0 rom
Daftar 10.3 Daftar blokir informasi perangkat dengan lsblk
Outputnya mencakup floppy drive sebagai fd0 dan drive DVD sebagai sr0, meskipun
keduanya tidak ada di sistem saya—ini hanya peninggalan dari sistem lama. Kami juga dapat
melihat informasi tentang mount point drive—ini adalah posisi di mana drive dipasang ke
sistem file. Perhatikan bahwa hard drive sda1 dipasang di / dan flash drive dipasang di
/media. Anda akan melihat selengkapnya tentang makna dari ini di bagian berikutnya.
10.2 MOUNTING DAN UNMOUNTING
Sebagian besar sistem operasi modern, termasuk sebagian besar versi baru Linux,
memasang perangkat penyimpanan secara otomatis saat terpasang, artinya flash drive atau
hard drive baru secara otomatis terpasang ke sistem file. Bagi mereka yang baru mengenal
Linux, pemasangan mungkin menjadi subjek asing.
Perangkat penyimpanan pertama-tama harus terhubung secara fisik ke sistem file
dan kemudian dilampirkan secara logis ke sistem file agar data tersedia untuk sistem operasi.
Dengan kata lain, bahkan jika perangkat secara fisik terpasang ke sistem, itu belum tentu
terpasang secara logis dan tersedia ke sistem operasi. Istilah mount adalah warisan dari harihari awal komputasi ketika kaset penyimpanan (sebelum hard drive) harus secara fisik
dipasang ke sistem komputer pikirkan komputer besar dengan drive kaset berputar yang
mungkin Anda punya ilmu pengetahuan.
Seperti yang disebutkan, titik di pohon direktori tempat perangkat dipasang disebut
sebagai titik pemasangan. Dua titik pemasangan utama di Linux adalah/mnt dan/media.
Sebagai aturan umum, hard drive internal dipasang di/mnt, dan perangkat USB eksternal
seperti flash drive dan hard drive USB eksternal dipasang di/media, meskipun secara teknis
semua direktori dapat digunakan.
Memasang Sendiri Perangkat Penyimpanan Dalam beberapa versi Linux, Anda perlu
memasang drive secara manual untuk mengakses kontennya, jadi ini adalah keterampilan
yang patut dipelajari. Untuk memasang drive di sistem file, gunakan perintah mount. Titik
pemasangan untuk perangkat harus berupa direktori kosong; jika Anda memasang
perangkat pada direktori yang memiliki subdirektori dan file, perangkat yang dipasang akan
mencakup konten direktori, membuatnya tidak terlihat dan tidak tersedia. Jadi, untuk
memasang hard drive sdb1 baru di direktori /mnt, Anda harus memasukkan yang berikut:
kali >mount /dev/sdb1 /mnt
Hard drive tersebut harus tersedia untuk diakses. Jika Anda ingin memasang flash
drive sdc1 di direktori /media, Anda harus memasukkan ini:
kali >mount /dev/sdc1 /media
Sistem file yang dipasang pada sistem disimpan dalam file di /etc/fstab (kependekan
dari tabel sistem file), yang dibaca oleh sistem pada setiap boot.
Melepas dengan umount Jika Anda berasal dari latar belakang Mac atau Windows,
Anda mungkin telah melepas drive tanpa menyadarinya. Sebelum Anda menghapus flash
drive dari sistem Anda, Anda "mengeluarkannya" agar tidak menyebabkan kerusakan pada
file yang disimpan di perangkat. Keluarkan adalah kata lain untuk melepas.
Serupa dengan perintah mount, Anda dapat melepas hard drive kedua dengan
memasukkan perintah umount diikuti dengan entri file perangkat di direktori/dev, seperti
/dev/sdb. Perhatikan bahwa perintah tersebut tidak dieja unmount melainkan umount (tidak
ada n).
kali >umount /dev/sdb1
Anda tidak dapat melepas perangkat yang sedang sibuk, jadi jika sistem membaca
atau menulis ke perangkat, Anda hanya akan menerima kesalahan.
10.3 PEMANTAUAN SISTEM FILE
Di bagian ini, kita melihat beberapa perintah untuk memantau status sistem file—
keahlian yang diperlukan untuk Hacker atau administrator sistem. Kami akan mendapatkan
beberapa info tentang disk yang terpasang, lalu memeriksa dan memperbaiki kesalahan.
Perangkat penyimpanan sangat rawan kesalahan, sehingga sebaiknya mempelajari
keterampilan ini.
Mendapatkan Informasi tentang Disk yang Dipasang
Perintah df (untuk disk free) akan memberi kami informasi dasar tentang hard disk
atau perangkat yang terpasang, seperti CD, DVD, dan flash drive, termasuk berapa banyak
ruang yang digunakan dan seberapa tersedia ( lihat Daftar 10.4). Tanpa opsi apa pun, default
df ke drive pertama di sistem Anda (dalam hal ini, sda). Jika Anda ingin memeriksa drive yang
berbeda, cukup ikuti perintah df dengan representasi drive yang ingin Anda periksa
(misalnya, df sdb ).
kali >df
Filesystem 1K-Blocks Used Available Use% Mounted on
rootfs 19620732 17096196 1504788 92% /
udev 10240 0 10240 0% /dev
--snip--
/dev/sdb1 29823024 29712544 110480 99% /media/USB3.0
Daftar 10.4 Mendapatkan informasi tentang disk dan perangkat yang terpasang dengan df
Baris pertama dari output di sini menunjukkan header kategori, lalu kita
mendapatkan informasinya. Ruang disk diberikan dalam blok 1KB. Pada baris kedua, kita
melihat bahwa rootfs memiliki 19.620.732 blok satukilobyte, di mana ia menggunakan
17.096.196 (atau sekitar 92 persen), menyisakan 1.504.788 yang tersedia. Perintah df juga
memberi tahu kami bahwa sistem file ini dipasang di bagian atas sistem file/.
Di baris terakhir, Anda dapat melihat flash drive USB saya. Perhatikan bahwa ini telah
ditetapkan/dev/sdb1, hampir 100 persen penuh, dan dipasang di/media/USB3.0.
Sebagai rangkuman, disk virtual saya di sistem ini diberi nama sda1, yang rusak
sebagai berikut:
sd hard drive SATA
a hard drive pertama
1 Partisi pertama di drive itu
Flash drive 64 GB saya ditetapkan sebagai sdb1, dan drive eksternal saya sebagai sdc1.
Checking Error
Perintah fsck (kependekan dari pemeriksaan sistem file) memeriksa sistem file untuk
kesalahan dan memperbaiki kerusakan, jika memungkinkan, atau menempatkan area yang
buruk ke dalam tabel blok yang buruk untuk menandainya sebagai buruk. Untuk
menjalankan perintah fsck, Anda perlu menentukan jenis sistem file (defaultnya adalah ext2)
dan file perangkat yang akan diperiksa. Penting untuk diperhatikan bahwa Anda harus
melepas drive sebelum menjalankan pemeriksaan sistem file. Jika Anda gagal melepas
perangkat yang dipasang, Anda akan menerima pesan kesalahan yang ditampilkan di Daftar
10.5.
kali >fsck
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
/dev/sda1 is mounted e2fsck: Cannot continue, aborting.
Daftar 10.5 Mencoba (dan gagal) untuk menjalankan pemeriksaan kesalahan pada drive
yang terpasang
Jadi, langkah pertama saat melakukan pemeriksaan sistem file adalah melepas
perangkat. Dalam hal ini, saya akan melepas flash drive saya untuk melakukan pemeriksaan
sistem file:
kali >umount /dev/sdb1
Saya dapat menambahkan opsi -p agar fsck secara otomatis memperbaiki masalah apa pun
dengan perangkat, seperti:
kali >fsck -p /dev/sdb1
Dengan perangkat terlepas, sekarang saya dapat memeriksa setiap sektor buruk atau
masalah lain pada perangkat, sebagai berikut:
kali >fsck -p /dev/sdb1
fsck from util-linux 2.30.2
exfatfsck 1.2.7
Checking file system on /dev/sdb1.
File system version 1.0
Sector size 512 bytes
Cluster size 32 KB
Volume size 7648 MB
Used space 1265 MB
Available space 6383 MB
Totally 20 directories and 111 files.
File system checking finished. No errors found.
10.4 RINGKASAN
Memahami cara Linux menunjuk dan mengelola perangkatnya sangatlah penting bagi
pengguna dan Hacker Linux. Hacker perlu mengetahui perangkat apa yang dilampirkan ke
sistem dan berapa banyak ruang yang tersedia. Karena perangkat penyimpanan sering
mengalami error, kami dapat memeriksa dan memperbaiki error tersebut dengan fsck.
Perintah dd mampu membuat salinan fisik perangkat, termasuk semua file yang dihapus.
BAB 11
SISTEM LOGIN
Untuk setiap pengguna Linux, sangatlah penting untuk memiliki pengetahuan tentang
penggunaan file log. File log menyimpan informasi tentang peristiwa yang terjadi saat sistem
operasi dan aplikasi dijalankan, termasuk kesalahan dan peringatan keamanan. Sistem Anda
akan mencatat informasi secara otomatis berdasarkan serangkaian aturan yang akan saya
tunjukkan cara mengonfigurasinya di bab ini.
Sebagai Hacker, file log dapat menjadi jejak ke aktivitas dan identitas target Anda.
Namun, ini juga bisa menjadi jejak ke aktivitas Anda sendiri di sistem orang lain. Oleh karena
itu, seorang Hacker perlu mengetahui informasi apa yang dapat mereka kumpulkan, serta
apa yang dapat dikumpulkan tentang tindakan dan metode mereka sendiri untuk
menyembunyikan bukti tersebut.
Di sisi lain, siapa pun yang mengamankan sistem Linux perlu mengetahui cara
mengelola fungsi logging untuk menentukan apakah suatu sistem telah diserang dan
kemudian menguraikan apa yang sebenarnya terjadi dan siapa yang melakukannya.
Bab ini menunjukkan kepada Anda cara memeriksa dan mengonfigurasi file log, serta
cara menghapus bukti aktivitas Anda dan bahkan menonaktifkan logging secara keseluruhan.
Pertama, kita akan melihat daemon yang melakukan logging.
11.1 RSYSLOG LOGGING DAEMON
Linux menggunakan daemon yang disebut syslogd untuk secara otomatis mencatat
peristiwa di komputer Anda. Beberapa variasi syslog, termasuk rsyslog dan syslog-ng,
digunakan pada distribusi Linux yang berbeda, dan meskipun mereka beroperasi sangat
mirip, ada beberapa perbedaan kecil. Karena Kali Linux di dibuat di Debian, dan Debian
dilengkapi dengan rsyslog secara default, kami berfokus pada utilitas tersebut di bab ini. Jika
Anda ingin menggunakan distribusi lain, ada baiknya melakukan sedikit riset tentang sistem
logging mereka.
Mari kita lihat rsyslog di sistem Anda. Kami akan menelusuri semua file yang
terkait dengan rsyslog. Pertama, buka terminal di Kali dan masukkan yang berikut ini:
kali >locate rsyslog
/etc/rsyslog.conf
/etc/rsyslog.d
/etc/default/rsyslog
/etc/init.d/rsyslog
/etc/logcheck/ignore.d.server/rsyslog
/etc/logrotate.d/rsyslog
/etc/rc0.d/K04rsyslog
--snip--
Seperti yang Anda lihat, banyak file berisi rsyslog kata kunci—beberapa di antaranya lebih
berguna daripada yang lain. Salah satu yang ingin kami periksa adalah file konfigurasi
rsyslog.conf.
File Konfigurasi rsyslog
Seperti hampir setiap aplikasi di Linux, rsyslog dikelola dan dikonfigurasi oleh file
konfigurasi plaintext yang terletak, seperti umumnya di Linux, di direktori /etc. Dalam kasus
rsyslog, file konfigurasi berada di /etc/rsyslog.conf. Buka file tersebut dengan editor teks apa
pun, dan kami akan menjelajahi apa yang di dalamnya (di sini, saya menggunakan Leafpad):
kali >leafpad /etc/rsyslog.conf
Anda akan melihat sesuatu seperti Daftar 111.
/etc/rsyslog.conf Configuration file for rsyslog.
# For more information see
# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
#################
#### MODULES ####
#################
module(load="imuxsock") # menyediakan dukungan untuk logging sistem lokal
module(load="imklog") # menyediakan dukungan logging kernel
#module(load="immark")# menyedialam --MARK-- kapabilitas pesan
# provides UDP syslog reception
# module(load="imudp")
# input(type="imudp" port="514")
# provides TCP syslog reception
# module(load="imtcp")
# input(type="imtcp" port="514")
###########################
#### GLOBAL DIRECTIVES ####
###########################
Daftar 11.1 Snapshot dari file rsyslog.conf
Seperti yang Anda lihat, file rsyslog.conf didokumentasikan dengan baik dengan
banyak komentar yang menjelaskan penggunaannya. Sebagian besar informasi ini tidak akan
berguna bagi Anda saat ini, tetapi jika Anda menavigasi ke bawah baris 50, Anda akan
menemukan bagian Aturan. Di sinilah Anda dapat menetapkan aturan untuk apa yang akan
dicatat oleh sistem Linux Anda secara otomatis untuk Anda.
Aturan Logging rsyslog
Aturan rsyslog menentukan jenis informasi apa yang dicatat, program apa yang
pesannya dicatat, dan di mana log itu disimpan. Sebagai Hacker, ini memungkinkan Anda
untuk mengetahui apa yang sedang dicatat dan di mana log itu ditulis sehingga Anda dapat
menghapus atau mengaburkannya. Gulir ke baris 50 dan Anda akan melihat sesuatu seperti
Daftar 11.2
###############
#### RULES ####
###############
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
1pr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
#
# Pencatatan untuk sistem surat. Pisahkan sehingga
# mudah untuk menulis skrip untuk mengurai file-file ini.
#
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err
Daftar 11.2 Menemukan aturan logging di rsyslog.conf
Setiap baris adalah aturan logging terpisah yang menyatakan pesan apa yang dicatat
dan di mana mereka masuk. Format dasar untuk aturan ini adalah sebagai berikut:
facility .priority action
Kata kunci facility merujuk ke program, seperti email, kernel, atau lpr yang pesannya
sedang dicatat. Kata kunci priority menentukan jenis pesan yang akan dilog untuk program
tersebut.Kata kunci action, di paling kanan, merujuk lokasi tempat log akan dikirim. Mari kita
lihat setiap bagian lebih dekat, dimulai dengan kata kunci facility, yang merujuk pada
software apa pun yang menghasilkan log, apakah itu kernel, sistem email, atau pengguna.
Berikut ini adalah daftar kode valid yang dapat digunakan sebagai pengganti kata
kunci facilitydalam aturan file konfigurasi kami:
auth /authpriv Pesan keamanan/otorisasi
cron Jam daemon
daemon Daemon lainnya
kern pesan kernel
lpr Sistem pencetakan
mail Sistem surat
User pesan Umum tingkat pengguna
Wildcard asterisk (*) menggantikan kata mengacu pada semua fasilitas. Anda dapat memilih
lebih dari satu fasilitas dengan mencantumkannya dipisahkan dengan koma.
priority memberi tahu sistem jenis pesan apa yang harus dicatat. Kode didaftarkan
dari prioritas terendah, dimulai saat debug, hingga prioritas tertinggi, diakhiri dengan panic.
Jika prioritas adalah * , pesan dari semua prioritas akan dicatat. Saat Anda menentukan
prioritas, pesan dengan prioritas tersebut dan yang lebih tinggi akan dicatat. Misalnya, jika
Anda menetapkan kode prioritas alert, sistem akan mencatat pesan yang diklasifikasikan
sebagai alert dan prioritas yang lebih tinggi, tetapi tidak akan mencatat pesan yang ditandai
sebagai crit atau prioritas yang lebih rendah dari alert.
Berikut daftar lengkap kode valid untuk prioritas
debug
info
notice
warning
warn
error
err
crit
alert
emerg
panic
Kode warning, warn, error, err, emerg, dan panic semuanya sudah tidak digunakan lagi dan
tidak boleh digunakan.
Action biasanya adalah nama file dan lokasi tempat log harus dikirim. Perhatikan
bahwa umumnya, file log dikirim ke direktori/var/log dengan nama file yang menjelaskan
fasilitas yang menghasilkannya, seperti auth. Ini berarti, misalnya, bahwa log yang dihasilkan
oleh fasilitas auth akan dikirim ke/var/log.auth.log.
Mari kita lihat beberapa contoh aturan log:
mail.* /var/log/mail
Contoh ini akan mencatat peristiwa email dari semua (*) prioritas ke /var/log/mail.
kern.crit /var/log/kernel
Contoh ini akan mencatat peristiwa kernel dengan prioritas kritis (crit) atau lebih tinggi ke
/var/log/kernel.
*.emerg *
Contoh terakhir ini akan mencatat semua peristiwa dengan prioritas darurat (emerg)
untuk semua pengguna yang login. Dengan aturan ini, Hacker dapat menentukan lokasi file
log, mengubah prioritas, atau bahkan menonaktifkan aturan logging tertentu.
11.2 MEMBERSIHKAN LOG DENGAN LOGROTATE OTOMATIS
File log menghabiskan ruang, jadi jika Anda tidak menghapusnya secara berkala, file
tersebut pada akhirnya akan mengisi seluruh hard drive Anda. Di sisi lain, jika Anda
menghapus file log terlalu sering, Anda tidak akan memiliki log untuk diselidiki pada suatu
saat di masa mendatang. Anda dapat menggunakan logrotate untuk menentukan
keseimbangan antara persyaratan yang berlawanan ini dengan memutar log Anda.
Rotasi log adalah proses pengarsipan file log secara teratur dengan memindahkannya
ke beberapa lokasi lain, meninggalkan Anda dengan file log baru. Lokasi yang diarsipkan
tersebut kemudian akan dibersihkan setelah jangka waktu tertentu.
Sistem Anda sudah memutar file log menggunakan tugas cron yang menggunakan
utilitas logrotate. Anda dapat mengonfigurasi utilitas logrotate untuk memilih keteraturan
rotasi log Anda dengan file teks /etc/logrotate.conf. Mari buka dengan editor teks dan
lihatlah:
kali >leafpad /etc/logrotate.conf
Anda akan melihat sesuatu seperti Daftar 11.3.
# see "man logrotate" for details
# rotate log files weekly
➊ weekly
# keep 4 weeks worth of backlogs
➋ rotate 4
➌ # create new (empty) log files after rotating old ones create
➍ # uncomment this if you want your log files compressed #compress
# packages drop log rotation information into this directory include /etc/logrotate.d
# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
Daftar 11.3 File konfigurasi logrotate Pertama, Anda dapat menyetel satuan waktu nomor
putar yang Anda rujuk ke ➊.
Defaultnya di sini adalah weekly, artinya angka apa pun setelah kata kunci rotate
selalu mengacu pada minggu.
Lebih jauh ke bawah, Anda dapat melihat setelan untuk seberapa sering memutar
log—setelan defaultnya adalah memutar log setiap empat minggu sekali. Konfigurasi default
ini akan berfungsi untuk kebanyakan orang, tetapi jika Anda ingin menyimpan log Anda lebih
lama untuk tujuan investigasi atau lebih pendek untuk menghapusnya lebih cepat, ini adalah
setelan yang harus Anda ubah. Misalnya, jika Anda memeriksa file log setiap minggu dan
ingin menghemat ruang penyimpanan, Anda dapat mengubah setelan ini menjadi rotate.
Jika Anda memiliki banyak penyimpanan untuk log dan ingin menyimpan catatan analisis
semipermanen ubah setelan ini menjadi rotate untuk menyimpan log Anda selama enam
bulan atau rotate untuk menyimpannya selama satu tahun. Secara default, file log kosong
baru akan dibuat saat yang lama dihapus ➌.. Seperti yang disarankan oleh komentar di file
konfigurasi, Anda juga dapat memilih untuk mengompresi file log yang diputar ➍.
Pada akhir setiap periode rotasi, file log diberi nama dan didorong ke akhir rantai log
saat file log baru dibuat, menggantikan file log saat ini. Misalnya, /var/log.auth akan menjadi
/var/log.auth.1, lalu /var/log.auth.2, dan seterusnya. Jika Anda merotasi log setiap empat
minggu dan menyimpan empat set cadangan, /var/log.auth.4 Anda akan memiliki
/var/log.auth.4, tetapi tidak/var/log.auth.5, artinya /var/log.auth.4 akan dihapus bukannya
di didorong ke /var/log/auth.5. Anda dapat melihatnya dengan menggunakan perintah
lokasikan untuk menemukan /var/log/auth.log file log dengan karakter pengganti, seperti
yang ditunjukkan di sini:
kali >locate /var/log/auth.log.*
/var/log/auth.log.1
/var/log/auth.log.2
/var/log/auth.log.3
/var/log/auth.log.4
Untuk detail selengkapnya tentang banyak cara untuk menyesuaikan dan menggunakan
utilitas logrotate, lihat halaman manual logrotate. Ini adalah sumber yang sangat bagus
untuk mempelajari tentang fungsi yang dapat Anda gunakan dan variabel yang dapat Anda
ubah untuk menyesuaikan cara penanganan log Anda. Setelah Anda menjadi lebih akrab
dengan Linux, Anda akan lebih memahami seberapa sering Anda perlu login dan opsi apa
yang Anda sukai, jadi ada baiknya meninjau kembali file logrotate.conf.
11.3 REMAINING STEALTHY
Setelah Anda mengkompromikan sistem Linux, akan sangat berguna untuk
menonaktifkan logging dan menghapus semua bukti penyusupan Anda ke dalam file log
untuk mengurangi kemungkinan deteksi. Ada banyak cara untuk melakukan ini, dan masingmasing membawa risiko dan tingkat keandalannya sendiri.
Menghapus Bukti
Pertama, Anda ingin menghapus semua log aktivitas Anda. Anda cukup membuka file
log dan menghapus log yang merinci aktivitas Anda, baris demi baris, menggunakan teknik
penghapusan file yang Anda pelajari di Bab 2. Namun, ini bisa memakan waktu dan
menyisakan waktu yang terlihat sangat berbahaya. Selain itu, file yang dihapus biasanya
dapat dipulihkan oleh penyelidik forensik yang ahli.
Solusi yang lebih baik dan lebih aman adalah dengan menghancurkan file log. Dengan
sistem penghapusan file lainnya, penyelidik yang terampil masih dapat memulihkan file yang
terhapus, tetapi seandainya ada cara untuk menghapus file dan menimpanya beberapa kali,
membuatnya jauh lebih sulit untuk dipulihkan. Beruntung bagi kami, Linux memiliki perintah
bawaan, dengan nama yang sesuai, shred hanya untuk tujuan ini.
Untuk memahami cara kerja perintah shred, lihatlah layar bantuan dengan
memasukkan perintah berikut:
kali >shred --help
Usage: shred [OPTION]...FILE...
Timpa FILE yang ditentukan berulang kali untuk membuatnya lebih sulit
bahkan untuk pemeriksaan perangkat keras yang sangat mahal untuk dipulihkan data
--snip--
Seperti yang dapat Anda lihat dari output penuh di layar Anda, perintah shred
memiliki banyak opsi. Dalam bentuk yang paling dasar, sintaksnya sederhana:
shred <FILE>
Dengan sendirinya, shred akan menghapus file dan menimpanya beberapa kali—
secara default, shred menimpa empat kali. Umumnya, semakin sering file ditimpa, semakin
sulit untuk dipulihkan, tetapi perlu diingat bahwa setiap penimpaan membutuhkan waktu,
jadi untuk file yang sangat besar, merobek-robek mungkin memakan waktu.
Dua opsi yang berguna untuk disertakan adalah opsi-f, yang mengubah izin pada file
untuk memungkinkan penimpaan jika perubahan izin diperlukan, dan opsi–n, yang
memungkinkan Anda memilih berapa kali file akan ditimpa. Sebagai contoh, kami akan
menghancurkan file log di /var/log/auth.log 10 kali menggunakan perintah berikut:
kali >shred -f -n 10 /var/log/auth.log.*
Kami membutuhkan opsi –f untuk memberi kami izin untuk menghancurkan file auth,
dan kami mengikuti opsi –n dengan jumlah waktu yang diinginkan untuk menimpa. Setelah
jalur file yang ingin kami hancurkan, kami menyertakan tanda bintang karakter pengganti
sehingga kami tidak hanya merobek file auth.log, tetapi juga semua log yang telah dibuat
dengan logrotate, seperti auth.log. log.2, dan seterusnya.
Sekarang coba untuk membuka file log:
kali >leafpad /var/log/auth.log.1
Setelah menghancurkan file, Anda akan melihat bahwa isinya adalah omong kosong yang
tidak dapat dipahami, seperti yang ditunjukkan pada Gambar 11.1.
Gambar 11.1 File log yang diparut
Sekarang, jika insinyur keamanan atau penyelidik forensik memeriksa file log, mereka
tidak akan menemukan apa pun yang berguna karena tidak ada yang dapat dipulihkan!
Menonaktifkan Logging
Opsi lain untuk menutupi jejak Anda adalah dengan menonaktifkan logging saja.
Saat Hacker mengambil alih suatu sistem, mereka dapat segera menonaktifkan logging untuk
mencegah sistem melacak aktivitas mereka. Ini, tentu saja, memerlukan hak istimewa root.
Untuk menonaktifkan semua logging, Hacker hanya dapat menghentikan daemon
rsyslog. Menghentikan layanan apa pun di Linux menggunakan sintaks yang sama seperti
yang ditunjukkan di sini (Anda akan melihat selengkapnya tentang ini di Bab 12):
service servicename start|stop|restart
Jadi, untuk menghentikan daemon logging, Anda cukup memasukkan perintah berikut:
kali >service rsyslog stop
Sekarang Linux akan berhenti membuat berkas log sampai layanan dimulai ulang,
memungkinkan Anda untuk beroperasi tanpa meninggalkan bukti apa pun dalam file log!
11.4 RINGKASAN
File log melacak hampir semua yang terjadi di sistem Linux Anda. Mereka bisa
menjadi sumber daya yang sangat berharga dalam mencoba menganalisis apa yang telah
terjadi, baik itu malfungsi atau peretasan. Bagi para Hacker, file log dapat menjadi bukti
aktivitas dan identitas mereka. Namun, seorang Hacker yang cerdik dapat menghapus dan
menghancurkan file-file ini dan menonaktifkan logging sepenuhnya, sehingga tidak
meninggalkan bukti.
1. Gunakan perintah locate untuk menemukan semua file rsylog
2. Buka file rsylog.config dan ubah rotasi log Anda ke satu minggu
3. Nonaktifkan logging on pada sistem Anda. Investigasi apa yang terloggin pada file
/var/log/sylog ketika Anda menonaktifkan logging.
4. Gunakan perintah shred untuk shred dan delete semua file log kern Anda
BAB 12
MENGGUNAKAN DAN MENYALAHGUNAKAN LAYANAN
Dalam terminologi Linux, layanan adalah aplikasi yang berjalan di latar belakang
menunggu Anda menggunakannya. Sistem Linux Anda memiliki lusinan layanan yang telah
diinstal sebelumnya. Dari semua ini, yang paling terkenal adalah Apache Web Server, yang
digunakan untuk membuat, mengelola, dan menerapkan server web, tetapi masih banyak
lagi. Untuk tujuan bab tentang layanan ini, saya hanya memilih empat yang sangat penting
bagi Hacker: Server Web Apache, OpenSSH, MySQL, dan PostgreSQL.
Dalam bab ini, Anda akan mempelajari cara menyiapkan server web dengan Apache,
memata-matai secara fisik dengan OpenSSH, mengakses data dengan MySQL, dan
menyimpan informasi peretasan Anda dengan PostgreSQL
12.1 MEMULAI, MENGHENTIKAN, DAN MERESTART LAYANAN
Sebelum kita mulai bekerja dengan keempat layanan penting ini, mari kita mulai
dengan mempelajari cara memulai, menghentikan, dan memulai ulang layanan di Linux.
Beberapa layanan dapat dihentikan dan dimulai melalui GUI di Kali Linux, seperti yang Anda
lakukan pada sistem operasi seperti Windows atau Mac. Namun, beberapa layanan
memerlukan penggunaan baris perintah, yang akan kita lihat di sini. Berikut ini adalah sintaks
dasar untuk mengelola layanan:
service servicename start|stop|restart
Untuk memulai layanan apache2 (server web atau layanan HTTP), Anda harus memasukkan
yang berikut:
kali >service apache2 start
Untuk menghentikan server web Apache, masukkan:
kali >service apache2 stop
Biasanya, saat Anda melakukan perubahan konfigurasi pada aplikasi atau layanan dengan
mengubah file konfigurasi plaintext, Anda perlu memulai ulang layanan untuk mengambil
konfigurasi baru. Dengan demikian, Anda akan memasukkan yang berikut:
kali >service apache2 restart
Sekarang setelah Anda memahami cara memulai, menghentikan, dan memulai ulang layanan
dari baris perintah, mari beralih ke empat layanan Linux paling penting bagi Hacker.
12.2 MENCIPTAKAN SERVER WEB HTTP DENGAN APACHE WEB SERVER
Apache Web Server mungkin adalah layanan yang paling umum digunakan pada
sistem Linux. Apache ditemukan di lebih dari 60 persen server web dunia, jadi setiap admin
Linux yang menghargai diri sendiri harus terbiasa dengannya. Sebagai Hacker yang bercitacita untuk meretas situs web, sangat penting untuk memahami cara kerja Apache, situs web,
dan database backend situs ini. Anda juga dapat menggunakan Apache untuk menyiapkan
server web Anda sendiri, yang darinya Anda dapat menyajikan malware melalui cross-site
scripting (XSS) kepada siapa saja yang mengunjungi situs Anda, atau Anda dapat
mengkloning situs dan mengalihkan lalu lintas domain ke domain Domain Name System
(DNS). Dalam salah satu dari kasus ini, diperlukan pengetahuan dasar tentang Apache.
Memulai dengan Apache
Jika Anda telah menjalankan Kali di sistem Anda, Apache sudah diinstal. Banyak distro
Linux lainnya telah menginstalnya secara default juga. Jika Anda belum menginstal Apache,
Anda dapat mendownload dan menginstalnya dari repositori dengan memasukkan kode
berikut:
kali >apt-get install apache2
Apache Web Server sering dikaitkan dengan database MySQL (yang akan kita lihat di
bagian berikutnya) dan kedua layanan ini sangat sering dipasangkan dengan bahasa scripting
seperti Perl atau PHP untuk pengembangan aplikasi web. Kombinasi dari Linux, Apache,
MySQL, dan PHP atau Perl ini membentuk platform yang kuat dan kuat untuk
pengembangan dan penerapan aplikasi berbasis web, yang secara kolektif dikenal sebagai
LAMP. Ini adalah alat yang paling banyak digunakan untuk mengembangkan situs web di
dunia Linux—dan juga sangat populer di dunia Microsoft, di mana mereka biasanya disebut
sebagai WAMP, dengan W untuk Windows.
Langkah pertama, tentu saja, adalah memulai daemon Apache kami. Di Kali, buka
Applications Services ▸ HTTPD dan klik Apache start. Anda dapat melakukan hal yang sama
dari baris perintah dengan memasukkan yang berikut:
kali >services apache2 start
Setelah Apache berjalan, apache seharusnya dapat menampilkan laman web defaultnya.
Masukkan http://localhost/ di browser web favorit Anda untuk membuka halaman web yang
akan terlihat seperti Gambar 12.1.
Gambar 12.1 Halaman default Apache2 Web Server
Seperti yang Anda lihat, Apache menampilkan “Ini berfungsi” sebagai halaman web
default-nya. Sekarang setelah Anda tahu Server Web Apache Anda berfungsi, mari sesuaikan!
Mengedit halaman web default File index.html
Apache ada di /var/www/html/index.html. Anda dapat mengedit file index.html
untuk menyajikan informasi apa pun yang Anda inginkan, jadi mari kita buat sendiri. Untuk
ini, Anda dapat menggunakan editor teks apa pun yang Anda inginkan; Saya akan
menggunakan Leafpad. Buka up /var/www/html/index.html dan Anda akan melihat sesuatu
seperti Daftar 12.1.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN
"http://www.w3.org/TR/xhtm11/DTD/xhtm11-transiti
<html xmlns="http://www.w3.org/1999/xhtml>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" I>
➊ <title>Apache2 Debian Default Page: It works</title>
<style type="text/css" media="screen">
* {
margin: Opx Opx Opx Opx;
padding: Opx Opx Opx Opx;
}
body, html {
padding: 3px 3px 3px 3px;
background-color: #D8DBE2;
font-family: Verdana, sansserif;
font-size: 11pt;
text-align: center;
}
div.main_page {
position: relative;
display: table;
Daftar 12.1 File Apache Web Server index.html
Perhatikan di sini bahwa halaman web default memiliki teks yang sama persis dengan
yang ditampilkan saat kami membuka browser kami ke localhost, tetapi dalam format HTML
➊. Yang perlu kita lakukan hanyalah mengedit atau mengganti file ini agar server web kita
menampilkan informasi yang kita inginkan.
Menambahkan Beberapa HTML
Sekarang setelah server web aktif dan berjalan dan file index.html terbuka, kami
dapat menambahkan teks apa pun yang kami ingin server web untuk sajikan. Kami akan
membuat beberapa blok HTML sederhana. Mari buat laman ini. Dalam file baru di editor
teks Anda, masukkan kode yang ditampilkan di Daftar 12.2.
<html>
<body>
<h1>Hackers-Bangkit Is the Best! </h1>
<p> If you want to learn hacking, Hackers-Bangkit.com </p>
<p> is the best place to learn hacking!</p>
</body>
</html>
Daftar 12.2 Beberapa HTML sederhana untuk ditambahkan ke file index.html
Setelah Anda memasukkan teks persis seperti yang muncul di Daftar 12.2, simpan file
ini sebagai /var/www/html/index.html dan tutup editor teks Anda. Editor teks Anda akan
meminta Anda bahwa file sudah ada. Tidak apa-apa. Cukup timpa file
/var/www/html/index.html yang ada.
Melihat Apa yang Terjadi Setelah menyimpan file /var/www/html/index.html kami,
kami dapat memeriksa untuk melihat apa yang akan dilayani oleh Apache. Navigasikan
browser Anda sekali lagi ke http://localhost, dan Anda akan melihat sesuatu seperti Gambar
12.2. Apache telah menyajikan laman web kami sebagaimana kami membuatnya.
Gambar 12.2 Situs web HackersBangkit baru
12.3 OPENSSH AND THE RASPBERRY SPY PI
SSH adalah singkatan dari Secure Shell dan pada dasarnya adalah apa yang
memungkinkan kita untuk terhubung dengan aman ke terminal pada sistem jarak jauh
pengganti untuk telnet tidak aman yang sangat umum di tahun lalu. Saat kami membangun
server web, SSH memungkinkan kami membuat daftar akses (daftar pengguna yang dapat
menggunakan layanan ini), mengautentikasi pengguna dengan sandi terenkripsi, dan
mengenkripsi semua komunikasi. Hal ini mengurangi kemungkinan pengguna yang tidak
diinginkan menggunakan terminal jarak jauh (karena proses autentikasi yang ditambahkan)
atau mencegat komunikasi kami (karena enkripsi). Mungkin layanan SSH Linux yang paling
banyak digunakan adalah OpenSSH, yang diinstal di hampir setiap distribusi Linux, termasuk
Kali.
Administrator sistem sering menggunakan SSH untuk mengelola sistem jarak jauh,
dan Hacker sering menggunakan SSH untuk terhubung ke sistem jarak jauh yang disusupi,
jadi kami akan melakukan hal yang sama di sini. Dalam contoh ini, kami menggunakan SSH
untuk menyiapkan sistem Raspberry Pi jarak jauh untuk memata-matai, sesuatu yang saya
sebut "Raspberry Spy Pi". Untuk ini, Anda memerlukan Raspberry Pi dan modul kamera
Raspberry Pi. Namun, sebelum kami melakukannya, mulai OpenSSH pada sistem Kali Anda
dengan perintah yang sekarang sudah dikenal:
kali >service ssh star
Kami akan menggunakan SSH untuk membangun dan mengontrol Raspberry Pi matamata jarak jauh. Jika Anda belum terbiasa dengannya, Raspberry Pi adalah komputer
berukuran kartu kredit kecil tapi kuat yang berfungsi sangat baik sebagai alat mata-mata
jarak jauh. Kami akan menggunakan Raspberry Pi dengan modul kamera untuk digunakan
sebagai perangkat mata-mata jarak jauh. Anda dapat membeli Raspberry Pi di hampir semua
pengecer elektronik, termasuk Amazon, dengan harga kurang dari $50, dan Anda bisa
mendapatkan modul kamera dengan harga sekitar $15.
Di sini, kami akan menggunakan Raspberry Spy Pi pada jaringan yang sama dengan
sistem Kali kami, yang memungkinkan kami untuk menggunakan alamat IP pribadi internal.
Tentu saja, saat meretas di dunia nyata, Anda mungkin ingin memasangnya di jaringan jarak
jauh lain, tetapi itu akan menjadi sentuhan yang lebih sulit dan di luar cakupan buku ini.
Menyiapkan Raspberry Pi
Pastikan bahwa Raspberry Pi Anda menjalankan sistem operasi Raspbian; ini
hanyalah distribusi Linux lain yang secara khusus di-porting untuk CPU Raspberry Pi. Anda
dapat menemukan petunjuk pengunduhan dan penginstalan untuk Raspbian di
https://www.raspberrypi.org/downloads/raspbian/. Hampir semua yang Anda pelajari
dalam buku ini berlaku untuk OS Raspbian di Raspberry Pi serta Kali, Ubuntu, dan distribusi
Linux lainnya.
Setelah Raspbian OS Anda diunduh dan diinstal, Anda harus menghubungkan
Raspberry Pi ke monitor, mouse, dan keyboard, lalu menghubungkannya ke internet. Jika ini
semua baru bagi Anda, lihat petunjuknya di
https://www.raspberrypi.org/learning/hardwareguide/. Setelah semuanya disiapkan, login
dengan nama pengguna pi dan raspberry sandi.
Membangun Raspberry Spy Pi
Langkah pertama adalah memastikan bahwa SSH berjalan dan diaktifkan pada
Raspberry Spy Pi. SSH biasanya tidak aktif secara default, jadi untuk mengaktifkannya, buka
menu Preferensi dan luncurkan Raspberry Pi Configuration. Lalu, buka tab Interface dan, di
samping SSH, klik Enable (jika belum dicentang) dan klik OK.
Saat SSH diaktifkan, Anda dapat memulainya di Raspberry Spy Pi Anda dengan
membuka terminal dan memasukkan kode berikut:
kali >service ssh start
Selanjutnya Anda perlu melampirkan modul kamera Anda. Jika Anda menggunakan
board Raspberry Pi versi 3, hanya ada satu tempat untuk menghubungkannya. Nonaktifkan
Pi , pasang modul ke port kamera, lalu aktifkan lagi. Perhatikan bahwa kamera sangat rapuh
dan tidak boleh bersentuhan dengan pin input/output (GPIO) tujuan umum; jika tidak,
mungkin akan pendek dan mati.
Sekarang, dengan layanan SSH aktif dan berjalan, tempatkan Raspberry Spy Pi di
suatu tempat di dalam rumah, sekolah, atau lokasi lain yang ingin Anda mata-matai.
Perangkat ini tentu saja harus terhubung ke jaringan area lokal, baik melalui kabel Ethernet
atau idealnya melalui WiFi. (Raspberry Pi 3 baru dan Raspberry Pi Zero keduanya memiliki
WiFi bawaan).
Sekarang, Anda perlu mendapatkan alamat IP Raspberry Pi Anda. Seperti yang Anda
pelajari di Bab 3, Anda bisa mendapatkan alamat IP perangkat Linux dengan menggunakan
ifconfig:
pi >ifconfi
Alamat IP Pi saya adalah 192.168.1.101, tetapi pastikan Anda menggunakan alamat IP
Raspberry Spy Pi Anda di mana pun alamat saya muncul di bab ini. Sekarang, dari sistem Kali
Anda, Anda harus dapat terhubung langsung ke dan mengontrol Raspberry Spy Pi Anda dan
menggunakannya sebagai sistem mata-mata jarak jauh. Dalam contoh sederhana ini, sistem
Anda harus berada di jaringan yang sama dengan Pi. Untuk menyambungkan ke Raspberry
Spy Pi jarak jauh melalui SSH dari sistem Kali Anda, masukkan kode berikut, ingat untuk
menggunakan alamat IP Pi Anda sendiri:
kali >ssh
pi@192.168.1.101 pi@192.168.1.101's password:
Program yang disertakan dengan sistem Debian GNU/Linux adalah software bebas ;
istilah distribusi yang tepat untuk setiap program dijelaskan dalam file individual di
/usr/share/doc/*/copyright.
Debian GNU/Linux hadir dengan BENAR-BENAR TANPA GARANSI, sejauh
diizinkan oleh hukum yang berlaku
last login: Tues Jan. 1 12:01:01 2018
pi@raspberyypi:: $
Spy Pi kemudian akan meminta Anda untuk memasukkan kata sandi. Dalam hal ini,
sandi defaultnya adalah raspberry, kecuali jika Anda telah mengubahnya.
Mengonfigurasi Kamera
Selanjutnya, kita perlu mengonfigurasi kamera. Untuk melakukannya, mulai alat
konfigurasi Raspberry Pi dengan memasukkan perintah berikut:
pi >sudo raspi-config
Ini akan memulai menu grafis seperti yang ditunjukkan pada Gambar 12.3.
Gambar 12.3 Alat konfigurasi Raspberry Pi
Gulir ke bawah ke 6 Aktifkan Kamera dan tekan ENTER. Sekarang, gulir ke bagian
bawah menu ini dan pilih Finish dan tekan ENTER, seperti yang ditunjukkan pada Gambar
12.4.
Gambar 12.4 Menyelesaikan konfigurasi
Saat alat konfigurasi menanyakan apakah Anda ingin melakukan boot ulang, seperti
yang ditunjukkan pada Gambar 12.5, pilih Yes dan tekan ENTER lagi.
Gambar 12.5 Mulai ulang Pi untuk mengaktifkan perubahan.
Sekarang kamera Raspberry Spy Pi Anda harus aktif dan siap untuk memata-matai!
Mulai Spy
Setelah Raspberry Spy Pi telah reboot dan Anda telah masuk ke dalamnya melalui
SSH dari terminal Kali, Anda siap untuk mulai menggunakannya untuk memata-matai dengan
mengambil gambar diam.
Sistem operasi Raspbian memiliki aplikasi bernama raspistill yang akan kami gunakan
untuk mengambil gambar dari Raspberry Spy Pi kecil kami. Masukkan raspistill ke terminal
untuk melihat layar bantuan alat dan semua opsinya:
pi@raspberrypi: raspistill
raspistill Camera App v1.3.8
Runs camera selama beberapa waktu, dan ambil foto dengan format JPG
usage: raspistill [options] Image parameter commands
--snip--
Mari sekarang gunakan Raspberry Spy Pi untuk mengambil beberapa foto mata-mata
dari jarak jauh! Perintah raspistill memiliki banyak opsi yang harus Anda jelajahi, tetapi di sini
kami hanya akan menggunakan defaultnya.
Untuk mengambil gambar dan menyimpannya sebagai JPEG, masukkan yang berikut:
pi@raspberrypi:
raspistill -v -o firstpicture.jpg raspistill Camera App v1.3.8
width 2592, Height 1944, quality 85, filename firstpicture.jpg
Time delay 5000, Raw no
--snip--
Kami menggunakan opsi–v untuk memberi kami keluaran verbose dan opsi–o untuk
memberi tahu raspistill bahwa kami akan memberikan nama file untuk digunakan; lalu kami
memberikan nama file. Saat kami melakukan longlisting di Raspberry Spy Pi, kami dapat
melihat file firstpicture.jpg seperti yang ditunjukkan di sini:
pi@raspberrypi: ls -l
total 2452
drwxr-xr-x 2 pi pi 4096 Mar 18 2019 Desktop
drwxr-xr-x 2 pi pi 4096 Mar 18 2019 Documents
drwxr-xr-x 2 pi pi 4096 Mar 18 2019 Downloads
-rw-r--r-- 1 pi pi 2472219 Mar 18 2019 firstpicture.jpg
drwxr-xr-x 2 pi pi 4096 Mar 18 2019 Music
drwxr-xr-x 2 pi pi 4096 Mar 18 2019 Pictures
--snip--
Kami telah mengambil gambar mata-mata pertama kami di Raspberry Spy Pi jarak jauh kami
menggunakan SSH! Jangan ragu untuk menjelajahi senjata serbaguna ini lebih lanjut.
12.4 MENGEKSTRAK INFORMASI DARI MYSQL
MySQL adalah database yang paling banyak digunakan di balik aplikasi web
berdatabasebase. Di era modern teknologi Web 2.0, di mana hampir setiap situs web
digerakkan oleh database, ini berarti MySQL menyimpan data untuk sebagian besar web.
Database adalah “gold fleece ” bagi Hacker. Mereka berisi informasi penting tentang
pengguna serta informasi rahasia seperti nomor kartu kredit. Karena alasan ini,
Hacker paling sering menargetkan database.
Seperti Linux, MySQL adalah sumber terbuka dan general public licensed/berlisensi
publik umum (GPL), dan Anda akan menemukannya sudah terinstal di hampir setiap
distribusi Linux.
Karena gratis, open source, dan kuat, MySQL telah menjadi database pilihan untuk
banyak aplikasi web, termasuk situs web populer seperti WordPress, Facebook, LinkedIn,
Twitter, Kayak, Walmart.com, YouTube, dan YouTube.
Sistem pengelolaan content management systems/konten populer lainnya (CMS)
seperti Joomla, Drupal, dan Ruby on Rails semuanya juga menggunakan MySQL.
Anda mendapatkan idenya. Jika Anda ingin mengembangkan atau menyerang database
backend aplikasi web, Anda harus mengetahui MySQL. Mari kita mulai.
Memulai MySQL
Untungnya, Kali sudah menginstal MySQL (jika Anda menggunakan distribusi lain,
Anda dapat mengunduh dan menginstal MySQL dari repositori software atau langsung dari
https://www.mysql.com/downloads/).
Untuk memulai layanan MySQL Anda, masukkan yang berikut ke terminal:
kali >service mysql start
Selanjutnya, Anda perlu mengautentikasi diri Anda dengan masuk. Masukkan kode berikut
dan saat dimintai sandi, cukup tekan ENTER:
kali >mysql -u root -p
Enter password:
Welcome to MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.30-1 (Debian)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved
Oracle adalah merek dagang terdaftar dari Oracle Corporation dan/atau miliknya
afiliasi. Nama lain mungkin merupakan merek dagang dari pemiliknya masing-masing
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement mysql >
Dalam konfigurasi default MySQL, sandi pengguna root kosong. Jelas, ini adalah
kerentanan keamanan utama, dan Anda harus memperbaikinya dengan menambahkan kata
sandi setelah login pertama Anda. Perhatikan bahwa nama pengguna dan sandi untuk sistem
operasi dan MySQL Anda terpisah dan berbeda. Mari ubah sandi untuk pengguna
root MySQL sekarang agar aman.
MASA LALU DAN MASA DEPAN MYSQL
MySQL pertama kali dikembangkan oleh MySQL AB dari Swedia pada tahun 1995 dan
kemudian dibeli oleh Sun Microsystems pada tahun 2008, yang kemudian dibeli oleh Oracle
pada tahun 2009 sehingga MySQL sekarang dimiliki oleh Oracle. Oracle adalah penerbit
software database terbesar di dunia, sehingga komunitas open source memiliki keraguan
yang signifikan tentang komitmen Oracle untuk menjaga MySQL tetap open source.
Akibatnya, sekarang ada percabangan dari software database MySQL yang disebut “Maria”
yang berkomitmen untuk menjaga software ini dan versi berikutnya open source.
Sebagai admin Linux atau Hacker, Anda harus mengawasi Maria.
Berinteraksi dengan MySQL
SQL adalah bahasa pemrograman yang ditafsirkan untuk berinteraksi dengan
database. Database sering kali merupakan database relasional, artinya data disimpan dalam
beberapa tabel yang berinteraksi dan setiap tabel memiliki nilai dalam satu atau lebih kolom
dan baris.
Ada beberapa implementasi SQL, masing-masing dengan perintah dan sintaksnya sendiri,
tetapi berikut adalah beberapa perintah umum:
select Digunakan untuk mengambil data
union Digunakan untuk menggabungkan hasil dari dua atau lebih operasi pilihan
insert Digunakan untuk menambahkan data baru
update Digunakan untuk memodifikasi data yang ada
delete Digunakan untuk menghapus data
Anda dapat memberikan ketentuan untuk setiap perintah agar lebih spesifik tentang apa
yang ingin Anda lakukan. Misalnya, garis
pilih pengguna, sandi dari pelanggan di mana user='admin';
akan mengembalikan nilai untuk pengguna dan bidang sandi untuk pengguna yang nilai
penggunanya sama dengan “admin” di tabel pelanggan.
Menyetel Kata Sandi MySQL
Mari kita lihat pengguna yang sudah ada di sistem MySQL kami dengan memasukkan
yang berikut ini. (Perhatikan bahwa perintah di MySQL diakhiri dengan titik koma).
mysql >select user, host, password from mysql.user;
+-------------------------------------------------------------
user | host | password
+-------------------------------------------------------------
|root |localhost |
|root |aphrodite.kali.org |
|root |127.0.0.1 |
--snip--
Hal ini menunjukkan bahwa pengguna root belum menetapkan sandi. Mari tetapkan
sandi untuk mengakar. Untuk melakukannya, pertama-tama kami akan memilih database
untuk digunakan. MySQL di sistem Anda akan dilengkapi dengan beberapa database yang
sudah disiapkan. Gunakan show database; perintah untuk melihat semua database yang
tersedia:
mysql >show databases;
+-------------------------------+
| Database |
+-------------------------------+
| information_schema |
| mysql |
| performance_schema |
+-------------------------------+
3 rows in set (0.23 sec)
MySQL hadir dengan tiga database secara default, dua di antaranya
(information_schema dan performance_schema) adalah database administratif yang tidak
akan kami gunakan di sini. Kami akan menggunakan database nonadministratif, mysql, yang
disertakan untuk tujuan Anda sendiri. Untuk mulai menggunakan database mysql, masukkan:
mysql >use mysql;
Membaca informasi tabel untuk melengkapi nama tabel dan kolom
Anda dapat mematikan fitur ini untuk memulai lebih cepat dengan -A
Database changed
Perintah ini menghubungkan kita ke mysql. Sekarang, kita dapat menyetel sandi
untuk pengguna root untuk hacke bangkit dengan perintah berikut:
mysql >update user set password = PASSWORD("Hackers-bangkit") where user = 'root';
Perintah ini akan mengupgrade pengguna dengan menyetel kata sandi root
pengguna ke Hacker.
Mengakses Database Jarak Jauh
Untuk mengakses database MySQL di localhost, kami menggunakan sintaks berikut:
kali >mysql -u <username> -p
Perintah ini secara default menggunakan instance MySQL di localhost jika tidak diberi
nama host atau alamat IP. Untuk mengakses database jarak jauh, kita perlu memberikan
nama host atau alamat IP dari sistem yang menghosting database MySQL. Berikut
ini contohnya:
kali >mysql -u root -p 192.168.1.101
Ini akan menghubungkan kami ke instance MySQL di 192.168.1.101 dan meminta
kami untuk memasukkan sandi. Untuk tujuan demonstrasi, saya menghubungkan ke
instance MySQL di local area networksaya (LAN). Jika Anda memiliki sistem di jaringan Anda
yang telah menginstal MySQL, gunakan alamat IP-nya di sini. Saya akan menganggap Anda
telah berhasil melewati kata sandi dan telah masuk ke sistem sebagai root (Anda sudah tahu
bahwa secara default, database mysql tidak memiliki kata sandi).
Tindakan ini akan membuka antarmuka baris perintah MySQL, yang memberi kita
perintah mysql >. Selain antarmuka baris perintah ini, MySQL memiliki antarmuka GUI—baik
yang asli (MySQL Workbench) dan pihak ketiga (Navicat dan TOAD untuk MySQL). Bagi Anda
sebagai Hacker, antarmuka baris perintah mungkin merupakan peluang terbaik untuk
mengeksploitasi database MySQL, jadi kami akan fokus pada hal itu di sini. Tidak
mungkin sebagai pendatang yang tidak sah ke database, Anda akan disajikan GUI yang
mudah digunakan.
Catatan
Layar ini mengingatkan kita bahwa semua perintah harus diakhiri dengan titik koma
atau \g (tidak seperti SQL Server Microsoft) dan bahwa kita bisa mendapatkan help dengan
memasukkan bantuan; atau \h.
Sekarang setelah kita login sebagai admin sistem, kita dapat menavigasi tanpa
hambatan melalui database. Jika kami telah masuk sebagai pengguna biasa, navigasi kami
akan dibatasi oleh izin yang diberikan oleh administrator sistem untuk pengguna tersebut.
Menghubungkan ke Database
Dengan akses ke sistem, kami ingin mengintip. Langkah kami selanjutnya adalah
mencari tahu apakah ada database yang layak untuk diakses. Berikut adalah perintah untuk
menemukan database mana yang ada di sistem yang diakses:
mysql >show databases;
+-------------------------------+
| Database |
+-------------------------------+
| information schema |
| mysql |
| creditcardnumbers |
| performance_schema |
+-------------------------------+
4 rows in set (0.26 sec)
Kami telah menemukan database yang layak untuk dijelajahi dengan nama
creditcardnumber. Mari terhubung dengannya. Di MySQL, seperti dalam sistem manajemen
database (DBMS) lainnya, kami dapat terhubung ke database yang kami minati dengan
memasukkan use databasename;.
mysql >use creditcardnumbers;
Database changed
Database yang diubah tanggapannya menunjukkan bahwa kami sekarang terhubung
ke database creditcardnumbers. Tentu saja, itu tidak perlu dikatakan bahwa tidak mungkin
seorang admin database akan begitu akomodatif untuk memberi nama database sesuatu
yang mudah dikenali seperti creditcardnumber, jadi Anda mungkin perlu melakukan sedikit
minat untuk menjelajahinya.
Tabel Database
Kami sekarang terhubung ke database creditcardnumber dan dapat melakukan
sedikit penjelajahan untuk melihat informasi apa yang mungkin disimpannya. Data dalam
database diatur ke dalam tabel, dan setiap tabel mungkin menyimpan kumpulan data terkait
yang berbeda. Kita dapat mengetahui tabel apa yang ada di database ini dengan
memasukkan perintah berikut:
mysql >show tables;
+-----------------------------------+
| Tables_in_creditcardnumbers |
+-----------------------------------+
| cardnumbers |
+-----------------------------------+
1 row in set (0.14 sec)
Di sini, kita dapat melihat bahwa database ini hanya memiliki satu tabel di dalamnya,
yang disebut cardnumbers. Umumnya, database akan memiliki banyak tabel di dalamnya,
jadi kemungkinan Anda harus melakukan sedikit lebih banyak pengintaian. Dalam contoh
database ini, kami beruntung dapat memusatkan perhatian kami pada satu tabel ini untuk
mengekstrak bulu emas Hacker!
Sekarang setelah kita memiliki tabel yang ingin kita periksa, kita perlu memahami
struktur tabel tersebut. Setelah kami mengetahui bagaimana tabel ditata, kami dapat
mengekstrak informasi yang relevan.
Anda dapat melihat struktur tabel menggunakan pernyataan describe, seperti:
mysql >describe cardnumbers;
+---------------+--------------+---------+-----------+---------+---------+
| Field | Type | Null | Key | Default
| Extra |
+---------------+--------------+---------+-----------+---------+---------+
| customers | varchar(15) | YES | | NULL | |
| address | varchar(15) | YES | | NULL | |
| city | varchar(15) | YES | | NULL | |
| state | varchar(15) | YES | | NULL | |
| cc | int(12) | NO | | 0 | |
+---------------+--------------+---------+-----------+---------+---------+
MySQL merespons dengan informasi penting pada struktur daftar minat kami. Kita
dapat melihat nama setiap bidang serta jenis data yang dimilikinya (seringkali jenis teks
varchar atau tipe integer int). Kami juga dapat melihat apakah itu akan menerima nilai NULL;
kunci, jika ada (tabel tautan kunci); nilai default apa pun yang mungkin dimiliki bidang, dan
informasi tambahan apa pun di bagian akhir, seperti catatan.
Memeriksa Data
Untuk benar-benar melihat data dalam tabel, kami menggunakan perintah PILIH.
Perintah SELECT mengharuskan Anda mengetahui informasi berikut:
Tabel yang menampung data yang ingin dilihat
Kolom di dalam tabel yang menyimpan data yang ingin Anda lihat
Kami menjabarkan ini dalam format berikut:
SELECT columns FROM table
Sebagai jalan pintas yang berguna untuk melihat data dari semua kolom, kita dapat
menggunakan tanda bintang sebagai karakter pengganti daripada mengetik setiap nama
kolom yang ingin kita lihat. Jadi, untuk melihat kumpulan semua data dari tabel
cardnumbers, kami memasukkan yang berikut ini:
mysql >SELECT * FROM cardnumbers;
+-----------+---------------+-------------+---------+--------------+
| customers | address | city | state | cc |
+-----------+---------------+-------------+---------+--------------+
| Jones | 1 Wall St | NY | NY | 12345678 |
| Sawyer | 12 Piccadilly | London | UK | 234567890 |
| Doe | 25 Front St | Los Angeles | CA | 4567898877 |
+-----------+---------------+-------------+---------+--------------+
Seperti yang Anda lihat, MySQL telah menampilkan semua informasi dari tabel nomor kartu
hingga layar kami. Kami telah menemukan bulu emas Hacker!
PostgreSQL dengan Metasploit
PostgreSQL, atau hanya Postgres, adalah database relasional open source lainnya
yang sering digunakan dalam aplikasi internetface yang sangat besar karena kemampuannya
untuk menskalakan dengan mudah dan menangani beban kerja yang berat. Ini pertama kali
dirilis pada Juli 1996 dan dikelola oleh sekelompok besar pengembang yang dikenal sebagai
Grup Pengembangan Global PostgreSQL.
PostgreSQL juga diinstal secara default di Kali, tetapi jika Anda menggunakan
distribusi Linux lain, kemungkinan itu akan ada di repositori Anda dan Anda dapat
menginstalnya dengan memasukkan perintah berikut:
kali >apt-get postgres install
Sebagai seorang Hacker, Anda akan menganggap PostgreSQL sangat penting karena
ini adalah database default dari pengujian penetrasi dan kerangka kerja peretasan yang
paling banyak digunakan, Metasploit. Metasploit menggunakan PostgreSQL untuk
menyimpan modulnya, serta hasil pemindaian dan eksploitasi, untuk kemudahan
penggunaan dalam uji penetrasi atau peretasan. Oleh karena itu, kami akan menggunakan
PostgreSQL di sini dalam konteks Metasploit.
Seperti hampir semua layanan di Linux, kita dapat memulai PostgreSQL dengan mem
asukkan service application start, seperti seperti:
kali >service postgresql start
Setelah PostgreSQL aktif dan berjalan, mari kita mulai Metasploit:
kali >msfconsole
Perhatikan bahwa saat Metasploit telah selesai memulai, Anda akan melihat perintah msf >.
Mengajarkan Anda cara menggunakan Metasploit untuk tujuan peretasan dan eksploitasi
berada di luar cakupan buku ini, tetapi di sini kami akan menyiapkan database tempat
Metasploit akan menyimpan informasinya.
Dengan menjalankan Metasploit, kita dapat menyiapkan PostgreSQL dengan perintah
berikut sehingga menyimpan data dari aktivitas Metasploit apa pun di sistem Anda:
msf >msfdb init
[*] exec :msfdb init
Creating database use 'msf' Enter password for new role
Enter it again:
Creating databases 'msf' and 'msf_test'
Creating configuration file /usr/share/metasploitframework/config/database.yml
Membuat skema database awal
Selanjutnya, kita perlu login ke Postgres sebagai root. Di sini, kami mendahului perintah
dengan su, perintah “beralih pengguna”, untuk mendapatkan hak istimewa root:
msf >su postgres
[*] su postgres
postgres@kali:/root$
Saat Anda masuk ke Postgres, Anda akan melihat bahwa perintah telah berubah menjadi
postgres@kali:/root$, yang mewakili aplikasi, nama host, dan pengguna.
Pada langkah berikutnya, kita perlu membuat pengguna dan sandi, seperti:]
postgres@kali:/root$ createuser msf_user -P
Enter Password for new role:
Enter it again:
Kami membuat nama pengguna msf_user menggunakan opsi –P dengan perintah
createuser. Kemudian masukkan sandi yang diinginkan dua kali. Selanjutnya, Anda perlu
membuat database dan memberikan izin untuk msf_user. Beri nama database
Hackers_bangkit_db, seperti yang ditunjukkan di sini:
postgres@kali:/root$ createdb --owner=msf_user Hackers_bangkit_db
postgres@kali:/root$ exi
Saat Anda keluar dari Postgres dengan perintah keluar, terminal akan kembali ke msf >
prompt. Selanjutnya, kita harus menghubungkan konsol Metasploit, msfconsole, ke database
PostgreSQL dengan menentukan hal berikut:
User
Pasword
Host
Database name
Dalam kasus kami, kami dapat menghubungkan msfconsole ke database kami dengan
perintah berikut:
msf >db_connect msf_user:password@127.0.0.1/Hackers_bangkit_db
Anda, tentu saja, perlu memberikan sandi yang Anda gunakan sebelumnya. Alamat IP
adalah alamat sistem lokal Anda (localhost), sehingga Anda dapat menggunakan 127.0.0.1
kecuali jika Anda membangun database ini di sistem jarak jauh.
Terakhir, kita dapat memeriksa status database PostgreSQL untuk memastikannya
terhubung:
Anda, tentu saja, perlu memberikan sandi yang Anda gunakan sebelumnya. Alamat IP
adalah alamat sistem lokal Anda (localhost), sehingga Anda dapat menggunakan 127.0.0.1
kecuali jika Anda membangun database ini di sistem jarak jauh.
Terakhir, kita dapat memeriksa status database PostgreSQL untuk memastikannya
terhubung:
msf >db_status [*] postgresql connected to msf
Seperti yang Anda lihat, Metasploit merespons bahwa database PostgreSQL terhubung dan
siap digunakan. Sekarang, ketika kami melakukan pemindaian sistem atau menjalankan
eksploitasi dengan Metasploit, hasilnya akan disimpan di database PostgreSQL kami. Selain
itu, Metasploit sekarang menyimpan modul-modulnya di database Postgres kami, membuat
pencarian modul yang tepat jauh lebih mudah dan lebih cepat!
RINGKASAN
Linux memiliki banyak layanan yang berjalan di latar belakang hingga pengguna
membutuhkannya. Apache Web Server adalah yang paling banyak digunakan, tetapi seorang
Hacker harus terbiasa dengan MySQL, SSH, dan PostgreSQL untuk berbagai tugas juga.
Dalam bab ini, kita telah membahas dasar-dasar mutlak untuk memulai layanan ini. Setelah
Anda merasa nyaman dengan sistem Linux Anda, saya mendorong Anda untuk keluar dan
menjelajahi setiap layanan ini lebih lanjut.
BAB 13
AMAN DAN ANONIM
Saat ini, hampir semua yang kita lakukan di internet dilacak. Siapa pun yang
melakukan pelacakan—apakah itu Google yang melacak penelusuran online, kunjungan situs
web, dan email kami, atau Badan Keamanan Nasional/ National Security Agency (NSA) yang
mencatat semua aktivitas kami—setiap gerakan online kami dicatat, dan kemudian diindeks.
Rata-rata individu—dan Hacker, khususnya—perlu memahami cara membatasi pelacakan ini
dan tetap relatif anonim di web untuk membatasi pengawasan di mana-mana ini.
Dalam bab ini, kita akan melihat bagaimana Anda dapat menavigasi World Wide Web
secara anonim (atau sedekat mungkin) menggunakan empat metode:
Onion Network
Server proksi
Jaringan pribadi virtual
Email pribadi terenkripsi
Tidak ada metode yang pasti untuk menjaga aktivitas Anda aman dari pengintaian, dan
dengan waktu dan sumber daya yang cukup, apa pun dapat dilacak. Namun, metode ini
kemungkinan akan membuat pekerjaan Hacker jauh lebih sulit.
13.1 BAGAIMANA INTERNET MEMBERI JALAN
Untuk memulai, mari kita bahas secara mendalam beberapa cara aktivitas kita di
internet dilacak. Kami tidak akan membahas semua metode pelacakan, atau terlalu detail
tentang salah satu metode, karena itu akan berada di luar cakupan buku ini.
Memang, diskusi seperti itu dapat membawa keseluruhan buku sendiri.
Pertama, alamat IP Anda mengidentifikasi Anda saat melintasi internet. Data yang
dikirim dari mesin Anda biasanya diberi tag dengan alamat IP Anda, sehingga aktivitas Anda
mudah dilacak. Kedua, Google dan layanan email lainnya akan “read” email Anda, mencari
kata kunci untuk menayangkan iklan Anda dengan lebih efisien. Meskipun ada banyak
metode yang lebih canggih yang jauh lebih banyak waktu dan sumber daya, ini adalah yang
kami coba cegah dalam bab ini. Mari kita mulai dengan melihat bagaimana alamat IP
memberikan kita di internet.
Saat Anda mengirim paket data melalui internet, paket tersebut berisi alamat IP
sumber dan tujuan data tersebut. Dengan cara ini, paket mengetahui ke mana arahnya dan
ke mana harus mengembalikan respons. Setiap paket melompat melalui beberapa router
internet sampai menemukan tujuannya dan kemudian melompat kembali ke pengirim.
Untuk penjelajahan internet umum, setiap lompatan adalah router yang dilalui paket untuk
sampai ke tujuannya. Mungkin ada sebanyak 20-30 hop antara pengirim dan tujuan, tetapi
biasanya paket apa pun akan menemukan jalan ke tujuan dalam waktu kurang dari 15 hop.
Saat paket melintasi internet, siapa pun yang mencegat paket dapat melihat siapa
yang mengirimnya, ke mana telah pergi, dan ke mana perginya. Ini adalah salah satu cara
situs web dapat memberi tahu siapa Anda saat tiba dan memasukkan Anda secara otomatis,
dan juga bagaimana seseorang dapat melacak di mana Anda pernah berada di internet.
kali >traceroute
google.com traceroute to google.com (172.217.1.78), 30 hops max, 60 bytes packets
1 192.168.1.1 (192.168.1.1) 4.152 ms 3.834 ms 32.964 ms
2 10.0.0.1 (10.0.0.1) 5.797 ms 6.995 ms 7.679 ms
3 96.120.96.45 (96.120.96.45) 27.952 ms 30.377 ms 32.964 ms
--snip--
18 lgal15s44-in-f14.le100.net (172.217.1.78) 94.666 ms 42.990 ms 41.564 ms
Seperti yang Anda lihat, www.google.com adalah 18 lompatan di internet dari saya.
Hasil Anda mungkin akan berbeda karena permintaan Anda berasal dari lokasi yang berbeda
dan karena Google memiliki banyak server di seluruh dunia. Selain itu, paket tidak selalu
mengambil rute yang sama di internet, jadi Anda mungkin mengirim paket lain dari alamat
Anda ke situs yang sama dan menerima rute yang berbeda. Mari kita lihat bagaimana kita
dapat menyamarkan semua ini dengan jaringan Tor.
13.2 SISTEM ONION ROUTER
Pada tahun 1990-an, Kantor Riset Angkatan Laut / US Office of Naval Research (ONR)
mulai mengembangkan metode untuk menavigasi internet secara anonim untuk tujuan
spionase. Rencananya adalah untuk menyiapkan jaringan router yang terpisah dari router
internet, yang dapat mengenkripsi lalu lintas, dan yang hanya menyimpan alamat IP yang
tidak terenkripsi dari router sebelumnya, yang berarti semua alamat yang dienkripsi melalui
semua router lainnya. Idenya adalah bahwa siapa pun yang melihat lalu lintas tidak dapat
menentukan asal atau tujuan data tersebut. Penelitian ini dikenal sebagai “Proyek Onion
Router (Tor) ” pada tahun 2002, dan sekarang tersedia untuk siapa saja untuk digunakan
untuk navigasi yang relatif aman dan anonim di web.
Cara Kerja Tor
Paket yang dikirim melalui Tor tidak dikirim melalui router biasa sehingga dipantau
secara ketat oleh begitu banyak, tetapi dikirim melalui jaringan lebih dari 7.000 router di
seluruh dunia, terima kasih kepada sukarelawan yang mengizinkan komputer mereka
digunakan Selain menggunakan jaringan router yang benar-benar terpisah, Tor mengenkripsi
data, tujuan, dan alamat IP pengirim dari setiap paket. Di setiap hop, informasi dienkripsi
dan kemudian didekripsi oleh hop berikutnya saat diterima. Dengan cara ini, setiap paket
berisi informasi hanya tentang hop sebelumnya di sepanjang jalur dan bukan alamat IP asal.
Jika seseorang mencegat lalu lintas, mereka hanya dapat melihat alamat IP dari hop
sebelumnya, dan pemilik situs web hanya dapat melihat alamat IP dari router terakhir yang
mengirim lalu lintas (lihat Gambar 13.1). Hal ini memastikan anonimitas relatif di internet.
Gambar 13.1 Cara Tor menggunakan data lalu lintas terenkripsi
Untuk mengaktifkan penggunaan Tor, cukup instal browser Tor dari
https://www.torproject.org/. Setelah terinstal, tampilannya akan seperti Gambar 132, dan
Anda dapat menggunakannya seperti browser internet lama. Dengan menggunakan browser
ini, Anda akan menavigasi internet melalui serangkaian router yang terpisah dan akan dapat
mengunjungi situs tanpa dilacak oleh Big Brother. Sayangnya, keuntungannya adalah bahwa
berselancar melalui browser Tor bisa menjadi jauh lebih lambat; karena jumlah router yang
hampir tidak banyak, bandwidth di jaringan ini terbatas.
Gambar 13.2 Halaman landing untuk browser Tor
Selain mampu mengakses hampir semua situs web di internet tradisional, browser
Tor juga mampu mengakses dark web. Situs web yang membentuk dark web memerlukan
anonimitas, sehingga mereka hanya mengizinkan akses melalui browser Tor dan memiliki
alamat yang diakhiri dengan bawang untuk domain tingkat teratas/top-level domain (TLD).
Dark web terkenal karena aktivitas ilegalnya, tetapi sejumlah layanan yang sah juga tersedia
di sana. Namun, peringatan: saat mengakses dark web, Anda mungkin menemukan materi
yang menurut banyak orang menyinggung.
Masalah Keamanan
Layanan intelijen dan mata-mata Amerika Serikat dan negara-negara lain
menganggap jaringan Tor sebagai ancaman bagi keamanan nasional, karena percaya bahwa
jaringan anonim semacam itu memungkinkan pemerintah asing dan teroris untuk
berkomunikasi tanpa diawasi. Akibatnya, sejumlah proyek penelitian yang kuat dan ambisius
bekerja untuk memecahkan anonimitas Tor.
Anonimitas Tor telah dilanggar sebelumnya oleh otoritas ini dan kemungkinan akan
dilanggar lagi. NSA, sebagai salah satu instance, menjalankan router Tor-nya sendiri, artinya
lalu lintas Anda mungkin melintasi router NSA saat Anda menggunakan Tor. Jika lalu lintas
Anda keluar dari perute NSA, itu lebih buruk lagi karena perute keluar selalu tahu tujuan
Anda. NSA juga memiliki metode yang dikenal sebagai korelasi lalu lintas, yang melibatkan
pencarian pola lalu lintas masuk dan keluar, yang mampu mematahkan anonimitas Tor.
Meskipun upaya untuk merusak Tor ini tidak akan memengaruhi keefektifan Tor dalam
mengaburkan identitas Anda dari layanan komersial, seperti Google, upaya tersebut dapat
membatasi keefektifan browser dalam menjaga Anda tetap anonim dari agen mata-mata.
13.3 SERVER PROXY
Strategi lain untuk mencapai anonimitas di internet adalah dengan menggunakan
proxy, yang merupakan sistem perantara yang bertindak sebagai perantara untuk lalu lintas:
pengguna terhubung ke proxy, dan lalu lintas diberikan sebelum alamat IP Gambar 13.3).
Saat lalu lintas kembali dari tujuan, proxy akan mengirimkan lalu lintas kembali ke
sumbernya. Dengan cara ini, lalu lintas tampaknya berasal dari proxy dan bukan alamat IP
asal.
Gambar 13.3 Menjalankan lalu lintas melalui server proxy
Tentu saja, proxy kemungkinan akan mencatat lalu lintas Anda, tetapi penyelidik
harus mendapatkan surat panggilan atau surat perintah pencarian untuk mendapatkan log.
Untuk membuat lalu lintas Anda lebih sulit dilacak, Anda dapat menggunakan lebih dari satu
proxy, dalam strategi yang dikenal sebagai rantai proxy, yang akan kita lihat nanti di bab ini.
Kali Linux memiliki alat proxy yang sangat baik yang disebut proxychains yang dapat
Anda siapkan untuk mengaburkan lalu lintas Anda. Sintaks untuk perintah proxychains
adalah langsung, seperti yang ditunjukkan di sini:
kali >proxychains <the command you want proxied> <arguments >
Argumen yang Anda berikan mungkin menyertakan alamat IP. Misalnya, jika Anda ingin
menggunakan proxychain untuk memindai situs dengan nmap secara anonim, Anda harus
memasukkan kode berikut:
kali >proxychains nmap -sT - Pn <IP address>
Tindakan ini akan mengirim perintah pemindaian siluman nmap –sS ke alamat IP yang
diberikan melalui proxy. Alat tersebut kemudian membangun rantai proxy itu sendiri,
sehingga Anda tidak perlu khawatir tentang hal itu.
Menyetel Proksi di File Konfigurasi
Di bagian ini, kami menyetel proksi untuk digunakan oleh perintah rantai proksi.
Seperti hampir setiap aplikasi di Linux/Unix, konfigurasi proxychains dikelola oleh file
config—khususnya /etc/proxychains.conf. Buka file konfigurasi di editor teks pilihan Anda
dengan perintah berikut (ganti leafpad dengan editor pilihan Anda jika perlu):
kali >leafpad /etc/proxychains.conf
Anda akan melihat file seperti yang ditampilkan di Daftar 13.1.
# proxychains.conf VER 3.1
# HTTP, SOCKS4, SOCKS5 tunneling proxy dengan DNS
# Opsi di bawah ini mengidentifikasi bagaimana ProxyList diperlakukan.
# hanya satu opsi yang harus dibatalkan komentarnya pada saat itu,
# jika tidak, opsi yang muncul terakhir akan diterima
#
# dynamic_chain
#
# Dinamis Setiap koneksi akan dilakukan melalui proxy yang dirantai
# semua proxy dirantai sesuai urutan yang muncul dalam daftar
# setidaknya satu proxy harus online untuk bermain secara
berantai# (dead proxies are skipped)
# jika tidak, EINTR dikembalikan ke rantai ketat aplikasi
# Ketat Setiap koneksi akan dilakukan melalui proxy berantai
# semua proxy dirantai sesuai urutan yang muncul dalam daftar
# semua proxy harus online untuk bermain secara berantai
# jika tidak, EINTR dikembalikan ke aplikasi M
--snip--
Daftar 13.1 File proxychains.conf
Gulir ke bawah file ini ke baris 61, dan Anda akan melihat bagian ProxyList, seperti yang
ditunjukkan di Daftar 13.2.
[ProxyList]
# add proxy here...
# meanwhile
# defaults set to "tor"
socks4 127.0.0.1 9050
Daftar 13.2 Bagian dari file konfigurasi untuk menambahkan proksi
Kami dapat menambahkan proxy dengan memasukkan alamat IP dan port dari proxy
yang kami inginkan menggunakan dalam daftar ini. Untuk saat ini, kami akan menggunakan
beberapa proxy gratis. Anda dapat menemukan proksi gratis dengan googling “proksi gratis”
atau menggunakan situs http://www.hidemy.name, seperti yang ditunjukkan pada Gambar
13.4. Namun, perlu diperhatikan bahwa menggunakan proxy gratis dalam aktivitas peretasan
di dunia nyata bukanlah ide yang baik. Saya akan membahas ini secara lebih mendetail nanti
di bab ini. Contoh yang digunakan di sini hanya untuk tujuan pendidikan.
Isi detail dalam formulir atau cukup klik telusuri; lalu tambahkan salah satu proksi
yang dihasilkan ke file proxychains.conf Anda menggunakan format berikut:
Type IPaddress Port
Berikut contohnya:
[ProxyList]
# add proxy here...
socks4 114.134.186.12 22020
# meanwhile # defaults set to "tor"
# socks4 127.0.0.1 9050
Penting untuk diperhatikan bahwa proxychains secara default menggunakan Tor jika Anda
tidak memasukkan proksi apa pun milik Anda sendiri. Baris terakhir di Daftar 13.2
mengarahkan rantai proksi untuk mengirim lalu lintas terlebih dahulu melalui host di
127.0.0.1 pada port 9050 (konfigurasi Tor default). Jika Anda tidak menambahkan proxy
Anda sendiri dan ingin menggunakan Tor, biarkan ini apa adanya. Jika Anda tidak
menggunakan Tor, Anda perlu memberi komentar baris ini (tambahkan # sebelum itu).
Gambar 13.4 Proxy gratis dari http://www.hidemy.name
Seperti saya suka Tor, seperti yang disebutkan, biasanya sangat lambat. Juga, karena
NSA telah merusak Tor, kemungkinan besar saya tidak akan bergantung padanya untuk
anonimitas. Oleh karena itu, saya mengomentari baris ini dan menambahkan set proxy saya
sendiri.
Mari kita mengujinya. Dalam contoh ini, saya akan membuka browser Firefox dan
mengarahkannya ke https://www.Hackersbangkit.com/ secara anonim dengan mengirimkan
lalu lintas melalui proxy.
Perintahnya adalah sebagai berikut:
kali >proxychains firefox www.Hackers-bangkit.com
Ini berhasil membuka https://www.Hackersbangkit.com/ di Firefox melalui proxy yang saya
pilih dan mengembalikan hasilnya kepada saya. Bagi siapa pun yang melacak lalu lintas ini,
tampaknya proxy saya yang membuka https://www.Hackersbangkit.com/ daripada alamat IP
Beberapa Opsi yang Lebih Menarik
Sekarang setelah kita memiliki rantai proxy yang berfungsi, mari kita lihat beberapa
opsi lain yang dapat kita konfigurasikan melalui file proxychains.conf. Karena sekarang kami
telah menyiapkannya, kami hanya menggunakan satu proxy. Namun, kami dapat
memasukkan beberapa proxy dan menggunakan semuanya, kami dapat menggunakan
nomor terbatas dari daftar, atau kami dapat meminta rantai proxy mengubah urutannya
secara acak. Mari coba semua opsi ini.
Menambahkan Lebih Banyak Proxy
Pertama, mari tambahkan beberapa proksi lainnya ke daftar kami. Kembali ke
http://www.hidemy.name dan temukan beberapa alamat IP proksi lainnya. Kemudian,
tambahkan beberapa lagi proxy ini ke file proxychains.conf Anda, seperti:
[ProxyList]
# add proxy here...
socks4 114.134.186.12 22020
socks4 188.187.190.59 8888
socks4 181.113.121.158 335551
Sekarang simpan file konfigurasi ini dan coba jalankan perintah berikut:
kali >proxychains firefox www.Hackers-bangkit.com
Anda tidak akan melihat perbedaan apa pun, tetapi paket Anda sekarang berjalan melalui
beberapa proxy.
Dynamic Chaining
Dengan beberapa IP di file proxychain.conf kami, kami dapat mengatur dynamic
chaining, yang menjalankan lalu lintas kami melalui setiap proxy di daftar kami dan jika salah
satu proxy tidak aktif atau tidak merespons, secara otomatis masuk ke proxy daftar tanpa
melemparkan kesalahan. Jika kami tidak menyiapkannya ini, satu proxy yang gagal akan
melanggar permintaan kami.
Kembali ke file konfigurasi rantai proxy Anda, temukan baris dynamic_chain (baris
10), dan batalkan komentar seperti yang ditunjukkan berikutnya. Pastikan juga Anda
mengomentari baris strict_chain jika belum.
# dynamic_chain
#
# Dinamis – Setiap koneksi akan dilakukan melalui proxy yang dirantai
# semua proxy dirantai sesuai urutan yang muncul dalam daftar
# setidaknya satu proxy harus online untuk bermain secara berantai
--snip--
Ini akan mengaktifkan rantai dinamis proxy kami, sehingga memungkinkan
anonimitas yang lebih besar dan peretasan tanpa masalah. Simpan file konfigurasi dan
silakan untuk mencobanya.
Random Chaining
Trik terakhir kami adalah opsi rantai acak, di mana proxy_chain akan secara acak
memilih satu set alamat IP dari daftar kami dan menggunakannya untuk membuat rantai
proxy kami. Ini berarti bahwa setiap kali kita menggunakan rantai proxy, proxy akan terlihat
berbeda dengan target, sehingga lebih sulit untuk melacak lalu lintas kita dari sumbernya.
Opsi ini juga dianggap “dinamis” karena jika salah satu proxy tidak aktif, ia akan melompat ke
yang berikutnya.
Kembali ke dalam file /etc/proxychains.conf dan komentari baris dynamic_chain dan
strict_chain dengan menambahkan # di awal setiap baris; lalu batalkan komentar baris
random_chain. Kami hanya dapat menggunakan salah satu dari tiga opsi ini pada satu waktu,
jadi pastikan Anda mengomentari opsi lain sebelum menggunakan proxy_chain.
Selanjutnya, cari dan batalkan komentar pada baris dengan chain_len lalu berikan
angka yang wajar. Baris ini menentukan berapa banyak alamat IP di rantai Anda yang akan
digunakan dalam membuat rantai proxy acak Anda.
# dynamic_chain
#
# Dinamis – Setiap koneksi akan dilakukan melalui proxy yang dirantai
# semua proxy dirantai sesuai urutan yang muncul dalam daftar
# setidaknya satu proxy harus online untuk bermain secara berantai
#
# strict_chain
#
# Strict - Each connection will be done via chained proxies
# semua proxy dirantai dalam urutan seperti yang muncul dalam daftar
# semua proxy harus online untuk bermain secara berantai
# jika tidak, EINTR dikembalikan ke aplikasi
# random_chain
# Random - Setiap koneksi akan dilakukan melalui proxy acak
# (or proxy chain, see chain_len) from the list.
# opsi ini bagus untuk menguji IDS Anda:)
# Masuk akal hanya jika random_chain
chain_len = 3
Di sini, saya telah menghapus komentar chain_len dan memberinya nilai 3, artinya
rantai proksi sekarang akan menggunakan tiga proksi dari daftar saya di file
/etc/proxychains.conf, memilihnya secara acak dan pindah ke proksi berikutnya jika ada
proksi berikutnya. Perhatikan bahwa meskipun metode ini tentu saja meningkatkan
anonimitas Anda, metode ini juga meningkatkan latensi aktivitas online Anda.
Sekarang setelah Anda mengetahui cara menggunakan rantai proksi, Anda dapat
melakukan peretasan dengan anonimitas relatif. Saya katakan “relatif” karena tidak ada cara
pasti untuk tetap anonim dengan NSA dan FSB yang memata-matai aktivitas online kami—
tetapi kami dapat melakukan banyak deteksi lebih sulit dengan bantuan proxychain
Masalah Keamanan
Sebagai catatan terakhir tentang keamanan proxy, pastikan untuk memilih proxy
Anda dengan bijak: proxychain hanya sebaik proxy yang Anda gunakan. Jika Anda ingin tetap
anonim, jangan gunakan proxy gratis seperti yang disebutkan sebelumnya. Hacker
menggunakan proxy berbayar yang dapat dipercaya. Faktanya, proksi gratis kemungkinan
akan menjual alamat IP dan riwayat penelusuran Anda. Seperti yang dikatakan oleh Bruce
Schneier, kriptografer dan pakar keamanan terkenal, pernah berkata, “Jika ada sesuatu yang
gratis, Anda bukan pelanggannya; Anda adalah produknya.” Dengan kata lain, setiap produk
gratis kemungkinan mengumpulkan data Anda dan menjualnya. Mengapa lagi mereka
menawarkan proksi gratis?
Meskipun alamat IP lalu lintas Anda yang meninggalkan proksi akan bersifat anonim,
ada cara untuk agen pengawasan untuk mengidentifikasi Anda. Misalnya, pemilik proxy akan
mengetahui identitas Anda dan jika cukup ditekan oleh spionase atau lembaga penegak
hukum dengan yurisdiksi, dapat menawarkan identitas Anda untuk melindungi bisnis mereka.
Sangat penting untuk menyadari batasan proxy sebagai sumber anonimitas.
13.4 VIRTUAL PRIVATE NETWORKS
Menggunakan virtual private network (VPN) dapat menjadi cara yang efektif untuk
menjaga lalu lintas web Anda relatif anonim dan aman. VPN digunakan untuk menyambung
ke perangkat internet perantara seperti router yang mengirimkan lalu lintas Anda ke tujuan
akhirnya yang ditandai dengan alamat IP router.
Menggunakan VPN pasti dapat meningkatkan keamanan dan privasi Anda, tetapi ini
bukan jaminan anonimitas. Perangkat internet yang Anda sambungkan harus merekam atau
mencatat alamat IP Anda agar dapat mengirimkan data kembali kepada Anda dengan benar,
sehingga siapa pun yang dapat mengakses catatan ini dapat mengungkap informasi tentang
Anda.
Keunggulan VPN adalah sederhana dan mudah dikerjakan. Anda dapat membuka
akun dengan penyedia VPN lalu menghubungkan dengan mulus ke VPN setiap kali Anda
login ke komputer. Anda akan menggunakan browser seperti biasa untuk menavigasi web,
tetapi semua orang akan melihat bahwa lalu lintas Anda berasal dari alamat IP dan lokasi
perangkat VPN internet dan bukan milik Anda sendiri. Selain itu, semua lalu lintas antara
Anda dan perangkat VPN dienkripsi, sehingga bahkan penyedia layanan internet Anda tidak
dapat melihat lalu lintas Anda.
Antara lain, VPN bisa efektif dalam menghindari konten yang dikontrol pemerintah
dan sensor informasi. Misalnya, jika pemerintah nasional Anda membatasi akses Anda ke
situs web dengan pesan politik tertentu, Anda mungkin dapat menggunakan VPN berbasis di
luar negara Anda untuk mengakses konten tersebut. Beberapa perusahaan media, seperti
Netflix, Hulu, dan HBO, membatasi akses konten mereka ke alamat IP yang berasal dari
negara mereka sendiri. Menggunakan VPN berbasis di negara yang diizinkan oleh layanan
tersebut sering kali dapat membantu Anda mengatasi batasan akses tersebut.
Beberapa layanan VPN komersial terbaik dan terpopuler menurut CNET adalah
sebagai berikut:
IPVanish
NordVPN
ExpressVPN
CyberGhost
Golden Frog VPN
Hide My Ass (HMA)
Private Internet Access
PureVPN
TorGuard
Buffered VPN
Sebagian besar layanan VPN ini mengenakan biaya $50–$100 per tahun, dan banyak yang
menawarkan uji coba gratis selama 30 hari. Untuk mengetahui lebih lanjut tentang cara
menyiapkan VPN, pilih salah satu dari daftar dan kunjungi situs webnya. Anda harus
menemukan petunjuk pengunduhan, penginstalan, dan penggunaan yang cukup mudah
diikuti.
Kekuatan VPN adalah semua lalu lintas Anda dienkripsi saat meninggalkan komputer
Anda, sehingga melindungi Anda dari pengintaian, dan alamat IP Anda diselubungi oleh
alamat IP VPN saat Anda mengunjungi situs. Seperti halnya server proxy, pemilik VPN
memiliki alamat IP asli Anda (jika tidak, mereka tidak dapat mengirimkan lalu lintas Anda
kembali kepada Anda). Jika mereka ditekan oleh agen spionase atau penegak hukum,
mereka mungkin akan melepaskan identitas Anda. Salah satu cara untuk mencegahnya
adalah dengan hanya menggunakan VPN yang berjanji untuk tidak menyimpan atau
mencatat informasi ini (dan berharap informasi ini jujur). Dengan cara ini, jika seseorang
bersikeras bahwa penyedia layanan VPN menyerahkan datanya kepada penggunanya, tidak
ada data.
13.5 EMAIL TERENKRIPSI
Layanan email komersial gratis seperti Gmail, Yahoo!, dan Outlook Web Mail
(sebelumnya Hotmail) gratis dengan alasan: mereka adalah sarana untuk melacak minat
Anda dan menayangkan iklan. Seperti yang sudah disebutkan, jika suatu layanan gratis, Anda
adalah produknya, bukan pelanggannya. Selain itu, server penyedia email (Google, misalnya)
memiliki akses ke konten email Anda yang tidak terenkripsi, meskipun Anda menggunakan
HTTPS.
Salah satu cara untuk mencegah penyadapan pada email Anda adalah dengan
menggunakan email terenkripsi. ProtonMail, yang ditunjukkan pada Gambar 135,
mengenkripsi email Anda dari ujung ke ujung atau browser ke browser. Ini berarti bahwa
email Anda dienkripsi di server ProtonMail—bahkan administrator ProtonMail tidak dapat
membaca email Anda.
ProtonMail didirikan oleh sekelompok ilmuwan muda di fasilitas supercollider CERN
di Swiss. Swiss memiliki sejarah panjang dan bertingkat dalam melindungi rahasia (ingat
rekening bank Swiss yang sudah sering Anda dengar?), dan server ProtonMail berbasis di Uni
Eropa, yang memiliki banyak hukum pribadi Amerika Serikat. ProtonMail tidak mengenakan
biaya untuk akun dasar tetapi menawarkan akun premium dengan biaya nominal. Penting
untuk diperhatikan bahwa saat bertukar email dengan pengguna nonProtonMail, ada
kemungkinan sebagian atau semua email tidak dienkripsi. Lihat basis pengetahuan dukungan
ProtonMail untuk detail lengkapnya.
Gambar 13.5 Layar login ProtonMail
Kami terus-menerus diawasi oleh perusahaan komersial dan badan intelijen nasional.
Untuk menjaga keamanan data dan perjalanan web Anda, Anda perlu menerapkan
setidaknya salah satu tindakan keamanan yang dibahas dalam bab ini. Dengan menggunakan
keduanya dalam kombinasi, Anda dapat meminimalkan jejak Anda di web dan menjaga data
Anda jauh lebih aman.
BAB 14
MEMAHAMI DAN MEMERIKSA JARINGAN NIRKABEL
Kemampuan untuk memindai dan menyambungkan