Эксплуатация уязвимости CVE-2022-44268 ImageMagick

CVE-2022-44268 эксплуатация уязвимости ImageMagick

В этой небольшой статье, в рамках прохождения уязвимой виртуальной машины Pilgrimage с площадки Hack The Box, я продемонстрирую эксплуатацию уязвимости ImageMagick с идентификатором CVE-2022-44268.

Еще по теме: Эксплуатация уязвимости в модуле PHP Imagick

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

Эксплуатация уязвимости CVE-2022-44268 ImageMagick

Версия ImageMagick 7.1.0-49 име­ет уяз­вимость CVE-2022-44268 — чте­ние про­изволь­ного фай­ла. Это дает воз­можность получать содер­жимое опре­делен­ных фай­лов с уда­лен­ной сис­темы. При­чина уяз­вимос­ти зак­люча­ется в том, что при изме­нении раз­мера изоб­ражения ImageMagick будет вклю­чать содер­жимое про­филя в соз­дава­емое изоб­ражение, при этом мы можем манипу­лиро­вать зна­чени­ем это­го про­филя.

Можем, нап­ример, к кар­тинке добавить чанк тек­сто­вого типа (нап­ример, tEXt), содер­жащий ключ и стро­ку‑зна­чение. Если ключ — стро­ка profile, то ImageMagick интер­пре­тиру­ет зна­чение как имя фай­ла в сис­теме и заг­ружа­ет его содер­жимое как необ­работан­ный про­филь, пос­ле чего из нового изоб­ражения мож­но про­читать этот про­филь в HEX-фор­мате.

Для авто­мати­чес­кого изме­нения PNG исполь­зуем экс­пло­ит из репози­тория voidz0r.

Для про­бы про­чита­ем файл /etc/passwd.

Соз­дание изоб­ражения‑наг­рузки
Соз­дание изоб­ражения‑наг­рузки

Те­перь заг­ружа­ем в веб‑сер­вис соз­данное изоб­ражение‑наг­рузку, пос­ле чего получа­ем ссыл­ку на новое изоб­ражение, с изме­нен­ным раз­мером.

Ре­зуль­тат обра­бот­ки изоб­ражения
Ре­зуль­тат обра­бот­ки изоб­ражения

Ска­чива­ем получен­ный файл и находим в нем чанк с про­филем.

Про­филь в пре­обра­зован­ном при­ложе­нии
Про­филь в пре­обра­зован­ном при­ложе­нии

Ис­поль­зуем CyberChef для декоди­рова­ния шес­тнад­цатерич­ного зна­чения и получа­ем содер­жимое фай­ла /etc/passwd, рас­кры­вающее нам спи­сок поль­зовате­лей.

Де­коди­рован­ный файл /etc/passwd
Де­коди­рован­ный файл /etc/passwd

Уяз­вимость под­твер­дили, а зна­чит, можем ска­чать и дру­гие инте­рес­ные фай­лы. Нап­ример, файл базы дан­ных SQLite /var/db/pilgrimage, о котором мы узна­ли из исходно­го кода. Здесь навер­няка най­дут­ся учет­ные дан­ные поль­зовате­лей сай­та.

Про­филь нового изоб­ражения
Про­филь нового изоб­ражения
Де­коди­рован­ный файл /var/db/pilgrimage
Де­коди­рован­ный файл /var/db/pilgrimage

Это «сырые» дан­ные, в которых мож­но заб­лудить­ся, поэто­му акти­виру­ем еще одну фун­кцию CyberChef, что­бы отоб­разить толь­ко стро­ки.

Стро­ки из фай­ла /var/db/pilgrimage
Стро­ки из фай­ла /var/db/pilgrimage

Та­ким обра­зом получа­ем учет­ные дан­ных трех поль­зовате­лей. Нас инте­ресу­ет emily, пос­коль­ку такой поль­зователь есть и в сис­теме тоже. Про­буем под­клю­чить­ся к SSH с этим же паролем и забира­ем флаг поль­зовате­ля.

CVE-2022-44268 ImageMagick
CVE-2022-44268 ImageMagick

ПОЛЕЗНЫЕ ССЫЛКИ:

Дима (Kozhuh)

Эксперт в кибербезопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз.

Добавить комментарий