04 April 2021

Istilah-Istilah Ketika Hacking Yang Perlu Untuk Diketahui

Hacking atau biasa yang dikenal peretasan adalah sebuah aktivitas percobaan ekploitasi celah kemanan yang ada pada sebuah sistem. Tujuan dari hacking adalah bypass security control yang ada sebuah sistem sehingga hacker atau peretas bisa mendapatkan akses atas resource yang dilindungi oleh security control tersebut. Akhir-akhir ini aktivitas hacking atau peretasan semakin marak dilakukan, baik itu hacking yang dilakukan untuk tujuan yang jahat, maupun untuk tujuan yang baik. Pada proses hacking ada banyak proses dan metode yang bisa dilakukan. Kita harus menggunakan metode dan proses yang benar sesuai dengan target agar sebuah aktivitas hacking berhasil dilakukan. Salah memilih metode atau salah melakukan proses hacking akan menyebabkan aktivitas hacking tidak menghasilkan apa-apa. Oleh karena itu penting diawal untuk mempelajari meotde dan target hacking sebelum dilakukan.

Salah satu yang mungkin menjadi kendala di awal untuk pemula mempelajari hacking adalah banyak istilah-istilah yang yang asing. Ketidak pahaman tersebut akan menyebabkan susah untuk mempelajari metode hacking. Berikut ini adalah istilah-istilah yang mungkin akan sering kita dapat ketika belajar mengenai hacking:

1. Malware

Malware merupakan singkatan dari Malicious Software yang merupakan istilah umum untuk software yang dibuat untuk menganggu operasi dari sebuah komputer sistem. Saat ini gangguan yang disebabkan oleh malware tidak asal mengganggu, namun pembuat malware membuat gangguan dengan tujuan tertentu. Seperti membuka port tertentu pada suatu server, mengirim informasi tertentu atau membuat suatu sistem sibuk sehingga tidak dapat menjalankan servicenya secara normal. Contoh dari malware seperti virus, trojan, worm,dll. Malware biasanya diinstall dengan teknik tertentu dengan memanipulasi atau menipu pengguna suatu perangkat atau jika attacker dapat mengakses perangkat target akan melakukan installasi malware secara manual. 

2. Exploit

Exploit adalah program yang dibuat untuk menyerang kerentanan tertentu pada suatu sistem komputer (perangkat keras dan perangkat lunak). Dengan exploit ini, attacker bisa memanfaatkan kelemahan suatu sistem untuk melakukan hacking.

3. Payload

Payload adalah sebuah istilah untuk script yang digunakan oleah hacker untuk melakukan interaksi dengan sistem yang sedang diserang. Jadi pada payload ini akan berisi instruksi apa saja yang ingin dilakukan oleh hacker sehingga hacker dapat berinteraksi dengan target. Berbeda dengan exploit, jika exploit program yang digunakan untuk melakukan exploitasi calah keamanan tertentu, payload lebih ke arah untuk kebutuhan interaksi hacker dengan targetnya.

4. Vulnerability

Vulnerability adalah kelemahan atau kerentanan pada suatu sistem yang dapat menjadi titik lemah untuk diserang. Vulnerability biasanya akan dimanfaatkan oleh attacker/hacker untuk melakukan exploitasi sistem untuk mendapatkan tujuannya. Contoh vulnerability adalah sql injection, dimana vulnerability ini terdapat pada sistem yang tidak melakukan sanitasi dan validasi input yang benar sehingga attacker bisa memasukkan input berupa sql statement dan eksekusi oleh sistem. Contoh lain adalah remote code execution, cross site scripting, server-side request forgery, dll.

5. Zero-day

Zero-day adalah sebuah vulnerability pada perangkat lunak atau keras yang masih belum diketahui/tersedia mitigasinya. Sampai mitigasi dari vulnerability ini tersedia, attacker dapat memanfaatkannya untuk melakukan penyerangan terhadap target serangannya. Jika zero-day terjadi pada perangkat lunak/keras yang banyak dipakai oleh orang-orang, maka dampak yang dihasikan juga akan sangat besar. Exploitasi yang diarahkan pada Zero-day ini disebut Zero-day attack. 

6. Brute force

Bruteforce adalah sebuah teknik serangan dimana attacker akan mencoba berbagai macam input secara simultan sampai semua kombinasi inputan tersebut sudah dicek semua. Biasanya teknik bruteforce ini dipakai untuk mencari kombinasi yang benar untuk login info, key untuk enkipsi atau juga untuk menemukan halaman pada sebuah website. Attacker biasanya telah memiliki dictionary atau list dari kata-kata yang akan dicoba menebak informasi yang ada pada target. Kemudian secara simultan attacker akan mencoba satu memasukkan dictionary kata-kata tersebut menggunakan script. Ketika ada informasi yang berhasil ditebak, maka attacker akan menggunakan informasi tersebut untuk serangan selanjutnya.

7. Denial of Service (DoS)

Denial of Service adalah sebuah serangan kepada sistem komputer yang membuat suatu sistem menjadi sangat sibuk sehingga tidak dapat melayani user atau bahkan untuk beberapa kasus sistem yang diserang dengan teknik DoS ini menjadi mati. Metode yang paling umum digunakan untuk serangan DoS ini adalah attacker akan membanjiri request jaringan suatu sistem. Hal ini berdampak kanal jaringan yang dimiliki oleh sistem menjadi sangat penuh sehingga user yang sebenarnya dari sistem tersebut tidak dapat mengakses sistem. Selain itu, bisa juga dilakukan dengan cara attacker mengindetifikasi aktivitas yang berat pada sistem tersebut, lalu selanjutnya attacker mengirim request secara terus menerus pada aktivitas pada sistem yang berat tadi sehingga kerja sistem sangat berat hingga tidak dapat memproses request yang lain. Serangan DoS yang dilakukan bersama-sama dan dilakukan dalam jumlah besar dan terdistribusi dinamakan Distributed Denial of Service (DDoS).

