Admin Future
241 subscribers
51 photos
1 video
4 files
120 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
🔥 React2Shell: Новый кошмар для веб-серверов (CVSS 10.0)

Коллеги, если вы админите веб-инфраструктуру, отложите кофе. В сети разгорается пожар, получивший имя React2Shell (CVE-2025-55182). Это RCE (Remote Code Execution) с максимальным рейтингом 10 из 10.

Суть: Уязвимость в React и Next.js (компоненты React Server Components). Атакующему не нужна авторизация. Он просто отправляет специально сформированный HTTP-запрос к эндпоинту серверной функции, и сервер выполняет произвольный код.

Кто под ударом: Любой публичный сервис, использующий SSR (Server Side Rendering) на свежих версиях Next.js.

Что делать прямо сейчас:
1. Патчинг: Обновите react и next до последних версий, выпущенных вчера.
2. WAF: Если патчить долго (легаси), срочно настраивайте WAF.
3. Cloudflare уже выкатил правила (и даже положил ими часть интернета 5 декабря, см. следующий пост).
4. Nginx/ModSecurity: Блокируйте запросы, содержащие подозрительные сериализованные пейлоады в теле POST.

Маркеры компрометации (IoC): Смотрите логи на предмет странных вызовов к /_next/static/... с аномально большими телами запросов.

#security #cve #react2shell #alert #vulnerability #web
🟢 Caddy: Веб-сервер для тех, кто ценит время

Nginx прекрасен, но настройка HTTPS, получение сертификатов Let's Encrypt и ротация ключей — это рутина. Если вы поднимаете пет-проект или домашний сервер, взгляните на Caddy.

Это веб-сервер нового поколения, написанный на Go.

Киллер-фича: Автоматический HTTPS по умолчанию. Вы просто пишете домен в конфиге, и Caddy сам стучится в Let's Encrypt, получает сертификат, привязывает его и настраивает редирект с HTTP на HTTPS.

Конфиг (Caddyfile) для Reverse Proxy: Вместо 50 строк в Nginx, здесь всего 3:

my-project.com {
reverse_proxy localhost:3000
}

Всё. HTTP/3 (QUIC) включен из коробки. Сертификат получен. Прокси работает. Идеально для выходных экспериментов.

#caddy #web #nginx #https #homelab #opensource
👍2
⏱ Curl: Почему сайт тормозит? (Разбираем на атомы)

Когда пользователь говорит «сайт долго грузится», это эмоции. Админу нужны цифры. Проблема в DNS? Или SSL-хендшейк долгий? Или бэкенд тупит?

curl умеет раскладывать тайминги запроса по полочкам.

Команда:

curl -w "DNS: %{time_namelookup}s \nConnect: %{time_connect}s \nSSL Handshake: %{time_appconnect}s \nTTFB: %{time_starttransfer}s \nTotal: %{time_total}s \n" -o /dev/null -s https://google.com

Что значат цифры:

DNS: Сколько искали IP. Если долго — меняйте DNS-сервер.

Connect: TCP-подключение. Если долго — проблемы с сетью/маршрутами.

SSL: Криптография.

TTFB (Time To First Byte): Время, пока сервер думал над ответом. Если здесь 2 секунды — идите бить разработчиков, база тормозит.

Совет: Засуньте эту "колбасу" в алиас curl-time.

#network #curl #troubleshooting #performance #web #cli
🔥2
🕸 GoAccess: Превращаем логи Nginx в красивый отчет

Твой босс спрашивает: "Сколько людей было на сайте вчера? С каких стран? Были ли ошибки 404?". Ты можешь грепать access.log полчаса. А можешь запустить GoAccess.

Это анализатор веб-логов, который работает в двух режимах:

1. TUI (в терминале): Красивая псевдографика с барами и статистикой.

2. HTML (веб-отчет): Генерирует интерактивную HTML-страницу с графиками, которую не стыдно показать директору.

Запуск одной строкой:


goaccess /var/log/nginx/access.log --log-format=COMBINED -a -o report.html

Он парсит гигабайты логов за секунды, определяет ботов, браузеры, гео-локацию и самые тяжелые запросы.

#web #logs #nginx #goaccess #analytics #tools #visualization
❤3🔥1
🧠 Network: Тест сайта без правки hosts (curl --resolve)

Ситуация: Вы переносите корпоративный портал на новый сервер (IP 10.0.0.5 ). Вам нужно проверить, как он отвечает, до того, как вы переключите DNS для всех пользователей.

Боль: Править файл hosts , сбрасывать кэш браузера, потом не забыть удалить запись... Долго и грязно. 😖

Решение Архитектора: Используйте curl с подменой IP на лету.

Команда:


# Запросить domain.com, но стучаться принудительно на 10.0.0.5
curl -v --resolve domain.com:443:10.0.0.5 https://domain.com

