PDA

Просмотр полной версии : Уязвимости в RAPID7 и Tenable Network Security


Unknown
20.03.2014, 21:06
Доброго времени суток господа не буду разводить воду сразу к делу.

Мне часто как и любому пентестеру приходится прибегать так сказать к автоматизированным средствам проведения пентестов, среди которых можно отметить как и опенсорс так и комерческие продукты. Естественно платить за "более менее" проработанный продукт мне как и всем Вам не особо то хочется(ибо зачастую много фолсов, логов и платить за 1дай уязвимости/сплоеты как то не канает согласитесь), при том как обладая некоторыми знаниями в области реверса и крэкинга в частности я ломаю эти так называемые комерс продукты для личного пользования.

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

Metasploit Pro 4.8 от Rapid7

Tenable Nessus 5.2.5 от Tenable Network Security

Эти продукты впрочем можно получить в виде триальной серии действующей 7 дней (в обоих случаях). Кстати хоть и триал но все же работают они как полноценные продукты, так что не путаем триал с демо.

Конечно рассматривать 7 дней как принцип одноразовой проверки я не стал поэтому было решено об "продлении срока триала" насколько это возможно и естественно в дело пошел старый добрый битхак скриптхак. Да разработчики таких комерс продуктов ныне кодят свои продукты не на сях и не на прочем добре а на руби.

Поснифав трафик через сслстрип я честно говоря ох*ел от происходящего. После регистрации он выкладывает свои ключики в директорию

dir_metasploit/apps/pro/engine/license.

Для поциента Метасплоет Про 4.8 скриптхак в целом понадобился для облома даты в одном месте. Пропатчив таким образом


def expired?

@expirationTime.now

end

я получил желаемый результат. На это правда не остановился и переломал все что возможно


def seconds_until_expired

return0if @expiration.nil?

#return expiration.to_i - Time.now.utc.to_i меняем местами и получаем обратный ход ремени, лол.

returnTime.now.utc.to_i-expiration.to_i

end

теперь по истечении срока триала срок нашей лицензии не кончается а наоборот увеличивается, например если у вас рега лицензии была 17 марта 2014 как у меня, то 17 марта 2015 года у вас останется до окончания лицензии ~365,5 дней.

Есть правда отдельные скрипты которые не работают без отвязки , там отдельная история но принцип почти тот же. отключаем посредством коментариев места запроса лицензии и все работает без триала.

Кстати функция считывания ключа с триалки находится в классе контроллере лицензий licenses_controller.rb :


def offline_activation

temp=nil

ifparams[:activation_file]

# Copy the uploaded file to a tempfile

temp= ::Rex::Quickfile.new('activate')

uploaded_io=params[:activation_file]

begin

while (buff=uploaded_io.read(1024*64))

temp.write(buff)

end

rescue::EOFError

end

temp.flush

end

# Just present the user with the form

ifnot temp

return

end

begin

# Explicitly close the file to prevent lock ing issues

path=temp.path

temp.close rescue nil

@license.activate_offline(path)

if @license.activated? andnot@license.error

flash[:notice] ="Activation Successful"

redirect_to root_path

else

flash[:error] ="Activation Failed: #{@license.error}"

end

rescue Exception=>e

flash[:error] ="Activation Failed: #{e.message}"

end

end

Из класса license.rb:

require"digest/sha1"

attr:product_serial

attr:product_key

Ключ procuduct.lic сгенерен и зашифрован посредством алго sha1. По идее если кому хочется можно разобрать всю тему и генерить ключики lic и продавать хомячкам от имени Rapid7

Окей, поциент #2 Nessus :

Ну чо сказать явно не лучше, разрабы вообще долбоебы объебывается банальной прокруткой времени назад. Вот обычный 7days триал :

https://www.dropbox.com/s/ap83p2qqx6k834u/nessus_trial.png

Окей, крутим время назад : date -s "11 MAR 2014" :

https://www.dropbox.com/s/mrsh0jv0fbsgro7/xpng.png

Что мы видим ? 13 дней, на скрине как видно все функции продолжают работать. Для конкретного обломного пиздеца создал прошку которая посредством LD_PRELOAD меняет env окружение для демона /etc/init.d/nessusd таким образом что получаем фулл анлим лицензию

https://www.dropbox.com/s/ca39wfml701eiwj/untrialed.png

Сообственно Nuff Said ?

Итак цены цены цены : http://www.rapid7.com/store/index.jsp?p=price

максимальная цена на msf экспресс на уникальных 1024 IP: 10,000$

разницы особой не заметите от про версии : https://community.rapid7.com/docs/DOC-2280

Если посмотреть классы лицензий там можно понять что несложно портировать двиг на под другие нужды :


def pro?

product_type=="Metasploit Pro"

end

def express?

product_type=="Metasploit Express"

end

def community?

product_type=="Metasploit Community"

end

Что касается Nessus : 1.500 USD

https://store.tenable.com/index.php?main_page=product_info&cPath=1&products_id=7

Т.е если рассматривать те же 1024 уник айпи то 1024 x 1,5k $ = 1.536.000 $

мы и так можем ее использовать без всяких ограничений.

Выкладываю архив с патчами, скринами : https://www.dropbox.com/s/n61i9yia4mtm7ip/metasploit_patch.zip

PS.PS.: для метапслойта про можно кстати не замарачиваться с лицензиями и пойти более законным путем был найден путь постоянного слива легальных триальных лицензий по времени истечения триала. Алго такой удаляем все ключи в директории


1)rm-rf msf_dir/apps/pro/engine/license/*

Далее перезагружаем метас плоент :

2) msf_dir/scripts/stop.sh и start.sh

3) запускаем $ msf_dir/msfpro



открывается брауз нажимаем рекуэст имена и данные пользователя можно оставлять теми же. единственное меняем почту, по умолчанию девелоперы не принимают почты типа gmail, mail, rambler, yahoo, etc. регаем быстро новую почту на inbox.uz(обычно tmp1@inbox.uz, tmp2, tmp3, etc) можно написать бота даже потому что триальные ключи с той стороны раздаются посредством такого же бота, который ничего не проверяет кроме почты.

\/IRUS
20.03.2014, 22:31
спс что подсказал места, самому рыть говнокод не было желания

Unknown
21.03.2014, 22:09
Тут по мимо описанных мною мест есть и готовые решения.

PoliGroS
22.03.2014, 04:54
Тут по мимо описанных мною мест есть и готовые решения.


выложи пожалуйста для nessus свой програм. Спасибо

Unknown
22.03.2014, 10:56
https://www.dropbox.com/s/n61i9yia4mtm7ip/metasploit_patch.zip - патч

PoliGroS
27.03.2014, 04:27
Что мы видим ? 13 дней, на скрине как видно все функции продолжают работать. Для конкретного обломного пиздеца создал прошку которая посредством LD_PRELOAD меняет env окружение для демона /etc/init.d/nessusd таким образом что получаем фулл анлим лицензию


можеш прошку лоад?


msf > go_pro
.................................................. .................................................. .................................................. ..................................................
[!] For some reason, Community / Pro didn't start in a timely fashion.
[!] You might want to restart the Metasploit services by typing
[!] 'service metasploit restart'. Sorry it didn't work out.


после патча умер

пси:рестарт делал