8. Social Engineering

Social Engineering adalah sebuah metode attack yang menargetkan orang pada sistem tersebut sehingga dapat memberikan informasi yang dibutuhkan oleh attacker. Jadi jika pada penjelasan dia atas berbicara mengenai serangan ke sistem komputer, maka social engineering adalah serangan yang menargetkan usernya langsung. Dalam banyak kesempatan teknik ini sangat efektif dalam melakukan serangan sehingga user dari sistem harus memiliki security awareness untuk mencegah dari serangan social engineering.

9. Ransomware

Ransomware adalah salah jenis malware yang akan melakukan enkripsi semua file yang ada perangkat korbannya. Setelah file-file pada perangkat korban ter-enkrip maka attacker akan mengirimkan pesan untuk meminta tebusan agar korban bisa mengembalikain file yang ter-enkrip. Untuk beberapa case ransomware, ketika korban menolak untuk memberikan tebusan, maka attacker mengancam akan membocorkan file yang telah di enkrip tersebut. Jika terdapat data confidential, maka korban mau tidak mau harus membayar agar informasi confidential tersebut tidak dipublikasikan.

10. Phishing

Phishing merupakan salah satu teknik social engineering yang bertujuan mendapatkan informasi sensitive dari korbannya. Biasanya pada phishing attacker akan berpura-pura menjadi pihak tertentu yang dipercayai oleh korban dan meminta korban untuk melakukan sesuatu yang pada akhirnya hal tersebut akan merugikan korban. Phishing biasa dilakukan melalui email, chatting atau telepon. Motifnya jika bukan untuk mendapatkan informasi tertentu, biasanya attacker melakukan penipuan untuk mendapatkan uang atau harta dari korban.

11. Encryption

Enkripsi adalah proses yang mengacak teks yang dapat dibaca sehingga hanya dapat dibaca oleh orang yang memiliki kode rahasia, atau kunci dekripsi. Enkripsi dapat digunakan untuk mengamankan data ketika sedang dikirim, diteriman, dan disimpan pada suatu perangkat. Pada umumnya teknik enkripsi ada 2 macam, yaitu Symmetric encryption dan Asymmetric encryption atau public key cryptography. Perbedaannya terdapat pada key yang digunakan. Lebih jelasnya mengenai Symmetric encryption dan Asymmetric encryption, dapat dilihat pada link berikut

12. Botnet

Botnet atau Robot Network adalah perangkat komputer pada suatu jaringan yang telah ter-infeksi oleh malware yang menyebabkan perangkat komputer tersebut berada dibawah kontrol seseorang yang biasa dikenal dengan istilah bot-header. Dari satu titik tertentu, bot-header dapat memerintah semua botnet untuk melakukan terkoordinasi dan secara simultan melakukan aksi-aksi kriminal. Email spam, DDoS attack atau kebocoran finansial adalah salah satu penggunaan botnet untuk aktivitas kriminal.

13. Command and Control

Command and Control atau yang biasa disingkat juga dengan C2 adalah sebuah server atau sistem yang dikendalikan oleh attacker atau pelaku cybercrime untuk mengirim perintah ke sistem yang telah disusupi oleh malware dan menerima data-data yang telah dicuri dari target serangan.

14. Rootkit

Rootkit meruapakan salah satu bentuk malware yang dimana ketika rootkit telah terinstall pada target maka akan memberikan remote access atau control terhadap perangkat target kepada threat actor. Kenapa malware ini bernama rootkit? rootkit berasal dari 2 kata, yaitu root dan kit. kit meruapakan tools atau seperangkat tools yang dapat memberikan akses root/admin pada suatu sistem dan menggunakan hak akses tersebut untuk menyembunyikan keberadaan dari attacker. Untuk mendeteksi rootkit biasanya akan sulit dilakukan karena ketika rootkit berhasil mendapatkan akses sebagai root/administrator dari suatu sistem maka mereka akan menyembunyikan keberadaannya. Untuk mendeteksi rootkit dibutuhkan berbagai macam pendekatan seperti file integrity monitoring, behaviour analysis, signature-scanning, memory dump analysis, dll.


15. Threat Actor

Threat actor adalah orang atau entitas yang memiliki kemampuan atau niat untuk mempengaruhi keamanan individu atau perusahaan lain. Dalam cybersecurity dan threat intelijen, threat actor adalah istilah luas untuk setiap individu atau kelompok individu yang mencoba atau berhasil melakukan aktivitas jahat terhadap perusahaan, baik sengaja maupun tidak sengaja. Threat actor dapat berasal dari internal atau eksternal organisasi, dan ada kemungkinan mereka memiliki/tidak memiliki keahlian teknis yang diperlukan untuk menyusup dan membahayakan jaringan dan data perusahaan.


16. Blackbox

