Instalasi Ubuntu Pemilihan Modul Pengujian Pytbull

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