Категория > Новости > HTB TheNotebook. Совершаем побег из Docker, чтобы захватить рут - «Новости»

HTB TheNotebook. Совершаем побег из Docker, чтобы захватить рут - «Новости»


6-08-2021, 00:00. Автор: Эмма
jwt_tool, либо онлай­новый сер­вис jwt.io. Я выб­рал jwt.io, что­бы ничего не уста­нав­ливать, и даль­ше буду исполь­зовать его.

В нашем вари­анте в заголов­ке при­сутс­тву­ет ключ kid, ука­зыва­ющий на при­ват­ный ключ, а в качес­тве под­писан­ных дан­ных зна­чат­ся исполь­зуемые при регис­тра­ции дан­ные — имя поль­зовате­ля и адрес элек­трон­ной поч­ты. Но в дан­ных при­сутс­тву­ет еще один ключ admin_cap, ско­рее все­го обоз­нача­ющий наличие при­виле­гий.


Раз­бор JWT с помощью jwt.io

Что делать даль­ше, понят­но — нуж­но изме­нить ключ, отве­чающий за наличие при­виле­гий адми­нис­тра­тора, под­писать новые дан­ные, сге­нери­ровать новый JWT и заменить ста­рый на сер­висе заметок. Наличие при­виле­гий адми­нис­тра­тора может дать ряд сво­их пре­иму­ществ — от чте­ния при­ват­ной информа­ции до уста­нов­ки на сер­вис раз­ных допол­нений (что, ско­рее все­го, при­ведет нас к уда­лен­ному выпол­нению кода).


С изме­нени­ем клю­ча admin_cap все ясно, прос­то выс­тавим еди­нич­ку. Но что сде­лать с под­писью? В заголов­ке ука­зан адрес при­ват­ного клю­ча, что натал­кива­ет на идею: сге­нери­ровать свою пару клю­чей для под­писи токена, раз­местить их на сво­ем веб‑сер­вере и затем в заголов­ке ука­зать адрес клю­ча на этом сер­вере. Сна­чала сге­нери­руем пару клю­чей, а потом переве­дем в фор­мат PEM.


ssh-keygen -t rsa -b4096 -m PEM -fprivKey.key
openssl rsa -inprivKey.key -pubout -outform PEM -outpubKey.key.pub
Ге­нери­рова­ние пары клю­чей

Те­перь запус­тим в той же дирек­тории прос­той веб‑сер­вер на осно­ве Python 3.


python3 -mhttp.server

По­ра генери­ровать новый токен. Изме­няем зна­чения по клю­чам admin_cap и kid, во вто­ром слу­чае ука­зыва­ем URL сге­нери­рован­ного клю­ча. Так­же встав­ляем сге­нери­рован­ные пуб­личный и при­ват­ный клю­чи в поля Verify Signature. Если ты все сде­лал пра­виль­но, то ниже токена уви­дишь над­пись Signature Verified.


Соз­дание нового токена

Встав­ляем новый токен в cookie, нап­ример с помощью рас­ширения для бра­узе­ра Cookie Editor, и обновля­ем стра­ницу. В окне запущен­ного веб‑сер­вера уви­дим обра­щение к фай­лу клю­ча, а в бра­узе­ре, если обно­вить стра­ницу, появит­ся ссыл­ка на админ­скую панель.


HTB TheNotebook. Совершаем побег из Docker, чтобы захватить рут - «Новости»
Ло­ги веб‑сер­вера
Раз­делы сай­та 

Точка опоры. Уязвимость при загрузке файлов


Нам ста­ли дос­тупны для прос­мотра замет­ки адми­нис­тра­тора — мож­но поис­кать в них что‑нибудь инте­рес­ное. Но помимо это­го, откры­лась фор­ма для заг­рузки фай­лов. Сре­ди админ­ских заметок видим упо­мина­ние исполне­ния фай­лов PHP, а это потен­циаль­ный век­тор ата­ки.


За­мет­ка об исправ­лении кон­фигура­ций

Перейти обратно к новости