Blackbox merupaakan salah satu metode menguji kemanan suatu sistem dengan informasi yang sangat terbatas. Biasanya penguji kemanan hanya diberikan informasi terkait url atau IP address dari target yang akan diuji. Hal ini akan mengkondisikan penguji sebagai attacker luar dengan informasi yang sangat terbatas. Dengan begitu kita akan mengetahui dengan informasi terbatas seperti apa impact dari serangan yang dilakukan. Jadi bisa dibilang metode blackbox ini akan mengemulasi serangan real attacker dari luar organisasi.


17. Red Team

Red team merupakan suatu tim pada organisasi yang akan mengemulasi dan simulasi serangan dari threat actor yang sebenarnya diluar. Red Team akan berfikir dan bertindak sebagai ancaman bagi organisasi dan sistem untuk mengidentifikasi risiko yang mungkin terjadi. Dengan ditemukannya risiko oleh red team, maka organisasi bisa melakukan mitigasi terhadap risiko tersebut sehingga dapat meningkatkan security posture dari organisasi. 


18. Advance Persistence Threat (APT)

APT adalah istilah luas yang digunakan untuk menggambarkan kampanye serangan di mana attacker, atau tim attacker, melakukan penyusupan pada sistem korban kemudian menyembunyikan keberadaan dari attacker dalam jangka panjang lalu mencuri informasi berharga milik korban selama attacker menyusup pada sistem korban. APT ini dilakukan secara hati dan biasanya korbannya merupakan sudah ditargetkan dan proses penyerangannya sudah direncanakan dengan matang. Targetnya biasanya adalah pemerintah atau perusahaan besar. Beberapa perusahaan kemanan informasi yang melakukan penilitan terkait APT ini sudah mengumpulkan informasi dan mengelompokkan serangan terkait APT ini. Salah satunya yang dikeluarkan oleh Fireeye. Setidaknya Fireeye sudah mengindetifikasi sekitar 40an APT. Untuk lebih jelasnya terkait APT group yang sudah diidentifikasi oleh Fireeya, bisa lihat disini


19. Linux

Linux adalah satu operating system komputer yang dibangun Linus Travolds pada tahun 1991. Linux merupakan operating system yang open source sehingga linux saat ini memiliki banyak versi dan paling banyak digunakan dingunakan. Linux digunakan mulai dari PC/Laptop, Server, perangkat mobile dan bahkan sampai perangkat IoT.


20. Access Control

Access control adalah sebuah mekanisme kemanan yang mengatur siapa atau apa yang dapat melihat, merubah atau menggunakan sumber daya yang ada pada sistem komputer. Dengan adanya access control ini, maka kita akan membatasi akses terhadap suatu sumber daya, terutama untuk sumber daya yang sifatnya confidential dan penting.


21. Code/Sourcode

Source code adalah koleksi dari code yang ditulis dengan menggunakan program yang dapat dibaca oleh manusia (bukan hanya mesin) dan biasanya menggunakan plain text. source code dari sebuah program didesain untuk memberikan instruksi ke sistem komputer agar melakukan instruksi yang diperintahkan. 


22. Operating System

Operating system adalah perangkat lunak yang mengatur kerja dari perangkat keras komputer, sumber daya dari perangkat lunak dan menyedikan layanan yang umum untuk program komputer. Operating sistem merupakan penghubung atau interface antara perangkat keras komputer dan penggunanya. Setiap sistem komputer harus memiliki operating sistem, seperti laptop, PC, server, handphone atau perangkat IoT. Detail mengenai apa itu operating sistem dapat dilihat pada link berikut


Masih banyak lagi istilah-istilah yang bisa kita temui ketika mulai belajar mengenai hacking selain istilah-istilah di atas. Makin dalam mempelajari mengenai hacking, maka kita akan makin menemukan istilah-istilah yang aneh dan spesifik pada hal-hal tertentu. Semoga artikel ini bisa memberikan sedikit pencerahan terkait hacking.



 



10 Januari 2021

Lazarus, Cybercrime Group Dari Korea Utara

 Apa/Siapa itu Lazarus

Lazarus adalah cybercrime group yang berasal dari korea utara. Target utama dari Lazarus adalah organisasi atau perusahaan yang terkenal dan memiliki value yang tinggi seperti Bank, Kasino, Investasi Financial, Pengembang Aplikasi atau cryptocurrency. Lazarus telah menyerang beberapa organisasi atau perusahaan di 18 negara, diatarnya adalah Korea Selatan, Bangladesh, India, Vietnam, Indonesia, Costa Rica, Malaysia, Poland, Iraq, Ethiopia, Kenya, Nigeria, Uruguay, Gabon, Thailand dan lain-lain. Beberapa perusahaan yang telah menjadi target serangan dari group Lazarus menurut Symantec adalah Bank Bangladesh, Sony dan korea selatan. Lazarus konon di kontrol oleh Bereau 121 yang merupakan bagian dari Badan intellegence korea utara. Lazarus mulai terkenal semenjak tahun 2014 sewaktu melakukan hacking ke Sony, namun aktivitas Lazarus sudah dimulai semenjak akhir 2009. Symantec researcher juga menemukan bukti yang kuat terkait WannaCry Ransomeware dengan group hacking Lazarus.




Lazarus memiliki beberapa group operation, sesuai dengan aktivitas masing-masing. Berikut ini adalah group yang ada pada Lazarus:
1. Bluenoroff. Merupakan group pada Lazarus yang berfokus pada penyerangn institusi financial. Mereka bertanggung jawab pada penyerangan beberapa institusi finansial termasuk dalam hal ini adalah Bank Bangladesh
2. Andariel. Group yang berfokus pada penyerangan ke organisasi atau bisnis di korea selatan.


