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) можно написать бота даже потому что триальные ключи с той стороны раздаются посредством такого же бота, который ничего не проверяет кроме почты.
Мне часто как и любому пентестеру приходится прибегать так сказать к автоматизированным средствам проведения пентестов, среди которых можно отметить как и опенсорс так и комерческие продукты. Естественно платить за "более менее" проработанный продукт мне как и всем Вам не особо то хочется(ибо зачастую много фолсов, логов и платить за 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) можно написать бота даже потому что триальные ключи с той стороны раздаются посредством такого же бота, который ничего не проверяет кроме почты.