前言
因為之前有在用別人寫的HITCON ZeroDay BOT
可是最近好像壞惹,都收不到通知
所以就想說,好吧,那就自己來寫一個吧!
開寫
首先,我想要的BOT功能是:
每天同一時間,自己爬HITCON ZeroDay
如果有新的Open漏洞,就傳通知給我
Telegram BOT可以去找一個叫做BOTFather
的帳號申請
連結在這 https://telegram.me/botfather
輸入/newbot
,之後填寫帳號名稱等資訊就申請完成了
申請完後會拿到Token
有了這個Token,我們才能對BOT做一些操作
接著,因為我們定位是給自己使用的
所以只要讓BOT傳訊息給我們就好
傳訊息要有使用者ID才能傳
使用者ID怎麼取得呢?
可以先用自己的帳號加BOT
然後隨便傳個訊息給BOT
之後去https://api.telegram.org/bot$TOKEN/getUpdates
就可以看到自己的ID惹
($TOKEN
這邊填我們前面拿到的Token
)
有了ID
和Token
,我們就能傳訊息惹
例如:https://api.telegram.org/bot$TOKEN/sendMessage?chat_id=8787&text=Hello+Kaibro
就會傳Hello Kaibro
的訊息給id=8787的使用者
(這邊訊息要用URL Encode過)
潮簡單der
爬蟲
接著,就要開始寫我們的爬蟲惹
基本上,ZeroDay一天更新一次Open漏洞
(似乎是每天半夜3點左右)
所以不需要一直Polling爬網站
只要24小時爬一次就行,這邊可以用Crontab達成
爬的方式很簡單,把公開漏洞的頁面抓下來
然後用正規表達式抓出漏洞名稱和連結
再去和之前抓過的比對,如果有沒看過的
就傳送該漏洞訊息給使用者
詳細實作如下: (Ruby)
|
|
github repo連結在這: https://github.com/w181496/TG_Zeroday
把ID
、TOKEN
換成你自己的
再設定log檔的絕對路徑就OK了
之後設定crontab
crontab -e
設定每天19點5分跑一次script:
5 19 * * * /usr/bin/ruby /home/kaibro/bot/zero.rb
到這邊就大功告成惹
Easy Peasy
不過Telegram BOT當然不只有這樣而已
Telegram BOT有各式各樣的類型
這個只是其中一種通知型的BOT
Reference
https://www.forsomedefinition.com/automation/creating-telegram-bot-notifications/