Консольные клиенты есть практически для всех популярных веб-сервисов. Многие из них не блещут возможностями и тем более удобством в работе. Но их можно заскриптовать и приспособить для совершенно неожиданных целей: превратить Google Calendar в систему удаленного исполнения команд, использовать Telegram для поиска украденного ноутбука, мониторить сервер с помощью Twitter, организовать скрытый стриминг на YouTube. Об этих и других трюках мы и расскажем.
 

Telegram как инструмент защиты ноутбука

О том, как использовать Telegram для ведения заметок и обмена ссылками между разными устройствами, знают все. Но что, если пойти дальше и превратить его в нечто большее? Например, систему сигнализации, которая будет информировать тебя, когда кто-то посторонний включит ноутбук?

Для этого можно использовать консольный клиент telegram-cli и такой скрипт:

#!/bin/bash

ffmpeg -y -t 1 -f video4linux2 -s 640x480 -r 30 -i /dev/video0 -f image2 $HOME/webcam.png
sleep 5m
scrot -z %HOME/screen.png
telegram-cli -W -D -e "send_photo @USERNAME $HOME/webcam.png `date`"
telegram-cli -W -D -e "send_photo @USERNAME $HOME/screen.png `date`"
notify-send -i dialog-warning -t 10000 "Ты. Да, да. Ты." "Тебе кто разрешил?"

Скрипт следует поместить в автозагрузку. Сразу после старта машины он сделает фотографию с веб-камеры, снимет скриншот, отправит все это указанному пользователю и выведет на экран грозное сообщение.

Автозапуск скрипта при загрузке можно настроить привычными графическими средствами. Например, в KDE для этого есть специальный пункт меню в системных настройках.

Сообщения, отправленные в Telegram сразу после загрузки системы
Сообщения, отправленные в Telegram сразу после загрузки системы

 

Как установить и настроить

Для установки telegram-cli пользователям Arch Linux и основанных на нем систем достаточно выполнить

$ yaourt -S telegram-cli-git

Пользователям остальных систем придется собрать клиент самостоятельно с помощью ./configure и make, предварительно установив Readline, OpenSSL, libconfig, liblua, Python и libjansson.

В момент первого запуска telegram-cli запросит номер телефона в формате +71234567890, а затем код безопасности из СМС и пароль, если он используется.

 

Управление компом с помощью Pushbullet

С помощью консольного клиента Pushbullet приведенный выше скрипт можно дополнить функцией отправки СМС на указанный телефон (сообщение придет с подключенного к Pushbullet смартфона):

$ pb sms -d 0 -n +12345678901 "Началось!"

Но гораздо интереснее использовать Pushbullet в противоположном направлении, отправляя со смартфона на компьютер пуш-сообщения c командами на исполнение (например, Y3g5f27g shutdown -P):

#!/bin/bash

PASS="Y3g5f27g"
while :
    do
    CMD=$(pb list | grep $PASS | cut -c 10-)
  if [ "$CMD" ]; then
      pb purge
      $CMD
  fi
    sleep 5m
done

Префикс в начале сообщения (Y3g5f27g) нужен, чтобы отфильтровать лишние сообщения и обеспечить защиту от несанкционированного доступа. По завершении цикла команда в сообщении будет выполнена, а само сообщение удалено.

Скрипт следует поместить в автозагрузку, предварительно установив и настроив pushbullet-cli.

Команда, отправленная на компьютер с помощью Pushbullet
Команда, отправленная на компьютер с помощью Pushbullet

 

Как установить и настроить

Pushbullet-cli можно установить из репозитория Python:

$ pip install pushbullet-cli

После установки необходимо пройти авторизацию, введя токен с помощью такой команды:

$ pb set-key

Сам токен можно получить в панели управления на сайте сервиса:«Settings → Account → Access Tokens», нажав кнопку «Create Access Token».

 

Отправка скрытых команд с использованием Google Calendar

Если использование системы push-уведомлений для управления компом тебе кажется слишком очевидным, то у меня есть хорошие новости. То же самое можно организовать с помощью календаря Google. Вряд ли разработчики консольного клиента Gcalcli предполагали, что кто-то станет его использовать таким образом, но мы простых путей не ищем.

Скрипт выглядит так:

#!/bin/bash
while :
do
  CMD=$(gcalcli search "Y3g5f27g" '2017-09-02T14:00' '2017-09-02T15:00' | cut -c 42-)
  if [ "$CMD" ]; then
    gcalcli delete --iamaexpert "Y3g5f27g" '2017-09-02T14:00' '2017-09-02T15:00'
    $CMD
  fi
  sleep 5m
done

Чтобы отправить команду, необходимо создать в календаре мероприятие с маркером Y3g5f27g (например, Y3g5f27g shutdown -P) в промежутке между 14:00 и 15:00 часами 2 сентября 2017 года. Скрипт выполнит указанную команду и удалит мероприятие.

 

Как установить и настроить

Gcalcli можно установить из репозитория Python:

$ pip install gcalcli

Для авторизации приложения в сервисе достаточно запустить его с любым аргументом:

$ gcalcli list

Процесс авторизации запустится в автоматическом режиме в веб-браузере. Просто следуй появляющимся инструкциям.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    4 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии