46
BAB IV IMPLEMENTASI DAN ANALISIS
4.1. Instalasi Ubuntu
Pada komputer IDS dan Client akan diinstall sistem operasi Ubuntu 14.04 LTS dengan kernel linux versi 3.13.0-35-generic. Ubuntu yang telah terinstall
kemudian dikoneksikan ke jaringan internet dengan alamat IP DHCP untuk menerima daftar pembaruan terlebih dahulu dengan mengetikkan perintah :
apt-get update Setelah update selesai, dilanjutkan dengan melakukan instalasi yang diperlukan
FTP, apache2, dan SSH server dengan mengetikkan perintah : apt-get install vsftpd apache2 openssh-server
Pada file konfigurasi vsftpd yang berada di etcvsftpd.conf disarankan untuk merubah parameter sebagai berikut :
Allow anonymous FTP? Disabled by default anonymous_enable=NO
Uncomment this to allow local users to log in. local_enable=YES
Kemudian, install pembaruan system pada ubuntu dengan perintah sebagai berikut :
47 apt-get update
apt-get dist-upgrade Setelah selesai, lakukan reboot pada komputer client dan IDS untuk
menyelesaikan proses pembaruan system. Ubuntu sudah siap untuk digunakan
4.2. Instalasi IDS
4.2.1. Instalasi Snort
1. Repository Ubuntu
Instalasi Snort dengan mengunduh dari repository Ubuntu dapar dilakukan dengan langkah
– langkah sebagai berikut :
- Buka terminal pada Ubuntu Ctrl + Alt + t
- Ketikkan perintah „sudo su‟ untuk mendapatkan hak akses sebagai
super user. -
Lakukan pembaharuan pada daftar pembaharuan dengan mengetikkan perintah
apt-get update -
Install Snort apt-get install snort
- Jika muncul jendela konfigurasi maka diisi sesuai konfigurasi yang
telah ditentukan. -
Snort sudah terinstall
48 2.
Menggunakan Binary Code -
Install paket yang dibutuhkan untuk melakukan compile pada Snort sudo apt-get update
sudo apt-get install flex bison build- essential
checkinstall libpcap-dev
libnet1-dev libpcre3-dev libmysqlclient15- dev libnetfilter-queue-dev iptables-dev
- Unduh source code DAQ, Snort, dan Libdnet
wget https:www.snort.orgdownloadssnortdaq-
2.0.2.tar.gz wget
https:www.snort.orgdownloadssnortsnor t-2.9.6.2.tar.gz
wget http:libdnet.googlecode.comfileslibdne
t-1.12.tgz
- Unzip, make, dan install Libdnet
tar zxvf libdnet-1.12.tgz cd libdnet-1.12
.configure; make sudo checkinstall
sudo dpkg -i libdnet_1.12-1_amd64.deb sudo ln -s usrlocalliblibdnet.1.0.1
usrliblibdnet.1
Ketika mengetikkan perintah checkinstall akan muncul pesan sebagai berikut :
49 1.
Should I Create a default set of package docs?
Biasanya dipilih pilihan default, ketik y dan Enter 2.
You probably dont want them to be included in the package. Do you want me to
list them? [n]: Ketik n dan Enter
3. Should I exclude them from the package?
Saying yes is a good idea [n]: Ketik y dan Enter
Unzip, make and install DAQ tar xvfz daq-2.0.2.tar.gz
cd daq-2.0.2 .configure CFLAGS=-fPIC; make
sudo checkinstall sudo dpkg -i daq_2.0.2-1_amd64.deb
Unzip, make and install Snort tar xvfz snort-2.9.6.2.tar.gz
cd snort-2.9.6.2 .configure --enable-sourcefire; make
sudo checkinstall sudo dpkg -i snort_2.9.6.2-1_amd64.deb
sudo ln
-s usrlocalbinsnort
usrsbinsnort sudo ldconfig
–v
50
4.2.2. Konfigurasi Snort
Setelah Snort terinstall pada Ubuntu 14.04 LTS di komputer IDS, sesuaikan
file konfigurasi
pada snort.conf
yang berada
di etcsnortsnort.conf dengan jaringan yang digunakan. Pada file snort.conf,
lakukan perubahan pada beberapa bagian – bagian berikut dengan
menjalankan baris perintah : nano
lokasi instalasi
snortetcsnortsnort.conf …
Setup the network addresses you are protecting ipvar HOME_NET any
Set up the external network addresses. Leave as any in most situations
ipvar EXTERNAL_NET any ipvar EXTERNAL_NET HOME_NET
… Configure default log directory for snort to log to.
For more information see snort -h command line options -l
config logdir: varlogsnort
…
Kemudian tekan ctrl+x dan kemudian y dan tekan enter untuk menyimpan file konfigurasi.
Untuk keperluan pengujian ini, maka Snort akan menggunakan beberapa rules yang berbeda. Rules yang akan digunakan antara lain rules
asli ketika menginstall Snort, rules yang telah diperbaharui yang berasal dari http:www.snort.org, rules yang telah diperbaharui namun sudah
51 mengalami perubahan pada file rules-nya baik yang berasal dari
http:www.snort.org, dan satu rule yang sama persis dengan Suricata. Masing masing rules diletakkan pada folder rules yang berbeda
agar mudah untuk dibedakan. Selain folder rules, file snort.conf juga dibuat menjadi beberapa file yang sedikit berbeda pada bagian lokasi
dimana rules disimpan yang telah disesuaikan dengan pengujian. File konfigurasi tadi masing
– masing diberi nama sebagai berikut :
- SnortORI.conf : untuk pengujian dengan menggunakan rules bawaan
dari Snort. -
snortSNORTupdate.conf : untuk pengujian dengan menggunakan rules yang diperbaharui secara manual dari http:www.snort.org
- snortSNORTupdateMODIF.conf : untuk pengujian dengan rules yang
berasal dari http:www.snort.orgnamun pembaharuan dilakukan dengan menggunakan Oinkmaster.
Setelah file tersimpan, lakukan pengetesan apakah terdapat masalah pada file konfigurasi dengan mengetikkan baris perintah standar pada snort :
snort -c etcsnortsnortORI.conf -i eth0 -l varlogsnort -k all
Untuk bantuan pada snort dapat dengan mengetikkan baris perintah : snort --help
52
4.2.3. Instalasi Suricata
IDS Suricata akan diinstall pada komputer IDS. Untuk melakukan instalasi Suricata, pastikan komputer IDS tersambung dengan koneksi
internet. Kemudian jalankan baris perintah sebagai berikut : add-apt-repository ppa:oisfsuricata-stable
apt-get update apt-get install suricata
apt-get update apt-get upgrade
4.2.4. Konfigurasi Suricata
Setelah suricata terinstall pada Ubuntu 14.04 LTS, sesuaikan file konfigurasi
pada file
suricata.yaml yang
berada di
etcsuricatasuricata.yaml dengan jaringan yang digunakan. Lakukan beberapa perubahan pada bagian
– bagian berikut dengan menjalankan baris perintah :
nano etcsuricatasuricata.yaml …
Configure the type of alert and other logging you would like.
outputs: a line based alerts log similar to Snorts fast.log
- fast: enabled: yes
filename: fast.log append: yes
filetype: regular regular, unix_stream or
53 unix_dgram
… address-groups:
HOME_NET: any EXTERNAL_NET: any
… Kemudian tekan ctrl+x dan kemudian y dan tekan enter untuk menyimpan
file konfigurasi. Rules yang digunakan oleh Suricata adalah rules yang diunduh
ketika melakukan instalasi awal dan untuk rules diperbaharui menggunakan
rules yang
diunduh dari
situs http:www.emergingthreats.netopen. Rules yang telah diperbaharui tadi
kemudian digandakan pada folder yang berbeda untuk melakukan pengujian dengan menggunakan rules yang sudah dilakukan perubahan.
Pada file konfigurasi Suricata yaitu suricata.yaml juga digandakan menjadi empat bagian sebagai berikut :
- suricataORI.yaml : untuk melakukan pengujian dengan menggunakan
rules Suricata pada saat instalasi awal. -
suricataUPDATE.yaml : untuk melakukan pengujian dengan menggunakan rules yang diperbaharui secara manual.
- suricataUPDATEmodif.yaml : untuk melakukan pengujian dengan
menggunakan rules yang diperbaharui menggunakan Oinkmaster.
54 Setelah semua disesuaikan, lakukan pengecekan supaya Suricata
dapat dijalankan dengan mengetikkan perintah berikut suricata
–c etcsuricatasuricataORI.yaml – i eth0
–A full –l varlogsuricata
untuk bantuan pada suricata dapat menggunakan baris perintah : suricata
–help
4.3. Pytbull
4.3.1. Instalasi Pytbull
4.3.1.1.Instalasi Standar Client 4.3.1.1.1.
Persiapan
Pastikan Python 2.6.5 dan dependensinya telah terinstall dengan mengetikkan perintah.
sudo apt-get install python python-scapy python- feedparser python-cherrypy3
Install juga tools yang dibutuhkan nmap, hping3, nikto, ab, … . Dapat menggunakan perintah :
sudo apt-get install nmap hping3 nikto tcpreplay apache2-utils
Terakhir, install ncrack untuk modul bruteForce : wget
http:nmap.orgncrackdistncrack- 0.4ALPHA.tar.gz
tar -xzf ncrack-0.4ALPHA.tar.gz cd ncrack-0.4ALPHA
.configure
55 make
make install
4.3.1.1.2. Instalasi
Pytbull dapat diunduh dengan format tar.bz2 yang merupakan versi stabil dengan menggunakan perintah :
cd usrlocalsrc wget
https:downloads.sourceforge.netprojectpyt bullpytbull-2.0.tar.bz2
bzip2 -cd pytbull-2.0.tar.bz2 | tar xf - sudo mv pytbull opt
cd optpython
Pytbull juga dapat diunduh dari Mercurial development release. Jika ingin mendapatkan pengembangan terakhir, install Pytbull dari
Mercurial dengan mernginstall Mercurial terlebih dahulu dengan mengetikkan perintah :
sudo apt-get install mercurial cd opt
sudo hg clone http:pytbull.hg.sourceforge.net:8000hgroot
pytbullpytbull
4.3.1.2. Server
4.3.1.2.1. Persiapan
Install Python 2.6.5, FTP server port 21tcp, apache2 port 80tcp, dan SSH port 22tcp .
sudo apt-get install python vsftpd apache2 openssh-server
56 File konfigurasi vsftpd berada di etcvsftpd.conf. disarankan untuk
setidaknya memiliki dua parameter berikut : Allow anonymous FTP? Disabled by default
anonymous_enable=NO Uncomment this to allow local users to log
in. local_enable=YES
4.3.1.2.2. Pytbull server
Salin reverse shell dari folder server pada pytbull ke server yang terdapat IDSIPS. Kemudian jalankan perintah berikut :
sudo python
locationserverpytbull- server.py
Reverse Shell sendiri merupakan sebuah program yang menyediakan sebuah port yang siap digunkan oleh client untuk melakukan remote.
4.3.2. Menjalankan Pytbull
Jika telah memilih modul clientSideAttack, perlu menjalankan reverse shell pada server dengan menjalankan perintah berikut
.pytbull-server.py -p 34567
Sejak file diunduh di direktori saat ini, dapat juga dibuat folder pdf dan memulai dari direktori induk.
mkdir pdf cd pdf
..pytbull-server.py -p 34567
Jalankan Pytbull yang berada di sisi client. Sebagai contoh untuk memulai Pytbull tess ke 192.168.100.48, yang menjalankan Snort.
57 sudo .pytbull -t 192.168.100.48
Sebagai catatan anda perlu melakukan adaptasi atau perubahan file config.cfg pada port yang digunakan untuk menjalankan reverse shell jika
anda menggunakan parameter optional –ppada sisi remote.
Secara umum, reverse shell bekerja sebagai berikut : 1.
Client yang menjalankan Pytbull client mengirim instruksi ke server yang menjalankan reverse shell untuk mengunduh file
PDF yang berbahaya. 2.
Server mengunduh file berbahaya menggunakan perintah wget dari pihak ketiga server di internet, yang memasang file
berbahaya. Itu akan memicu alert. Snort atau Suricata. 3.
Alert tersebut akan dikumpulkan oleh client melalui FTP.
Gambar 4.1 Reverse Shell
58
4.3.3. Konfigurasi Pytbull
Pada komputer client dengan sistem operasi Ubuntu 14.04 yang telah terinstall Pytbull, diperlukan beberapa konfigurasi. Pada file konfigurasi Pytbull
dialkukan beberapa perubahan agar Pytbull dapat melakukan pengujian terhadap IDS.
Berikut adalah
isi konfigurasi
file Pytbull
yang berada
di optPytbullconfconfig.cfg :
[CLIENT] ipaddr
= 192.168.1.100 alamat IP pytbull client
iface = eth0 useproxy = 0
proxyhost = proxyport =
proxyuser = proxypass =
[PATHS] db = datapytbull.db
urlpdf = http:192.168.1.100TESTFILE
pdfdir = pdfmalicious pcapdir = pcap
tempfile = tmppytbull.tmp alertsfile = varlogsnortalert
log pada snort alertsfile
= varlogsuricatafast.log
log pada suricata [ENV]
sudo = usrbinsudo nmap = usrbinnmap
nikto = usrbinnikto niktoconf = etcniktoconfig.txt
hping3 = usrsbinhping3 tcpreplay = usrbintcpreplay
ab = usrbinab ping = binping
ncrack = usrlocalbinncrack ncrackusers = datancrack-users.txt
ncrackpasswords
= datancrack-
59 passwords.txt
localhost = 127.0.0.1 [FTP]
ftpproto = ftp ftpport = 21
ftpuser = q ftppasswd = 1
[TIMING] sleepbeforegetalerts = 2
sleepbeforenexttest = 1 sleepbeforetwoftp = 2
urltimeout = 5 [SERVER]
reverseshellport = 12345 [TESTS]
clientSideAttacks = 1 testRules = 1
badTraffic = 1 fragmentedPackets
= 1 bruteForce = 1
evasionTechniques = 1
shellCodes = 1 denialOfService = 1
pcapReplay = 1 normalUsage
= 1 ipReputation = 0
[TESTS_PARAMS] ipreputationnbtests = 10
4.4. Pemilihan Modul Pengujian Pytbull
Modul pengujian yang dipilih dan akan digunakan untuk melakukan serangan pada Snort dan Suricata ini mewakili dari kesimpulan yang dibuat pada laporan
yang disusun oleh “Verizon Business Risk Team”. Dari laporan tersebut dapat disimpulkan limabelas teratas serangan terhadap celah keamanan, yaitu :
60 -
Keylogging dan spyware Merupakan malware yang secara spesifik didesain secara diam
– diam untuk mengumpulkan, memantau dan melakukan pencatatan apa saja
yang dilakukan oleh pengguna sistem. -
Backdoor dan command control Adalah tools yang menyediakan remote akses atau mengendalikan
sistem yang terinfeksi atau bahkan keduanya dan didesain untuk berjalan diam
–diam. -
SQL injection Teknik serangan yang diguanaan untuk mengeksploitasi bagaimana
halaman web berkomunikasi dengan back-end database. -
Penyalahgunaan sistem akses Secara sengaja menyalahgunakan sumberdaya, akses maupun hak
istimewa yang diberikan kepada salah seorang dalam sebuah organisaasi.
- Akses yang tidak diijinkan melalui informasi default
Merupakan suatu hal diamana penyerang mendapatkan akses ke dalam sistem atu perangakat yang dilindungi dengan perlindungan standar
yang dikenal dengan username dan password. -
Pelanggaran terhadap penggunakan yang telah disetujui dan peraturan lain
61 Secara kebetulan atau sengaja bertujuan melanggar aturan yang telah
disepakati. -
Akses illegal melalui kelemahan ataukesalahan seting access control lists ACLs
Ketika ACLs lemah atau salah konfigurasi, penyerang dapat mengakses sumber daya dan menjalankan aksinya secara terang
terangan. -
Packet sniffer Memonitor dan mengcapture data yang melalui jaringan
- Pengaksesan secara illegal melalui informasi yang dicuri
Penyerang memperoleh akses ke sistem terlindungi mengunakan data yang valid tapi merupakan hasil curian.
- Pretexting atau social engineering
Teknik dimana penyerang menjalankan skenario untuk membujuk, memanipulasi, atau menipu korban dalam menjalankan aksinya atau
menggali informasi. -
Membypass otentikasi Menghindari otentikasi normal untuk mendapatkan akses ke dalam
sistem secara illegal.
62 -
Pencuriat asset secara fisik Pencurian asset secara fisik.
- Brute-force attack
Proses secara otomatis dengan mencoba memasukkan kombinasi username dan password sampai berhasil.
- RAM scrapper
Merupakan bentuk baru dari malware yang didesain untuk menangkap data dari RAM pada sistem.
Phishing dan variasi “ishing” lainnya Adalah salah satu teknik social engineering dimana penyerang
menggunakan komunikasi elektronik email untuk mendapatkan informasi penerima pesan
Pada Pytbull telah tersedia ____ pengujian yang terbagi ke dalam sembilan modul yang dapat dijalankan. Modul yang digunakan dalam pengujian adalah
sebagai berikut : -
Client Side Attack -
TestRules -
Bad Traffic non RFC compliant -
Fragmented Packets
63 -
Multiple Failed Loginsbrute force -
Evasion techniques -
Malware dan Virus -
Shellcode -
Denial of Service -
Normal Usage Tabel berikut adalah daftar serangan yang akan digunakan dalam pengujian IDS
Snort dan Suricata :
Tabel 4.1 Tabel daftar serangan yang dilakukan oleh Pytbull Description
Module Port
Payload fmt
1 doc1
clientSideAttacks wget
2 doc2
clientSideAttacks wget
3 file
clientSideAttacks wget
4 pdf1
clientSideAttacks wget
5 pdf2
clientSideAttacks wget
6 pdf3
clientSideAttacks wget
7 pdf4
clientSideAttacks wget
8 pdf5
clientSideAttacks wget
9 pdf6
clientSideAttacks wget
10 pdf7 clientSideAttacks
wget 11 pdf8
clientSideAttacks wget
12 pdf9 clientSideAttacks
wget 13 pdf10
clientSideAttacks wget
14 pdf11 clientSideAttacks
wget 15 pdf12
clientSideAttacks wget
16 pdf13 clientSideAttacks
wget 17 pdf14
clientSideAttacks wget
64 18 pdf15
clientSideAttacks wget
19 pdf16 clientSideAttacks
wget 20 pdf17
clientSideAttacks wget
21 pdf18 clientSideAttacks
wget 22 pdf19
clientSideAttacks wget
23 pdf20 clientSideAttacks
wget 24 pdf21
clientSideAttacks wget
25 pdf22 clientSideAttacks
wget 26 pdf23
clientSideAttacks wget
27 pdf24 clientSideAttacks
wget 28 pdf25
clientSideAttacks wget
29 pdf26 clientSideAttacks
wget 30 pdf27
clientSideAttacks wget
31 pdf28 clientSideAttacks
wget 32 pdf29
clientSideAttacks wget
33 pdf30 clientSideAttacks
wget 34 pdf31
clientSideAttacks wget
35 pdf32 clientSideAttacks
wget 36 pdf33
clientSideAttacks wget
37 pdf34 clientSideAttacks
wget 38 pdf35
clientSideAttacks wget
39 pdf36 clientSideAttacks
wget 40 pdf37
clientSideAttacks wget
41 pdf38 clientSideAttacks
wget 42 pdf39
clientSideAttacks wget
43 ppt clientSideAttacks
wget 44 swf1
clientSideAttacks wget
45 swf2 clientSideAttacks
wget 46 xls1
clientSideAttacks wget
47 xls2 clientSideAttacks
wget 48 xls3
clientSideAttacks wget
49 xls4 clientSideAttacks
wget 50 xls5
clientSideAttacks wget
65 51 Simple LFI
testRules 80tcp
socket 52 LFI using NULL byte
testRules 80tcp
socket 53 Full SYN Scan
testRules command
54 Full Connect Scan testRules
command 55 SQL Injection
testRules 80tcp
socket 56 Netcat Reverse Shell
testRules 22tcp
socket 57 Nikto Scan
testRules command
58 Nmap Xmas scan badTraffic
command 59 Malformed Traffic
badTraffic scapy
60 Land Attack badTraffic
scapy 61 Ping of death
fragmentedPackets scapy
62 Nestea Attack 13 fragmentedPackets
scapy 63 Nestea Attack 23
fragmentedPackets scapy
64 Nestea Attack 33 fragmentedPackets
scapy 65 Multiple failed logins against
FTP with ncrack bruteForce
command 66 Nmap decoy test 6th position
evasionTechniques command
67 Nmap decoy test 7th position evasionTechniques
command 68 Hex encoding
evasionTechniques 80tcp socket
69 Nmap scan with fragmentation evasionTechniques
command 70 Nikto Random URI encoding
evasionTechniques command
71 Nikto Directory self reference evasionTechniques
command 72 Nikto Premature URL ending
evasionTechniques command
73 Nikto Prepend long random string
evasionTechniques command
74 Nikto Fake parameter evasionTechniques
command 75 Nikto TAB as request spacer
evasionTechniques command
76 Nikto Change the case of the URL
evasionTechniques command
77 Nikto Windows directory separator
evasionTechniques command
78 Nikto Carriage return as request spacer
evasionTechniques command
79 Nikto Binary value as request spacer
evasionTechniques command
66 80 Javascript Obfuscation
evasionTechniques 80tcp socket
81 SHELLCODE sparc setuid 0 shellCodes 21tcp
socket 82 SHELLCODE x86 setgid
shellCodes 21tcp
socket 83 SHELLCODE IRIX SGI +
NOOP shellCodes
21tcp socket
84 SHELLCODE x86 setgid 0 SHELLCODE x86 setuid 0
shellCodes 21tcp
socket 85 OVERFLOW attempt
shellCodes 21tcp
socket 86 SHELLCODE x86 setuid 0
shellCodes 21tcp
socket 87 win32_bind_dllinject -
EXITFUNC=seh DLL=c:\ LPORT=4444 Size=312
Encoder=PexFnstenvSub shellCodes
21tcp socket
88 win32_bind_dllinject - EXITFUNC=seh DLL=c:\
LPORT=4444 Size=312 Encoder=Pex
shellCodes 21tcp
socket
89 win32_bind - EXITFUNC=seh LPORT=4444 Size=709
Encoder=PexAlphaNum shellCodes
21tcp socket
90 db cmd.exe c net user USERNAME PASSWORD
ADD net localgroup Administrators ADD
USERNAMEN shellCodes
21tcp socket
91 Cisco: Creates a new VTY, allocates a password then sets the
privilege level to 15 shellCodes
21tcp socket
92 Rothenburg Shellcode shellCodes
21tcp socket
93 Schauenburg Shellcode shellCodes
21tcp socket
94 MainzBielefeld Shellcode shellCodes
21tcp socket
95 DoS against MSSQL denialOfService
scapy 96 ApacheBench DoS
denialOfService command
97 hping SYN flood denialOfService
command 98 slammer worm
pcapReplay pcap
99 ApacheBench 10 requests normalUsage
command 100 Standard ping
normalUsage command
67
4.5. Instalasi web server