Мини-туториал: работа с jq в bash
Если вы парсите JSON в bash через
⚙️ Примеры:
❔Где пригодится?
- Парсинг ответов API (например, от
- Обработка конфигов в CI/CD.
- Быстрый анализ логов в JSON.
А какие ваши любимые jq-трюки?
P.S. Если jq кажется сложным, просто запомните: `.` — это текущий объект, `[]` — массив, а `|` — это pipe, как в bash. Всё просто!
🌐 @automate_today | #bash
jq — это как sed, но для JSONЕсли вы парсите JSON в bash через
grep и awk, остановитесь. Мир уже придумал jq — мощный и удобный инструмент. ⚙️ Примеры:
# 1. Достаём поле из JSON
echo '{"name": "Alice", "age": 30}' | jq '.name' # "Alice"
# 2. Фильтрация массива
echo '{"users": [{"name": "Alice", "active": true}, {"name": "Bob", "active": false}]}' | jq '.users[] | select(.active) | .name'
# 3. Форматирование JSON
cat ugly.json | jq '.' > pretty.json
❔Где пригодится?
- Парсинг ответов API (например, от
curl). - Обработка конфигов в CI/CD.
- Быстрый анализ логов в JSON.
А какие ваши любимые jq-трюки?
P.S.
🌐 @automate_today | #bash
👍4🤔1
Скрипт, который определяет, запущен ли он в Docker
"Я в контейнере или нет?" — философский вопрос для скрипта
Если ваш скрипт должен вести себя по-разному внутри и снаружи Docker, вот как это проверить.
Проверка в bash:
Проверка в Python:
❔Зачем это нужно?
- Менять пути к файлам (в Docker они часто другие).
- Отключать лишние проверки (например, если в контейнере нет systemd).
А вы сталкивались с проблемами "а где я запущен"?
🌐 @automate_today | #bash #python
"Я в контейнере или нет?" — философский вопрос для скрипта
Если ваш скрипт должен вести себя по-разному внутри и снаружи Docker, вот как это проверить.
Проверка в bash:
if grep -q docker /proc/1/cgroup 2>/dev/null || [ -f /.dockerenv ]; then
echo "Я в Docker! 🐳"
else
echo "Я на хосте! 💻"
fi
Проверка в Python:
import os
def is_docker():
return os.path.exists('/.dockerenv')
if is_docker():
print("Я в Docker! 🐳")
else:
print("Я на хосте! 💻")
❔Зачем это нужно?
- Менять пути к файлам (в Docker они часто другие).
- Отключать лишние проверки (например, если в контейнере нет systemd).
А вы сталкивались с проблемами "а где я запущен"?
P.S. Если скрипт говорит, что он не в Docker, а на самом деле он в Docker — возможно, вы используете --privileged без /.dockerenv.
🌐 @automate_today | #bash #python
👍4
Как найти все битые ссылки в системе?
"Мёртвые" симлинки — тихие убийцы свободного места
Битые символьные ссылки (symlinks) не только бесполезны, но и могут сломать скрипты. Найдём и удалим их!
🛠 Bash-команда для поиска:
🛠 PowerShell-вариант:
🛠 Что дальше?
- Удалить:
- Заменить на актуальные пути.
А вы часто сталкиваетесь с битыми ссылками?
🌐 @automate_today | #bash #powershell
"Мёртвые" симлинки — тихие убийцы свободного места
Битые символьные ссылки (symlinks) не только бесполезны, но и могут сломать скрипты. Найдём и удалим их!
🛠 Bash-команда для поиска:
find /path/to/search -type l ! -exec test -e {} \; -print 🛠 PowerShell-вариант:
Get-ChildItem -Path C:\ -Recurse -Force -ErrorAction SilentlyContinue |
Where-Object { $_.Attributes -match "ReparsePoint" -and !(Test-Path $_.FullName) }
🛠 Что дальше?
- Удалить:
find ... -delete (осторожно!). - Заменить на актуальные пути.
А вы часто сталкиваетесь с битыми ссылками?
P.S. Если find ничего не нашёл — либо у вас идеальная система, либо вы искали не там.
🌐 @automate_today | #bash #powershell
👍2
Вы уверены, что ваш cron работает?
🤔 Cron не запускается? Вот где искать проблемы
Если ваш
1. Проверьте логи:
2. Перезапустите cron:
3. Проверьте переменные окружения (cron их не видит!):
3. Проверьте права:
🛠 Используйте
А какие грабли с cronом вас больно били?
🌐 @automate_today | #bash
🤔 Cron не запускается? Вот где искать проблемы
Если ваш
cron молчит, как рыба, вот чек-лист для проверки: 1. Проверьте логи:
grep CRON /var/log/syslog
2. Перезапустите cron:
sudo service cron restart
3. Проверьте переменные окружения (cron их не видит!):
* * * * * echo $PATH > /tmp/cron_test.txt
3. Проверьте права:
chmod +x /path/to/script.sh
🛠 Используйте
crontab.guru для проверки синтаксиса расписания. А какие грабли с cronом вас больно били?
P.S. Если cron всё ещё не работает, возможно, он просто вас не любит. Или вы забыли >> /dev/null 2>&1? 😅
🌐 @automate_today | #bash
✍3
YAML — это новый XML?
YAML: удобный или слишком сложный?
YAML кажется простым, пока не попробуешь написать в нём что-то сложнее
👉 Пример "просто YAML":
🚨 А вот где начинается боль:
❔Почему YAML критикуют?
- Слишком много способов сделать одно и то же.
- Ошибки отступов (как в Python, но без явного синтаксиса).
- Неявное приведение типов (
А что вам больше нравится — YAML, JSON, TOML или старый добрый XML?
🌐 @helcode | #yaml
YAML: удобный или слишком сложный?
YAML кажется простым, пока не попробуешь написать в нём что-то сложнее
key: value. 👉 Пример "просто YAML":
server:
ports:
- 80
- 443
environment: production
🚨 А вот где начинается боль:
# Это число или строка?
version: 3.14
# А это?
version: "3.14"
# Многострочный текст с | и >
description: |
Это
многострочный
текст
❔Почему YAML критикуют?
- Слишком много способов сделать одно и то же.
- Ошибки отступов (как в Python, но без явного синтаксиса).
- Неявное приведение типов (
"123" vs 123). А что вам больше нравится — YAML, JSON, TOML или старый добрый XML?
P.S. Если YAML — это новый XML, то TOML — это новый INI. И так до бесконечности. 🔄
🌐 @helcode | #yaml
👍3
Как автоматизировать переключение VPN при утечке DNS
VPN включён, но DNS сливается? Пора это исправить!
Даже если трафик идёт через VPN, DNS-запросы могут "просачиваться" через ваш провайдер. Вот как автоматически переключать VPN при утечке.
🛠 Решение на Linux (bash + OpenVPN)
🛠 Решение на Windows (PowerShell)
❔Что ещё можно сделать?
- Использовать DNS over HTTPS (DoH) для дополнительной защиты.
- Настроить kill-switch в настройках VPN.
А вы проверяете, не "светится" ли ваш реальный IP при работе с VPN?
🌐 @helcode | #bash #powershell
VPN включён, но DNS сливается? Пора это исправить!
Даже если трафик идёт через VPN, DNS-запросы могут "просачиваться" через ваш провайдер. Вот как автоматически переключать VPN при утечке.
🛠 Решение на Linux (bash + OpenVPN)
#!/bin/bash
VPN_INTERFACE="tun0"
DNS_SERVER="10.8.0.1" # DNS вашего VPN
while true; do
CURRENT_DNS=$(resolvectl | grep 'Current DNS Server' | awk '{print $4}')
if [ "$CURRENT_DNS" != "$DNS_SERVER" ]; then
echo "Утечка DNS! Перезапускаю VPN..."
systemctl restart openvpn
fi
sleep 60 # Проверка каждую минуту
done
🛠 Решение на Windows (PowerShell)
$VPNInterface = "Ethernet 2" # Имя интерфейса VPN
$CorrectDNS = "10.8.0.1"
while ($true) {
$CurrentDNS = (Get-DnsClientServerAddress -InterfaceAlias $VPNInterface).ServerAddresses
if ($CurrentDNS -notcontains $CorrectDNS) {
Write-Host "Обнаружена утечка DNS! Переподключаю VPN..."
Restart-Service -Name "OpenVPNService"
}
Start-Sleep -Seconds 60
}
❔Что ещё можно сделать?
- Использовать DNS over HTTPS (DoH) для дополнительной защиты.
- Настроить kill-switch в настройках VPN.
А вы проверяете, не "светится" ли ваш реальный IP при работе с VPN?
P.S. Если скрипт постоянно перезапускает VPN, возможно, проблема не в DNS, а в самом VPN-сервере. 🕵️♂️
🌐 @helcode | #bash #powershell
👍2❤1
Скрипт для мгновенного развертывания honeypot
Хотите поймать злоумышленников? Разверните honeypot за 5 минут!
🍯 Honeypot ("медовая ловушка") имитирует уязвимый сервис, чтобы записывать атаки.
⚙️ Простейший honeypot на Python (HTTP-сервер с логом)
🦾 Усложнённый вариант (с записью в файл)
❔Что можно улучшить?
- Добавить Telegram-уведомления при атаке.
- Развернуть Cowrie (имитация SSH-сервера).
А вы когда-нибудь разворачивали honeypot? Какие инструменты использовали?
🌐 @helcode | #python #bash
Хотите поймать злоумышленников? Разверните honeypot за 5 минут!
🍯 Honeypot ("медовая ловушка") имитирует уязвимый сервис, чтобы записывать атаки.
⚙️ Простейший honeypot на Python (HTTP-сервер с логом)
from http.server import BaseHTTPRequestHandler, HTTPServer
import datetime
class HoneypotHandler(BaseHTTPRequestHandler):
def do_GET(self):
ip = self.client_address[0]
print(f"[{datetime.datetime.now()}] Попытка доступа от {ip} к {self.path}")
self.send_response(404)
self.end_headers()
server = HTTPServer(('0.0.0.0', 8080), HoneypotHandler)
print("Honeypot запущен на порту 8080...")
server.serve_forever()
🦾 Усложнённый вариант (с записью в файл)
nohup python3 honeypot.py > attacks.log 2>&1 &
❔Что можно улучшить?
- Добавить Telegram-уведомления при атаке.
- Развернуть Cowrie (имитация SSH-сервера).
А вы когда-нибудь разворачивали honeypot? Какие инструменты использовали?
P.S. Если ваш honeypot начал "ловить" вас самого, возможно, вы забыли сменить порт. 😅
🌐 @helcode | #python #bash
👍2
Как тихо собрать все метаданные в сети
Passive recon: собираем данные, не привлекая внимания
Прежде чем тестировать безопасность сети, нужно разведать её структуру. Вот как сделать это незаметно.
Сбор информации без сканирования (Linux)
PowerShell-версия (Windows)
❗️Важно:
- Не нарушайте законы! Используйте только в своей сети или с разрешения.
- Для этичного тестирования лучше Nmap (
Какие инструменты для сбора метаданных вы считаете самыми эффективными?
🌐 @helcode | #bash #powershell
Passive recon: собираем данные, не привлекая внимания
Прежде чем тестировать безопасность сети, нужно разведать её структуру. Вот как сделать это незаметно.
Сбор информации без сканирования (Linux)
# 1. ARP-таблица (уже подключённые устройства)
arp -a
# 2. DNS-записи (если есть доступ)
dig example.com ANY
# 3. Слушаем сетевой трафик (только заголовки)
tcpdump -i eth0 -nn -c 100 'port 53 or port 80'
PowerShell-версия (Windows)
# 1. ARP-кэш
Get-NetNeighbor
# 2. Активные подключения
Get-NetTCPConnection | Where-Object { $_.State -eq "Established" }
# 3. DNS-кэш
Get-DnsClientCache
❗️Важно:
- Не нарушайте законы! Используйте только в своей сети или с разрешения.
- Для этичного тестирования лучше Nmap (
nmap -sS -T4 192.168.1.0/24). Какие инструменты для сбора метаданных вы считаете самыми эффективными?
P.S. Если tcpdump ничего не показывает, проверьте, не блокирует ли брандмауэр трафик.
🌐 @helcode | #bash #powershell
🔥4🤔2
Скрипт для автоматического обновления всех зависимостей
"Апдейты — это скучно" — сказал каждый, пока не сломался prod
Ручное обновление зависимостей — это риск забыть что-то важное. Давайте автоматизируем!
Для Python (pip)
Для Node.js (npm)
➡️ Дополнительные фичи:
- Уведомления в Telegram при критических обновлениях.
- Откат, если тесты не проходят.
А вы обновляете зависимости вручную или автоматически?
🌐 @helcode | #bash
"Апдейты — это скучно" — сказал каждый, пока не сломался prod
Ручное обновление зависимостей — это риск забыть что-то важное. Давайте автоматизируем!
Для Python (pip)
#!/bin/bash
# Обновляем pip
pip install --upgrade pip
# Обновляем все пакеты
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
# Проверяем, не сломалось ли что-то
pytest tests/
Для Node.js (npm)
npx npm-check-updates -u
npm install
npm test
➡️ Дополнительные фичи:
- Уведомления в Telegram при критических обновлениях.
- Откат, если тесты не проходят.
А вы обновляете зависимости вручную или автоматически?
P.S. Если после npm install всё сломалось, вспомните, что package-lock.json существует не просто так. 😬
🌐 @helcode | #bash
👍3❤1
Скрипт для автоудаления старых логов
Старые логи могут заполнить сервер, если их не удалять. Простое решение —
Bash-скрипт (удаляет логи старше 30 дней)
Добавляем в cron (ежедневно в 3:00)
Варианты:
- Сжимать логи перед удалением (
- Исключить важные логи (
Как вы чистите логи? Удаляете, архивируете или отправляете в SIEM?
🌐 @helcode | #bash
Старые логи могут заполнить сервер, если их не удалять. Простое решение —
find + cron. Bash-скрипт (удаляет логи старше 30 дней)
#!/bin/bash
LOG_DIR="/var/log"
find "$LOG_DIR" -type f -name "*.log" -mtime +30 -delete
Добавляем в cron (ежедневно в 3:00)
0 3 * * * /path/to/clean_logs.sh
Варианты:
- Сжимать логи перед удалением (
gzip). - Исключить важные логи (
-not -name "important.log"). Как вы чистите логи? Удаляете, архивируете или отправляете в SIEM?
P.S. Если find ругается на права, попробуйте sudo или настройте logrotate.
🌐 @helcode | #bash
👍6
🔧 Helcode | Хелкод | Скрипты и автоматизация
Друзья, у нас важные новости!
Мы долго работали над улучшением наших решений, и теперь пришло время сделать следующий шаг. Наша группа меняет название - теперь мы Helcode (от help + code), но остаёмся верными своей миссии: давать Вам интересный контент, делиться кейсами и полезными инструментами для автоматизации.
Почему Helcode?
⚙️ Яснее суть - код, который реально помогает в работе
⚙️ Больше масштаб - готовим новые продукты и сервисы
⚙️ Тот же контент - ещё больше скриптов, инструкций и готовых решений
Это не просто смена названия - это наш рост вместе с Вами!
💬 Как вам новое имя? Поделитесь Вашим мнением!
Друзья, у нас важные новости!
Мы долго работали над улучшением наших решений, и теперь пришло время сделать следующий шаг. Наша группа меняет название - теперь мы Helcode (от help + code), но остаёмся верными своей миссии: давать Вам интересный контент, делиться кейсами и полезными инструментами для автоматизации.
Почему Helcode?
⚙️ Яснее суть - код, который реально помогает в работе
⚙️ Больше масштаб - готовим новые продукты и сервисы
⚙️ Тот же контент - ещё больше скриптов, инструкций и готовых решений
Это не просто смена названия - это наш рост вместе с Вами!
💬 Как вам новое имя? Поделитесь Вашим мнением!
👌6👍5🥴1
Как проверить доступность порта?
Telnet, Netcat, Curl — что быстрее?
🧑💻 Проверить, открыт ли порт, можно десятком способов. Вот самые популярные.
Плюсы: просто.
Минусы: нет таймаута, не везде установлен.
Плюсы: быстро, есть таймаут (
Минусы: требует установки.
Плюсы: проверяет именно HTTP-ответ.
Минусы: только для веба.
Какой ваш любимый способ проверить порт?
🌐 @helcode | #bash
Telnet, Netcat, Curl — что быстрее?
🧑💻 Проверить, открыт ли порт, можно десятком способов. Вот самые популярные.
telnet (если есть) telnet example.com 80
Плюсы: просто.
Минусы: нет таймаута, не везде установлен.
nc (Netcat) nc -zv example.com 443
Плюсы: быстро, есть таймаут (
-w 5). Минусы: требует установки.
curl (для HTTP/HTTPS) curl -I http://example.com:80
Плюсы: проверяет именно HTTP-ответ.
Минусы: только для веба.
Какой ваш любимый способ проверить порт?
P.S. Если все три метода не работают, возможно, firewall вас ненавидит.
🌐 @helcode | #bash
👍5
Одноразовый HTTP-сервер за 1 команду
Нужно срочно передать файл? Поднимаем сервер за секунду!
Python 3
Ruby
PHP
⚙️ Использование:
- Раздача файлов в локальной сети.
- Быстрый тест HTML-страницы.
❗️Важно:
Не оставляйте такой сервер надолго — он не защищён!
Какой вариант вам удобнее?
🌐 @helcode | #bash
Нужно срочно передать файл? Поднимаем сервер за секунду!
Python 3
python3 -m http.server 8000
Ruby
ruby -run -e httpd . -p 8000
PHP
php -S 0.0.0.0:8000
⚙️ Использование:
- Раздача файлов в локальной сети.
- Быстрый тест HTML-страницы.
❗️Важно:
Не оставляйте такой сервер надолго — он не защищён!
Какой вариант вам удобнее?
P.S. Если порт 8000 занят, попробуйте 8080. Или 80, если есть права.
🌐 @helcode | #bash
🔥3
NoSQL — почему это не всегда хорошо?
NoSQL (MongoDB, Redis) — не панацея. Вот когда PostgreSQL лучше:
1. Нужны сложные JOIN-запросы
NoSQL не поддерживает JOIN в классическом виде.
2. Транзакции
PostgreSQL:
MongoDB: много документные транзакции сложнее.
3. ACID-гарантии
Если данные должны быть точными (банк, медсистемы), реляционные БД надёжнее.
В каких проектах вы предпочитаете NoSQL, а где — SQL?
🌐 @helcode | #sql
NoSQL (MongoDB, Redis) — не панацея. Вот когда PostgreSQL лучше:
1. Нужны сложные JOIN-запросы
NoSQL не поддерживает JOIN в классическом виде.
2. Транзакции
PostgreSQL:
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE user_id = 2;
COMMIT;
MongoDB: много документные транзакции сложнее.
3. ACID-гарантии
Если данные должны быть точными (банк, медсистемы), реляционные БД надёжнее.
В каких проектах вы предпочитаете NoSQL, а где — SQL?
P.S. Если MongoDB — это свобода, то PostgreSQL — это правила. И то, и другое нужно.
🌐 @helcode | #sql
👍4
Как работать с массивами в bash?
Циклы, сортировка, поиск — всё для массивов в bash
1. Создание массива
2. Доступ к элементам
3. Цикл по массиву
4. Фильтрация
Часто ли вы используете массивы в bash-скриптах?
🌐 @helcode | #bash
Циклы, сортировка, поиск — всё для массивов в bash
1. Создание массива
fruits=("Яблоко" "Груша" "Апельсин") 2. Доступ к элементам
echo ${fruits[0]} # Яблоко
echo ${fruits[@]} # Все элементы 3. Цикл по массиву
for fruit in "${fruits[@]}"; do
echo "Фрукт: $fruit"
done 4. Фильтрация
# Только элементы с буквой "а"
printf '%s\n' "${fruits[@]}" | grep "а"
Часто ли вы используете массивы в bash-скриптах?
P.S. Если скрипт работает не так, проверьте кавычки: "${array[@]}" и ${array[*]} — это не одно и то же!
🌐 @helcode | #bash
👍6❤1
Автоматическое обновление Windows-серверов
Модуль
1. Установка модуля
2. Проверка обновлений
3. Установка (с перезагрузкой, если нужно)
4. Добавляем в планировщик
❗️Важно:
- Тестируйте обновления в dev-среде!
- Можно исключить конкретные KB (
Как вы обновляете Windows-серверы? WSUS, SCCM или скрипты?
🌐 @helcode | #powershell
Модуль
PSWindowsUpdate позволяет апдейтить серверы без RDP. 1. Установка модуля
Install-Module -Name PSWindowsUpdate -Force
2. Проверка обновлений
Get-WindowsUpdate
3. Установка (с перезагрузкой, если нужно)
Install-WindowsUpdate -AcceptAll -AutoReboot
4. Добавляем в планировщик
Register-ScheduledJob -Name "AutoUpdate" -ScriptBlock {
Install-WindowsUpdate -AcceptAll -AutoReboot
} -Trigger (New-JobTrigger -Weekly -At "3:00 AM") ❗️Важно:
- Тестируйте обновления в dev-среде!
- Можно исключить конкретные KB (
-NotKBArticleID "KB1234567"). Как вы обновляете Windows-серверы? WSUS, SCCM или скрипты?
P.S. Если после обновления что-то сломалось, вините Patch Tuesday.
🌐 @helcode | #powershell
👍3
Скрипт, который автоматически находит и убивает процессы-зомби
🧟 «Зомби» едят память? Пора их остановить!
Зомби-процессы (со статусом
⚙️ Bash-скрипт для поиска и убийства
❔Как добавить в cron?
Часто ли вы сталкиваетесь с зомби-процессами?
🌐 @helcode | #bash
🧟 «Зомби» едят память? Пора их остановить!
Зомби-процессы (со статусом
Z) — это завершённые процессы, но ещё не закрытые родителем. ⚙️ Bash-скрипт для поиска и убийства
#!/bin/bash
# Ищем зомби-процессы
zombies=$(ps aux | awk '{if ($8=="Z") print $2}')
if [ -z "$zombies" ]; then
echo "Зомби не найдены. Все чисто!"
else
echo "Найдены зомби: $zombies"
kill -9 $zombies
fi
❔Как добавить в cron?
*/10 * * * * /path/to/kill_zombies.sh
Часто ли вы сталкиваетесь с зомби-процессами?
P.S. Если зомби возвращаются, возможно, проблема в родительском процессе. Ищите root cause!
🌐 @helcode | #bash
👍6
Темная сторона cron: 5 скрытых опасностей
Cron кажется простым, пока не сломает продакшн
1. Переменные окружения
Cron не знает ваш
2. Перенаправление вывода
Без
3. Блокировки (race conditions)
Если скрипт работает дольше интервала, запустятся две копии. Решение:
4. Разные шеллы
Cron использует
5. Неправильное время
Cron живёт в UTC, а не в вашем часовом поясе. Проверяйте:
Какие грабли с cronом вас больно били?
🌐 @helcode | #bash
Cron кажется простым, пока не сломает продакшн
1. Переменные окружения
Cron не знает ваш
$PATH! Всегда указывайте полные пути: 0 * * * * /usr/bin/python3 /scripts/backup.py
2. Перенаправление вывода
Без
> /dev/null 2>&1 cron будет слать письма на локальную почту. 3. Блокировки (race conditions)
Если скрипт работает дольше интервала, запустятся две копии. Решение:
flock -n /tmp/script.lock /scripts/script.sh
4. Разные шеллы
Cron использует
/bin/sh, а не ваш любимый bash. Тестируйте так: /bin/sh -c "/scripts/test.sh"
5. Неправильное время
Cron живёт в UTC, а не в вашем часовом поясе. Проверяйте:
TZ=Europe/Moscow date
Какие грабли с cronом вас больно били?
P.S. Если cron молчит, проверьте /var/log/syslog — там обычно есть ответ.
🌐 @helcode | #bash
👍3❤1
Автоматизация пентеста: сканирование уязвимостей в один клик
🔓 Хотите проверить свою сеть? Автоматизируем поиск дыр!
1. Быстрое сканирование открытых портов (Nmap)
2. Проверка уязвимостей (Nikto для веба)
3. Автоматический отчёт (сборка в HTML)
❗️Важно:
- Делайте только с разрешения!
- Для автоматизации используйте Metasploit Framework или OpenVAS.
Какие инструменты для пентеста вы используете чаще всего?
🌐 @helcode | #bash
🔓 Хотите проверить свою сеть? Автоматизируем поиск дыр!
1. Быстрое сканирование открытых портов (Nmap)
nmap -sV -T4 192.168.1.0/24 -oN scan.txt
2. Проверка уязвимостей (Nikto для веба)
nikto -h http://example.com -output vuln.html
3. Автоматический отчёт (сборка в HTML)
nmap -sV --script=vulners -oX scan.xml 192.168.1.1
xsltproc scan.xml -o report.html
❗️Важно:
- Делайте только с разрешения!
- Для автоматизации используйте Metasploit Framework или OpenVAS.
Какие инструменты для пентеста вы используете чаще всего?
P.S. Если Nmap ругается на права, попробуйте sudo или nmap -Pn.
🌐 @helcode | #bash
👍5
Скрипт, который автоматически пишет вам оправдания
Генератор случайных "технических" оправданий для начальства. Пост шуточный, всерьез не воспринимайте :)
Python-скрипт
Bash-версия
Какое ваше любимое "техническое" оправдание?
🌐 @helcode | #python #bash
Генератор случайных "технических" оправданий для начальства. Пост шуточный, всерьез не воспринимайте :)
Python-скрипт
import random
excuses = [
"Это баг в библиотеке, уже фиксят.",
"Коллега задеплоил без тестов.",
"DNS-кеш.",
"Виноват рефакторинг.",
"Это фича, а не баг.",
]
print(random.choice(excuses))
Bash-версия
#!/bin/bash
excuses=(
"Это баг в библиотеке, уже фиксят."
"Коллега задеплоил без тестов."
"DNS-кеш."
)
echo ${excuses[$RANDOM % ${#excuses[@]}]}
Какое ваше любимое "техническое" оправдание?
P.S. Если скрипт выдаёт одно и то же, проверьте $RANDOM. Или вините кеш.
🌐 @helcode | #python #bash
👍2