Password Cracking and Penetration Testing

Ketika melakukan internal pentest dan dihadapkan dengan ratusan bahkan mungkin ribuan target strategi apa yang biasanya anda lakukan pertama kali?! Ini adalah salah satu pertanyaan penting dan umumnya membuat para pendatang baru merasa kesulitan. Dalam aktivitas penetration testing (pentest) biasanya client telah memberikan scope target untuk di audit, namun seringkali client tidak memberikan scope tersebut alias hajar saja apa yang bisa ditemukan. Kalaupun mungkin ada scope, jika client memiliki network yang cukup besar, maka tetap saja kita akan dihadapkan pada ratusan hingga ribuan target untuk diaudit.

Jika kita menggunakan tools seperti metasploit yang memiliki feature autopwn maka biasanya akan banyak waktu terbuang sia-sia. Tools seperti metasploit akan melakukan scanning pada target dan mencoba eksploitasi berdasarkan port yang terbuka, dan ini akan dicoba pada setiap mesin target (yang live). Jika seseorang sudah cukup banyak melakukan penetration testing maka biasanya dia akan melakukan aktivitas yang sifatnya spesifik, terlebih lagi jika aktivitas pentest ini dilakukan secara team. Sebuah team yang terdiri dari beberapa individu dapat membagi tugas pada awal sesi pentest, misal: ada yang melakukan mapping network, ada yang melakukan pentest pada target microsoft windows, ada yang fokus pada server-server berbasis UNIX/Linux, ada yang fokus pada aplikasi web, dsb.

Penetration testing berbeda dengan vulnerability assessment. Vulnerability assessment umumnya hanya fokus pada faktor vulnerability suatu sistem / network, sedangkan penetration testing lebih fokus pada sejauh mana seorang penyerang dapat menusuk masuk ke suatu sistem dengan memanfaatkan beragam vulnerability yang ditemukan, termasuk diantaranya menggali lebih dalam beragam informasi dari target yang berhasil di eksploitasi. Pembahasan mengenai filosofi penetration testing ini akan dilakukan lain kali, kali ini saya hanya akan menunjukan salah satu trik yang dapat digunakan oleh seorang penetration tester untuk dapat masuk kedalam target secara efisien dan efektif.

Jika kita dihadapkan pada suatu network, maka carilah target yang paling mudah terlebih dahulu. Jika target adalah sekumpulan network staff, maka besar kemungkinan mereka menggunakan sistem operasi Microsoft Windows. Dan vulnerability paling mudah dari micorosoft windows adalah SMB bug. Target lain adalah weak password untuk aplikasi-aplikasi yang umum ditemukan, misal: MS-SQL Server (port 1433) dengan default credential seperti sa/sa yang dapat di-eksploitasi menggunakan mssql_payload exploit.

Dari sekumpulan mesin pada suatu network yang dimanage dengan baik (di-patch secara berkala oleh sysadmin), biasanya ada beberapa mesin yang dapat di-eksploitasi dengan mudah karena berbagai alasan. Diantara alasan-alasan tersebut adalah: mesin pribadi seperti laptop yang tidak terintegrasi dengan domain perusahaan, mesin yang baru di install ulang, mesin developer yang melakukan instalasi aplikasi seperti MS-SQL server dengan settingan default. Mesin-mesin tersebut umumnya tidak terlindungi dengan baik, eksploitasinya dapat membawa kita masuk ke sistem-sistem lain yang dipatch secara berkala. Bagaimana caranya?! dengan melakukan cracking password mesin yang berhasil di eksploitasi.

Dalam suatu perusahaan biasanya setiap komputer staff di install menggunakan password Administrator yang sama. Jika kita bisa mendapatkan password tersebut, maka kita dapat masuk ke komputer-komputer lain menggunakan akses seperti Remote Desktop. Namun favorite saya selama ini adalah menggunakan psexec exploit. Seperti yang tertulis pada technet microsoft bahwa psexec merupakan utility dari microsoft windows untuk remote execution seperti telnet dengan memanfaatkan protocol SMB. Jika kita memiliki password Administrator mesin windows, dan mesin tersebut membuka port untuk komunikasi melalui protocol SMB, maka dengan eksploit psexec dari metasploit diatas kita dapat masuk ke mesin windows tersebut.

Katakanlah scenario seperti berikut ini: seorang pentester berhasil mendapatkan akses pada salah satu mesin staff yang memiliki hole SMB MS08_067, lalu kemudian melakukan hashdump (mis: menggunakan utility meterpreter) password local mesin tersebut termasuk Administrator, dan kemudian melakukan cracking password Administrator dengan menggunakan rainbow table.


$ rcracki_mt -f pwdump.txt -t 2 /Volumes/My\ Book/RainbowTables/lm/lm_all-space#1-7_*
...
lm_all-space#1-7_0_10000x37601550_distrrtgen[p][i]_19.rti:
reading index... 37068152 bytes read, disk access time: 0.04 s
reading table... 300812400 bytes read, disk access time: 0.30 s
verifying the file... rainbow chain length verify fail

lm_all-space#1-7_0_10000x67108864_distrrtgen[p][i]_00.rti:
reading index... 66157982 bytes read, disk access time: 0.06 s
reading table... 536870912 bytes read, disk access time: 0.68 s
verifying the file... ok
searching for 2 hashes...
cryptanalysis time: 48.48 s
...
...
lm_all-space#1-7_1_10000x67108864_distrrtgen[p][i]_02.rti:
reading index... 63414560 bytes read, disk access time: 0.07 s
reading table... 536870912 bytes read, disk access time: 0.56 s
verifying the file... ok
searching for 1 hash...
plaintext of d18aebeb7cabe1d6 is -O6,1@}
cryptanalysis time: 0.51 s

statistics
-------------------------------------------------------
plaintext found: 2 of 2 (100.00%)
total disk access time: 14.41 s
total cryptanalysis time: 85.27 s
total chain walk step: 149955003
total false alarm: 8040
total chain walk step due to false alarm: 29605298

result
-------------------------------------------------------
Administrator T&p/E$v-O6,1@} hex:5426702f4524762d4f362c31407d

Dengan asumsi bahwa seluruh mesin menggunakan password Administrator (local) yang sama, maka dengan psexec exploit seorang pentester dapat masuk ke seluruh mesin berbasis Microsoft Windows pada network target.

psexec exploit pwn ratusan mesin

Hal ini jauh lebih efisien daripada melakukan scanning satu per satu ataupun autopwn. Tentu saja dengan catatan fokus dari pekerjaan adalah penetration testing bukan vulnerability assessment. Untuk rainbow table sendiri dapat di download dari berbagai situs di internet.

Advertisements

6 thoughts on “Password Cracking and Penetration Testing

  1. True, nice artikel, gw rasa bakal amat bermanfaat bagi para pentester :), yang penting pilih target yang paling ‘pas’, apalagi kalo base on active directory infrastructure (windows env).

  2. bukannya psexec bisa diberi argumen password dalam bentuk hash tanpa di crack dulu ya? called as pass the hash attack?

    Salam,

    1. betul sekali, untuk context yang spesifik ke psexec memang bisa dengan pass the hash. namun ada beragam hal lain yang bisa dimanfaatkan dengan mendapatkan password dari suatu target, contoh paling mudah adalah remote desktop (seringkali aplikasi client butuh GUI access), atau mendapatkan pola passwordnya untuk network berbeda (contoh: network admin password_admin, network finance password_finance, dsb).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s