Bagaimana Lazarus Beraksi?

Dalam aksinya, group Lazarus banyak menggunakan teknik attack yang cukup sophisticated. Mulai dari teknik phishing, watering hole atau supply chain attack. Ada banyak kerugian yang disebabkan oleh serangan yang dilakukan Lazarus. Mungkin yang paling teringat adalah serangan Wannacry Ransomeware. Lalu bagaimana selama Lazarus melakukan setiap aksinya? Setidaknya ada beberapa teknik yang dilakukan oleh Lazarus.

1. Disruption. Operasi yang sifatnya menghancurkan ini dilakukan Lazarus dengan menggunakan Serangan DDoS

2. Missdirection. Teknik ini merupakan teknik menyesatkan terkait attack yang dilakukan oleh Lazaru. Lazarus akan menduplikasi teknik attack yang biasa dilakukan oleh hacktivist group yang lain, sehingga group tersebut yang akan menjadi tersangka terhadap suatu penyerangan. Beberapa group yang pernah ditiru oleh Lazarus adalah GOP, WhoAmI atau New Romanic Army.

3. Watering Hole Attack. Teknik adalah sebuah teknik dimana attacker melakukan serangan ke website resmi atau legal pada suatu organisasi. Selanjutnya setelah web atau sistem tersebut berhasil diserang, attacker akan menyimpan malware atau bot untuk mengumpulkan informasi semua user yang berkunjung ke website tersebut. Bisa juga attacker memanfaatkan webiste tersebut untuk mendistribusikan malware yang mereka miliki sehingga semua user yang mengunjungi website tersebut. Dikarenakan website tersebut merupakan website yang resmi, maka tidak akan ada kecurigaan dari user, sehingga hal ini akan mempermudah penyebaran malware atau pengumpulan informasi. Contoh dari serangan tipe ini yang dilakukan oleh Lazarus adalah serangan dilakukan kepada lembaga keuangan Polandia yang analisanya dipublikasikan oleh badcyber.com pada tahun 2017. Pada watering hole attack yang dilakukan oleh Lazarus ini, Lazarus menyisipkan file javascript pada website yang akan menyebabkan user akan mendownload malware dan menginstallnya pada device dari korban.

4. Supply Chain Attack. Teknik ini hampir sama dengan watering hole attack, tapi untuk supply chain attacker akan menyisipkan malware pada tools atau software yang biasa dipakai oleh orang-orang. Biasanya ini terjadi pada tools atau software berbayar yang dibajak. Dengan ini imang-imang tidak usah membeli license lagi, maka orang-orang akan menginstall software atau tools tersebut otomatis akan menginstall malware dari attacker. Namun, sebenarnya tidak harus menggunakan case diatas. Bisa juga tidak ada iming-iming software gratis karena sudah di crack. Jika sudah targeted attack, biasanya attacker bisa menggunakan supply chain attack pada software spesifik yang dipakai oleh target. Pada dasarnya, supply chain attack akan menyisipkan malware pada softeware yang umum digunakan oleh orang-orang yang sudah terpercaya. Dengan jalan tersebut, malware dari attacker bisa terinstall pada device korban. Contoh serangan supply chain yang dilakukan oleh Lazarus adalah serangan ke Korea Selatan. Analisa serangan ini dipublikasikan oleh ESET. Serangan supply chain ini memanfaatkan software WIZVERA Verport. Software ini merupakan software yang umumnya digunakan oleh pemerintah dan website bank di korea selatan. Untuk laporan lengkap terkait serangan ini dapat dibaca disini


Incident Terkait Lazarus

Jika berbicara mengenai insden kemanan apa saja yang terlibat dengan Lazarus, mungkin group ini merupakan salah satu group yang paling banyak melakukan serangan dengan tingkat serangan yang cukup sophisticated. Artinya pada group Lazarus terdapat banyak hacker-hacker terlatih yang tidak bisa dianggap remeh. Oleh karena itu, sebagai orang security engineer harus selalu memperhatikan aktivitas dari group ini karena jangan sampai tempat kita menjadi target serangan dari group Lazarus. Diatas sudah disebutkan bahwa Indonesia menjadi salah satu negara target serangan group Lazarus. Untuk insiden apa saja yang terkait dengan Lazarus dapat dilihat pada gambar dibawah ini yang diambil dari website resmi trendmicro.



Kalau dilihat dari gambar diatas, maka dapat dilihat aktivitas hacking Lazarus mulai terdeteksi pada tahun 2007 dimana targetnya adalah pemerintahan Korea Selatan. Selain Lazarus secara group globalnya, penyerangan juga dilakukan oleh subgroup yang ada pada Lazarus, yaitu Andariel dan Bluenoroff. Dari penjelasan sebelumnya subgroup tersebut memiliki objective berbeda dalam melakukan serangan.

