Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2020-1971 — Скрипты автоматического сканирования и удаленной эксплуатации для CVE-2020-1971 (разыменование нулевого указателя OpenSSL). Включает исправленный исходный код OpenSSL 1.1.1i и скрипты установки/обновления для Linux и Windows. | Kitploit
Инструменты/GitHubGitHub/honeyvig/cve-2020-1971
Сканеры уязвимостейАнализ уязвимостейЭксплуатацияКриптография
GitHubhoneyvig/cve-2020-1971

CVE-2020-1971

Скрипты автоматического сканирования и удаленной эксплуатации для CVE-2020-1971 (разыменование нулевого указателя OpenSSL). Включает исправленный исходный код OpenSSL 1.1.1i и скрипты установки/обновления для Linux и Windows.

Репозиторий
27 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2020-1971

CVE-2020-1971 Скрипт автоматического сканирования и удаленной эксплуатации. Скрипт автоматического локального сканирования и исправления.

В разработке

  • Исправленный исходный код OpenSSL 1.1.1i
  • Установка из исходников/скрипт обновления .deb В разработке 17:38 Завершено 17:50
  • Установка из исходников/обновление (Windows) В разработке 18:06 Завершено 18:40
  • Самораспаковывающиеся EXE Скачать здесь: 32-bit/64-bit
  • Автосканирование на уязвимость/скрипты удаленной эксплуатации (локально)
  • Автосканирование на уязвимость/скрипты удаленной эксплуатации (удаленно)

9 декабря 2020 г.

17:03

В настоящее время разрабатываю скрипты и надеюсь всё выпустить сегодня вечером. Пока этот репозиторий содержит только исправленный исходный код OpenSSL 1.1.1i. Сейчас работаю над скриптом установки/обновления.


17:50

Загружен скрипт установки для Debian/Ubuntu Linux. Инструкции по установке см. в разделе "Установка в Linux".


18:40

  1. Инструкции по установке из исходников в Windows в разделе Установка из исходного кода в Windows
  2. Загружен самоустановщик 32/64 бит Скачать здесь: 32-bit/64-bit

Описание уязвимости

Тип X.509 GeneralName — это общий тип для представления различных типов имен. Один из этих типов имен называется EDIPartyName. OpenSSL предоставляет функцию GENERAL_NAME_cmp, которая сравнивает разные экземпляры GENERAL_NAME, чтобы определить, равны они или нет. Эта функция работает некорректно, когда оба GENERAL_NAME содержат EDIPARTYNAME. Возникает разыменование нулевого указателя и сбой, что может привести к возможной атаке типа "отказ в обслуживании".

OpenSSL использует функцию GENERAL_NAME_cmp для двух целей

  1. Сравнение имен точек распространения CRL между доступным CRL и точкой распространения CRL, встроенной в сертификат X509

  2. При проверке, что подписавший токен ответа метки времени соответствует имени центра сертификации меток времени (доступно через функции API TS_RESP_verify_response и TS_RESP_verify_token)

Если злоумышленник может контролировать оба сравниваемых элемента, то он может вызвать сбой. Например, если злоумышленник может обманом заставить клиента или сервер проверить вредоносный сертификат против вредоносного CRL, это может произойти.

Обратите внимание, что некоторые приложения автоматически загружают CRL на основе URL, встроенного в сертификат. Эта проверка происходит до проверки подписей на сертификате и CRL. Инструменты s_server, s_client и verify от OpenSSL поддерживают опцию "-crl_download", которая реализует автоматическую загрузку CRL, и было продемонстрировано, что эта атака работает против этих инструментов.

Обратите внимание, что несвязанная ошибка означает, что уязвимые версии OpenSSL не могут правильно разобрать или создать корректные кодировки EDIPARTYNAME. Однако можно создать искаженный EDIPARTYNAME, который парсер OpenSSL примет, и таким образом вызвать эту атаку.

Все версии OpenSSL 1.1.1 и 1.0.2 подвержены этой проблеме. Другие выпуски OpenSSL не поддерживаются и не проверялись. Исправлено в OpenSSL 1.1.1i (затронуты 1.1.1-1.1.1h). Исправлено в OpenSSL 1.0.2x (затронуты 1.0.2-1.0.2w).


Установка в Linux

root@kitploit:~
sudo chmod +x Linux_Patched_Install_From_Source_Script

Запуск:

root@kitploit:~
sudo ./Linux_Patched_Install_From_Source_Script

Установка из исходного кода в Windows

"Нативный" OpenSSL использует напрямую Windows API во время выполнения. Для сборки нативного OpenSSL вы можете использовать:

Microsoft Visual C++ (MSVC) компилятор C в командной строке

или

