Фантомная уязвимость - CVE-2015-0235

install-info часть GNU texinfo, который можно получить из http://www.gnu.org/software/texinfo/

13
29.01.2015, 06:09
1 ответ

Ответ на мой вопрос, из кровавых кроватей :

Во время нашего тестирования мы разработали доказательство концепции, в которой мы отправляем Специально созданная электронная почта на почтовый сервер и может получить удаленную оболочку на машину Linux. Это обходит все существующие защиты (например, ASLR, PIE и NX) на 32-битных, так и в 64-битных системах.


Мои скомпилированные исследования ниже для кого-либо еще выглядящего:


Отказ от ответственности

Несмотря на то, что может сказать вам много других потоков / блогов, я предлагаю не , чтобы немедленно обновить каждую ОС Без тщательного тестирования этих обновлений обновлений . Сообщалось, что обновления Glibc вызвали огромное приложение SegFaults, заставляя людей откатывать свои обновления Glibc в их предыдущую версию.

Один не просто обновляет производственную среду, не обновляющуюся без тестирования.


Фоновая информация

Призрак - ошибка «переполнения буфера», влияющая на функцию функции GetHostbyName () и GetHostbyname2 () в библиотеке Glibc. Эта уязвимость позволяет удаленному злоумышленнику, который способен принести прикладное призыв к любому из этих функций для выполнения произвольного кода с разрешениями пользователя, выполняющего приложение.

Влияние

Вызовы функций gethostbyName () используются для разрешения DNS, что является очень распространенным событием. Чтобы использовать эту уязвимость, злоумышленник должен вызвать переполнение буфера, поставляя недопустимый аргумент имени хоста в приложение, которое выполняет разрешение DNS.

Текущий список пострадавших INTERUX DistriS

RHEL (Red Hat Enterprise Linux) версия 5.x, 6.x и 7.x

RHEL 4 ELS              fix available ---> glibc-2.3.4-2.57.el4.2
Desktop (v. 5)          fix available ---> glibc-2.5-123.el5_11.1
Desktop (v. 6)          fix available ---> glibc-2.12-1.149.el6_6.5
Desktop (v. 7)          fix available ---> glibc-2.17-55.el7_0.5
HPC Node (v. 6)         fix available ---> glibc-2.12-1.149.el6_6.5
HPC Node (v. 7)         fix available ---> glibc-2.17-55.el7_0.5
Server (v. 5)           fix available ---> glibc-2.5-123.el5_11.1
Server (v. 6)           fix available ---> glibc-2.12-1.149.el6_6.5
Server (v. 7)           fix available ---> glibc-2.17-55.el7_0.5
Server EUS (v. 6.6.z)   fix available ---> glibc-2.12-1.149.el6_6.5
Workstation (v. 6)      fix available ---> glibc-2.12-1.149.el6_6.5
Workstation (v. 7)      fix available ---> glibc-2.17-55.el7_0.5

CentOS Linux версия 5.x, 6.x & 7.x

CentOS-5    fix available ---> glibc-2.5-123.el5_11
CentOS-6    fix available ---> glibc-2.12-1.149.el6_6.5
CentOS-7    fix available ---> glibc-2.17-55.el7_0.5

Ubuntu Linux версия 10.04, 12.04 LTS

10.04 LTS   fix available ---> libc6-2.11.1-0ubuntu7.20
12.04 LTS   fix available ---> libc6-2.15-0ubuntu10.10

Debian Linux версия 6.x, 7.x

6.x squeeze              vulnerable
6.x squeeze (LTS)        fix available ---> eglibc-2.11.3-4+deb6u4
7.x wheezy               vulnerable
7.x wheezy (security)    fix available ---> glib-2.13-38+deb7u7

Mint Mint 13.0

Mint 13    fix available ---> libc6-2.15-0ubuntu10.10

Fedora Linux версия 19 (или старше следует обновить)

Fedora 19 - vulnerable - EOL on Jan 6, 2014 (upgrade to Fedora 20/21 for patch)

