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

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

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

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

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

Категории

Все категории
Loading categories
Cisco-ASA-vulnerability-research — Систематическая обратная разработка бинарного файла lina от Cisco ASA для обнаружения и анализа уязвимостей повреждения памяти, включая CVE-2025-20333 и CVE-2025-20362, с фокусом на поиск примитивов удаленного выполнения кода. | Kitploit
Инструменты/GitHubGitHub/cobbbex/cisco-asa-vulnerability-research
Анализ уязвимостейЭксплуатацияОбратная инженерияВеб-безопасностьФаззингСетевая безопасностьАнализ Бинарных Файлов
GitHubcobbbex/cisco-asa-vulnerability-research

Cisco-ASA-vulnerability-research

Систематическая обратная разработка бинарного файла lina от Cisco ASA для обнаружения и анализа уязвимостей повреждения памяти, включая CVE-2025-20333 и CVE-2025-20362, с фокусом на поиск примитивов удаленного выполнения кода.

Репозиторий
3 дней назадЕщё не проверено

Популярное

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

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

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

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

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

LINA_FULL_RE — Полное покрытие реверс-инжиниринга lina

Создано: 2026-08-12 Объект: lab_asav9-12-4-67/lina (ASAv 9.12(4)67, ELF x86-64, PIE; база образа Ghidra 0x100000; 112,687 функций, ~167 МБ отображено, 642,707 символов) Цель трека: систематическое, полное RE-покрытие бинарника lina — в дополнение к целевому RE на основе гипотез, выполненному ранее, — чтобы найти примитив, который лаба ещё не нашла (неаутентифицированный root-RCE на 20362+20333 доказан in the wild, значит, он существует).


Зачем нужен этот трек

Все предыдущие RE-работы были целевыми (декомпиляции по fault-PC, обходы xref от строковых якорей, прочёсывания диапазонов биндингов). Они закрыли все проверенные области (H4-1/2/3/4, рефлексия tostring(userdata), SSH/SNMP/IKE %p, альтернативные семейства переполнений, survival-оракул) — см. , . Эти закрытия действуют в пределах своих областей; бинарника из 112k функций — именно то место, где должен жить недостающий примитив APT. Этот трек заменяет стратегию «угадай следующую поверхность» на .

../RCE_BLOCKERS.md
../NEW_ROADS_TO_CODE_EXECUTION.md
непроверенный остаток
покрытие

Позиция относительно критического пути: жёстким барьером известной цепочки остаётся P0 (дистанционная инфоутечка в реальном времени); перечитывание за границей в CIFS readdir (шаг 19i, окно 4 байта) — единственная эмпирически подтверждённая утечка, и она остаётся основным эмпирическим треком. LINA_FULL_RE — систематическая подстраховка: найти лучшую утечку/примитив в непроверенном коде либо доказать, что её не существует.

Первые цели триажа (выбраны пользователем 2026-08-12)

  1. Стоки утечек — любой достижимый из сети путь, способный выдать qword вида 0x55.. (lina) или 0x7f.. (libc/heap): эмиттеры форматных строк (%p/%lx/%x по указателям), перечитывания за границей (длина не ограничена инициализированными данными), отражение остатков heap, эхо неинициализированных буферов.
  2. Стоки переполнений — каждое копирование с контролируемой атакующим длиной, не ограниченной ёмкостью назначения (memcpy/memmove/strcpy/strcat/sprintf/vsprintf/gets-класс + самописные циклы копирования), на всех протокольных поверхностях (не только в уже исчерпанных Lua-биндингах WebVPN — см. ../LINA_ALT_OVERFLOW_FAMILIES_RE.md).
  3. Достижимость по call-графу — прямые call-графы от всех внешних входных точек (диспетчеры WebVPN/HTTPS, SSH, SNMP, IKE/ISAKMP, DTLS, ASDM, failover csco_config), чтобы хиты триажа можно было ранжировать по фактической достижимости с провода.

(Отложено пользователем: охота за стоком CVE-2025-20363 — по данным OSINT, она потребляет утечку, сиблинг 20333; см. ../CVE-2025-20363_OSINT.md.)

Метод — воронка (а не сплошное чтение 112k)

ЭтапЧтоИнструментыРезультат
1. КорпусПакетная декомпиляция всех 112,687 функций на диск, один .c на функцию, шардировано по адресамGhidra run_script_inline (Java, DecompInterface), чанками + с возобновлениемcorpus/<shard>/<addr>.c
2. Механический триажripgrep по корпусу на паттерны стоков (классы утечек и переполнений ниже)локальные скрипты, triage/таблицы хитов (CSV/MD)
3. Фильтр достижимостиоставить хиты в функциях, достижимых из сетевых входных точекcall-граф Ghidra (get_function_call_graph/скрипт) + список seed-точек входаранжированный список хитов
4. Глубокий анализцелевой RE ранжированных хитов (существующий паттерн сабагента ghidra-re)ghidra-mcpдокументы с результатами в этой папке

