• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Как тестировать MongoDB?

M

Magnit

Добрый день,
давно знал, что прийдется столкнуть с этими БД.
И вот хорошо что начал с СТФ
Первое.
Как тестить такие БД?
На ск-ко я понимаю наш всеми уважаемый sqlmap тут никаким боком.
Второе
Нашел такую строчку в СТФ:
mongodb://mark:5AYRft73VtFpc84k@localhost:27017/myplace?authMechanism=DEFAULT&authSource=myplace'

как\с помощью чего из Кали попасть в БД СТФ машины?

Спасибо
 

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 318
3 999
BIT
3
Добрый день.О,кей ,наводку дам(не про напиток )).
Да,Вы правы,sqlmap не подойдёт.
Можно воспользоваться вот этим софтом во-первых.
Во-вторых , тестировать надо начинать с обнаружения таких СУБД.

Нам в этом деле поможет nmap и уделение внимания дефолтным портам mongodb -27017 и 28017.
Код:
# nmap -n -sS -sV IP_цели -p 27017,28017
Затем,имеет смысл посмотреть что там с аутентификацией,требуется ли она и как с этим обстоят дела.
Здесь есть у того же nmap отличный скрипт:
Код:
# nmap -n IP_цели -p 27017 --script mongodb-brute
2017 порт-отвечает за shell ;2018-за http-интерфейс.Это чтобы было понятнее.
Определяем базы :
Код:
# nmap -n IP_цели 27017 --script mongodb-database
Если не требуется аутентификация,то сразу подключаемся : mongo IP_цели
Если нужен пароль ,то брутим в основном.И затем,получаем как выше shell

Далее,получаем всё о сервере :
Код:
> db.adminCommand({"hostinfo":1})
И можно вывести список тех баз,в которых хоть что-то есть (не с пустыми файлами) чтобы не тратить ценное время:
Код:
> show dbs

Если такой способ не сработает,то используем утилиту Nosqlmap - она всё сделает на полу-автомате))
И что самое приятное-у неё очень много полезных последовательных опций.
А то что у Вас в строчке-эо считайте,что ключ к решению задания))
 
Последнее редактирование:
M

Magnit

Просто в шоке.
Огромное спс за ответ.
Раньше для СТФ использовал команду
Код:
nmap 192.168.22.15 -A
И не заморачивался ведь СТФ, смысла скрывать свое присутствие нет и вот каким стало шокирующим для меня это утро когда оказалось, что при такой команде порты
27017,28017 вообще не рассматриваются
Теперь утратил чуток веру в свои знания, если возможно подскажите для себя после изучения nmap выбрал оптимальную команду для сканирования:

Код:
nmap -sS -O -Pn -sV -vv -n -oA test --spoof-mac 0 ip_ цели
Вопрос к Вам как к профи эта команда нормальная или полная ерунда?
понятно, что сейчас еще нужно будет добавить и новые порты

По коду тут какая-то странность или мое невежество:
Код:
#  nmap -n -sS -sV 192.168.22.15 -p 27017,28017
Starting Nmap 7.70 ( https://nmap.org ) at 2018-08-25 04:31 EEST
Nmap scan report for 192.168.22.15
Host is up (0.00035s latency).

PORT      STATE    SERVICE VERSION
27017/tcp filtered mongod
28017/tcp filtered mongod
при вводе след команды получил:
Код:
# nmap -n 192.168.22.15 27017 --script mongodb-brute
Starting Nmap 7.70 ( https://nmap.org ) at 2018-08-25 04:47 EEST
setup_target: failed to determine route to 27017 (0.0.105.137)
Nmap scan report for 192.168.22.15
Host is up (0.00031s latency).
Not shown: 998 filtered ports
PORT     STATE SERVICE
22/tcp   open  ssh
3000/tcp open  ppp
Т.е. слово filtered означает что они фильтруются и закрыты?
Хотя судя по этому:
Код:
# nmap -n 192.168.22.15 27017 --script mongodb-database
Starting Nmap 7.70 ( https://nmap.org ) at 2018-08-25 04:52 EEST
NSE: failed to initialize the script engine:
/usr/bin/../share/nmap/nse_main.lua:823: 'mongodb-database' did not match a category, filename, or directory
stack traceback:
    [C]: in function 'error'
    /usr/bin/../share/nmap/nse_main.lua:823: in local 'get_chosen_scripts'
    /usr/bin/../share/nmap/nse_main.lua:1315: in main chunk
    [C]: in ?

QUITTING!
а затем проверке на наличие скриптов
Код:
/usr/share/nmap/scripts# ls -la | grep mongodb
-rw-r--r-- 1 root root  2578 May 15 12:31 mongodb-brute.nse
-rw-r--r-- 1 root root  2583 May 15 12:31 mongodb-databases.nse
-rw-r--r-- 1 root root  3663 May 15 12:31 mongodb-info.nse
У меня просто этих скриптов нет и как вопрос где их взять.И еще раз спасибо за такой развернутый ответ
 
Последнее редактирование модератором:
  • Нравится
Реакции: Vertigo
M

Magnit

Screenshot from 2018-08-25 05-20-04.png
Какой-то странный NoSQLAttack вроде и мануал читал, что что это за первые 9 атакуемых ip не понял,
он что с моей машины атакует 9 ip в интернете, то это конечно жесть.
ну а при попытке атаковать мой выдал эту кучу мата
 

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 318
3 999
BIT
3
Так,пойдёмте по-порядку.
1 .)Пожалуйста.
2) Не стоит терять веру.Дело в самой сложившейся ситуации просто , и не каждая команда может принести успех.
Очень часто пропускают такие порты из-за особенностей дефолтного правила Nmap - без чётких указаний,сканировать 1000 (или основных портов )
Правило "тысячи". У Вас нормальная команда приведена в Вашем примере.

Но просто нет универсальной команды у этого инструмента,чтобы всегда работало при всех случаях как хотелось бы.
Приходится искать лазейки,обманывать брандмауэры и т.д. по ситуации.

3) С выводом filtered:
Не всегда.Надо обращать конечно внимание на колонки service и state - что они отвечают.
Ресурс может защищаться против сканирования и отбрасывать drop с reject.
Часто помогает опция -P с различными вариациями.

4) Со скриптами и их отсутствием:
Нет,скрипты должны быть ,тем более ,эти официально включены в обойму nmap
Попробуйте обновить базу скриптов :
Код:
nmap --script-updatedb

Впридачу,можно конечно включить и порты 27018 и 27019,которые также относятся к mongodb , но не столь значимы,как предыдущие.

5) По командам при тестировании можно воспользоваться и . Там много ещё полезностей конечно же помимо этого.

6) Теперь по поводу использования NoSQLAttack . Да,инструмент немного необычный. Сканирует в заданной сети ресурсы на наличие mongodb.
Но чтобы он корректно работал ,требуется установить зависимости,которые он требует ,в том числе и mongodb.
Предпочтение я всё же отдал бы Nosqlmap .Хотя кому как удобно.Из NoSQLAttack,к примеру ,удобно брать название баз и IP-адреса.
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!