Pada tahun 2009, Lazarus diduga menjadi dalang atas penyerangan siber beberapa sistem penting miliki pemerintah US dan Korea Selatan, dimana dalam hal ini yang diserang adalah Gedung Putih, Pentagon, New York Stock Exchange dan presidential blue house di Korea Selatan. Methode attack yang dilakukan adalah dengan menggunakan DDoS. Untuk serangan ini dikenal dengan nama Operation Troy. Pada tahun 2013, Lazarus diduga kembali melakukan serangan ke Korea Selatan yang menargetkan 3 bank utama di Korea Selatan. Teknik penyerangan yang dilakukan adalah dengan menyebarkan virus, mencuri dan mengahapus informasi. Impact dari serangan ini adalah warga Korea Selatan tidak dapat melakukan penarikan uang di ATM selama penyerangan dilakukan. Serangan ini dikenal dengan nama Operation Ten Days of Rain/DarkSeoul. Setehun setelah serangan ke Operation DarkSeoul, tepatnya November 2014, Lazarus kembali melakukan aksinya. Lazarus diduga menjadi serangan ke Sony Picture Entertainment. Serangan ini yang membuat Lazarus semakin dikenal oleh dunia karena Lazarus berhasil mencuri data-data milik Sony Picture Entertainment, seperti data internal karyawan dan eksekutif senior dari Sony. Karena serangan tersebut, Sony akhirnya shutdown semua jaringan perusahaan mereka setelah mendapatkan pesan ancaman dari Lazarus dengan gambar tengkorak yang ada pada layar komputer karyawan Sony. Pada pesan tertulis bahwa mereka berasal dari group peretas Guardian of Peace (GOP). Mereka memberitahukan bahawa serangan yang dilakukan masih permulaan dan mereka masih akan melanjutkan serangan mereka sampai permintaan mereka dituruti. Untuk penanganan insiden ini, FBI sampai turun tangan untuk membantu Sony memitigasi serangan dari Lazarus. Untuk serangan ini dikenal dengan nama Operation Blockbuster. Kemudian di tahun 2017, Lazarus kembali melakukan serangan ke seluruh dunia dengan menggunakan WannaCry. WannaCry ini berhasil menyerang hampir 100 negara dalam waktu yang sangat singkat dan lebih dari 200.000 system di seluruh dunia terinfeksi. Kenapa WannCry bisa tersebar begitu cepat? setidaknya ada 2 faktor yang mendukung hal tersebut. Pertama WannaCry ini memanfaatkan exploit pada windows yang bernama Eternal Blue, dimana exploit tersebut dikembangkan oleh National Security Agency (NSA) U.S. Faktor kedua yang menybebkan WannaCry bisa menyebar adalah karena banyak komputer di dunia yang menggunakan service SMB yang running di port 445 yang terkespose ke internet. Hal ini menyebabkan WannCry menjadi cepat tersebar dengan cepat. Jika suatu sistem terinfeksi dengan WannCry, maka semua file yang ada pada sistem tersebut akan di enkrip oleh WannCry sehingga banyak sistem yang down karena hal ini. Bahkan WannCry sampai menyebabkan beberapa rumah sakit menjadi korban.

Masih banyak lagi insiden-insiden yang disebabkan oleh Lazarus group yang menyebabkan kerugian bagi korbannya. Kita sebagai pengguna internet tidak bisa hanya duduk diam tanpa melakukan apa-apa. Bisa jadi kita menjadi korban dari serangan Lazarus. Selain itu, cybercrime group tidak hanya Lazarus saja. Ada banyak sekali group-group seperti Lazarus ini yang mudah-mudahan kedepannya kita bisa bahas. Dengan makin maraknya serangan-serangan seperti ini, diharapkan kita makin sadar akan pentingnya kemanan informasi. Kita makin sadar akan apa yang buka di internet, apa yang kita lakukan di internet dan bagaimana kita memaintain keamanan informasi yang kita miliki di Internet. Jangan sampai kita menjadi korban akan serangan cybercrime group seperti Lazarus dan menderita kerugian. 

03 Januari 2021

Nmap Scripting Engine (NSE), Senjata Rahasia Nmap

Apa itu NSE?

Seperti yang sudah dijelaskan pada artikel sebelumnya, nmap merupakan port scanning yang sangat sederhana, namun sangat powerfull. Oleh sebab itu, penggunaan nmap sangat umum digunakan. Baik itu digunakan oleh pentester, hacker atau netwrok engineer untuk melakukan troubleshoot. Nmap, sebenarnya tidak hanya dapat digunakan untuk melakukan port scanning. Ada banyak fitur-fitur nmap yang menyebabkan nmap dapat digunakan untuk berbagai macam kebutuhan seperti melakukan vulnerability scanning atau bahkan dapat digunakan untuk melakukan exploitasi. Fitur yang membuat nmap dapat melakukan hal-hal tersebut adalah nmap script engine atau yang biasa disingkat dengan NSE. NSE pada dasarnya adalah digital library dari script nmap yang akan menolong kita untuk menggali informasi lebih jauh mengenai target scanning. Script-script pada NSE ditulis dengan bahasa pemrograman Lua dan ada sekitar 600 script yang siap pakai pada NSE. Selain itu, kita juga dapat membuat script NSE sendiri sesuai dengan kebutuhan kita. Dengan begitu, penggunaan nmap makin flexibel dan powerfull dengan adanya NSE ini. Bisa dibayangkan, kita bisa membuat scan engine sendiri dengan menggunakan nmap sebagai mesin scanningnya. Untuk dapat melihat script-script NSE pada nmap kamu dapat membuka directory /usr/share/nmap/scripts 

Gambar 1. Script NSE pada nmap

Gambar 1 di atas, contoh beberapa dari isi directory /usr/share/nmap/scripts yang merupakan script NSE yang dapat digunakan.

Ketika kita berbicara mengenai script NSE, ada 4 jenis dari script NSE yang dapat kita gunakan untuk memaximalkan penggunaan nmap. Jenis script ini dibedakan berdasarkan target dan fase dari scanning yang dilakukan. Berikut ini adalah jenis-jenis dari script NSE.