Этап 1 — чисто вычислительная работа (оценка: часы–дни, без присмотра, с возобновлением). Этапы 2–3 дёшевы и локальны. Этап 4 — единственный этап, требовательный к человеку/LLM, и он ограничен воронкой.

Структура папок

root@kitploit:~
Research notes/LINA_FULL_RE/
  README.md            — this file (master plan + status)
  TRIAGE.md            — sink-pattern catalog + reachability plan (stage 2/3 spec)
  scripts/             — decompile + triage + driver scripts
  corpus/              — stage-1 output: decompiled functions, sharded (corpus/2c/02c6cc80.c)
    _progress.txt      — resumable progress marker (done count, last address)
    _errors.txt        — per-function decompile failures
  triage/              — stage-2/3 outputs (hit tables, ranked lists)
  findings/            — stage-4 deep-dive writeups (one MD per confirmed candidate)

Статус

ЭтапСтатусПримечания
1. КорпусГОТОВО 2026-08-12 (~19:03 UTC-4)111,997/111,997 функций, 0 ошибок, 548 МБ в corpus/; заняло 26,214 с (~7.3 ч) при 4.3 функции/с через scripts/decompile_all.py (GhidraMCP batch_decompile, лимит 20 функций/вызов)
2. ТриажГОТОВО 2026-08-13scripts/triage_stage2.py; таблицы хитов по классам в triage/*_hits.csv; ранжированное объединение в triage/RANKED.md
3. ДостижимостьГОТОВО 2026-08-13 (повторный прогон, исправленные seed-ы)call+ref-граф корпуса (427,198 рёбер); 26,291/111,997 достижимы (23.5%) — preauth 26,278 / admin 13 / post20362 0. Seed-ы исправлены: registrar 0317b4e0, session 0317c0a0 (старые 030ab4e0/030ac0a0 не были началами функций). Всё ещё нижняя граница (vtable-ы).
4. Глубокий анализВ ПРОЦЕССЕ 2026-08-17L1 ЗАКРЫТО. L2 C-путь GO (статически): WebVPN UCTE create_type3_message копирует контролируемый атакующим Type-2 TargetInfo без ограничения длины; утечка возвращается обратно к HTTP-серверу атакующего внутри Type-3 Authorization: NTLM (findings/L2_NTLM_C_PATH_TYPE3.md). Lua ntlm.parseType2 — дремлющий близнец. Проход по протоколам O1/O5 ЗАКРЫТ (статически): копирования IKE/SSH/SNMP/EWS/PDTS — dest-sized, send-side или уже известные (031af6d0 / 02ff2f30). O1 «прочие» — 725 ЗАКРЫТО (статически): фильтр stack/global/param+const → новых dest-overflow GO нет; 015a8b30 — хелпер addrtype без ограничения длины, чьи вызывающие передают только AF-размер 4/0x10 (findings/O1_OTHER_SWEEP.md). O2 ЗАКРЫТО (статически): 605 достижимых циклов копирования; новых dest-overflow GO нет. FUN_02fd7270 = ucte_ntlm_authenticate_connection → тот же , что и в L2 C-пути GO (). Далее: проба NTLM в лабе (post-20362) — по окну превосходит CIFS, если появится qword /. Опционально статически: O3/O4.

Возобновление/управление: драйвер пропускает функции, файл вывода для которых уже существует, — повторно запустите python3 scripts/decompile_all.py в любой момент, чтобы продолжить. Корректная остановка: touch corpus/STOP. Если Ghidra или MCP-плагин перезапустится, просто запустите драйвер заново.

Выявленные ограничения плагина (2026-08-12): run_script_inline отключён (GHIDRA_MCP_ALLOW_SCRIPTS не задана) → корпус использует только HTTP batch-эндпоинты; batch_decompile принимает ?functions=0x..,0x..,.. как GET-параметр запроса (не JSON-тело) и молча обрезает ответы до 20 функций → размер чанка драйвера = 20.

Соглашения

  • Все адреса в документах/скриптах — RVA lina (база компоновки 0). Имена файлов корпуса — RVA ровно в том виде, как их возвращает list_functions (проверено: corpus/02/02c6cc80.c = luaH_get = RVA 0x2c6cc80). Обратите внимание: HTTP-плагин GhidraMCP сообщает адреса в стиле RVA, а не VA Ghidra = RVA + 0x100000.
  • Не противоречьте существующим закрытиям без новых доказательств; ссылайтесь на ../RCE_BLOCKERS.md / ../TODO.md, когда «новый» кандидат пересекается с закрытым маршрутом.
  • Результаты глубокого анализа должны указывать: достижимость (pre-auth / post-20362-bypass / admin), класс утечки (0x55.. против 0x7f.. против heap) и превосходит ли она примитив CIFS readdir (шаг 19i) по надёжности.
Скачать инструмент
create_type3_message
findings/O2_SWEEP.md
0x7f..
0x55..