Vulnerability Scanner and Exploit Checker — это веб-приложение для проверки уязвимостей. Оно автоматически парсит последние уязвимости с sploitus.com и проверяет IP-адреса или доменные имена на наличие уязвимых сервисов, используя эксплойты и PoC.
Проект состоит из:
- Бэкенд: Django с использованием Aiogram для взаимодействия с ботами.
- Парсинг: Selenium для работы с внешними ресурсами.
- Очереди: Celery и Redis для асинхронной обработки задач.
- Фронтенд: React для интуитивного пользовательского интерфейса.
- Python 3.10+
- Node.js 16+
- PostgreSQL
- Redis
Скопируйте репозиторий и перейдите в его папку:
git clone <URL вашего репозитория>
cd <название_папки>
-
Установите зависимости Python:
pip install -r requirements.txt
-
Создайте файл
.env
и добавьте в него необходимые переменные окружения:SECRET_KEY=ваш_секретный_ключ DEBUG=True DATABASE_URL=postgres://user:password@localhost:5432/db_name REDIS_URL=redis://localhost:6379/0
-
Примените миграции базы данных:
python manage.py migrate
-
Создайте суперпользователя для доступа к админке:
python manage.py createsuperuser
-
Запустите сервер разработки:
python manage.py runserver
-
Перейдите в папку с фронтендом:
cd frontend
-
Установите зависимости:
npm install
-
Запустите сервер разработки:
npm start
-
Убедитесь, что Redis работает. Запустите его с помощью команды:
redis-server
-
Запустите Celery для обработки асинхронных задач:
celery -A <название_проекта> worker --loglevel=info
Ссылка на тестовый репозиторий https://github.com/dikoshs/sploitus_bot.git
Полная документация API доступна по адресу: http://172.20.10.4:8000/swagger/.
Эндпоинт: POST /api/v1/scan
Тело запроса:
{
"query": "192.168.1.1"
}
Эндпоинт: GET /api/v1/vulnerabilities
Пример ответа:
[
{
"id": 1,
"request": "Ss7",
"vuln_title": "Exploit for CVE-2022-32862",
"vuln_date": "2023-09-13",
"vuln_sample": "Exploit",
"sploitus_id": "90FFF58A-EDFA-5C1A-B7A4-2FE763FECB06",
"vulnerability_indicator": 5.5,
"description": "## https://sploitus.com/exploit?id=90FFF58A-EDFA-5C1A-B7A4-2FE763FECB06\n%PDF-1.5\n%\ufffd\ufffd\ufffd\ufffd\n16 0 obj\n<<\n/Length 972 \n/Filter /FlateDecode\n>>\nstream..mvwmwklrmlermmtbjnjbenbjlkevkjlwmwkjdvnwkjvnwrkjnvkrnvkj.",
"task_interval": 5,
"sample": 'Exploit',
"user": null,
"vuln_tool": 1
}
]
- Backend: Django, Aiogram, Django ORM, SQLAlchemy
- Frontend: React
- Парсинг: Selenium
- Очереди: Celery, Redis
- СУБД: PostgreSQL
- [Сәкен Ермекулы] — Backend Developer
- [Орынбеков Жандарбек] — Frontend Developer
- [Серік Диляра] — Disigner, parser