SUSE Linux Enterprise

Server 10 SP4 LTSS for x86                    fix available ---> glibc-2.4-31.113.3
Server 10 SP4 LTSS for AMD64 and Intel EM64T  fix available ---> glibc-2.4-31.113.3
Server 10 SP4 LTSS for IBM zSeries 64bit      fix available ---> glibc-2.4-31.113.3
Software Development Kit 11 SP3               fix available ---> glibc-2.11.3-17.74.13
Server 11 SP1 LTSS                            fix available ---> glibc-2.11.1-0.60.1
Server 11 SP2 LTSS                            fix available ---> glibc-2.11.3-17.45.55.5
Server 11 SP3 (VMware)                        fix available ---> glibc-2.11.3-17.74.13
Server 11 SP3                                 fix available ---> glibc-2.11.3-17.74.13
Desktop 11 SP3                                fix available ---> glibc-2.11.3-17.74.13

OpenSUSE (версии старше 11 должны обновить)

11.4 Evergreen     fix available ---> glibc-2.11.3-12.66.1
12.3               fix available ---> glibc-2.17-4.17.1


Какие пакеты / приложения все еще используют удаленный GLIBC?

( кредиты на Gilles )

для CentOS / RHEL / FEDORA / SCIUCTION LINUX:

   lsof -o / | awk '
   BEGIN {
       while (("rpm -ql glibc | grep \\\\.so\\$" | getline) > 0)
           libs[$0] = 1
   }
   $4 == "DEL" && $8 in libs {print $1, $2}'

Для Ubuntu / Debian Linux:

   lsof -o / | awk '
   BEGIN {
       while (("dpkg -L libc6:amd64 | grep \\\\.so\\$" | getline) > 0)
           libs[$0] = 1
   }
   $4 == "DEL" && $8 in libs {print $1, $2}'

В какую версию библиотеки C (GLIBC) использует мою систему Linux?

Самый простой способ проверить номер версии - это выполнить следующую команду:

ldd --version

Выходные данные из RHEL / CentOS Linux V6.6:

ldd (GNU libc) 2.12
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

Образец выходов от Ubuntu Linux 12.04.5 LTS:

ldd (Ubuntu EGLIBC 2.15-0ubuntu10.9) 2.15
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

Образец выходов от Debian Linux V7.8:

ldd (Debian EGLIBC 2.13-38+deb7u6) 2.13
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

Регистрация уязвимости призрака

Университет Чикаго проводит следующий скрипт Для простого скачивания:

$ wget https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/GHOST.c
[OR]
$ curl -O https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/GHOST.c
$ gcc GHOST.c -o GHOST
$ ./GHOST
[responds vulnerable OR not vulnerable ]
/* ghosttest.c:  GHOST vulnerability tester */
/* Credit: http://www.openwall.com/lists/oss-security/2015/01/27/9 */
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#define CANARY "in_the_coal_mine"

struct {
  char buffer[1024];
  char canary[sizeof(CANARY)];
} temp = { "buffer", CANARY };

int main(void) {
  struct hostent resbuf;
  struct hostent *result;
  int herrno;
  int retval;

  /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
  size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
  char name[sizeof(temp.buffer)];
  memset(name, '0', len);
  name[len] = '\0';

  retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);

  if (strcmp(temp.canary, CANARY) != 0) {
    puts("vulnerable");
    exit(EXIT_SUCCESS);
  }
  if (retval == ERANGE) {
    puts("not vulnerable");
    exit(EXIT_SUCCESS);
  }
  puts("should not happen");
  exit(EXIT_FAILURE);
}

компилируйте и запустите его Как следует:

$ gcc ghosttester.c -o ghosttester
$ ./ghosttester
[responds vulnerable OR not vulnerable ]

Red Hat Paction Lab: Ghost Tool Не используйте этот инструмент, его отчетность неверна, проверка уязвимостей от ключей является точным.


Испраживание


