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

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

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

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

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

Категории

Все категории
Loading categories
autoPwn — Автоматизируйте повторяющиеся задачи для фаззинга. | Kitploit
Инструменты/GitHubGitHub/bannsec/autopwn
ЭксплуатацияФаззингАнализ Бинарных Файлов
GitHubbannsec/autopwn

autoPwn

Автоматизируйте повторяющиеся задачи для фаззинга.

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

Популярное

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

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

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

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

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

Daily Build Trigger

Предупреждение

Сейчас полностью переписывается. Основное внимание будет уделено интерактивным приложениям Linux, которые принимают ввод только из stdin для начала. Пытаюсь использовать функциональность Driller и Fuzzer от Shellphish.

autoPwn в его текущем состоянии будет делать это в ограниченной форме. Просто запустите autoPwn ./binary, затем выберите опцию Start.

Установка

Учитывая все проблемы с зависимостями, самый простой способ запустить autoPwn — использовать Docker-сборку. Обратите внимание, вы можете удалить параметры --security-opt и --cap-add, но некоторые аспекты фаззинга могут не работать.

root@kitploit:~
$ sudo docker pull bannsec/autoPwn
$ sudo docker run -it -v $PWD:/mount --security-opt="apparmor=unconfined" --cap-add=SYS_PTRACE -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix/ bannsec/autopwn

В Docker-сборке всё должно быть готово к работе. Вы можете просто запустить инструмент командой:

root@kitploit:~
$ autoPwn ./file

Компиляция исходного кода для фаззинга

autoPwn пытается упростить компиляцию исходного кода для фаззинга проекта. Для этого был создан autoPwnCompile. Просто укажите ему ваш исходный код, задайте параметры, и он выдаст исполняемый файл, готовый к фаззингу.

root@kitploit:~
usage: autoPwnCompile [-h] [--file FILE] [--ASAN | --MSAN] [--UBSAN]
                      [--fuzzer FUZZER]

Compile source to binaries for use in autoPwn.

optional arguments:
  -h, --help       show this help message and exit
  --file FILE      Single file to compile.
  --ASAN           Enable ASAN (default off)
  --MSAN           Enable MSAN (default off)
  --UBSAN          Enable UBSAN (default off)
  --fuzzer FUZZER  (optional) What fuzzer to compile for. Options are:
                   ['AFL']. Default is AFL.

Ниже приведено из СТАРОЙ версии autoPwn..

Обзор

autoPwn — громкое имя для простого скрипта. При работе с фаззингом и afl-fuzz я заметил, что мне приходится выполнять одни и те же задачи снова и снова. С учётом этого я хотел создать скрипт, который бы делал следующее:

  1. Автоматизировать и упростить задачу запуска фаззера с помощью умных подсказок
  2. Автоматизировать и упростить задачу перезапуска фаззера через конфигурационный файл
  3. Полностью автоматизировать процесс минимизации очередей afl
  4. Полностью автоматизировать процесс извлечения и минимизации всех возможных эксплойтных путей
  5. Полностью автоматизировать процесс извлечения и минимизации всех возможных путей в целом.
  6. Полностью или частично автоматизировать генерацию начальных значений путей.

На данный момент скрипт справляется с первыми пятью пунктами. Пункт 6 находится в стадии разработки и предположительно будет использовать механизм символьного выполнения angr для создания возможных начальных путей. На этом этапе скрипт теоретически сможет полностью автоматизировать простые задачи фаззинга.

Пример

Давайте рассмотрим недавнее задание TUCTF под названием "WoO2". Хотя оно не обязательно находит нужный эксплойт, оно показывает, как autoPwn можно использовать для упрощения поиска путей.

Вот базовый запуск программы:

root@kitploit:~
$ ./e67eb287f23011a40ef5bd5c2ad2f48ca97834cf 
Welcome! I don't think we're in Kansas anymore.
We're about to head off on an adventure!
Select some animals you want to bring along.

Menu Options:
1: Bring a lion
2: Bring a tiger
3: Bring a bear
4: Delete Animal
5: Exit

Enter your choice:
1
Choose the type of lion you want:
1: Congo Lion
2: Barbary Lion
1
Enter name of lion:
Test
Menu Options:
1: Bring a lion
2: Bring a tiger
3: Bring a bear
4: Delete Animal
5: Exit

Enter your choice:
5

Создадим простой входной тестовый пример:

root@kitploit:~
$ cat in/1 
1
1
Test
5

Теперь мы можем легко запустить фаззер:

root@kitploit:~
$ autoPwn 
Setting up fuzz configuration
Target Binary (full or relative path): e67eb287f23011a40ef5bd5c2ad2f48ca97834cf
Command line args: 
Number of cores (default: 8): 
Test Case Dir (default: 'in/'): 
Test Case Dir (default: 'out/'): 
Max memory (default: 200): 4096
Starting fuzz
autoPwn> s
status check tool for afl-fuzz by <[email protected]>

Individual fuzzers
==================

>>> SESSION007 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION000 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION002 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION006 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION004 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION001 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION005 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

>>> SESSION003 (0 days, 0 hrs) <<<

  cycle 1, lifetime speed 1 execs/sec, path 0/1 (0%)
  pending 1/1, coverage 0.15%, no crashes yet

Summary stats
=============

       Fuzzers alive : 8
      Total run time : 0 days, 0 hours
         Total execs : 0 million
    Cumulative speed : 8 execs/sec
       Pending paths : 8 faves, 8 total
  Pending per fuzzer : 1 faves, 1 total (on average)
       Crashes found : 0 locally unique


autoPwn> h
autoPwn
     s == fuzzer (s)tatus
     e == collect (e)xploits
     a == collect (a)ll paths
     m == (m)inimize corpus
     q == (q)uit

Итак, что произошло: скрипт создал некоторые значения по умолчанию (включая определение количества доступных ядер). Мы изменили одно значение по умолчанию из-за необходимости дополнительной памяти для запуска в QEMU. autoPwn создал конфигурационный файл, который затем передал afl-utils (https://github.com/rc0r/afl-utils). В этом конфигурационном файле также были настроены привязки к CPU, чтобы фаззинг был оптимальным по умолчанию.

На этом этапе ваш компьютер вовсю занимается фаззингом. Однако одним из ключевых аспектов фаззинга является минимизация корпуса. С учётом этого autoPwn следит за экземпляром afl-fuzz, чтобы отслеживать завершение серии мутаций. Когда это происходит, он останавливает фаззинг (неоптимально, но пока сойдёт), минимизирует корпус, а затем перезапускает фаззинг. Всё это происходит без вмешательства человека, так что вы можете запустить и забыть.

В какой-то момент вам может захотеться посмотреть, какие пути нашёл afl. Выполнив команду "a", autoPwn скопирует все известные пути, минимизирует корпус, а затем минимизирует сами входные данные и предоставит их в выходном каталоге.

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