В чем магия: Вы увидите, валиден ли SSL-сертификат именно на новом сервере и какие заголовки он отдает. Файл hosts трогать не нужно! Чисто, быстро, профессионально.

#network #curl #dns #migration #testing #web #hacks
🔥2👍1
🏎️ Curl: Почему сайт тормозит? (Разбор на атомы)

Пользователь жалуется: "Сайт открывается полчаса".
Вы пингуете — пинг ок. Где затык? DNS тупит? Канал забит? Или Бэкенд (PHP/Python) долго думает?

Чтобы не гадать, используйте curl с форматированием. Он покажет тайминги каждого этапа.

Команда (сохрани в алиасы!):


curl -w "\nDNS: %{time_namelookup}s\nTCP: %{time_connect}s\nSSL: %{time_appconnect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" -o /dev/null -s https://google.com

Как читать диагностику:

* DNS: Высокое? 👉 Виноват провайдер или ваш DNS-сервер.

* TCP: Высокое? 👉 Проблемы с маршрутизацией или каналом.

* TTFB (Time To First Byte): Высокое? 👉 Сервер получил запрос, но долго генерировал ответ (БД, код). Сеть не виновата!

Total: Общее время.

Это лучший способ доказать разработчикам, что проблема на их стороне (или убедиться, что на вашей).

#network #curl #troubleshooting #performance #web #latency #tips
🌐 Skill: curl с секундомером — дебажим тормоза сайта ⏱️

Пользователи жалуются: "Сайт открывается медленно".
Ты пингуешь — пинг отличный.
В чем дело? В DNS? В установке SSL? В генерации страницы бэкендом?

Обычный curl просто качает HTML.
Но если добавить форматирование, он превращается в мощнейший профайлер.

Команда-диагност:

curl -w "\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nSSL Handshake: %{time_appconnect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" -o /dev/null -s https://google.com

Что ты увидишь:
* DNS: Сколько искали IP.
* Connect: Сколько устанавливали TCP.
* SSL Handshake: Сколько времени заняло шифрование (частая причина тормозов!).
* TTFB: Как долго думал сервер, прежде чем отдать первый байт.

Сразу видно: если DNS быстрый, а TTFB долгий — иди пинать разработчиков БД, сеть тут ни при чем. 🏎️

#networking #curl #performance #troubleshooting #web #devops #latency
👍3🔥2👏1
🌐 WordPress CVE-2026-87902 — 10-летняя дыра в ядре. В активной эксплуатации с первых часов

Коллеги, если у вас на балансе или поддержке есть хоть один сайт на WordPress (корпоративный портал, лендинг визитка или старый блог) — бросайте текущие таски и проверяйте версии прямо сейчас.

📌 ФАКТЫ
Уязвимость: CVE-2026-87902 (CVSS 4.0: 9.2, CWE-98).

Масштаб катастрофы: уязвимы все версии с WordPress 4.7.0 по 7.1.1 — это почти 10 лет релизов.

Где поправлено: релиз 7.1.2 + выпущены бэкпорты во все поддерживаемые ветки вплоть до 4.7.

В чём суть бага: функция get_page_template() в wp-includes/template.php парсила имя шаблона напрямую из параметра pagename без вызова validate_file(). Итог — неаутентифицированный Local File Inclusion (LFI).

Автообновления раскатывали фикс с 22 сентября, но дыра уже внесена в CISA KEV. Сканирование и эксплуатация начались практически сразу после публикации адвайзори.

⚠️ КОГДА LFI ПРЕВРАЩАЕТСЯ В ПОЛНЫЙ RCE
Для удаленного выполнения кода злоумышленнику требуется совпадение трех факторов:

Каталог в теме: внутри активной темы есть директория верхнего уровня с префиксом page- (типичная история для дефолтных тем WordPress и популярных кастомных шаблонов).

Файл-трамплин: на сервере присутствует пригодный для инклуда PHP-скрипт (классический вектор — pearcmd.php из состава PEAR).

Окружение PHP: включена директива register_argc_argv = On. Она по умолчанию активна в официальных Docker-образах PHP, а также на хостингах с cPanel на версиях PHP ниже 8.5.

🛠 БЫСТРЫЙ ЧЕК ЧЕРЕЗ КОНСОЛЬ
Bash
# 1. Проверяем текущую версию WordPress
grep "wp_version =" /var/www/*/wp-includes/version.php
# или через WP-CLI:
wp core version --path=/var/www/site

# 2. Проверяем фактор риска №1 (каталоги page-* в активной теме)
ls -d /var/www/site/wp-content/themes/*/page-*/ 2>/dev/null

# 3. Ищем pearcmd.php на хосте
find / -name pearcmd.php 2>/dev/null

# 4. Проверяем флаг register_argc_argv
php -i | grep "register_argc_argv"

# 5. Грепаем логи веб-сервера на попытки пробить path traversal
grep -E "pagename=.*(\.\./|%2e%2e)" /var/log/nginx/access.log* /var/log/apache2/access.log* 2>/dev/null

