Professional Documents
Culture Documents
Yulian Sani - Security Assessment Crackme - Cenzic
Yulian Sani - Security Assessment Crackme - Cenzic
Yulian Sani - Security Assessment Crackme - Cenzic
Document Properties
Version Control
1
DAFTAR ISI
COVER .................................................................................................................... 1
DAFTAR ISI ........................................................................................................... 2
DAFTAR GAMBAR .............................................................................................. 3
I. INTRODUCTION ............................................................................................ 4
1.1. Ringkasan ............................................................................................... 4
1.2. Ruang Lingkup ....................................................................................... 4
1.3. Timeline .................................................................................................. 4
II. LANDASAN TEORI ........................................................................................ 5
2.1. Metodologi .............................................................................................. 5
2.2. Security Goals ......................................................................................... 7
III. PEMBAHASAN ............................................................................................... 8
3.1. Perencanaan (Planning) ....................................................................... 8
3.1.1. Footprinting ................................................................................. 8
a) Netcraft.com ..................................................................................... 8
b) htbridge.com/ssl ................................................................................. 9
3.1.2. Scanning ....................................................................................... 11
a) Network Scanning ............................................................................. 11
b) Web Scanning ................................................................................... 13
1. High Level Threat ......................................................................... 15
2. Medium Level Threat ................................................................... 17
3. Low Level Threat ......................................................................... 19
3.2. Exploitation ............................................................................................ 20
a. Pengujian Blackbox ........................................................................... 21
1. Pengujian Karakter String ............................................................ 21
2. Pengujian SQL Injection .............................................................. 22
3. Pengujian Cross Site Scripting ..................................................... 22
b. Injection menggunakan SQL Map .................................................... 24
III. ANALISA SISTEM .......................................................................................... 27
IV. REKOMENDASI PERBAIKAN KEAMANAN SISTEM ............................ 29
REFERENSI ........................................................................................................... 37
2
DAFTAR GAMBAR
3
I. INTRODUCTION
Pengujian penetrasi dilakukan melalui jarak jauh atau menggunakan saluran internet
(secara online) terhadap target situs http://crackme.cenzic.com. Skenario awal untuk
security assessment ini hanya diketahui alamat web situs target, sehingga informasi
lainnya yang tersedia selanjutnya diperoleh dari tahapan Security Assessment.
1.3. Timeline
Lamanya waktu untuk tahapan penetrasi test ini adalah sebagai berikut :
Kode Doc. : CM.CZ 18 - V 1.0
Start Time : Jumat, 23 Februari Jam 18.00
End Time : Minggu, 25 Februari Jam 23.00
4
II. LANDASAN TEORI
2.1. Metodologi
Menurut konsep sertifikasi CEH terdapat 5 tahapan yang digunakan untuk melakukan
pengujian penetrasi yaitu :
1. Reconnaissance
Reconnaissance adalah suatu tahap persiapan dimana pengujian dilakukan dengan
mencari dan menemukan informasi sebanyak-banyaknya mengenai target atau
sasaran sistem yang akan diserang, sebelum rangkaian proses penyerangan
dilaksanakan.
2. Scanning
Scanning bertujuan untuk mencari celah yang memungkinkan attacker dapat
digunakan menemukan kelemahanan sistem dan aplikasi. Teknik Scanning
dilakukan dengan menggunakan tools yang tersedia. Jika Proses scanning berhasil
maka attacker akan mendapatkan informasi mengenai kelemahanan sistem, yang
selanjutnya akan dapat digunakan sebagai masukkan untuk memasuki atau
menyusupi sistem.
3. Gaining Access
Gaining Access adalah tahapan menyerang komputer atau sistem untuk
menguasainya. Tahapan ini merupakan tahapan penerobosan (penetration) setelah
berhasil mengetahui kelemahan yang ada pada komputer atau sistem korban melalui
tahapan scanning. Tahapan ini tidak selalu menggunakan tools atau alat yang
canggih, karena attacker bisa saja memanfaatkan kelemahan input biasa yang
tersedia pada aplikasi.
5
4. Maintaining Acces
Tahap ini adalah suatu taapan dimana setelah attacker yang telah berhasil memasuki
sistem, dimana attacker tersebut berusaha untuk tetap bertahan memperoleh hak
akses sistem tersebut. Pada pengujian ini dilakukan untuk mencari celah, dimana
selanjutnya attacker dapat mempertahankan aksesnya terhadap sistem.
5. Covering Tracks
Covering Track merupakan tahapan untuk menghilangkan jejak atau bukti ketika
sistem telah disusupi, dirusak atau diambil alih oleh attacker. Pengujian ini
dilakukan terhadap beberapa sisi sistem untuk mencari celah keamanan, dimana
memungkinkan attacker akan mampu menghilangkan jejak
Pengujian penetrasi (penetration test) dilakukan untuk mencari dan menemukan celah
kelemahan (vurnerability) pada sistem yang seringkali sisi keamanannya kurang
mendapat perhatian atau terlewati oleh pengembang sistem. Untuk tahapan pengujian
penetrasi http://crackme.cenzic.com ini dikembangkan dengan mengacu terhadap anatomi
cara hacking bekerja yang dijelaskan sebelumnya. Adapun langkah-langkahnya adalah
sebagai berikut :
Start
Footprinting
http://netcraft.com
http://htbridge.com/ssl
Scanning
Planning Network Scanning (NMAP)
Web Scanning (Acunetix Vurnerability
Scanner)
Exploitation Blackbox
SQL Map
Summary
Rekomendasi Perbaikan
End
6
Berdasarkan flow diatas, tahapan pertama yang dilakukan adalah merencanakan
aktifitas (planning) sebelum melakukan pengujian ke situs target. Sebelum melakukan
pengujian, dilakukan pengumpulan informasi yang berhubungan dengan target. Tahapan
ini terdiri footprinting dan scanning terhadap jaringan dan struktur aplikasi web. Setelah
didapatkan vurnerability sistem dan kemungkinan threat yang dapat dilakukan dari
proses scanning, exploitasi dilakukan menggunakan SQL Map dan metodologi black
box. Berdasarkan hasil exploitasi tersebut akan dilakukan summary dan pada akhirnya
diberikan rekomendasi perbaikan agar kerentanan di sistem dapat diperbaiki.
CODE DESCRIPTION
G-01 Kerahasiaan (Confidentiality)
Data yang bernilai sensitif di sistem terjamin kerahasiaannya.
G-02 Integritas Data (Data Integrity)
Data yang tersimpan di sistem atau yang bertukar informasi melalui suatu
jaringan terjamin keaslian dan kebenarannya. Data tersebut tidak pernah
dimodifikasi oleh pihak lain yang tidak berwenang.
G-03 Ketersediaan (Availability)
Data di sistem akan selalu tersedia saat diperlukan atau di akses.
G-04 Kontrol Akses (Access Control)
Sistem menjamin bahwa data yang memiliki nilai informasi penting hanya
dapat diakses oleh pihak yang benar. Sistem memberikan jaminan bahwa
setiap user memiliki role atau kewenangan dalam mengakses kesesuaian
informasi.
G-05 Kehandalan (Penggunaan Aplikasi)
Keamanan harus terkelola secara terstruktur dan terencana, serta tidak
menghambat proses bisnis (aktifitas Pemilu) 2. Menghilangkan
(meminimalisir) resiko dari aktifitas yang merugikan sistem
7
III. PEMBAHASAN
3.1.1. Footprinting
Footprinting dilakukan untuk menggali informasi awal yang bersifat umum dan mencari
informasi range jaringan yang digunakan.
a) Netcraft.com
Netcraft.com adalah sebuah situs untuk melakukan monitoring terhadap website yang
ada di internet. Situs ini melakukan analisa terhadap ip address, web server dan sistem
operasi yang digunakan.
8
Gambar 3.1. : Netcraft Monitoring
b) htbridge.com/ssl
Dari situs http://htbridge.com/ssl didapatkan informasi dan penjelasan bahwa situs ini
belum menggunakan SSL. Fungsi SSL digunakan sebagai layanan keamanan pada
9
media komunikasi, agar setiap informasi yang bertukar secara online tidak dapat dengan
mudah terbaca.
Mekanisme SSL adalah untuk menjaga informasi sensitif selama dalam proses
pengiriman melalui Internet dengan cara dienkripsi, sehingga hanya penerima pesan
yang dapat memahami dari hasil enkripsi tersebut..
10
Gambar 3.2. : Htbridge Monitoring
3.1.2. Scanning
a). Network Scanning
Nmap (Network Mapper) merupakan tools yang berfungsi untuk melakukan port
scanning. Aplikasi ini digunakan untuk meng-audit jaringan yang digunakan oleh suatu
sistem. Dengan menggunakan tool ini, kita dapat melihat host yang aktif, port yang
terbuka, Sistem Operasi yang digunakan, dan feature-feature scanning lainnya.
11
Gambar 3.3. : NMAP (Port Scanning)
dari hasil port scanning menggunakan NMAP tersebut didapatkan informasi port yang
terbuka diantaranya :
port 80/tcp : Default Web Server Port
port 53/tcp : Domain Name Server Port
port 111/tcp : TCP/UDP Port
port 3306/tcp : Database Port (MySQL)
port 443/tcp : Default HTTP Port (dari apache)
port 554 : Default Tracert Route port
12
b) Web Scanning
Web Scanning dilakukan menggunakan Acunetix Web Vulnerability Scanner. Acunetix
merupakan tools yang dikembangkan untuk melakukan scanning vulnerabilities suatu
website. Alasan penggunaan tools ini yaitu kemampuannya untuk memberikan solusi
dari kelemahan yang ditemukan dan mengelola traceability dari setiap vulnerabilities di
suatu website. Versi acunetix yang digunakan adalah Acunetix Web Scanner 10.5
(consultant edition) .
Setelah proses scanning selesai (completed), ditemukan sejumlah threat untuk situs
http://crackme.cenzic.com. Dikategorikan berdasarkan level-nya ditemukan 34 threat
yang berada di high level, 22 di medium level, 26 low level serta 8 di informational level
(yang dapat diabaikan).
13
Gambar 3.6. : Acunetix Information Gathering
14
Gambar 3.7. : Acunetix List Threat dan Level
15
mengirim kode pemrograman dalam Java Script ke user lain. Sebuah browser tidak
dapat mengetahui script mana yang seharusnya diterima atau tidak. untuk mengetahui
serangan,maka akan dilakukan eksekusi script context user dan mengakses beberapa
cookies atau konfirmasi password dari browser.
c. SQL Injection (Security Goals - G.01/G.02/G.03)
Merupakan teknik untuk mengeksploitasi sebuah aplikasi web memakai data
yang diberikan atau disisipkan dalam query SQL. Cara kerjanya adalah dengan
memasukkan query SQL atau perintah (command) sebagai input yang
dimungkinkan melalui halaman web. Dimana pada halaman web mengambil
parameter dari user, lalu membuat query SQL ke dalam database. Salah satunya
adalah pada halaman login user, dimana pada halaman web akan membuat query
SQL ke database untuk memeriksa username dan password yang tepat.
16
2. Medium Level Threat
17
direktori situs web tertentu. Tidak adanya konfigurasi ini keamanan untuk
mengakibatkan attacker dapat dengan mudah memperoleh file (dengan cara
mendownload) berdasarkan link directory yang tidak terproteksi.
18
digunakan oleh sistem. Tujuannya agar sistem operasi menjadi berat dan sulit
diakses oleh user, seolah-olah banyak user yang mengakses aplikasi.
f. User credentials are sent in clear text (Security Goals - G.03)
Tidak adanya penyandian misalnya enkripsi pada data yang bertukar melalui
jaringan atau data yang tersimpan di database mengakibatkan attacker dapat
membaca atau mengetahui dengan mudah, jika data tersebut sudah berhasil
didapatkan oleh attacker. Penggunaan pesan yang asli (cleartext) sangat
berpengaruh dengan aspek kerahasiaan data (confidentiality).
19
2) Cookie without Http Only flag set (Security Goals - G.01, G.05)
Fungsi HTTP Trace yang aktif di web server dapat dimanfaatkan oleh attacker untuk
mencuri data penting, seperti cookies atau otentifikasi dengan melalui kerentanan yang
tersedia di web browser user.
3.2. Exploitation
Berdasarkan informasi yang ditemukan melalui proses scanning, tahapan selanjutnya
adalah melakukan exploitasi berupa pengujian terhadap vurnerability yang ditemukan.
Pengujian perangkat lunak merupakan langkah yang dilakukan untuk menguji kualitas
dari suatu aplikasi. Pengujian ini dilakukan untuk memperbaiki kesalahan yang
ditemukan pada saat pembangunan aplikasi. Metode pengujian yang digunakan untuk
http://crackme.cenzic.com/ adalah Metode Black Box. Pengujian ini berfokus pada
persyaratan fungsional perangkat lunak yang memungkinkan analisis sistem
memperoleh kumpulan kondisi input yang akan mengerjakan seluruh keperluan
fungsional perangkat lunak.
20
Prioritas dilakukan terhadap 3 threat dengan posisi high level. Secara garis besar posisi
vurnerability untuk ke 3 threat tersebut sebagian memiliki lokasi yang sama yaitu :
http://crackme.cenzic.com/kelev/register/register.php
http://crackme.cenzic.com/kelev/php/login.php
Setelah melakukan submit dengan memberikan nilai karakter yang tidak diizinkan oleh
aplikasi, target memberikan informasi aplikasi database dan sebagian nama field.
21
2) Pengujian SQL Injection
Berdasarkan hasil scanning sebelumnya, diidentifikasi bahwa aplikasi memiliki
kerentanan terhadap SQL Injection. Untuk dilakukan pengujian SQL Injection
pada halaman login dengan menginjeksikan script SQL Injection yaitu :
' OR '1'='1
Hasilnya setelah diinputkan kode sql injection dan password diisi sembarang,
aplikasi secara langsung melakukan login ke aplikasi (bypass login). Hal ini
menjelaskan bahwa authentifikasi login user dapat di lewati, hal ini tentunya
sangat tidak aman karena pihak yang tidak berwenang dapat mengakses aplikasi,
meskipun tidak memiliki akses login.
Script tersebut diinputkan di kolom range tanggal. Output dari script tersebut setelah
ditampilkan akan menghasilkan error di aplikasi.
22
Dengan menganalisa tampilan tersebut serta memodifikasi script dengan fungsi HTML
tersebut menjadi :
"<script type="text/javascript"> <b>YULIAN SANI</b>INI SALAH SATU
KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI APLIKASI.
<b>YULIAN SANI</b>INI SALAH SATU KERENTANAN AKIBAT TIDAK
ADANYA SANITIZE FILTER DI APLIKASI<b>YULIAN SANI</b>INI SALAH
SATU KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI
APLIKASI<b>YULIAN SANI</b>INI SALAH SATU KERENTANAN AKIBAT
TIDAK ADANYA SANITIZE FILTER DI APLIKASI<b>YULIAN SANI</b>INI
SALAH SATU KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI
APLIKASI<b>YULIAN SANI</b>INI SALAH SATU KERENTANAN AKIBAT
TIDAK ADANYA SANITIZE FILTER DI APLIKASI </script>"
Aplikasi akan memproses perintah tersebut dan menampilkannya seperti pada gambar
berikut :
Dari pengujian diatas disimpulkan bahwa XSS yang dapat diinjeksikan di aplikasi
mendukung fungsi HTML. Dari script sebelumnya dapat dikembangkan lagi menjadi
23
Gambar 3.17. : Tampilan XSS dengan Fungsi Image HTML
24
Gambar 3.18 : NMAP Scanner
Dari hasil scanning tersebut, didapatkan sejumlah informasi yaitu sistem operasi web
server yang digunakan, versi apache, sistem operasi DBMS dan versi DBMS.
25
Gambar 3.21 : NMAP Script execution [2]
26
IV. ANALISA SISTEM
Berdasarkan tahapan scanning dan exploitasi yang dilakukan sebelumnya, disimpulkan
beberapa kesimpulan untuk crackme.cenzic.com saat ini diantaranya :
1. Dari hasil port scanning menggunakan NMAP tersebut didapatkan informasi port
yang digunakan diantaranya :
port 80/tcp : Default Web Server Port
port 53/tcp : Domain Name Server Port
port 111/tcp : TCP/UDP Port
port 3306/tcp : Database Port (MySQL)
port 443/tcp : Default HTTP Port (dari apache)
port 554 : Tracert route
port diatas merupakan port default yang digunakan saat aplikasi terinstall di sistem.
Hal ini mengasumsikan belum adanya konfigurasi atau masih digunakan konfigurasi
standar dalam settingan web server, aplikasi, database.
2. Saat ini sistem operasi server yang digunakan adalah CentOS Centos versi 2.2.15,
sedangkan versi terbaru Centos adalah 7.4-1708. Hal ini menginformasikan bahwa
sistem operasi yang digunakan adalah sistem operasi yang belum dipatch atau
update.
3. Berdasarkan proses exploit menggunakan SQL MAP didapatkan versi apache yaitu
2.4.29, sedangkan versi Apache terbaru adalah 7.12. hal ini juga menginformasikan
bawah versi web server yang digunakan belum dipatch atau update.
4. Berdasarkan Acunetix Scanning didapatkan beberapa kategori threat diantaranya :
34 threat yang berada di high level
22 di medium level
26 low level
8 di informational level
Dari 34 kelompok threat ini didominasi oleh serangan SQL Injection, Cross Site
Scripting (XSS Atack) dan Blind SQL Injection. Hal ini mengindikasikan bahwa
pengembangan secure code kurang diperhatikan dalam pengembangan aplikasi.
27
Input pada aplikasi masih menerima sejumlah karakter yang seharusnya tidak
diizinkan oleh aplikasi.
Selain itu SSL pada aplikasi belum diterapkan. Hal ini berdampak bahwa pertukaran
data melalui jaringan masih memungkinkan disadap (sniffing) beberapa perangkat
tools (misalnya wireshark atau chainable).
28
IV. REKOMENDASI PERBAIKAN KEAMANAN SISTEM
Selain itu port default untuk MySQL adalah 3306. Port ini direkomendasikan untuk
dirubah, karena dengan mengetahui nilai port 3306 attacker dapat langsung
berasumsi bahwa database yang digunakan adalah MySQL.
29
masih menggunakan versi lama). Serangan DoS adalah jenis serangan terhadap
sebuah komputer atau server di dalam jaringan internet dengan cara menghabiskan
sumber (resource) yang dimiliki oleh komputer tersebut sampai komputer tersebut
tidak dapat menjalankan fungsinya dengan benar sehingga secara tidak langsung
mencegah pengguna lain untuk memperoleh akses layanan dari komputer yang
diserang tersebut.
Untuk menghidari DOS Attack, selain melakukan patch pada sistem operasi, perlu
dilakukan patch atau update terhadap Apache (yang merupakan aplikasi web server).
Dari situs resminya https://httpd.apache.org/, versi terbaru apache saat ini adalah
Apache httpd 2.4.29 .
30
code). Konsep ini terbilang relatif dasar dan mudah, tetapi seringkali terlupakan oleh
para pengembang sistem.
Dengan membatasi karakter, dapat mencegah ancaman SQL injection, Blind SQL
dan Cross-site Scripting.
Contoh :
addslashes : Fungsi ini akan melakukan block terhadap masukkan
karakter berupa tanda kutip („) dan menggantinya dengan
karakter garis miring (/).
str_replace : Fungsi untuk me-replace karakter
31
e) Mengkonfigurasi .htaccess
Konfigurasi Htaccess dilakukan untuk menyembunyikan menyembunyikan file
“index.php” atau direktori lainnya dari URL . Htaccess seringkali digunakan
terhadap website yang memiliki struktur direktori yang banyak. Dengan menerapkan
htaccess maka direktori-direktori atau variabel yang muncul pada address bar
browser akan disembunyikan. Hal dilakukan untuk meminimalisir attacker untuk
mendapatkan struktur direktori, variabel yang selanjutnya dapat digunakan untuk
menemukan celah keamanan sistem lainnya.
32
5. Perbaikan pada Kolom Input
Perbaikan di beberapa kolom input dilakukan guna meminimalisir kesalahan input
oleh user. Kesalahan bisa saja disalahgunakan oleh hacker. Sebagai contoh temuan
di beberapa kolom, misalnya pada tanggal lahir di menu registrasi user. Kolom
tersebut direkomendasikan untuk diganti menggunakan datepicker agar input user
bernilai valid.
Jika kolom tanggal lahir berupa textbox atau freetext seperti sebelumnya terjadinya
kesalahan input user akan lebih besar dibandingkan menggunakan datepicker yang
format tanggalnya sudah diatur oleh aplikasi. (Misalnya user mengisi tanggal 31
Februari, tetapi tanggal tersebut tidak pernah ada).
(a) (b)
Gambar 5.4. : (a) Kolom Input tanggal di aplikasi, (b) sample datepicker box
33
memahami dari hasil enkripsi tersebut. Hal ini sangat penting, karena informasi
yang kita kirimkan di Internet membutuhkan proses perjalanan dari komputer ke
komputer sampai mencapai server tujuan.
Ketika sertifikat SSL digunakan, informasi menjadi tidak dapat terbaca oleh
siapapun kecuali ke server yang memang dituju saat mengirim informasi tersebut.
Hal ini melindungi informasi tersebut dari hackers dan pencuri identitas.
7. Penggunaan Enkripsi
Sebagian data yang disubmit belum menggunakan enkripsi. Misalnya untuk data
yang bersifat rahasia seperti username atau password. Dari hasil pengumpulan data
sebelumnya database yang digunakan adalah MySQL Server. MySQL menyediakan
enkripsi data seperti MD5, SHA, Password atau menggabungkan algoritma yang
sudah tersedia.
Di beberapa page yang menyediakan textbox sebagai media input, jika user
memberikan input text yang tidak dapat diproses aplikasi atau database, maka
prosesnya akan mengembalikan ke browser dengan menampilkan error dan
memberikan sejumlah informasi yang cukup penting. Rekomendasi untuk
34
menyembunyikan error ini sebagai tindakan untuk meminimalisir informasi
perangkat sistem yang digunakan.
Sebagai contoh pada menu registrasi, saat setelah disubmit dengan input
menggunakan perintah blind injection aplikasi menampilkan error “Cannot query
the database. You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near …. “.
9. Menambahkan Captcha
Captcha (Completely Automated Public Turing test to tell Computers and Humans
Apart) adalah sejenis konfirmasi challenge-respons untuk memastikan bahwa
respon yang dihasilkan hanya boleh dibuat oleh manusia dan bukannya komputer.
Dengan arti kata lain, CAPTCHA adalah pengesahan kata ujian yang dimasukkan
dari suatu bentuk sign-up.
35
Gambar 5.8. : Penerapan CAPTCHA
36
REFERENSI
4. OWAPS, OWASP Top 10 - 2017 The Ten Most Critical Web Application Security
Risks
https://www.owasp.org/images/7/72/OWASP_Top_10-017_%28en%29.pdf.pdf
37