LINUXTALKS.CO

Автозапуск tmux с эффектом печати в фоновом режиме

 ,

L


0

1

В прошлой серии я расписывал как запускать команды внутри tmux, и как запустить сам tmux при логине в систему.

Сейчас я решил пойти ещё дальше и сделать чтобы всё выглядило так:

  • Система загружается
  • Автологин root’а в tty1
  • Запуск tmux
  • Что за хакер запускает команды в моём tmux???

Для того, чтобы при логине автоматически стартовал tmux, нужно в ~/.bash_profile добавить

autorun_tmux () {
tmux_exec="$(/usr/bin/env which tmux)"
bash_exec="$(/usr/bin/env which bash)"

if $tmux_exec has-session 1>/dev/null 2>/dev/null; then
:
else
$tmux_exec start-server
$tmux_exec new-session -d "$bash_exec -l"
$tmux_exec new-session -d "$bash_exec -l -c ~/.tmux.autorun"
$tmux_exec attach -d -t 0
$tmux_exec attach
fi
}

autorun () {
autorun_tmux
}

autorun

В данном случае запускается сервер tmux, затем запускается сессия по-умолчанию с именем 0, а так же запускается ещё одна сессия с именем 1, – вторая сессия нужна для того, чтобы запустить скрипт в фоновом режиме, затем мы переключаемся обратно на основную сессию 0 и подключаем tmux уже будучи залогинены в tty1.

Далее мы напишем скрипт, который создаёт эффект присутствия.

Назовём его ~/.tmux.script

#!/bin/bash

tmux_push () {
tmux_exec="$(/usr/bin/env which tmux)"
tmux_pane="0:0"
$tmux_exec send -t $tmux_pane Enter
unset tmux_pane
unset tmux_exec
}
tmux_pass () {
tmux_exec="$(/usr/bin/env which tmux)"
tmux_pane="0:0"
tmux_text="$(cat -)"
while ! test "${#tmux_text}" = "0"; do
tmux_char="${tmux_text:0:1}"
tmux_text="${tmux_text:1}"
$tmux_exec send -t $tmux_pane "$tmux_char"
sleep .2
done
unset tmux_char
unset tmux_text
unset tmux_pane
unset tmux_exec
}

Просто две функции, одна отправляет любой текст в активное окно tmux с задержкой 200мс, создавая эффект печати текста человеком, вторая команда просто отправляет Enter.

Теперь напишем простой сценарий.

#!/bin/bash

. ~/.tmux.script

echo "ssh-keygen -t ed25519" 	| tmux_pass
sleep 1				; tmux_push
sleep 1				; tmux_push
sleep 1				; tmux_push
sleep 1				; tmux_push

sleep 3

echo "rm -r ~/.ssh" 		| tmux_pass
sleep 1				; tmux_push

Мы подгружаем две функции из скрипта, а затем пишем сценарий, при котором выполняется команда ssh-keygen и 4 раза нажимается клавиша Enter для подтверждения всех параметров по-умолчанию.

Мы оживили наш tmux!

★★★★★★

логиниться по ssh с использованием пароля и выполнять команды!

ssh [email protected] 		| tmux_pass
sleep 1				; tmux_push
secret password 		| tmux_pass
sleep 1				; tmux_push

uname -a 			| tmux_pass
sleep 1				; tmux_push

exit 				| tmux_pass
sleep 1				; tmux_push
Spoofing    
★★★★★★
Linux / Firefox