1. Prerule Script. Script jenis ini merupakan script yang dijalankan sebelum operasi scanning dilakukan, dimana pada saat itu nmap tidak mempunya data terkait target

2. Host Script. Script jenis ini berjalan ketika default scan nmap telah selesai melakukan ekplorasi, deteksi, port scanning atau software discovery. 

3. Service Script. Script jenis merupakan script yang dijalankan pada service tertentu dan listening port pada target. Dalam ini termasuk adalah script http service yang dapat dijalankan pada web server.


4. Postrule Script. Script jenis yang akan berjalan pada saat semua proses operasi scanning nmap telah selesai dilakukan (termasuk host script telah selesai dilakukan). Biasanya script jenis berguna untuk melakukan parsing, formatting atau menampilkan hasil dari scanning.

Selain 4 jenis script NSE yang sudah disebutkan di atas, script NSE juga dapat dibedakan berdasarkan beberapa kategori. Pembagain kategori ini berdasarkan fungsi-fungsi dari scriptnya. Berikut ini adalah kategori dari script NSE.

1. Auth. Script kategori ini adalah semua script yang terkait dengan proses authentikasi dan beberapa terkait dengan bypass proses authentikasi. Jenis-jenis dari script NSE untuk kategori auth dapat dilihat disini

2. Broadcast. Script pada kategori ini digunakan untuk mengidentifikasi host yang belum teridentifikasi pada jaringan lokal. Contoh script ini adalah broadcast-ataoe-discover, broadcast-avahi-dos atau broadcast-dns-service-discovery. Untuk lebih lengkapnya dapat dilihat disini

3. Brute.  Script kategori ini terkait dengan script untuk melakukan proses bruteforce untuk menebak credential autentikasi. nmap mengandung banyak bruteforce dari berbagai protokol, seperti http-brute, oracle-brute, snmp-brute. Untuk lengkapnya dapat dilihat disini

4. Default (-sC). Script ketegori ini terkait dengan script-script yang umum digunakan untuk melakukan port scanning. untuk dapat menggunakan kategori ini dapat menggunakan opsi -sC pada nmap atau menggunakan --script default. Hasilnya akan sama. Untuk script-script apa saja yang terkait dengan kategori default dapat dilihat disini 

5. DOS. Script kategori ini digunakan untuk melakukan testing availability dari sistem dengan cara melakukan serangan denial of service (dos). contoh dari script NSE terkait dos adalah http-slowloris, ipv6-ra-flood atau smb-flood. untuk lengkapnya dapat dilihat disini

6. Exploit. Script kategori ini adalah script yang ditujukan untuk melakukan exploitasi vulnerability yang ada pada suatu sistem. Contoh scriptnya adalah http-shellschock, http-barracuda-dir-traversal atau http-dombased-xss. Untuk lengkapnya dapat dilihat disini.

7. Safe. Script pada kategori ini didesain agar tidak menyebabkan kerusakan pada target yang discan dan tidak menggunakan banyak bandwith atau resource untuk dalam melakukan scanning atau exploitasi suatu vulnerability sehingga penggunaanya aman/safe. contoh dari script adalah acarsd-info, address-info atau ajp-headers. Untuk lebih lengkapnya dapat dilihat disini

8. Intrusive. Kebalikan dari kategori safe, script kategori ini tidak di desain dengan aman. Penggunaannya dapat menyebabkan crash pada sistem serta menggunakan resource yang sangat signficant. Contoh script ini adalah afp-brute, backorifice-brute atau cics-enum. Untuk lebih lengkapnya dapat dilihat disini

9. Malware. Script kategori ini digunakan untuk melakukan pengecekan apakah pada target terdapat malware atau backdoor. Contoh dari script ini adalah auth-spoof, dns-zeustracker atau ftp-proftpd-backdoor. Untuk lebih lengkapnya dapat dilihat disini

10. Fuzzer. Scropt pada kategori ini mengirimkan value atau nilai yang tidak terduga atau acak di setiap paket yang dikirimkan ke sistem target. Teknik ini dapat digunakan untuk mengidentifikasi kerentanan target yang tidak terduga atau tidak diketahui. Contoh dari script ini adalah dns-fuzz, http-form-fuzzer dan http-phpself-xss.

11. Version. Script pada kategori ini digunakan untuk mendeteksi tipe atau versi dari aplikasi atau software yang ada pada target scan. contoh script ini adalah allseeingeye-info, amqp-info atau cccam-version. Untuk lebih lengkapnya dapat dilihat disini 

12. Vuln. Script pada kategori ini digunakan untuk melakukan pengecekan spesifik vulnerability pada target dan hanya memberikan hasil jika pada target jika terdapat vulnerability yang diuji. Contoh script pada kategori ini adalah distcc-cve2004-2687, ftp-libopie atau ftp-vsftpd-backdoor. Untuk lebih lengkapnya dapati dilihat disini


Bagaimana cara menggunakan script NSE?

Setelah mengetahui apa itu NSE dan jenis-jenis dari script, sekarang yang menjadi pertanyaan bagaimana cara menggunakannya? Seperti yang sudah disebutkan di atas, terdapat 600 script NSE. Kita akan bingung pastinya untuk memilih script mana yang akan kita gunakan. Untuk itu pada opsi nmap terdapat opsi "-sC". Fungsi dari opsi ini adalah agar ketika melakukan scanning, nmap akan menggunakan popular script NSE. Berikut ini contoh penggunaan opsi -sC



