install-info
часть GNU texinfo, который можно получить из http://www.gnu.org/software/texinfo/
Ответ на мой вопрос, из кровавых кроватей :
Во время нашего тестирования мы разработали доказательство концепции, в которой мы отправляем Специально созданная электронная почта на почтовый сервер и может получить удаленную оболочку на машину Linux. Это обходит все существующие защиты (например, ASLR, PIE и NX) на 32-битных, так и в 64-битных системах.
Мои скомпилированные исследования ниже для кого-либо еще выглядящего:
Несмотря на то, что может сказать вам много других потоков / блогов, я предлагаю не , чтобы немедленно обновить каждую ОС Без тщательного тестирования этих обновлений обновлений
. Сообщалось, что обновления Glibc вызвали огромное приложение SegFaults, заставляя людей откатывать свои обновления Glibc в их предыдущую версию.
Один не просто обновляет производственную среду, не обновляющуюся без тестирования.
Призрак - ошибка «переполнения буфера», влияющая на функцию функции GetHostbyName () и GetHostbyname2 () в библиотеке Glibc. Эта уязвимость позволяет удаленному злоумышленнику, который способен принести прикладное призыв к любому из этих функций для выполнения произвольного кода с разрешениями пользователя, выполняющего приложение.
Вызовы функций gethostbyName () используются для разрешения DNS, что является очень распространенным событием. Чтобы использовать эту уязвимость, злоумышленник должен вызвать переполнение буфера, поставляя недопустимый аргумент имени хоста в приложение, которое выполняет разрешение DNS.
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
lsof -o / | awk '
BEGIN {
while (("rpm -ql glibc | grep \\\\.so\\$" | getline) > 0)
libs[$0] = 1
}
$4 == "DEL" && $8 in libs {print $1, $2}'
lsof -o / | awk '
BEGIN {
while (("dpkg -L libc6:amd64 | grep \\\\.so\\$" | getline) > 0)
libs[$0] = 1
}
$4 == "DEL" && $8 in libs {print $1, $2}'
Самый простой способ проверить номер версии - это выполнить следующую команду:
ldd --version
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.
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.
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 ]
sudo yum clean all
sudo yum update
Теперь перезагрузится, чтобы взять на себя влияние:
sudo reboot
. В качестве альтернативы, если ваше зеркало не содержит новейших пакетов, просто скачайте их вручную. * Примечание. Для более продвинутых пользователей
http://mirror.centos.org/centos/5.11/updates/x86_64/RPMS/
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
sudo apt-get clean
sudo apt-get update
sudo apt-get dist-upgrade
Перезапуск:
sudo reboot
Для установки этого обновления SUSE используйте Yast Online_Update. Или используйте следующие команды в соответствии с вашей версией:
zypper in -t patch sdksp3-glibc-10206
zypper in -t patch slessp3-glibc-10206
zypper in -t patch slessp3-glibc-10206
zypper in -t patch slessp2-glibc-10204
zypper in -t patch slessp1-glibc-10202
zypper in -t patch sledsp3-glibc-10206
zypper patch
Список доступных обновлений, включая Glibc в OpenSUSE Linux, введите:
zypper lu
Чтобы просто обновить установленные пакеты GLIBC с их более новыми доступными версиями, запустите:
zypper up
telinit u
«Man Telinit» - U или U или U, чтобы запросить сам демон init (8). Это не рекомендуется, поскольку в настоящее время UPSTART в настоящее время не может предварительно подавать свое состояние, но необходим при модернизации системных библиотек.
Немедленно смягчить угрозу в , ограниченном способом, является отключение обратного DNS-проверки во всех ваших государственных услугах. Например, вы можете отключить обратные проверки DNS в SSH по настройке
на NO
в вашем / etc / ssh / sshd_config
.
Источники (и дополнительная информация):