Важный
Поддерживает версии ядра Linux/Android x86_64 4.18 и выше, aarch64 5.5 и выше. Требуется ROOT-разрешение. Не поддерживает системы Windows и macOS.
Введение
Начиная
Модуль OpenSSL
Модуль GoTLS
Другие модули
Бинарный файл ELF
Докер-образ
Скачать
Захват текстового содержимого openssl.
Модули
Видео
Содействие
Сборник
Захват открытого текста SSL/TLS, поддержка библиотек openssllibresslboringsslgnutlsnspr(nss).
Поддержка открытого текста GoTLS — библиотека go tls, которая относится к зашифрованной связи в программах https/tls, написанных на языке golang.
bash Audit, команда захвата bash для аудита безопасности хоста.
MySQL-запрос SQL-аудита, поддержка mysqld 5.65.78.0 и mariadDB.
Кончик
поддержка Linux/Android x86_64/aarch64.
Загрузите zip-файл ELF, разархивируйте и используйте команду sudo ecapture --help
.
Кончик
Только Линукс.
# pull docker imagedocker pull gojue/ecapture:latest# rundocker run --rm --privileged=true --net=host -v ${HOST_PATH}:${CONTAINER_PATH} gojue/ecapture ARGS
дополнительную информацию см. в Docker Hub.
sudo ecapture tls 2024-09-15T11:51:31Z INF AppName="eCapture(旁观者)"2024-09-15T11:51:31Z INF HomePage=https://ecapture.cc 2024-09-15T11:51:31Z INF-репозиторий=https://github.com/gojue/ecapture 2024-09-15T11:51:31Z INF Author="CFC4N <[email protected]>"2024-09-15T11:51:31Z INF Description="Захват открытого текста SSL/TLS без сертификата CA с использованием eBPF. Поддерживается в Linux. /Ядра Android для amd64/arm64."2024-09-15T11:51:31Z INF Version=linux_arm64:0.8.6-20240915-d87ae48:5.15.0-113-generic 2024-09-15T11:51:31Z INF Listen=localhost:28256 2024-09-15T11:51:31Z INF eCapture запускает журналы регистрации = 2024-09-15T11:51:31Z INF обработчик файла, который получает захваченное событие eventCollector= 2024-09-15T11:51:31Z INF прослушивание = локальный хост: 28256 2024-09-15T11:51:31Z Запускается INF https-сервер... Вы можете обновить файл конфигурации через интерфейс HTTP. 2024-09-15T11:51:31Z WRN ========== модуль запускается. ========== 2024-09-15T11:51:31Z Информация о ядре INF=5.15.152 Pid=233698 2024-09-15T11:51:31Z Режим байт-кода INF BTF: CORE. btfMode=0 2024-09-15T11:51:31Z Установлен кейлоггер INF с главным ключом. eBPFProgramType=Текстовый кейлоггер= 2024-09-15T11:51:31Z Инициализация модуля INF. isReload=false имя_модуля=EBPFProbeOPENSSL 2024-09-15T11:51:31Z Модуль INF.Выполнить() 2024-09-15T11:51:31Z WRN Версия OpenSSL/BoringSSL не найдена в файле общей библиотеки, используется версия по умолчанию OpenSSL Version=linux_default_3_0 2024-09-15T11:51:31Z Функция INF Hook masterKey ElfType=2 Functions=["SSL_get_wbio","SSL_in_before","SSL_do_handshake"] binrayPath=/usr/lib/aarch64-linux-gnu/libssl.so.3 2024-09-15T11:51:31Z INF нацелен на все процессы. 2024-09-15T11:51:31Z INF предназначен для всех пользователей. 2024-09-15T11:51:31Z INF setupManagers eBPFProgramType=Text 2024-09-15T11:51:31Z Файл байт-кода INF BPF соответствует. bpfFileName=пользователь/байткод/openssl_3_0_0_kern_core.o 2024-09-15T11:51:32Z INF perfEventReader создал MapSize(MB)=4 2024-09-15T11:51:32Z INF perfEventReader создал MapSize(MB)=4 2024-09-15T11:51:32Z Модуль INF успешно запущен. isReload=false имя_модуля=EBPFProbeOPENSSL 2024-09-15T11:51:53Z ??? UUID: 233851_233851_curl_5_1_172.16.71.1: 51837, имя: HTTP2Request, тип: 2, длина: 304 Тип кадра => НАСТРОЙКИ Тип кадра => WINDOW_UPDATE Тип кадра => ЗАГОЛОВКИ поле заголовка ":method" = "GET"поле заголовка ":path" = "/"поле заголовка ":scheme" = "https"поле заголовка ":authority" = "google.com"поле заголовка "user-agent" = Поле заголовка "curl/7.81.0" "accept" = "*/*" Тип кадра => НАСТРОЙКИ 2024-09-15T11:51:53З ??? UUID: 233851_233851_curl_5_0_172.16.71.1:51837, Имя: HTTP2Response, Тип: 4, Длина: 1160 Тип кадра => НАСТРОЙКИ Тип кадра => WINDOW_UPDATE Тип кадра => НАСТРОЙКИ Тип кадра => ЗАГОЛОВКИ поле заголовка ":status" = "301"поле заголовка "location" = "https://www.google.com/"поле заголовка "content-type" = "text/html; charset=UTF-8"поле заголовка " content-security-policy-report-only" = "object-src 'none';base-uri 'self';script-src 'nonce-qvZZ0XreBfeqRnUEV1WoYw' 'строгий динамический' 'образец отчета' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp "поле заголовка "дата" = "Вс, 15 сентября 2024 г., 11:51:52 GMT"поле заголовка "expires" = "Вт, 15 октября 2024 г., 11:51:52 GMT"поле заголовка "cache-control" = "public, max-age=2592000"поле заголовка "server" = "gws"поле заголовка "content-length" = "220"поле заголовка "x-xss-protection" = "0"поле заголовка "x-frame-options" = Поле заголовка "SAMEORIGIN" "alt-svc" = "h3=":443"; ma=2592000,h3-29=":443"; ma=2592000"Тип кадра => PING Тип кадра => DATA<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"><TITLE>301 Перемещен</TITLE></HEAD>< BODY><H1>301 Перемещен</H1>Документ перемещен<A HREF="https://www.google.com/">сюда</A>.</BODY></HTML>
Инструмент eCapture состоит из 8 модулей, которые соответственно поддерживают захват открытого текста для библиотек шифрования TLS/SSL, таких как OpenSSL, GnuTLS, NSPR, BoringSSL и GoTLS. Кроме того, он облегчает аудит программного обеспечения для приложений Bash, MySQL и PostgreSQL.
команда bash захвата bash
gnutls захватывает текстовое содержимое gnutls без сертификата CA для библиотек gnutls.
gotls Перехват открытого текстового сообщения из программ Golang, зашифрованного с помощью TLS/HTTPS.
mysqld захватывает SQL-запросы из mysqld 5.6/5.7/8.0.
nss захватывает зашифрованное текстовое содержимое nss/nspr без сертификата CA для библиотек nss/nspr.
Postgres захватывает SQL-запросы из Postgres 10+.
tls используется для захвата текстового содержимого tls/ssl без сертификата CA. (Поддержка openssl 1.0.x/1.1.x/3.0.x или новее). Вы можете использовать ecapture -h
для просмотра списка подкоманд.
eCapture выполняет поиск по умолчанию в файле /etc/ld.so.conf
для поиска каталогов загрузки файла SO
и поиска местоположения библиотек сегментов openssl
. или вы можете использовать флаг --libssl
, чтобы установить путь к библиотеке сегментов.
Если целевая программа компилируется статически, вы можете напрямую установить путь к программе как значение флага --libssl
。
Модуль OpenSSL поддерживает три режима захвата:
Режим pcap
/ pcapng
сохраняет захваченные данные в виде открытого текста в формате pcap-NG
.
keylog
/ key
mode сохраняет ключи подтверждения TLS в файл.
text
режим напрямую захватывает данные в виде открытого текста, либо выводя их в указанный файл, либо печатая в командной строке.
Поддерживается шифрование TLS http 1.0/1.1/2.0
через TCP и протокол http3 QUIC
через UDP. Вы можете указать -m pcap
или -m pcapng
и использовать их вместе с параметрами --pcapfile
и -i
. Значением по умолчанию для --pcapfile
является ecapture_openssl.pcapng
.
sudo ecapture tls -m pcap -i eth0 --pcapfile=ecapture.pcapng TCP-порт 443
Эта команда сохраняет захваченные пакеты данных в виде открытого текста в виде файла pcapng, который можно просмотреть с помощью Wireshark
.
sudo ecapture tls -m pcap -w ecap.pcapng -i ens160 2024-09-15T06:54:12Z INF AppName="eCapture(旁观者)"2024-09-15T06:54:12Z INF HomePage=https://ecapture.cc 2024-09-15T06:54:12Z INF-репозиторий=https://github.com/gojue/ecapture 2024-09-15T06:54:12Z INF Author="CFC4N <[email protected]>"2024-09-15T06:54:12Z INF Description="Захват открытого текста SSL/TLS без сертификата CA с использованием eBPF. Поддерживается в Linux /Ядра Android для amd64/arm64."2024-09-15T06:54:12Z INF Version=linux_arm64:0.8.6-20240915-d87ae48:5.15.0-113-generic 2024-09-15T06:54:12Z INF Listen=localhost:28256 2024-09-15T06:54:12Z INF eCapture запускает журналы регистрации = 2024-09-15T06:54:12Z INF обработчик файла, который получает захваченное событие eventCollector= 2024-09-15T06:54:12Z WRN ========== модуль запускается. ========== 2024-09-15T06:54:12Z Информация о ядре INF = 5.15.152 Pid = 230440 2024-09-15T06:54:12Z Режим байт-кода INF BTF: CORE. btfMode=0 2024-09-15T06:54:12Z INF прослушивание = локальный хост: 28256 2024-09-15T06:54:12Z Инициализация модуля INF. isReload=false имя_модуля=EBPFProbeOPENSSL 2024-09-15T06:54:12Z Модуль INF.Выполнить() 2024-09-15T06:54:12Z INF https-сервер запускается... Вы можете обновить файл конфигурации через интерфейс HTTP. 2024-09-15T06:54:12Z WRN Версия OpenSSL/BoringSSL не найдена в файле общей библиотеки, используется версия по умолчанию OpenSSL Version=linux_default_3_0 2024-09-15T06:54:12Z Тип INF HOOK: Openssl elf ElfType=2 IFindex=2 IFname=ens160 PcapFilter= binrayPath=/usr/lib/aarch64-linux-gnu/libssl.so.3 2024-09-15T06:54:12Z Функция INF Hook masterKey Functions=["SSL_get_wbio","SSL_in_before","SSL_do_handshake"]2024-09-15T06:54:12Z INF нацелен на все процессы. 2024-09-15T06:54:12Z INF предназначен для всех пользователей. 2024-09-15T06:54:12Z INF setupManagers eBPFProgramType=PcapNG 2024-09-15T06:54:12Z Файл байт-кода INF BPF соответствует. bpfFileName=пользователь/байткод/openssl_3_0_0_kern_core.o 2024-09-15T06:54:12Z INF-пакеты сохраняются в файл pcapng. путь pcapng=/home/ecapture/ecap.pcapng 2024-09-15T06:54:12Z INF perfEventReader создал MapSize(MB)=4 2024-09-15T06:54:12Z INF perfEventReader создал MapSize(MB)=4 2024-09-15T06:54:12Z Модуль INF успешно запущен. isReload=false имя_модуля=EBPFProbeOPENSSL 2024-09-15T06:54:14Z INF-пакеты сохраняются в файле pcapng. количество = 4 2024-09-15T06:54:16Z Обнаружен набор шифров INF, не относящийся к TLSv1.3 2024-09-15T06:54:16Z Обнаружен набор шифров INF, не относящийся к TLSv1.3 2024-09-15T06:54:16Z INF-пакеты сохраняются в файле pcapng. количество = 183 2024-09-15T06:54:16Z INF CLIENT_RANDOM сохранить успех CLientRandom=f08e8d784962d1693c042f9fe266345507ccfaba58b823904a357f30dbfa1e71 TlsVersion=TLS1_2_VERSION байт=176 2024-09-15T06:54:18Z INF-пакеты сохраняются в файле pcapng. количество = 65 ^C2024-09-15T06:54:18Z Модуль INF закрыт. 2024-09-15T06:54:18Z INF-пакеты сохраняются в файле pcapng. количество = 3 2024-09-15T06:54:18Z INF-пакеты сохраняются в файле pcapng. количество = 255 2024-09-15T06:54:18Z Модуль INF закрыт, сообщение получено из контекста 2024-09-15T06:54:18Z Модуль INF iModule закрыт 2024-09-15T06:54:18Z ИНФ, пока, пока.
Использовал Wireshark
, чтобы открыть файл ecap.pcapng
для просмотра пакетов данных в виде открытого текста.
Вы можете указать -m keylog
или -m key
и использовать его вместе с параметром --keylogfile
, который по умолчанию имеет значение ecapture_masterkey.log
.
Захваченная информация Master Secret
OpenSSL TLS сохраняется в --keylogfile
. Вы также можете включить захват пакетов tcpdump
, а затем использовать Wireshark
, чтобы открыть файл и установить Master Secret
путь для просмотра пакетов данных в виде открытого текста.
sudo ecapture tls -m keylog -keylogfile=openssl_keylog.log
Вы также можете напрямую использовать программное обеспечение tshark
для расшифровки и отображения в реальном времени:
tshark -o tls.keylog_file:ecapture_masterkey.log -Y http -T поля -e http.file_data -f "порт 443" -i eth0
sudo ecapture tls -m text
выведет все пакеты данных в виде открытого текста. (Начиная с версии 0.7.0 он больше не собирает информацию SSLKEYLOG.)
Аналогично модулю OpenSSL.
захватывать текстовый контекст tls.
Шаг 1:
sudo ecapture gotls --elfpath=/home/cfc4n/go_https_client --hex
Шаг 2:
/home/cfc4n/go_https_client
sudo ecapture gotls -h
например модули bashmysqldpostgres
, вы можете использовать ecapture -h
для просмотра списка подкоманд.
Видео на YouTube: Как использовать eCapture v0.1.0
eCapture: поддерживает захват открытого текста трафика Golang TLS/HTTPS.
Подробную информацию об отправке исправлений и рабочем процессе внесения вклада см. в разделе «Внесение вклада».
См. КОМПИЛЯЦИЯ для получения подробной информации о компиляции исходного кода eCapture.