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

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

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

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

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

Категории

Все категории
Loading categories
Zerodapi — 0dAPI Официальная документация | Kitploit
Инструменты/GitHubGitHub/0dai-ml/zerodapi
OSINT (Разведка открытых источников)Сканеры уязвимостейФреймворки для эксплойтовГенерация полезной нагрузкиВеб-безопасностьТестирование на ПроникновениеОбучение и ОбразованиеБезопасность ИИ
GitHub0dai-ml/zerodapi

Zerodapi

0dAPI Официальная документация

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

Популярное

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

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

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

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

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

Документация Zerodai

Начинаем!

root@kitploit:~
pip install zerodai==0.0.0.20
root@kitploit:~
export zerodapi_key="TU_API_KEY"

Получите свой api key https://zerodai.com Простой разговорный чат - без памяти

root@kitploit:~

from zerodai import zerodai
import os
zerodai.api_auth(os.getenv("zerodapi_key"))
messages = []
while True:
    prompt = input("> ")
    if prompt == "exit":
        break
    messages.append({"role": "user", "content": prompt})

    messages.append({"role": "system", "content": "Eres 0dAI un asistente de ciberseguridad cuya unica función es..."})
    zerodai.inference(model="0dai70b", messages=messages, temperature=0.7, stream=True)

Zerodai — это библиотека обработки естественного языка, ориентированная на кибербезопасность, которая стремится частично автоматизировать процессы, основанные на человеческой обработке информации, рассуждении, планировании и выполнении. Мы стремимся создать фреймворк агентов для кибербезопасности со следующими возможностями:

Возможности

  • Модульность и адаптируемость: Мы хотим, чтобы эта библиотека была простой в реализации и интеграции с другими программными компонентами.
  • Упрощение: Мы хотим упростить до более человеческого формата всю информацию, которую пользователь получает в конце процесса.

Инференсы

Это основной метод взаимодействия с моделью, который имеет следующие параметры. Важно хорошо изучить и понять эти параметры, так как они являются основой библиотеки.

Параметры

  • model: Языковая модель для использования. Доступные модели:

    • 0dai7b: Базовая модель с неограниченным использованием, быстрая, отлично подходит для простых разговоров и помощи в программировании. Хорошо справляется с задачами кибербезопасности.

      • Контекст 16k
      • 16 бит
      • Нет function calls
    • 0dai8x7b: Гибкая модель с большим окном контекста, на уровне GPT-4 в коде, хороша для сложных вопросов и сценариев кибербезопасности.

      • Контекст 32k
      • 8 бит
      • Нет function calls
    • 0daifn: Рекомендуемая модель для function calls, лучшая в этой области, много контекста, легче чем 0dai70b, а также по многошаговым function calls на уровне лучшего GPT.

      • Контекст 64k
      • 16 бит
      • Возможность function calls
    • 0dai70b (Рекомендуется): В настоящее время SOTA в кибербезопасности, способен выполнять сложные логические рассуждения на основе большого контекста и полуавтономно решать задачи пентеста. Имеет function calls и может отвечать структурированными сообщениями. Самый медленный, но предлагает огромный скачок качества.

      • Контекст 64k
      • 16 бит
      • Возможность function calls
  • messages: Сообщения, которые будут отправлены модели. Здесь необходимо понять 3 роли:

    • system: Промпт с инструкциями для выполнения.
    • user: Задача или вопрос.
    • assistant: Ответ ассистента.

    Сообщения должны быть в этом формате:

root@kitploit:~
  messages = [
{"role": "system", "content": """Eres 0dAI tu función es..."""},
{"role": "user", "content": "0dAI escribe un exploit en C"},
]
  • functions: Функции, которые могут быть вызваны во время взаимодействия. Мы подробнее рассмотрим функции в разделе fn_c. В данном случае это просто даст нам JSON.

    Функция объявляется так:

root@kitploit:~
function_shodan = [ {
    "name": "shodan_dork",
    "description": "This tools is used to generate a shodan query",
    "parameter_definitions": {
      "dork": {
        "type": "string",
        "description": "The shodan dork",
        "required": True
      }
    }
  }, ]
  • temperature: Управляет случайностью ответов модели. Чем выше температура, тем больше случайности; чем ниже, тем меньше случайности.

  • stream (bool): Следует ли передавать ответ в реальном времени.

