XiongMai IP Camera Motion Detection Alert Snapshot to Telegram Bot

Cara mengirim Motion Detection Snapshot Alert Pada XiongMai IP Camera ke Bot Telegram

asdqw3
4 min readDec 7, 2020

بسم الله الرحمن الرحيم

XiongMai adalah firmware yang banyak dipakai oleh IP Camera & NVR murah buatan China, banyak dijual di Aliexpress. Salah satu cirinya adalah mereka menggunakan aplikasi mobile bernama XMeye atau ICSee untuk menkonfigurasi dan meremote camera secara lokal maupun cloud.

XiongMai OEM Vendors

Jika anda mempunyai IP Camera dari salah satu vendor pada gambar diatas, bisa dipastikan IP Camera anda menggunakan XiongMai firmware. Ciri-ciri lainnya adalah mempunyai Web UI seperti berikut:

XiongMai Web Login UI

Keunggulan IP Camera ini adalah harganya murah dan cukup reliable, saya punya beberapa IP Camera dan NVR berfirmware Xiongmai dari beberapa brand yang sudah saya pakai bertahun-tahun dan masih hidup sampai sekarang.

Bagaimana dengan securitynya? jika kita search di google “XiongMai Vulnerability” atau “XiongMai Exploit” maka banyak sekali ditemukan vulnerability pada Firmware ini, dari Cloud Id yang mudah di ditebak sampai hidden service yang digunakan untuk backdoor. Jadi sangat tidak disarankan untuk mengaktifkan fitur Cloudnya dan tidak mengekspos ke Internet (IP Publik atau Port Forwarding), gunakan VPN untuk remote dari Internet. Dan juga tidak disarankan untuk menggunakan IP Camera ini di indoor atau tempat-tempat pricacy. Sebaiknya untuk outdoor saja. Sebagai alternatif untuk remote jarak jauh, bisa menggunakan private tunnel.

Berikut beberapa artikel yang membahas vulnerability pada firmware XiongMai.

Salah satu fitur dari IP Camera murah ini adalah Motion Detection, di beberapa IP Camera yang ada fitur PTZ, ada fitur Humanoid Detection yang akan memberikan alert jika mendeteksi pergerakan manusia. Alert yang dapat digunakan disini adalah Send Email, FTP, Mobile reported, Write log dan AlarmSound.

Motion Detection Setting

Karena banyak sekali masalah security pada firmware ini, saya agak kurang yakin untuk memasukan username/pasword SMTP email atau FTP untuk fitur alert. Oya, untuk recording, saya menggunakan Shinobi CCTV yang diinstall di STB dengan OS Ubuntu. Shinobi CCTV ini cukup bagus dan fiturnya lumayan lengkap, ada motion detection juga yang dapat mengirim alert via Email, Discord, Webhook, dll, namun tidak saya gunakan karena tidak mau terlalu membebankan kinerja STB, karena sudah digunakan sebagai recorder.

Lalu bagaimana cara untuk mengirimkan notifikasi motion detection alert ke Bot Telegram beserta snapshot?

Disini saya akan tetap menggunakan Send Email alert pada IP Camera untuk mentrigger notifikasi ke Bot Telegram dan menggunakan fitur webcapturenya untuk mendapatkan snapshot secara realtime. Saya membuat script sederhana dengan NodeJS sebagai Mock SMTP Server yang dijalankan di Ubuntu server. Scriptnya kurang lebih seperti berikut:

Disini saya manggunakan module smtp-server sebagai mock smtp server dan node-telegram-bot-api untuk send message ke bot telegram.

http://IP-CAMERA-IP-ADDRESS/webcapture.jpg?user=USERNAME&password=PASSWORD&command=snap&channel=1 adalah endpoint yang digunakan untuk webcapture/snapshot pada IP Camera. Sesuaikan IP address, username dan password IP camera kalian.

Saya hanya menggunakan onConnect event karena saya tidak berhasil menggunakan SMTP Auth, tidak ada response pada SMTP Server ketika test send email dari IP Camera setting. Sepertinya fitur Send Emailnya ngebug. Jadi pada config EMAIL, username, password, sender, receiver dan Title tidak perlu diisi.

Jadi tahap yang harus dilakukan adalah run mock-smtp-server.js, disini saya jalankan di Ubuntu server, bisa juga menggunakan Raspberry pi atau server lainnya yang berada di network yang sama dengan IP Camera, kemudian enable motion detection pada config IP camera dan select Send Email sebagai alertnya, kemudian ke setting -> System -> Netservice -> EMAIL, masukan IP Address Mock SMTP Server dan Port SMTP Server.

Karena ini tidak menggunakan SMTP Auth, mungkin bisa ditambahkan script untuk menfilter IP Address (session.remoteAddress), sehingga hanya IP Address IP Camera saja yang dapat mentrigger bot telegram. Ini juga bisa digunakan apabila ada lebih dari satu IP camera.

Sekian, semoga bermanfaat.

--

--