Использование Pydantic сегодня стало нормой, и это правильно. Но иногда на ревью вижу, что используют его не всегда корректно.
Например, метод BaseModel.model_dump() по умолчанию не преобразует стандартные типы, такие как datetime, UUID или Decimal, в простой сериализуемый для JSON вид. Тогда пишут кастмоный сериализатор для этих типов чтобы функция json.dump() не падала с ошибкой.
import uuid
from datetime import datetime
from decimal import Decimal
from uuid import UUID
from pydantic import BaseModel
class MyModel(BaseModel):
id: UUID
date: datetime
value: Decimal
obj = MyModel(
id=uuid.uuid4(),
date=datetime.now(),
value='1.23'
)
print(obj.model_dump())
# не подходит для json.dump
# {
# 'id': UUID('4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1'),
# 'date': datetime.datetime(2025, 12, 12, 12, 12, 12, 111111),
# 'value': Decimal('1.23')
# }
# добавляем свой кастомный сериализатор
json.dumps(obj.model_dump(), cls=MySerializer)
# {
# 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1',
# 'date': '2025-12-12T12:12:12.111111',
# 'value': '1.23'
# }
В данном случае класс MySerializer обрабатывает datetime, UUID и Decimal. Например так:
class MySerializer(json.JSONEncoder):
def default(self, o):
if isinstance(o, Decimal):
return str(o)
elif isinstance(o, datetime):
return o.isoformat()
elif isinstance(o, UUID):
return str(o)
return super().default(o)
Специально для тех, кто всё еще так делает - в этом нет необходимости!
Pydantic может это сделать сам, просто нужно добавить параметр mode="json".
json.dumps(obj.model_dump(mode="json"))
# {
# 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1',
# 'date': '2012-12-12T12:12:12.111111',
# 'value': '1.23'
# }
#pydantic#libs
👁 Прокачай свой NMAP!
• Nmap — эталон среди сканеров портов и один из важнейших инструментов пентестера. В первую очередь используется для сканирования портов, но, кроме этого, имеет огромную массу полезных функций, что, по сути, делает Nmap супер-комбайном для исследования сетей.
• В Nmap есть поддержка скриптов для сканирования (NSE — Nmap Scripting Engine). С использованием скриптов мы можем автоматизировать свою работу и сократить время на выполнение определенных задач. Согласитесь, ведь удобнее же «нажать одну кнопку» и получить результат, чем постоянно проделывать одну и ту же последовательность действий, верно?
• Первая статья освещает базовую информацию о том, как работать со скриптами в Nmap: https://www.stationx.net/nmap-scripting-engine/
• Вторая статья от журнала ][акер, которая поможет не только разобраться с основами, но еще и даст необходимую информацию по написанию собственных скриптов. Содержание следующее:
- Постановка задачи;
- Структура NSE-скрипта;
- Описание скрипта (description);
- Категории, в которых находится скрипт (categories);
- Информация об авторе (author);
- Информация об использующейся лицензии (license);
- Зависимости от других скриптов (dependencies);
- Хост и порт (host & port);
- Подключение библиотек;
- Инструкции скрипта (action);
- Настройка PostgreSQL;
- Запуск скрипта;
- Аргументы;
- Расширение;
- Отладка скриптов.
• После прочтения материала по ссылкам выше, обязательно обратите внимание на все доступные сценарии NSE, которые разбиты на 14 категорий:
- auth;
- broadcast;
- brute;
- default;
- discovery;
- dos;
- exploit;
- external;
- fuzzer;
- intrusive;
- malware;
- safe;
- version;
- vuln.
➡https://www.infosecmatter.com/ultimate-list-of-nmap-nse-scripts-interactive-table/
#nmap
• Очень объемная статья с форума XSS, которая описывает неочевидные функции Nmap и его возможности. Материал будет полезен пентестерам и #ИБ специалистам. Содержание следующее:
➡Nmap и IDS;
➡Nmap и службы;
➡Nmap и белые списки;
➡Выявление хостов в сети;
➡Скрытый скан портов Nmap;
➡Интеграция Nmap с Metasploit;
➡Тайминг и производительность в Nmap;
➡Анализ операционных систем с помощью Nmap;
➡Обнаружение и анализ виртуальных частных сетей;
➡Использование Zenmap для автоматизации сканирования;
➡Использование API Nmap для создания собственных приложений;
➡Nmap Scripting Engine: расширение функционала Nmap скриптами;
➡Автоматизация тестирования безопасности с использованием Nmap.
#Nmap
🤖 Тамагочи для хакера.
• Bjorn - инструмент, предназначенный для проведения комплексного сканирования сетей и оценки их уязвимости. Проект имеет модульную конструкцию и его функционал может быть расширен за счет скриптов на Python.
• Самое забавное, что инструмент реализован в виде игры по типу Тамагочи с виртуальным персонажем - викингом, где за каждые успешные сканирования или взломы вы будете получать игровые монеты, и прокачивать вашего виртуального «друга».
• Для изготовления такого устройства вам понадобится Raspberry PI Zero W или Zero 2W и 2.13 дюймовый e-ink экран с драйвером, подключаемый к GPIO. Устройством можно управлять как с экрана, так и через веб-интерфейс.
• Основные особенности устройства в текущей реализации:
➡Идентификация активных хостов и открытых портов в сети;
➡Сканирование сетей на наличие уязвимостей с использованием #Nmap и других инструментов;
➡Brute-force атаки на различные сервисы (FTP, SSH, SMB, RDP, Telnet, SQL).
➡️https://github.com/infinition/Bjorn
#ИБ#Пентест
👁 Nmap + Grafana.
• Grafana является прекрасной системой визуализации и анализа информации, которая позволяет «из коробки» работать с широким спектром источников данных (data source) – Elasticsearch, Loki, MS SQL, MySQL, PostgreSQL, Prometheus и др. При необходимости также интегрируется с Zabbix, PRTG и др. системами. Свободно распространяется по лицензии GNU AGPL v3 (бесплатно).
• В этой статье описано создание панели управления Nmap с помощью Grafana и Docker, чтобы получить полноценный обзор сети и открытых служб: https://hackertarget.com/nmap-dashboard-with-grafana/
#Nmap#Grafana
👁 Nmap Cheat Sheet 2024: All the Commands & Flags.
• Полезная шпаргалка по #nmap, которая поможет автоматизировать свою работу и сократить время на выполнение определенных задач: https://www.stationx.net/nmap-cheat-sheet/
• В качестве дополнения предлагаю ознакомиться с материалом по ссылкам ниже, где Вы найдете необходимую информацию для изучения этого инструмента:
• Host Discovery;
• Output Format Scan;
• Understanding Nmap Packet Trace;
• Nmap Scan with Timing Parameters;
• Nmap Scans using Hex Value of Flags;
• Forensic Investigation of Nmap Scan using Wireshark;
• Understanding Guide for Nmap Timing Scan (Firewall Bypass);
• Understanding Guide for Nmap Ping Scan (Firewall Bypass);
• Comprehensive Guide on Nmap Port Status;
• How to Detect NMAP Scan Using Snort;
• Understanding Guide to Nmap Firewall Scan (Part 2);
• Understanding Guide to Nmap Firewall Scan (Part 1);
• Understanding Nmap Scan with Wireshark;
• Password Cracking using Nmap;
• Vulnerability Scan;
• Network Scanning using NMAP (Beginner Guide);
• MSSQL Penetration Testing using Nmap;
• MySQL Penetration Testing with Nmap.
#ИБ#Eng#Nmap
Один из наших читателей, занимается переводом книг, с английского языка на русский. Это очень большой труд и большая трата времени. Его усилиями, на русский язык была переведена книга: Quick Start Guide to Penetration Testing: With NMAP, OpenVAS and Metasploit by Sagar Rahalkar.
👾 VT.
Язык: RU
#NMAP#Metasploit#OpenVAS#Пентест#Pentest#Книга