Систем за известување преку СМС пораки – трет дел

Инспириран од софтверски решенија, како што е Prey – плен и од неколкуте стории за тоа како некој хакер останал без лаптопот и што сѐ не му се случило подоцна на крадецот, решив да напишам уште еден СМС сервис, кој што ќе вклучи дел од функционалностите на дадените безбедносни софтверски решенија. Во претходниот пост веќе видовме како може да ја добиеме јавната IP адреса на системот (секако системот едноставно може да биде и вашиот лаптоп). Откако ја имаме адресата, многу лесно може да дознаеме кај се наоѓа системот, или барем на кој интернет провајдер е приклучен. На пример, копирајте ја адресата и извршете пребарување во базата на RIPE – еден од петте регионални интернет регистри, одговорен за подрачјето на Европа, за да проверите кој е сопственик на сабнетот во кој што се наоѓа IP адресата на системот. Јавете се во провајдерот и соопштете им дека ви е украден лаптопот и тој моментално се наоѓа на таа и таа адреса и во меѓувреме известете ја и полицијата. Можно е адресата да припаѓа на некое јавно proxy, но и тука постапката е иста. Следно што би било прикладно е, ако може да обезбедиме слика од крадецот!? Или пак, доволно филмски сценарија и да се вратиме на kannel SMS gateway-от.
Но сепак, следно што ќе дефинираме е СМС сервис кој што ќе може да ви испрати слика од веб камера, доколку е присутна, или пак слика од тековната активност на екранот, односно screenshot од екранот. Сервисот немора да се користи само во случај ако ви е украден лаптопот, може едноставно да го користите доколку сакате да видите каква е моменталната ситуација на, и околу истиот. Онака, чисто шпијунски 😀

Дефинирањето на сервисот е скоро идентично со претходниот СМС сервис, со една минимална разлика:

group = sms-service
keyword = INFO
exec = sh $HOME/Documents/development/ednoleto/smsinfo.sh %p %P %s %s

Како што може да видиме, сервисот реагира на зборот INFO и повикува скрипта со име smsinfo.sh, проследувајќи ѝ четири параметри, односно, броевите на примачот и испраќачот, како и два збора напишани после клучниот, од кои што првиот треба да биде името на командата, а вториот треба да биде email адреса на која што ќе бидат испратени сликите. За жал, kannel нема подршка за MMS пораки, па затоа мора да се послужиме со алтернативни методи за испорака на мултимедијални содржини. Целосната содржина на smsinfo.sh може да ја погледнете на следнава локација. Како што може да забележите, скриптата е со скоро иста структура како и претходната. Додаден е нов параметар на почеток – email, во кој што се запишува четвртиот параметар проследен на влез, притоа заменувајќи ги карактерите %40 со @, поради тоа што параметарот се добива url кодиран. Следи истата функција за испраќање на смс порака и истата case структура, овојпат со две команди, help и default одговор.

Првата команда е snapshot и како одговор испраќа слика од веб камера на дадена email адреса.

 snapshot)
#taking snapshot from webcam
if [ ${email:-0} = “0” ] #if the email variable is not set (not passed as an argument), set it to 0
then sendsms “No e-mail specified! Please try again [INFO snapshot user@domain.com]”
else
timestamp=`date ‘+%d-%b-%y_%H-%M-%S’`

#now take 4 snapshots from the webcam (the camera need 2-3 frames to initialize)
mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -frames 4 -vo png
#send e-mail via mutt with the snapshot as attachement
mutt -s “Snapshot from webcam taken on: $timestamp” $email < /etc/issue.net -a $HOME/Documents/development/ednoleto/00000004.png
#remove the remaining snapshots
rm $HOME/Documents/development/ednoleto/0000000*

fi
#Mplayer will save a file 0000000n.jpg with a snapshot, where n is 1,2,3 and 4
#Mplayer uses ffmpeg to do the conversion, so you will usually need the ffmpeg suite installed too.
;;

Доколку не е внесена email адреса, сервисот испраќа СМС порака со известување за настанатата ситуација и со информации како се користи сервисот. Следно, или инаку, доколку е во ред email параметарот, најпрвин во променливата timestamp го запишуваме тековниот датум и час кога е повикана командата, па после повикуваме команда која што треба да направи 4 последователни слики со големина од 640×480 од уредот кој што се наоѓа на /dev/video0, односно default локацијата за пристап на веб камера. Во овој случај, како алатка за снимање на слики го користиме конзолниот видео player – mplayer и снимаме 4 слики поради тоа што на камерата (со која што тестирав) и беа потребни 3 фрејма за да се иницијализира, односно вклучи (првите 3 слики се црни, четвртата излегува нормално, во зависност од осветленоста, спецификациите на камерата и слично). Сликите ги снимаме во png формат и може да ги најдеме под име 0000000?.png во истиот фолдер во кој што се наоѓа скриптата.
Откако ги направивме сликите, останува само уште да ги испратиме. Сликите ги испраќаме преку конзолната алатка за менаџирање со email сандачиња mutt. Секако може да искористите било која друга алатка, како што се sendmail, mailx, nail и слично, во зависност од потреба. email пораката ја испраќаме со наслов “Snapshot from webcam taken on: (вредноста на timestamp)” содржина – името на GNU/Linux дистрибуцијата која што ја користи системот (немора воопшто да има содржина) и со attachment – четвртата направена слика од камерата. Откако ја испративме сликата, ги бришеме сите, за да не ни зафаќаат место, и опционално може да испратиме СМС порака со потврда за извршената акција.

Втората команда, screenshot, на сличен начин испраќа слика од тековниот екран на системот.

 screenshot)
#part for saving current screenshots
if [ ${email:-0} = “0” ] #if the email variable is not set (not passed as an argument), set it to 0
then sendsms “No e-mail specified! Please try again [INFO screenshot user@domain.com]”
else
timestamp=`date ‘+%d%b%y-%N’`;
scrot screenshot$timestamp.png #take a screenshot using this simple CLI program
mutt -s “Screenshot from $timestamp” $email < /etc/issue.net -a screenshot$timestamp.png
sendsms “screenshot sent to e-mail: $email”
rm screenshot$timestamp.png
fi
;;

Разликата, како што може да забележиме, е во начинот на кој што ја добиваме сликата која што ја испраќаме. Овде користиме една многу едноставна конзолна алатка наречена scrot, најчесто достапна во нативните репозиториуми на поголемите дистрибуции, која што се користи многу едноставно. Се повикува алатката со локацијата, односно посакуваното име на сликата што сакаме да ја снимиме и готово. Во овој случај, во самото име на сликата го додаваме моменталниот timestamp, односно моментот кога е направена истата. Сликата ја испраќаме на email преку mutt и после ја бришеме, исто како во претходниот случај, притоа испраќајќи СМС порака за потврда.

Со ова го завршивме и третиот дел од системот за известување и управување преку СМС пораки. Можеби сервисите нема да ни послужат на начин, како во некое филмско сценарио, но сепак е забавно и пријатно искуството од конфигурирање на истите.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s