CodeGuard: PySec Edition
Канал по ИБ и этичному хакингу. Автор: @Arakcheev_Ruslan Ссылка: @invite_CodeGuard Рекламный менеджер: @Diggsale Биржа: https://telega.in/c/+3X56uL4A-UM3Njgy
Ko'proq ko'rsatish📈 Telegram kanali CodeGuard: PySec Edition analitikasi
CodeGuard: PySec Edition kanali faol ishtirokchi. Hozirda hamjamiyat 14 097 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 8 760-o'rinni va Rossiya mintaqasida 45 869-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 14 097 obunachiga ega bo‘ldi.
26 Sentabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 821 ga, so‘nggi 24 soatda esa 0 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 9.98% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 5.58% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 1 407 marta ko‘riladi; birinchi sutkada odatda 786 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 8 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent codeguard, pysec, docker, grep, контейнер kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Канал по ИБ и этичному хакингу.
Автор: @Arakcheev_Ruslan
Ссылка: @invite_CodeGuard
Рекламный менеджер: @Diggsale
Биржа: https://telega.in/c/+3X56uL4A-UM3Njgy”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 27 Sentabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
# Плохо: контейнер работает от root
docker run -it ubuntu bash
whoami # root
# Правильно: указать пользователя
docker run -it --user 1000:1000 ubuntu bash
# Или в Dockerfile:
FROM ubuntu
RUN useradd -m appuser
USER appuser
🔹 Проблема: 90% контейнеров в проде работают от root 🔹 Решение: Всегда указывать USER в Dockerfile или --user при запуске2️⃣ Привилегированный режим
# НИКОГДА так не делайте в проде: docker run --privileged nginx # Это даёт контейнеру полный доступ к хосту: # - Все устройства (/dev) # - Возможность монтировать файловые системы # - Отключение всех ограничений # Если нужны конкретные capabilities: docker run --cap-add NET_ADMIN nginx # Вместо --privileged даём только нужное
🔹 Проблема: --privileged используют "чтобы работало", не понимая последствий 🔹 Решение: Использовать --cap-add только для нужных capabilities3️⃣ Монтирование Docker socket
# Популярный антипаттерн для CI/CD: docker run -v /var/run/docker.sock:/var/run/docker.sock myapp # Что может сделать атакующий: docker run -v /:/host -it alpine chroot /host # Полный доступ к файловой системе хоста!
🔹 Проблема: Docker socket = root доступ к хосту 🔹 Решение: Использовать Docker-in-Docker или rootless Docker4️⃣ Образы из непроверенных источников
# Проверить образ на уязвимости: docker scout cves nginx:latest # Или использовать Trivy: trivy image nginx:latest # Сканирование покажет: # CVE-2023-XXXX HIGH openssl 1.1.1k # CVE-2023-YYYY CRITICAL curl 7.74.0
🔹 Проблема: Образы с Docker Hub могут содержать malware или уязвимости 🔹 Решение: Использовать официальные образы, сканировать перед деплоем5️⃣ Секреты в переменных окружения
# Плохо: пароль виден всем docker run -e DB_PASSWORD=supersecret myapp # Любой процесс видит переменные: docker exec container cat /proc/1/environ # Правильно: Docker secrets echo "supersecret" | docker secret create db_pass - docker service create --secret db_pass myapp # Или монтировать файл: docker run -v ./secrets:/run/secrets:ro myapp
🔹 Проблема: Переменные окружения логируются, видны в docker inspect 🔹 Решение: Docker secrets, HashiCorp Vault, файлы с правильными правами6️⃣ Отсутствие лимитов ресурсов
# Контейнер может съесть всю память хоста:
docker run -d memhog # Fork bomb = хост падает
# Установить лимиты:
docker run -d \
--memory=512m \
--memory-swap=512m \
--cpus=0.5 \
--pids-limit=100 \
nginx
🔹 Проблема: Один контейнер может положить весь хост 🔹 Решение: Всегда ставить --memory, --cpus, --pids-limitЧек-лист безопасности Docker:
✔️ Контейнеры работают не от root ✔️ Никакого --privileged в проде ✔️ Docker socket не монтируется ✔️ Образы сканируются на уязвимости ✔️ Секреты не в ENV переменных ✔️ Установлены лимиты ресурсов ✔️ Используется read-only filesystem где возможно ✔️ Сеть изолирована (не --network host)😈 CodeGuard: PySec Edition | Чат
# Так делают "для удобства"
user_input = request.get("calc")
result = eval(user_input) # Пользователь вводит: __import__('os').system('rm -rf /')
# Безопасная альтернатива для математики:
import ast
result = ast.literal_eval(user_input) # Только литералы
🔹 Проблема: Выполняет произвольный код от имени вашего приложения 🔹 Решение: ast.literal_eval() или специализированные парсеры2️⃣ pickle — десериализация смерти
# Загрузка данных из кэша/файла
import pickle
data = pickle.loads(user_data) # RCE в одну строку
# Атакующий отправляет:
import pickle, os
class Exploit:
def __reduce__(self):
return (os.system, ('whoami',))
payload = pickle.dumps(Exploit())
🔹 Проблема: pickle выполняет код при десериализации 🔹 Решение: JSON, или hmac для подписи pickle-данных
import json
data = json.loads(user_data) # Безопасно
3️⃣ subprocess с shell=True
# Опасно: shell injection
filename = request.get("file")
subprocess.call(f"cat {filename}", shell=True)
# Ввод: "; rm -rf /"
# Безопасно: передавать список аргументов
subprocess.call(["cat", filename], shell=False)
🔹 Проблема: shell=True позволяет инъекцию команд 🔹 Решение: Всегда shell=False и список аргументов4️⃣ yaml.load() без Loader
# Старый код — уязвим
import yaml
config = yaml.load(user_file) # RCE через YAML
# Правильно:
config = yaml.safe_load(user_file)
🔹 Проблема: PyYAML по умолчанию выполняет Python-объекты 🔹 Решение: Только yaml.safe_load()5️⃣ SQL без параметризации
# Классика жанра
query = f"SELECT * FROM users WHERE id = {user_id}"
# Ввод: 1 OR 1=1; DROP TABLE users;--
# Безопасно:
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
# Или ORM
User.objects.filter(id=user_id)
🔹 Проблема: SQL-инъекция — топ-1 уязвимость уже 20 лет 🔹 Решение: Параметризованные запросы, ORM6️⃣ os.path.join() с абсолютным путём
# Ожидание: /var/uploads/file.txt
# Реальность:
os.path.join("/var/uploads", "/etc/passwd")
# Результат: /etc/passwd — path traversal!
# Защита:
import os
base = "/var/uploads"
filename = os.path.basename(user_input) # Убирает путь
full_path = os.path.join(base, filename)
if not os.path.abspath(full_path).startswith(base):
raise SecurityError("Path traversal detected")
7️⃣ hashlib для паролей
# Неправильно:
password_hash = hashlib.sha256(password.encode()).hexdigest()
# Правильно: bcrypt с солью и work factor
import bcrypt
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt(rounds=12))
🔹 Проблема: SHA256 слишком быстрый — GPU перебирает миллиарды хешей в секунду 🔹 Решение: bcrypt, argon2, scrypt — медленные по дизайнуЧек-лист безопасного Python:
✔️ Никаких eval/exec с пользовательским вводом ✔️ JSON вместо pickle для внешних данных ✔️ subprocess только с shell=False ✔️ yaml.safe_load() всегда ✔️ Параметризованные SQL-запросы ✔️ Валидация путей файлов ✔️ bcrypt/argon2 для паролей ✔️ bandit в CI/CD для автопроверки
# Сканер уязвимостей для Python
pip install bandit
bandit -r your_project/
🤔 Код, который "просто работает" — это код, который просто ждёт своего хакера.
😈 CodeGuard: PySec Edition | Чат🔴Базовое понимание архитектуры и ABI RISC-V — назначение регистров, система команд, способы адресации. 🔴Умение использовать тулчейн для кросс-компиляции и отладки программ RISC-V. 🔴Базовое понимание системы расширений RISC-V. 🔴Базовое понимание логики выполнения ассемблерных программ и способов их структурирования. 🔴 Умение читать и понимать ассемблерные программы, понимать результат их действия. 🔴Умение писать простые программы на ассемблере RISC-V. 🔴Умение применять расширение V. 🔴Умение использовать RIPES для визуализации работы программ.👩💻 Проходим курс здесь Годно? ❤️ — да 👍 — нет 😈 CodeGuard: PySec Edition | Чат
🔴Реверс-инжиниринг malware 🔴Анализ эксплойтов в IDA Pro/Ghidra 🔴Практика на реальных образцах🔥 @Intercepter — Низкоуровневый ИБ
🔴Network security (перехват трафика) 🔴WiFi cracking + защита 🔴Интересные интервью🤖 @tempestatorres5243 — Ассемблера для всех
🔴Криптография на практике 🔴Сайд-канальные атаки 🔴Secure coding patterns🧠 @TorZireael1 — Deep tech security
🔴TOR + bridges + обходы DPI 🔴VPN vs. Tor vs. I2P сравнения 🔴Anon OS (Tails, Whonix)😈 CodeGuard: PySec Edition | Чат
🔵Программные кейлоггеры — вредоносный код, внедряющийся в систему: хукает API клавиатуры (GetAsyncKeyState на Windows, evdev на Linux), логирует ввод в файл или слать на C2-сервер по HTTPS/SMTP. Могут дополняться скриншотами, захватом буфера обмена или записью экрана — полный шпионский набор. 🔵Аппаратные кейлоггеры — физические девайсы (USB-адаптеры между клавиатурой и ПК, WiFi-модули), перехватывающие сигналы на железном уровне. Их не ловит антивирус, но видно при осмотре — идеально для targeted атак с физическим доступом.⚠️ Распространение: фишинг (PDF/EXE-вложения), drive-by download с сайтов, bundled с пиратским софтом или даже в легальных утилитах (типа "оптимизаторов"). После заражения — тишина, пока не сольют ваши данные на даркнет. Примеры в дикой природе:
🔵RedLine Stealer — массовый стиллер с кейлоггером, продаётся на форумах за $100/мес, крадёт всё из браузеров + кастомный ввод. 🔵FormBook — .NET-троян, логирует формы логина, обходит песочницы, популярен в фишинге под банки. 🔵Hardware PS/2 логгеры — пассивные, 8ГБ памяти, WiFi-экспорт — для корпоративного шпионажа. Как поймать и нейтрализовать:
🔴Симптомы: лаг при вводе, неизвестные процессы (refog.exe, winlog.exe), трафик на подозрительные IP, CPU-спайки без причины. 🔴Детект: Process Explorer (Sysinternals) на хуки DLL, Wireshark на эксфильтрацию, антивирус с behavioral analysis (Kaspersky, Malwarebytes). 🔴Защита: виртуальная клавиатура для паролей, 2FA (не SMS), менеджеры паролей (Bitwarden с авто-fill), sandbox для тестов (Kasm/VM). Frida для реверса: хукаем SetWindowsHookEx и видим, кто подслушивает.⚠️Факт: даже rootkit-кейлоггеры (типа Hacker Defender) прячутся на уровне ядра — лови их через boot-time скан или live-USB с Linux. Пишите в чат свои истории встреч с кейлоггерами — как ловили и что потеряли!! 😈 CodeGuard: PySec Edition | Чат
# Атака brute-force на SSH занимает минуты
hydra -l root -P passwords.txt ssh://target.com
# Правильная защита:
sudo nano /etc/ssh/sshd_config
# Отключить root логин
PermitRootLogin no
# Изменить порт SSH
Port 2222
# Отключить password auth, только ключи
PasswordAuthentication no
PubkeyAuthentication yes
🔴Проблема: Большинство серверов в интернете имеют стандартный SSH с пароль-авторизацией
🔴 Решение: SSH-ключи, отключить root, 2FA через fail2ban
2️⃣ Неправильные права доступа на файлы
# Опасно: файл с секретами доступен всем
-rw-rw-rw- 1 root root 1024 config.env
# Проверка прав для критичных файлов:
sudo chmod 600 /etc/ssh/sshd_config # Только owner
sudo chmod 700 /root # Home директория только для owner
sudo chmod 600 ~/.ssh/id_rsa # Private key ТОЛЬКО для владельца
🔴 Проблема: umask 0022 по умолчанию создаёт файлы с доступом для всех
🔴 Решение:
# Установить правильный umask в ~/.bashrc
umask 0077 # Файлы создаются только для owner
3️⃣ Устаревшие пакеты с известными уязвимостями
# Проверить устаревшие пакеты
sudo apt list --upgradable
# Найти уязвимости в установленных пакетах
apt-listchanges
# или более детально
debsecan --suite focal # Для Ubuntu 20.04
🔴 Проблема: Люди устанавливают ОС, забывают об обновлениях, через год система полна уязвимостей
🔴 Решение:
# Включить автоматические обновления
sudo apt install unattended-upgrades
sudo systemctl enable unattended-upgrades
# Проверять регулярно:
sudo apt update && sudo apt upgrade -y
4️⃣ Открытые порты, которые не нужны
# Проверить слушающие порты
sudo ss -tuln | grep LISTEN
# Опасный вывод:
tcp LISTEN 0 128 0.0.0.0:23 0.0.0.0:* # Telnet!
tcp LISTEN 0 128 0.0.0.0:3306 0.0.0.0:* # MySQL на всех интерфейсах!
🔴 Проблема: Сервисы по умолчанию слушают на 0.0.0.0 (все интерфейсы)
🔴 Решение:
# MySQL слушает только локально
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1
# Firewall для остального
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp # Только SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
5️⃣ Отсутствие логирования и мониторинга
Большинство систем не логируют попытки доступа, поэтому вы не знаете, что вас взламывают, пока не поздно:
# Включить аудит попыток входа
sudo nano /etc/ssh/sshd_config
LogLevel VERBOSE
# Мониторить логи в реальном времени
sudo tail -f /var/log/auth.log
# Найти подозрительную активность
sudo grep "Failed password" /var/log/auth.log | wc -l
# Установить fail2ban для защиты от brute-force
sudo apt install fail2ban
sudo systemctl enable fail2ban
🔴 Проблема: Атакующие входят, скачивают данные, устанавливают бэкдор, а вы не знаете
🔴 Решение: Centralized logging (ELK, Splunk), мониторинг с оповещениями
🎯 Чек-лист базовой безопасности Linux:
✔️ SSH-ключи вместо паролей ✔️ Root доступ отключён ✔️ Firewall включён (ufw/iptables) ✔️ Регулярные обновления (unattended-upgrades) ✔️ Правильные права на файлы (chmod 600 для секретов) ✔️ fail2ban для защиты от brute-force ✔️ Мониторинг логов и оповещения ✔️ Резервные копии в другом месте ✔️ SELinux или AppArmor включены (если нужны) ✔️ Никаких стандартных портов и сервисовПишите в чате : какую из этих проблем вы уже исправляли? Или может, обнаружили что-то новое? 🔒 😈 CodeGuard: PySec Edition | Чат
🔴Основы криптографии — шифры, хеширование, асимметричная криптография 🔴Защита данных — кодирование, стеганография, контроль целостности 🔴Сетевая безопасность — протоколы, уязвимости, анализ трафика 🔴Веб-безопасность — инъекции, CSRF, XSS и классические уязвимости 🔴 Анализ задач олимпиады — реальные примеры с решениями и пояснениями👩💻 Проходим курс здесь Пишите в чате : готовитесь к олимпиаде или просто хотите подтянуть ИБ? Какая секция вас больше всего зацепила? 🔐 😈 CodeGuard: PySec Edition | Чат
🔵Перехват функций без изменения кода приложения 🔵Чтение и изменение аргументов функций на лету 🔵Доступ к памяти процесса без отладчика 🔵Работает с защищёнными приложениями (AntiDebug, AntiVM и т.д.) 🔵Поддержка Android, iOS, Windows, Linux, macOSУстановка
pip install frida frida-tools
Базовый пример: перехват функции
import frida
import sys
# Подключаемся к процессу по имени
process = frida.get_usb_device().attach("target.apk")
# JavaScript код, который будет выполняться в контексте процесса
script = """
Interceptor.attach(Module.findExportByName(null, "strlen"), {
onEnter: function(args) {
console.log("[strlen] arg: " + Memory.readUtf8String(args[0]));
},
onLeave: function(result) {
console.log("[strlen] result: " + result);
}
});
"""
script_obj = process.create_script(script)
script_obj.on("message", lambda msg, data: print(msg))
script_obj.load()
sys.stdin.read()
Перехват собственной функции приложения
import frida
process = frida.get_local_device().attach("myapp")
# Хукуем функцию по адресу
script = """
var checkPassword = new NativeFunction(
Module.findBaseAddress("libc.so") + 0x12345,
'bool',
['pointer']
);
Interceptor.attach(checkPassword, {
onEnter: function(args) {
var password = Memory.readUtf8String(args[0]);
console.log("[PASSWORD] " + password);
},
onLeave: function(result) {
console.log("[RESULT] " + result);
// Подменяем результат на true
return 1;
}
});
"""
script_obj = process.create_script(script)
script_obj.on("message", lambda msg, data: print(msg))
script_obj.load()
Поиск интересных строк в памяти процесса
import frida
process = frida.get_local_device().attach("target")
script = """
var pattern = "secret_key";
var matches = Memory.scanSync(0x400000, 0x500000, pattern);
matches.forEach(function(match) {
console.log("[FOUND] " + match.address);
});
"""
script_obj = process.create_script(script)
script_obj.on("message", lambda msg, data: print(msg))
script_obj.load()
Отключение проверки сертификата (SSL Pinning)
// Перехватываем функции SSL-проверки
Interceptor.attach(Module.findExportByName("libssl.so", "SSL_CTX_set_verify"), {
onEnter: function(args) {
console.log("[SSL] verify intercepted");
// Подменяем режим проверки на отключённый
args[1] = 0;
}
});
Чтение защищённой памяти
script = """
// Находим функцию decrypt
var decryptFunc = Module.findExportByName("libcrypto.so", "AES_decrypt");
Interceptor.attach(decryptFunc, {
onEnter: function(args) {
console.log("[INPUT] " + Memory.readByteArray(args[0], 16));
},
onLeave: function(result) {
console.log("[DECRYPTED] " + Memory.readUtf8String(args[1]));
}
});
"""
Modifying return values on the fly
Interceptor.attach(Module.findExportByName(null, "isAuthenticated"), {
onLeave: function(result) {
console.log("[Auth check bypassed]");
return 1; // Возвращаем true вместо false
}
});
Что это даёт:
🔴Анализ малвари без её запуска в отладчике (антидебюг не срабатывает) 🔴Снятие защиты приложений (SSL Pinning, Jailbreak Detection, AntiVM) 🔴Поиск учётных данных, ключей в памяти процесса 🔴Динамический анализ сетевого трафика и функций шифрования 🔴Тестирование безопасности мобильных приложений на Android/iOSFrida работает на уровне процесса, поэтому обходит большинство защит, которые смотрят на бинарник статически. Пишите в чат, какие свои трюки с Frida используете в анализе. 😈 CodeGuard: PySec Edition | Чат
🔵Перехват функций без изменения кода приложения 🔵Чтение и изменение аргументов функций на лету 🔵Доступ к памяти процесса без отладчика 🔵Работает с защищёнными приложениями (AntiDebug, AntiVM и т.д.) 🔵Поддержка Android, iOS, Windows, Linux, macOSУстановка
pip install frida frida-tools
Базовый пример: перехват функции
import frida
import sys
# Подключаемся к процессу по имени
process = frida.get_usb_device().attach("target.apk")
# JavaScript код, который будет выполняться в контексте процесса
script = """
Interceptor.attach(Module.findExportByName(null, "strlen"), {
onEnter: function(args) {
console.log("[strlen] arg: " + Memory.readUtf8String(args[0]));
},
onLeave: function(result) {
console.log("[strlen] result: " + result);
}
});
"""
script_obj = process.create_script(script)
script_obj.on("message", lambda msg, data: print(msg))
script_obj.load()
sys.stdin.read()
Перехват собственной функции приложения
import frida
process = frida.get_local_device().attach("myapp")
# Хукуем функцию по адресу
script = """
var checkPassword = new NativeFunction(
Module.findBaseAddress("libc.so") + 0x12345,
'bool',
['pointer']
);
Interceptor.attach(checkPassword, {
onEnter: function(args) {
var password = Memory.readUtf8String(args[0]);
console.log("[PASSWORD] " + password);
},
onLeave: function(result) {
console.log("[RESULT] " + result);
// Подменяем результат на true
return 1;
}
});
"""
script_obj = process.create_script(script)
script_obj.on("message", lambda msg, data: print(msg))
script_obj.load()
Поиск интересных строк в памяти процесса
import frida
process = frida.get_local_device().attach("target")
script = """
var pattern = "secret_key";
var matches = Memory.scanSync(0x400000, 0x500000, pattern);
matches.forEach(function(match) {
console.log("[FOUND] " + match.address);
});
"""
script_obj = process.create_script(script)
script_obj.on("message", lambda msg, data: print(msg))
script_obj.load()
Отключение проверки сертификата (SSL Pinning)
// Перехватываем функции SSL-проверки
Interceptor.attach(Module.findExportByName("libssl.so", "SSL_CTX_set_verify"), {
onEnter: function(args) {
console.log("[SSL] verify intercepted");
// Подменяем режим проверки на отключённый
args[1] = 0;
}
});
Чтение защищённой памяти
script = """
// Находим функцию decrypt
var decryptFunc = Module.findExportByName("libcrypto.so", "AES_decrypt");
Interceptor.attach(decryptFunc, {
onEnter: function(args) {
console.log("[INPUT] " + Memory.readByteArray(args[0], 16));
},
onLeave: function(result) {
console.log("[DECRYPTED] " + Memory.readUtf8String(args[1]));
}
});
"""
Modifying return values on the fly
Interceptor.attach(Module.findExportByName(null, "isAuthenticated"), {
onLeave: function(result) {
console.log("[Auth check bypassed]");
return 1; // Возвращаем true вместо false
}
});
Что это даёт:
🔴Анализ малвари без её запуска в отладчике (антидебюг не срабатывает) 🔴Снятие защиты приложений (SSL Pinning, Jailbreak Detection, AntiVM) 🔴Поиск учётных данных, ключей в памяти процесса 🔴Динамический анализ сетевого трафика и функций шифрования 🔴Тестирование безопасности мобильных приложений на Android/iOSFrida работает на уровне процесса, поэтому обходит большинство защит, которые смотрят на бинарник статически. Пишите в чат, какие свои трюки с Frida используете в анализе. 😈 CodeGuard: PySec Edition | Чат
nmap [IP-адрес] — сканирование одного хоста. nmap [домен.com] — сканирование по доменному имени. nmap 192.168.1.1-50 — сканирование диапазона IP-адресов. nmap 192.168.1.0/24 — сканирование всей подсети. nmap -iL list.txt — сканирование целей из текстового файла. nmap [цель] --exclude [IP] — исключение конкретного адреса из проверки.Методы обнаружения и типы сканирования:
-sn — Ping scan: только проверка, включен ли хост (без сканирования портов). -sS — TCP SYN scan: быстрый и относительно скрытный метод («полуоткрытое» сканирование). -sT — TCP Connect scan: полное установление соединения (используется без прав root). -sU — UDP scan: поиск открытых UDP-портов. -Pn — пропустить обнаружение хоста (сканировать, даже если хост не отвечает на пинг).Управление портами:
-p 80 — сканирование конкретного порта. -p 1-1024 — сканирование диапазона портов. -p- — сканирование всех 65535 портов. -F — быстрый режим (сканирование только 100 самых популярных портов). --top-ports 20 — сканирование двадцати наиболее распространенных портов.Определение сервисов и ОС:
-sV — определение версий запущенных служб и сервисов. -O — попытка определения операционной системы (OS detection). -sC — использование стандартных скриптов Nmap (NSE). -A — «агрессивный» режим: включает определение ОС, версий, скрипты и трассировку одновременно.Интенсивность и вывод данных:
-T[0-5] — установка скорости сканирования (от 0 — очень медленно до 5 — крайне агрессивно). -v / -vv — увеличение детализации вывода (verbose mode). -oN file.txt — сохранение результата в обычном текстовом файле. -oX file.xml — сохранение результата в формате XML. -oG file.txt — сохранение в формате, удобном для поиска через grep.Интересный факт: Nmap был разработан американским экспертом по кибербезопасности Гордоном Лайоном, более известным под сетевым псевдонимом Fyodor (Фёдор Васкович). Имя «Фёдор Васкович» было выбрано Лайоном в честь писателя Фёдора Достоевского 😈 CodeGuard: PySec Edition | Чат
