Так ребята, писал давненько скрипт одному упоротому безопаснику на заводе.
Задача стояла такая: Я работаю в офисе и порой хожу посрать, но кругом хакеры, ноут с собой постоянно таскать не могу, он прибит гвоздями, а терпеть не вариант.
Ну ты понял. Тип захотел, чтобы его ноут сфоткал рожу коллеги, который возможно вынашивает коварный план. И однажды попытается взломать его пароль из 128 символов.
Сказано сделано, дополнительно прикрутил фичу с оправкой фотки в телегу.
Публикую как есть, оптимизировать задачи не было, нужно было сделать вчера.
Код:
#!/bin/bash
# переменные
TOKEN="BOT_TOKEN"
CHAT_ID="CHAT_ID"
USER=$(whoami)
TIMESTAMP=$(date '+%Y-%m-%d_%H-%M-%S')
IMAGE_PATH="/tmp/face-${USER}-${TIMESTAMP}.png"
# Делаем фотку с вебки
if ffmpeg -y -t 1 -f video4linux2 -s 640x480 -r 30 -i /dev/video0 -f image2 "$IMAGE_PATH"; then
echo "✅ Рожа успешно захвачена: $IMAGE_PATH"
else
echo "❌ Ошибка: Не удалось захватить рожу"
exit 1
fi
# Пулим фотку в телегу
RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendPhoto" \
-F chat_id="$CHAT_ID" \
-F photo="@$IMAGE_PATH" \
-F caption="🚨 Хакер пойман, лови рожу: $USER на $(hostname)")
# Проверяем респонс
if echo "$RESPONSE" | grep -q '"ok":true'; then
echo "📨 Рожа успешно отправлена в Telegram"
else
echo "❌ Ошибка: Не удалось отправить рожу в Telegram"
echo "Ответ Telegram API: $RESPONSE"
fi
# Подчищаем за собой
rm -f "$IMAGE_PATH"
Делаем скрипт исполняемым (иксим через чмод), кидаем этот скрипт например сюда: /usr/local/bin/
Добавляем строчку в /etc/pam.d/common-auth
Код:
auth optional pam_exec.so /usr/local/bin/face_send.sh
optional = скрипт не блокирует аутентификацию, даже если выплюнет ошибку
Если хочешь чтобы скрипт был обязателен для выполнения, замени optional на required.
Работает так:
- При неудачной аутентификации PAM вызывает скрипт face_send.sh
- Скрипт делает снимок рожи с камеры и отправляет его в телегу
Да, не забудь проверить что у PAM есть разрешение на доступ к /dev/video0 и на выполнение скрипта.