Использование:

root@kitploit:~
from zerodai import zerodai
messages = []
messages.append({"role": "user", "content": prompt})
messages.append({"role": "system", "content": "Eres 0dAI un asistente de ciberseguridad cuya unica función es..."})
zerodai.inference(model="0dai70b", messages=messages, temperature=0.7, stream=True)

Function calls (fn_c)

На основе функции или списка функций в параметре function Модель сможет сгенерировать структурированный ответ, который может быть полезен после инференса: Базовая функция

root@kitploit:~
function_shodan = [ {
    "name": "shodan_dork",
    "description": "This tools is used to generate a shodan query",
    "parameter_definitions": {
      "dork": {
        "type": "string",
        "description": "The shodan dork",
        "required": True
      }
    }
  }, ]

Ответ модели на основе этой функции

root@kitploit:~
[
    {
        "tool_name": "shodan_dork",
        "parameters": {
            "dork": "hacked-router-help-sos"
        }
    }
]

Эти функции могут быть как многошаговыми, так и нет; это определяется количеством позиций в JSON. Многошаговый ответ выглядит так:

root@kitploit:~
[
    {
        "tool_name": "shodan_dork",
        "parameters": {
            "dork": "hacked-router-help-sos"
        }
    },
    {
        "tool_name": "shodan_dork",
        "parameters": {
            "dork": "\"smb\" \"authentication: disabled\""
        }
    },
      {
        "tool_name": "shodan_dork",
        "parameters": {
            "dork": ".docuword_exploited.txt"
        }
     }
   ]

Также может существовать рекурсивная логика, где инференс и функция взаимно дополняют друг друга. Представим такой случай:

Функция subdominios (субдомены)

root@kitploit:~
funcion_subdomains = [ {
    "name": "subdominios",
    "description": "This tools is used to collect domains to extract subdomains",
    "parameter_definitions": {
      "domain": {
        "type": "string",
        "description": "The domain",
        "required": True
      }
    }
  }, ]

Функция crawler (краулер)

root@kitploit:~
crawler_endpoints = [ {
    "name": "crawler",
    "description": "This tools is used to crawle ndpoints for a host",
    "parameter_definitions": {
      "host": {
        "type": "string",
        "description": "The domain",
        "required": True
      }
    }
  }, ]

Input:

Нужно получить субдомены openai.com и omegaai.io

Output 1. Функция:

root@kitploit:~
[
    {
        "tool_name": "subdomains",
        "parameters": {
            "domain": "openai.com"
        }
    },
    {
        "tool_name": "subdomains",
        "parameters": {
            "domain": "omegaai.io"
        }
    },
]

После извлечения субдоменов из input применяется наша логика выполнения: получаем субдомены...

root@kitploit:~
subdomain1.openai.com
subdomain2.openai.com
subdomain3.openai.com
subdomain1.omegaai.io
subdomain2.omegaai.io
subdomain3.omegaai.io

После передачи этого в функцию краулера будет примерно так:

Output 2. Функция:

root@kitploit:~
[
    {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio1.openai.com"
        }
    },
    {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio1.omegaai.io"
        }
    },
   {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio2.openai.com"
        }
    },
    {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio2.omegaai.io"
        }
    },
   {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio3.openai.com"
        }
    },
    {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio3.omegaai.io"
        }
    },
]

fn_c Позволяет нам собирать параметры и имя инструмента напрямую, без необходимости проходить через логику фильтрации самого JSON.

ИСПОЛЬЗОВАНИЕ

root@kitploit:~
from zerodai import zerodai
zerodai.api_auth("TU_API_KEY")
tool_name, parameters = zerodai.fn_c(model_fn=model_fn_call, messages=messages, functions=subdomain_functions, stream=stream, multistep=False)
print(tool_name)
print(parameters)
print(parameters["domain"])

Примечание: Стандарт функций обычно — OpenAI; для этого мы разработали функцию, которая преобразует функции OpenAI в наш собственный формат, например:

root@kitploit:~
tool_name, parameters = cls.fn_c(model_fn=model_fn_call, messages=messages, functions=OpenAI2CommandR(osint_funcs), stream=stream, multistep=False)

Агенты

Zerodai включает систему агентов, которую можно расширять с помощью функций и модуля выполнения:

root@kitploit:~
def exec_module(tool, arguments, multitool=True):
    output = ""
    if tool == "Shodan":
        process = subprocess.Popen(["nmap", "-Pn", next(iter(arguments.values()))], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
        for line in iter(process.stdout.readline, b''):
            output += line.decode('utf-8').strip()
            print(line.decode('utf-8').strip())
            
    elif tool == "XSS-Scanner" or tool == "nuclei-http":
      try:
        process = subprocess.Popen(["nuclei", "-t", "dns", next(iter(arguments.values()))], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd="/home/omegaleitatadmin/exllamav2/0dAPI/nuclei-templates/nuclei-templates-9.8.6/")
        for line in iter(process.stdout.readline, b''):
            output += line.decode('utf-8').strip()
            print(line.decode('utf-8').strip())
      except:
        pass
    elif tool == "WAF-tool":
        process = subprocess.Popen(["python3", "whatwaf", "-u", "https://" + next(iter(arguments.values()))], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd="/home/omegaleitatadmin/exllamav2/0dAPI/WhatWaf")
        for line in iter(process.stdout.readline, b''):
            output += line.decode('utf-8').strip()
            print(line.decode('utf-8').strip())
      
    elif tool == "Attack":
        process = subprocess.Popen(["nmap", "-Pn", next(iter(arguments.values()))], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
        for line in iter(process.stdout.readline, b''):
            output += line.decode('utf-8').strip()
            print(line.decode('utf-8').strip())
    elif tool == "OSINT":
        ZeroDAI.Osint(next(iter(arguments.values())))
        
    return output

Этот код должен идти вместе с используемыми функциями:

root@kitploit:~
python_functions = [ {
    "name": "Shodan",
    "description": "tool for shodan",
    "parameter_definitions": {
      "ip": {
        "type": "string",
        "description": "The ip",
        "required": True
      }
    }
  },
 {
    "name": "nuclei-http",
    "description": "This tools is use for nuclei",
    "parameter_definitions": {
      "target": {
        "type": "string",
        "description": "The domain",
        "required": True
      }
    }
  },
 {
    "name": "WAF-tool",
    "description": "This tools is used for waf",
    "parameter_definitions": {
      "webapp": {
        "type": "string",
        "description": "The webapp",
        "required": True
      }
    }
  },
 {
    "name": "Attack",
    "description": "This tools is used to attack a host",
    "parameter_definitions": {
      "host": {
        "type": "string",
        "description": "The domain",
        "required": True
      }
    }
  }, ]

Это позволяет создавать динамические многошаговые и мультиинструментальные агенты.

Использование

root@kitploit:~
zerodai.agent(model="0dai70b", 
                  messages=messages, 
                  model_fn_call="0daifn", 
                  temperature=0.7,
                  functions=python_functions,
                  exec_module=exec_module,
                  exec_module_bool=True, 
                  multistep=True)

exec_module-bool — указывает, хотим ли мы использовать модуль выполнения (если установлено True, а модуля выполнения нет, выполнится модуль по умолчанию).

exec_module — модуль выполнения.

functions — функции, соответствующие модулю выполнения.

multistep — хотим ли мы выполнять несколько шагов на каждой итерации модели function calls.

Демонстрации концепций

4. DATA LEAKS PoC

DarkGPT-Osint

5. MultiStep-Agent PoC

DarkGPT-Osint

Этот API включает интеграции с shodan, различными сервисами данных, censys и многим другим; эти сервисы требуют только API от 0dAI:

Утечки данных

zerodai.Osint(prompt)

prompt — Простое сообщение на естественном языке для LLM, чтобы выполнить поиск в наших частных источниках утечек данных и предоставить утечки по пользователю.

Shodan

zerodai.Osint(prompt)

prompt — Простое сообщение на естественном языке для LLM, чтобы выполнить поиск в shodan и напрямую получить результаты.

Rubber ducky

zerodai.rubberducky_gen(prompt)

prompt — Простое сообщение на естественном языке для LLM, чтобы сгенерировать валидную нагрузку для rubber ducky.

Этот API полностью разработан Luijait (Луис Хавьер Наваррете Лосано) под брендом 0dAI. Если знания, описанные здесь, используются в другой работе, необходимо указать авторство: первым именем Luijait, вторым — 0dAI.

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