🛡 ЧТО ДЕЛАТЬ (ЧЕКЛИСТ)
Обновиться: накатить 7.1.2 (или минорный секьюрити-патч для вашей ветки):

Bash
wp core update --path=/var/www/site

Проверить автообновления: убедитесь, что в wp-config.php не захардкожены флаги AUTOMATIC_UPDATER_DISABLED = true или WP_AUTO_UPDATE_CORE = false.

Харденинг (если немедленный патч невозможен): принудительно выставить register_argc_argv = Off в php.ini и полностью снести пакет PEAR, если он не задействован в проекте.

Форензика при совпадении условий: если все три фактора RCE сошлись, а сайт не был обновлен до 22 сентября — ищите новосозданные .php файлы и веб-шеллы в директории wp-content/uploads/.

Уверенность в том, что «сайт на WP сам обновляется в фоне» — опасная иллюзия, пока вы лично не убедились в версии через CLI. Делов на одну строчку в терминале.

#wordpress #security #web #cve #kev #lfi #rce #php #sysadmin #admin_future
🐘 PHP: две критические уязвимости 9.2 без аутентификации. Вышли 8.5.12, 8.4.27, 8.3.36 и 8.2.35

Коллеги, четверг. Если у вас есть хоть один сайт, WordPress, Nextcloud или Roundcube — это про вас.

📌 ФАКТЫ
21 октября вышли PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35

Закрыты две уязвимости с оценкой 9.2, обе — удалённое выполнение кода без аутентификации:

повреждение памяти при обработке нехватки памяти (OOM)

использование глобального состояния после освобождения памяти

Номера CVE и условия срабатывания в первых публикациях не раскрыты. Разработчики заранее предупреждали хостинги о выходе патча

🛠 ГДЕ У ВАС PHP
Bash
php -v
ls /etc/php/ 2>/dev/null # все установленные ветки (Debian/Ubuntu)
systemctl list-units --type=service | grep -E 'php.*fpm'
docker ps --format '{{.Names}}\t{{.Image}}' | grep -i -E 'php|wordpress|nextcloud'

Bash
# Debian/Ubuntu: обновить и перезапустить FPM
apt update && apt install --only-upgrade 'php*'
systemctl restart 'php*-fpm'

⚠️ НЕ ЗАБЫТЬ
Контейнеры не обновятся через apt хоста — нужен docker compose pull && docker compose up -d

В дистрибутивах исправление придёт под своей версией пакета — сверяйте с бюллетенем дистрибутива

PHP 8.1 и старше без поддержки — патча не будет

💡 В ЧЁМ СУТЬ
PHP — общий знаменатель для половины веб-приложений. Одно обновление интерпретатора закрывает риск сразу для всех сайтов на сервере, а пропущенное оставляет открытыми все. Сегодня — день обновления FPM и образов.

#php #web #security #wordpress #nextcloud #sysadmin #admin_future
👍1
🐘 PHP2Shell: эксплуатация подтверждена. Плюс новая уязвимость PHP без патча — есть временная мера

Коллеги, вторник. Продолжение истории с PHP: от сканирования перешли к реальным взломам.

📌 ФАКТЫ
CVE-2026-109618 и CVE-2026-109619 (PHP2Shell) — две критические RCE, закрытые 21 октября

24 октября на ханипоте зафиксировано подтверждённое удалённое выполнение кода с последующей загрузкой полезной нагрузки (Apache + mod_php, PHP 8.4.26)

Amazon Threat Intelligence видела попытки атак за четыре дня до выхода патчей

CISA 23 октября опубликовала SIGMA-правило для обнаружения попыток эксплуатации

Отдельно: CVE-2026-115560 — ещё одна RCE, пока без патча. По словам разработчиков, затрагивает системы с редким сочетанием конфигурации и кода приложения. Временная мера: session.upload_progress.enabled = 0

🛠 ПРОВЕРКА И ВРЕМЕННАЯ МЕРА
Bash
php -v | head -1
apache2ctl -M 2>/dev/null | grep -i php # mod_php или FPM
php -i | grep session.upload_progress.enabled

Bash
# Debian/Ubuntu: отключить для всех SAPI
for d in /etc/php/*/{fpm,apache2,cli}/conf.d; do
[ -d "$d" ] && echo 'session.upload_progress.enabled = 0' > "$d/99-upload-progress.ini"
done
systemctl restart 'php*-fpm' apache2 2>/dev/null

💡 В ЧЁМ СУТЬ
Патч от 21 октября обязателен, но его одного уже мало. Если не обновлялись на прошлой неделе — проверьте сервер на следы взлома: новые PHP-файлы в каталогах сайтов, незнакомые процессы от пользователя веб-сервера, исходящие соединения.

#php #security #web #apache #cve #sysadmin #admin_future