Gambar 2. Contoh penggunaan opsi -sC

Gambar 2 di atas merupakah contoh scanning dengan menggunakan script NSE dengan memakai opsi -sC. Jika dilihat hasilnya masih seperti hasil scanning nmap pada umumnya karena script NSE yang digunakan merupakan script yang umum digunakan.

Oke, untuk explorer lebih jauh mengenai penggunaan script NSE ini, mari kita cobe menggunakan beberapa script yang lebih spesifik kegunaanya. Untuk bisa melihat semua script NSE yang tersedia, kamu bisa menuju directory dari script-script tersebut seperti yang sudah dijelaskan di atas atau menggunakan script berdasarkan 12 kategori diatas yang sudah dijabarkan. Berikut ini adalah contoh scanning dengan nmap dengan menggunakan kategori script NSE.


Gambar 3. Nmap scan menggunakan kaegori Vuln

Pada gambar 3 diatas merupakan hasil scan menggunakan script kategori Vuln. Dari hasil scan dapat dilihat pada target scan terdapat vulnerability terhadap slowloris dos attack dan CSRF. Namun begitu, tidak dapat serta merta mempercayai hasil scannya. Kita harus melakukan validasi manual dengan mengeksploitasi langsung vulnerabilty pada target scan.


Gambar 4. Nmap scan menggunakan kategori safe

Pada gambar 4 diatas merupakan hasil scan dengan menggunakan kategori safe.

Selain langsung menggunakan nama kategori, kita juga langsung dapat menggunakan jenis script pada tiap kategori atau juga dapat langsung menggunakan nama file dari script. Berikut ini contoh penggunaan script NSE dengan cara tersebut.


Gambar 5. Scanning Nmap dengan menggunakan script http-server-header.nse

Pada gambar 5 di atas adalag contoh scanning nmap dengan menggunakan script http-server-header.nse. Script tersebut digunakan untuk mendeteksi http header pada service yang ada pada target scan. Pada Gambar 5 didapatkan hasil dimana service http yang running pada port 80 memiliki http header.


Gambar 6. Scanning nmap dengan menggunakan script jenis http-title dari kategori default

Pada gambar 6 merupakan hasil scanning nmap dengan menggunakan script janis http-title dari kategori default. Dengan menggunakan script jenis ini maka diharapkan mendapatkan result berupa http title dari service yang running pada target scan. Jika dilihat pada hasil scan tersebut, maka didapatkan service http yang running pada port 80 di target scan mempunya title "Go ahead and scanMe!". Kita dapat menggunakan script ini mengumpulkan informasi mengenai target scan. Biasanya dari informasi tersebut kita akan tau aplikasi apa yang running pada target scan.

Selain menggunakan script-script yang sudah disediakan oleh nmap, kita juga dapat membuat script NSE yang dibutuhkan atau memodif script NSE yang sudah ada. Dengan adanya fitur tersebut, maka akan memudahkan kita untuk melakukan proses scanning ke target, baik itu untuk tujuan information gathering ataupun untuk tujuan exploitasi vulnerability yang ada pada target scan. Bisa dibilang fitur ini merupakan salah satu fitur inti dari nmap. Dengan adanya fitur ini, maka nmap menjadi sangat powerfull meskipun nmap merupakan salah satu tools untuk scanning yang sudah cukup lama digunakan. Ini merupakan senjata rahasia dari nmap yang dapat sangat powerfull untuk melakukan explorasi dan exploitasi target attack.

Untuk penjelasan terkait bagaimana membuat script NSE sendiri akan kita bahas dikesempatan yang lain. semoga artikel ini bisa membuka wawasan kita mengenai penggunaan nmap sebagai scanning tools.


31 Desember 2020

Nmap, Tools Untuk Menganalisa Service Pada Suatu Host/Server

Pada saat melakukan penetration testing, hal yang pertama kali yang harus dilakukan adalah melakukan recon atau mengumpulkan informasi terkait target. Ada banyak tools yang bisa kita gunakan untuk melakukan recon, salah satunya yang paling umum adalah NMAP atau network mapper. Walaupun tools yang umum digunakan, nmap ini sangat banyak fungsinya. Berikut ini adalah beberapa hal yang bisa dilakukan oleh nmap:

1. Network Discovery

2. Indetifikasi Vulnerability

3. Backdoor Detection

4. Exploitasi Vulnerability


Sebelum lebih jauh membahas bagaimana nmap digunakan dalam aktifitas penetration testing, kita harus tau dulu bagaimana cara kerja dari tools nmap. Pada dasarnya, ketika suatu server digunakan untuk menjalankan aplikasi, maka server tersebut akan membuka port tertentu. Port tersebut merupakan pintu komunikasi dengan aplikasi yang ada pada server. Contohnya jika pada suatu server terdapat aplikasi web, maka biasanya port yang terbuka pada server tersebut adalah 80 (HTTP) atau 443 (HTTPS). Jika server tersebut adalah server email, maka port yang butuh dibuka adalah port 25, 110 atau 465. Dengan mengetahui port apa yang terbuka pada server tersebut, maka kita dapat mengetahui lewat pintu mana kita masuk. Jika pintu-pintu tersebut tidak di maintain dengan baik dari sisi security, maka akan memungkinkan attacker dari luar melakukan exploitasi.

