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

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

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

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

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

Категории

Все категории
Loading categories
peetch — Инструментарий на основе eBPF для перехвата сетевого трафика, извлечения ключей TLS OpenSSL и перехвата/расшифровки соединений TLS 1.2 в реальном времени с использованием Scapy. | Kitploit
Инструменты/GitHubGitHub/quarkslab/peetch
Сниффинг и анализ пакетовДинамический анализ (песочница)Сетевая безопасность
GitHubquarkslab/peetch

peetch

Инструментарий на основе eBPF для перехвата сетевого трафика, извлечения ключей TLS OpenSSL и перехвата/расшифровки соединений TLS 1.2 в реальном времени с использованием Scapy.

Репозиторий
2091982 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

peetch

peetch — это набор инструментов, предназначенных для экспериментов с различными аспектами eBPF с целью обхода защиты протокола TLS.

В настоящее время peetch включает три подкоманды. Первая, называемая dump, предназначена для сниффинга сетевого трафика с сопоставлением информации об исходном процессе с каждым пакетом. Вторая, называемая tls, позволяет идентифицировать процессы, использующие OpenSSL, для извлечения криптографических ключей. Третья, proxy, автоматически перехватывает TLS-трафик от процессов, использующих OpenSSL, и расшифровывает сообщения на лету.

В сочетании первые две команды позволяют расшифровывать TLS-обмены, записанные в формате PCAPng.

Установка

peetch зависит от нескольких зависимостей, включая bcc и Scapy. Docker-образ можно легко собрать для удобного тестирования peetch с помощью следующей команды:

root@kitploit:~
docker build -t quarkslab/peetch .

Обзор команд

В следующих примерах предполагается, что вы использовали следующую команду для входа в Docker-образ и запуска примеров внутри него:

root@kitploit:~
docker run --privileged --network host --mount type=bind,source=/sys,target=/sys --mount type=bind,source=/proc,target=/proc --pid host --rm -it quarkslab/peetch

dump

Эта подкоманда позволяет сниффить пакеты с помощью eBPF TC-классификатора и получать соответствующие PID и имена процессов:

root@kitploit:~
peetch dump
curl/1289291 - Ether / IP / TCP 10.211.55.10:53052 > 208.97.177.124:https S / Padding
curl/1289291 - Ether / IP / TCP 208.97.177.124:https > 10.211.55.10:53052 SA / Padding
curl/1289291 - Ether / IP / TCP 10.211.55.10:53052 > 208.97.177.124:https A / Padding
curl/1289291 - Ether / IP / TCP 10.211.55.10:53052 > 208.97.177.124:https PA / Raw / Padding
curl/1289291 - Ether / IP / TCP 208.97.177.124:https > 10.211.55.10:53052 A / Padding

Обратите внимание, что на данный момент dump захватывает только TCP-сегменты на основе IPv4.

Для удобства захваченные пакеты можно сохранить в PCAPng вместе с информацией о процессе, используя --write:

root@kitploit:~
peetch dump --write peetch.pcapng
^C

Этот PCAPng-файл легко обрабатывается с помощью Wireshark или Scapy:

root@kitploit:~
scapy
>>> l = rdpcap("peetch.pcapng")
>>> l[0]
<Ether  dst=00:1c:42:00:00:18 src=00:1c:42:54:f3:34 type=IPv4 |<IP  version=4 ihl=5 tos=0x0 len=60 id=11088 flags=DF frag=0 ttl=64 proto=tcp chksum=0x4bb1 src=10.211.55.10 dst=208.97.177.124 |<TCP  sport=53054 dport=https seq=631406526 ack=0 dataofs=10 reserved=0 flags=S window=64240 chksum=0xc3e9 urgptr=0 options=[('MSS', 1460), ('SAckOK', b''), ('Timestamp', (1272423534, 0)), ('NOP', None), ('WScale', 7)] |<Padding  load='\x00\x00' |>>>>
>>> l[0].comment
b'curl/1289909'

tls

Эта подкоманда предназначена для идентификации процессов, использующих OpenSSL, и позволяет легко извлекать различные данные, такие как открытый текст и секреты.

