NoSQL veri tabanı sistemleri arasında oldukça popüler olan MongoDB, klasik penetrasyon testi süreçlerinden biraz daha farklı yaklaşımları içermektedir. Özellikle MongoDB’yi kullanan web uygulamaları test edilirken standart yaklaşımlar yetersiz olacaktır. Bu konu üzerine daha önce hazırladığım MongoDB ve NoSQL Injection dökümanını okuyabilirsiniz.
1 – Metasploit MongoDB Auxiliary Modül
Penetrasyon Testi uzmanının olmaz ise olmazı Metasploit, mongodb için aux modülü bulundurmakta. Özellikle Network penatrasyonu testi sürecinde yapılan scanning işleminden sonra eğer MongoDB sunucuları tespit edilirse, username/password brute force deneme konusunda ümitsiz olmayın. Pek çok yapıda MongoDB’nin blank password ile kurulu olduğunu tecrübe etmiş bulunmaktayım.
msf > use auxiliary/scanner/mongodb/mongodb_login msf auxiliary(mongodb_login) > show options Module options (auxiliary/scanner/mongodb/mongodb_login): Name Current Setting Required Description ---- --------------- -------- ----------- BLANK_PASSWORDS false no Try blank passwords for all users BRUTEFORCE_SPEED 5 yes How fast to bruteforce, from 0 to 5 DB admin yes Database to use DB_ALL_CREDS false no Try each user/password couple stored in the current database DB_ALL_PASS false no Add all passwords in the current database to the list DB_ALL_USERS false no Add all users in the current database to the list PASSWORD no A specific password to authenticate with PASS_FILE no File containing passwords, one per line RHOSTS yes The target address range or CIDR identifier RPORT 27017 yes The target port STOP_ON_SUCCESS false yes Stop guessing when a credential works for a host THREADS 1 yes The number of concurrent threads USERNAME no A specific username to authenticate as USERPASS_FILE no File containing users and passwords separated by space, one pair per line USER_AS_PASS false no Try the username as the password for all users USER_FILE no File containing usernames, one per line VERBOSE true yes Whether to print output for all attempts
Modül pek çok özellik barındırmakta. Hedef MongoDB sunucuna yapılacak deneme yanılmılma saldırıları için şifre ve username listesi belirleyebilmektesiniz.
2 – NoSQLMap
NoSQL sorguları, standart ilişkisel veri tabanı sorgularından çok farklıdır. Bu nedenle Mongo ile daha önce tecrübeniz yoksa NoSQLMap oldukça işinize yarayacaktır. MongoDB sunucusuna erişim imkanı sağladıktan sonra hedef sunucuda ki database ve collection’ları kendi yerel mongodb sunucunuza aktarabilmek gibi güzel özellikleri olan bu tool Python ile geliştirilmiştir ve açık kaynak kodludur.
Ayrıca MongoDB 2.2.4 öncesi versiyonlarda geçerli olan Authenticated Remote Code Execution zafiyetini kullanabilmektedir.
https://github.com/tcstool/nosqlmap
Güzel bir demo olan aşağıdaki youtube videosunu izlemenizi öneririm.