Nmap mempunyai kemampuan untuk mengindetifikasi port apa saja yang terbuka pada suatu server. Untuk dapat mengindetifikasi port yang terbuka, nmap akan mengirimkan paket tertentu pada target lalu melihat responnya. Jika terdapat respon dari port yang dikirimi paket, artinya port tersebut aktif. Jika port tidak memberikan respon pada selang waktu tertentu, maka port tersebut akan dianggap tidak aktif oleh nmap. Mari kita coba melakukan perintah sederhana dari tools nmap ini. 


Gambar 1. Contoh penggunaan nmap yang sederhana

Untuk command di atas, kita hanya menggunakan perintah 

nmap <ip target>

Dengan perintah yang sederhana tersebut, kita bisa mendapatkan informasi port apa saja yang terbuka pada server tersebut. Pada contoh di atas, kita lihat bahwa ada 7 port yang aktif, namun hanya 4 port yang bisa diakses langsung karena berstatus open dan 3 port sisanya tidak bisa diakses karena statusnya closed. Pada contoh gambar 1 di atas, hasil yang diinformasikan masih sangat sedikit informasinya. Untuk dapat memaximalkan penggunaan nmap, kita dapat melihat manual nmap dengan menggunakan perintah 

nmap --help atau man nmap


Gambar 2. Opsi pada nmap

Pada gambar 2, kita bisa lihat terdapat banyak opsi yang bisa kita gunakan ketika menggunakan nmap. Ketika kita butuh informasi yang lebih detail dari hasil scan menggunakan nmap, maka kita dapat menggunakan opsi-opsi tersebut. Berikut ini adalah contoh penggunaan opsi pada nmap dan tujuannya.

1. nmap untuk mendeteksi OS dan Service pada target

untuk melakukan hal ini, maka dibutuhkan opsi -A. opsi -A digunakan untuk mendeteksi OS dan service pada target. Agar proses scanning bisa dilakukan lebih cepat, maka dapat dikombinasikan dengan opsi -T4. Berikut ini adalah contoh penggunaannya.

Gambar 3. Nmap untuk mendeteksi OS dan service

Dari hasil scan di atas, kita bisa mendapatkan informasi yang lebih detail dari port yang aktif pada target seperti jenis web server yang digunakan, versinya, SSL detail dan kemungkinan OS yang digunakan oleh server.

2. nmap untuk mendeteksi versi dari service/daemon

untuk mendapatkan informasi mengenai versi dari service/daemon yang aktif pada target dapat menggunakan -sV. Berikut ini adalah contoh penggunaan opsi -sV


Gambar 4. Nmap untuk mendeteksi versi dari service pada target

Dari hasil di scan nmap pada gambar 4, kita dapat melihat informasi dari service yang running pada target.


3. Melakukan scan menggunakan protokol TCP atau UDP
Pada saat melakukan scan dengan nmap, kita bisa memilih untuk menggunakan protokol TCP saja atau UDP saja. Biasanya ini dilakukan ketika kita mau menghindari blocking firewall atau mau mempercepat proses scan. Jika mau melakukan scanning hanya dengan menggunakan protokol TCP saja, maka kita dapat menggunakan opsi -sT dan untuk protokol UDP saja dapat menggunakan opsi -sU. Berikut ini contoh penggunaan opsi -sT dan -sU


Gambar 5. Scanning nmap menggunakan opsi -sT

Gambar 6. Scanning nmap menggunakan opsi -sU

Dari dua hasil scan di atas, dapat kita lihat terdapat perbedaan. Pada gambar 5 yang merupakan scanning dengan protokol TCP memberikan hasil. Ini berbeda ketika scanning menggunakan protokol UDP, tidak memberikan hasil. Ini artinya, service pada target hanya berjalan menggunakan protokol TCP.

4. Scannig port tertentu
Pada saat melakukan scanning dengan nmap, pada dasarnya nmap akan melakukan scanning ke semua port (port 1-65535). Hal tersebut menyebabkan proses scanning menjadi lama. Agar dapat melakukan efesiensi pada saat melakukan scanning, kita dapat memilih port tertentu. Untuk melakukan hal tersebut kita dapat menggunaka opsi -p diikuti dengan port yang mau di scan


Gambar 7. Scanning nmap dengan spesifik port

Dari hasil scanning di atas, dapat kita lihat scanning hanya menargetkan port 22,80,443 dan 501. Jika dibandingkan dari sisi waktu, scanning dengan spesific port jauh lebih cepat dari pada scanning tanpa menggunakan spesific port. Untuk opsi di atas, dapat dikombinasikan dengan perintah lain sehingga dapat memberikan result yang lebih detail.


Dengan memperhatikan opsi-opsi pada tools nmap, kita dapat melakukan analisa terhadap semua port yang digunakan oleh service pada target. Hasil analisa tersebut dapat dijadikan data awal sebelum melakukan penetrasi testing. Misalnya, ketika kita sudah tau aplikasi apa yang aktif pada target dan versi dari aplikasi tersebut, kita dapat mencari vulnerability terkait versi aplikasi tersebut. Jika kita belum menemukan vulnerability pada aplikasi tersebut, setidaknya kita bisa mempunyai bayangan proses apa saja yang sedang berlangsung pada target sehingga kita bisa melakukan recon lebih lanjut terhadap target pentest.

Ada banyak fungsi dari nmap yang bisa kita explorer selain melakukan analisa service seperti telah disebutkan di atas. Next time, kita akan bahas bagaimana melakukan hal-hal tersebut.