По умолчанию peetch tls отображает только одну строку на процесс. Аргумент --directions позволяет отображать обмениваемые сообщения:

root@kitploit:~
peetch tls --directions
<- curl (1291078) 208.97.177.124/443 TLS1.2 ECDHE-RSA-AES128-GCM-SHA256
-> curl (1291078) 208.97.177.124/443 TLS1.2 ECDHE-RSA-AES128-GCM-SHA256

Отображение содержимого буфера OpenSSL достигается с помощью --content.

root@kitploit:~
peetch tls --content
<- curl (1290608) 208.97.177.124/443 TLS1.2 ECDHE-RSA-AES128-GCM-SHA256

   0000  47 45 54 20 2F 20 48 54 54 50 2F 31 2E 31 0D 0A  GET / HTTP/1.1..
   0010  48 6F 73 74 3A 20 77 77 77 2E 70 65 72 64 75 2E  Host: www.perdu.
   0020  63 6F 6D 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A  com..User-Agent:
   0030  20 63 75 72 6C 2F 37 2E 36 38 2E 30 0D 0A 41 63   curl/7.68.0..Ac

-> curl (1290608) 208.97.177.124/443 TLS1.2 ECDHE-RSA-AES128-GCM-SHA256

   0000  48 54 54 50 2F 31 2E 31 20 32 30 30 20 4F 4B 0D  HTTP/1.1 200 OK.
   0010  0A 44 61 74 65 3A 20 54 68 75 2C 20 31 39 20 4D  .Date: Thu, 19 M
   0020  61 79 20 32 30 32 32 20 31 38 3A 31 36 3A 30 31  ay 2022 18:16:01
   0030  20 47 4D 54 0D 0A 53 65 72 76 65 72 3A 20 41 70   GMT..Server: Ap

Аргумент --secrets отображает мастер-секреты TLS, извлечённые из памяти. В следующем примере используется --write для записи мастер-секретов, что упрощает расшифровку TLS-сообщений с помощью Scapy:

root@kitploit:~
(sleep 5; curl https://www.perdu.com/?name=highly%20secret%20information --tls-max 1.2 --http1.1 --tlsv1.2) &

peetch tls --write &
curl (1293232) 208.97.177.124/443 TLS1.2 ECDHE-RSA-AES128-GCM-SHA256

peetch dump --write traffic.pcapng
^C

# Add the master secret to a PCAPng file
editcap --inject-secrets tls,1293232-master_secret.log traffic.pcapng traffic-ms.pcapng

scapy
>>> load_layer("tls")
>>> conf.tls_session_enable = True
>>> l = rdpcap("traffic-ms.pcapng")
>>> l[13][TLS].msg
[<TLSApplicationData  data='GET /?name=highly%20secret%20information HTTP/1.1\r\nHost: www.perdu.com\r\nUser-Agent: curl/7.68.0\r\nAccept: */*\r\n\r\n' |>]

proxy

Эта подкоманда использует программы eBPF для автоматического перехвата TLS-трафика от процессов, использующих OpenSSL, и расшифровки сообщений на лету с помощью Scapy.

В следующем примере peetch proxy отображает секретное значение, отправленное на сервер процессом openssl.

root@kitploit:~
peetch proxy
[-] Proxying OpenSSL traffic
[+] Intercepting traffic from openssl/451255 to 172.67.133.176/443 via 127.0.0.1/58039
    --> 127.0.0.1:58039 > 172.67.133.176:https tcp
    <-- 172.67.133.176:https > 127.0.0.1:58039 tcp
    --> 127.0.0.1:58039 > 172.67.133.176:https tcp
    <-- 172.67.133.176:https > 127.0.0.1:58039 tcp
    --> 127.0.0.1:58039 > 172.67.133.176:https tcp
    --> 127.0.0.1:58039 > 172.67.133.176:https tcp

###[ TLS Application Data ]###
  data      = b'GET /?secret=9590 HTTP/1.1\r\nHost: www.perdu.com\r\n\r\n\n'

Ограничения

По замыслу, peetch поддерживает только OpenSSL, IPv4 и TLS 1.2.

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