Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Nginx с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ настройками Π±Π»ΠΎΠΊΠ° alias

НСкоторыС сСрвСры с nginx ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ уязвимы для Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Nginx Alias Traversal, которая Π±Ρ‹Π»Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Blackhat Π΅Ρ‰Ρ‘ Π² 2018 Π³ΠΎΠ΄Ρƒ ΠΈ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹ΠΌ Π²Π½Π΅ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ «alias». ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° проявляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² конфигурациях с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ «alias», Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° «location», ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° символ «/», Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ «alias» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° «/».

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Nginx с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ настройками Π±Π»ΠΎΠΊΠ° alias

Π‘ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ для Π±Π»ΠΎΠΊΠΎΠ² с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ alias ΠΎΡ‚Π΄Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ, послС Π΅Π³ΠΎ сопоставлСния с маской ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ location ΠΈ вырСзания Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π² этой маскС части ΠΏΡƒΡ‚ΠΈ. Для ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° уязвимой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» «/img../test.txt» ΠΈ этот запрос ΠΏΠΎΠ΄ΠΏΠ°Π΄Ρ‘Ρ‚ ΠΏΠΎΠ΄ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π² location маску «/img», послС Ρ‡Π΅Π³ΠΎ ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠΉΡΡ хвост «../test.txt» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Ρ‘Π½ ΠΊ ΠΏΡƒΡ‚ΠΈ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ alias «/var/images/» ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½ Ρ„Π°ΠΉΠ» «/var/images/../test.txt». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ «/var», Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ Π² «/var/images/», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π»ΠΎΠ³Π° nginx ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос «/img../log/nginx/access.log».

Π’ конфигурациях, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ alias Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ символом «/» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «alias /var/images;»), Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² /var, Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ совпадаСт с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. НапримСр, запросив «/img.old/test.txt» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ «var/images.old/test.txt».

Анализ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² Π½Π° GitHub ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ приводящиС ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ ошибки Π² настройкС nginx Π΄ΠΎ сих ΠΏΠΎΡ€ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. НапримСр, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±Ρ‹Π»ΠΎ выявлСно Π² сСрвСрной части ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ Bitwarden ΠΈ ΠΌΠΎΠ³Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для доступа ΠΊΠΎ всСм Ρ„Π°ΠΉΠ»Π°ΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /etc/bitwarden (запросы /attachments ΠΎΡ‚Π΄Π°Π²Π°Π»ΠΈΡΡŒ ΠΈΠ· /etc/bitwarden/attachments/), Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ…Ρ€Π°Π½ΠΈΠΌΡƒΡŽ Ρ‚Π°ΠΌ Π‘Π” с паролями «vault.db», сСртификат ΠΈ Π»ΠΎΠ³ΠΈ, для получСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… достаточно Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запросы «/attachments../vault.db», «/attachments../identity.pfx», «/attachments../logs/api.log» ΠΈ Ρ‚.ΠΏ.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Nginx с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ настройками Π±Π»ΠΎΠΊΠ° alias
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Nginx с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ настройками Π±Π»ΠΎΠΊΠ° alias

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ сработал с Google HPC Toolkit, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ запросы /static ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΠ»ΠΈΡΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ «../hpc-toolkit/community/front-end/website/static/». Для получСния Π‘Π” с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΈ ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ³ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запросы «/static../.secret_key» ΠΈ «/static../db.sqlite3».

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Nginx с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ настройками Π±Π»ΠΎΠΊΠ° alias


Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