CentOS / RHEL / FEDORA / SCIUTION LINUX

sudo yum clean all
sudo yum update

Теперь перезагрузится, чтобы взять на себя влияние:

sudo reboot

. В качестве альтернативы, если ваше зеркало не содержит новейших пакетов, просто скачайте их вручную. * Примечание. Для более продвинутых пользователей

CentOS 5

http://mirror.centos.org/centos/5.11/updates/x86_64/RPMS/

CentOS 6

mkdir ~/ghostupdate
cd ~/ghostupdate

wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-devel-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-common-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/nscd-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-static-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-headers-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-utils-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-static-2.12-1.149.el6_6.5.i686.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-devel-2.12-1.149.el6_6.5.i686.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-2.12-1.149.el6_6.5.i686.rpm

yum localupdate *.rpm [OR] rpm -Uvh *.rpm

Ubuntu / Debian Linux

sudo apt-get clean
sudo apt-get update
sudo apt-get dist-upgrade

Перезапуск:

sudo reboot

SUSE Linux Enterprise

Для установки этого обновления SUSE используйте Yast Online_Update. Или используйте следующие команды в соответствии с вашей версией:

Комплект разработки программного обеспечения SUSE Linux Enterprise 11 SP3

zypper in -t patch sdksp3-glibc-10206

SUSE Linux Enterprise Server 11 SP3 для VMware

zypper in -t patch slessp3-glibc-10206

SUSE Linux Enterprise Server 11 SP3

zypper in -t patch slessp3-glibc-10206

SUSE Linux Enterprise Server 11 SP2 LTSS

zypper in -t patch slessp2-glibc-10204

SUSE Linux Enterprise Server 11 SUSE LTSS

zypper in -t patch slessp1-glibc-10202

SUSE LINUX Enterprise Desktop 11 SP3

zypper in -t patch sledsp3-glibc-10206

Наконец-то запускается для всех SUSE Linux Version, чтобы принести вашу систему:

zypper patch

opensuse Linux

Список доступных обновлений, включая Glibc в OpenSUSE Linux, введите:

zypper lu

Чтобы просто обновить установленные пакеты GLIBC с их более новыми доступными версиями, запустите:

zypper up

почти каждая программа, работающая на вашем компьютере, использует GLIBC. Вам необходимо перезапустить каждое обслуживание или приложение, использующее GLIBC, чтобы убедиться, что патч вступает в силу. Следовательно, перезагрузка рекомендуется.


Как перезапустить init без перезапуска или влияния на систему?

telinit u

«Man Telinit» - U или U или U, чтобы запросить сам демон init (8). Это не рекомендуется, поскольку в настоящее время UPSTART в настоящее время не может предварительно подавать свое состояние, но необходим при модернизации системных библиотек.


Немедленно смягчить угрозу в , ограниченном способом, является отключение обратного DNS-проверки во всех ваших государственных услугах. Например, вы можете отключить обратные проверки DNS в SSH по настройке на NO в вашем / etc / ssh / sshd_config .

Источники (и дополнительная информация):

  1. https://access.redhat.com/articles/1332213
  2. http://www.cyberciti.biz/faq/cve-2015-0235-Patch-ghost -on-Debian-Ubuntu-Fedora-Centos-Rheel-Linux /
  3. http://www.openwall.com/lists/oss-security/2015/01/27/9
  4. https: // Безопасность. stackexchange.com/questions/80210/ghost-bug-is-theer-a-simple-way-to-test-if-my-Система - безопасна
  5. http://bobcares.com/blog/ghost-hunting-resolving-glibc-remote-code-excution-vulneribility-cve-2015-0235-in- Debian-and-suse-linux-серверы
  6. https://community.qualys.com/blogs/laws-of-vulnerabilities/2015/01/27/The-ghost-vulneribily
  7. HTTPS: // Безопасность- Tracker.debian.org/tracker/cve-2015-0235
20
27.01.2020, 19:53

Теги

Похожие вопросы