MinGW кросс-компилятор запускаемый в среде разработки, подобной GNU, MSYS2 или запускаемый в Linux или Cygwin

"Размещённый" OpenSSL полагается на внешний уровень совместимости с POSIX для сборки (с использованием оболочки GNU/Unix, компилятора и инструментов) и во время выполнения. Для этого варианта вы можете использовать Cygwin.

Сборки Visual C++ нативные, также известные как VC-*

Требования

В дополнение к требованиям и инструкциям, перечисленным в INSTALL.md, также необходимы:

  • Perl. Strawberry Perl, доступен на http://strawberryperl.com/ Пожалуйста, прочитайте NOTES.PERL для получения дополнительной информации, включая использование CPAN. Альтернатива — ActiveState Perl, https://www.activestate.com/ActivePerl для которого вам может потребоваться явно собрать модуль Perl Win32/Console.pm через https://platform.activestate.com/ActiveState и затем загрузить его.

  • Компилятор Microsoft Visual C.

  • Netwide Assembler (NASM), доступен на https://www.nasm.us Обратите внимание, что NASM — единственный поддерживаемый ассемблер.

Быстрый старт

  1. Установите Perl

  2. Установите NASM

  3. Убедитесь, что Perl и NASM находятся в вашем %PATH%

  4. Используйте командную строку разработчика Visual Studio с правами администратора, выбрав один из её вариантов в зависимости от целевой архитектуры. Или запустите "cmd" и выполните "vcvarsall.bat" с одним из параметров x86, x86_amd64, x86_arm, x86_arm64, amd64, amd64_x86, amd64_arm или amd64_arm64. Это настраивает переменные среды, необходимые для nmake.exe, cl.exe и т.д. Смотрите также https://docs.microsoft.com/cpp/build/building-on-the-command-line

  5. Из корня каталога исходного кода OpenSSL выполните perl Configure VC-WIN32 если вам нужен 32-битный OpenSSL или perl Configure VC-WIN64A если вам нужен 64-битный OpenSSL или perl Configure чтобы позволить Configure определить платформу

  6. nmake

  7. nmake test

  8. nmake install

Полные инструкции по установке, или если что-то пошло не так на каком-либо этапе, смотрите в файле INSTALL.md.

Каталоги установки

Каталоги установки по умолчанию берутся из переменных среды.

Для VC-WIN32 используются следующие значения по умолчанию:

root@kitploit:~
 PREFIX:      %ProgramFiles(86)%\OpenSSL
 OPENSSLDIR:  %CommonProgramFiles(86)%\SSL

Для VC-WIN64 используются следующие значения по умолчанию:

root@kitploit:~
 PREFIX:      %ProgramW6432%\OpenSSL
 OPENSSLDIR:  %CommonProgramW6432%\SSL

Если эти переменные среды не существуют (например, в чистой установке Win32), используются эти запасные варианты:

root@kitploit:~
 PREFIX:      %ProgramFiles%\OpenSSL
 OPENSSLDIR:  %CommonProgramFiles%\SSL

ТАКЖЕ ОБРАТИТЕ ВНИМАНИЕ, что эти каталоги обычно защищены от записи, даже если ваша учётная запись входит в группу администраторов. Чтобы обойти это, щёлкните правой кнопкой мыши по командной строке и выберите "Запуск от имени администратора" перед выполнением 'nmake install'. Другое решение, конечно, выбрать другой набор каталогов, используя --prefix и --openssldir при настройке.

Особые примечания для сборок Universal Windows Platform, также известных как VC-*-UWP

  • Целевые платформы UWP поддерживают только сборку статических и динамических библиотек.

  • Вы должны определить тип платформы как "uwp" и целевую архитектуру через "vcvarsall.bat" перед компиляцией. Например, если вы хотите собрать сборки "arm64", вы должны выполнить "vcvarsall.bat x86_arm64 uwp".


Ссылки

Ссылки предоставлены для удобства читателя, чтобы помочь различать уязвимости.

https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=2154ab83e14ede338d2ede9bbe5cdfce5d5a6c9eURL

https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=2154ab83e14ede338d2ede9bbe5cdfce5d5a6c9eCONFIRM

https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=f960d81215ebf3f65e03d4d5d857fb9b666d6920URL

https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=f960d81215ebf3f65e03d4d5d857fb9b666d6920CONFIRM

https://www.openssl.org/news/secadv/20201208.txtURL:https://www.openssl.org/news/secadv/20201208.txtDEBIAN:DSA-4807URL

https://www.debian.org/security/2020/dsa-4807FREEBSD:FreeBSD-SA-20:33URL

https://security.FreeBSD.org/advisories/FreeBSD-SA-20:33.openssl.asc


Скачать инструмент