利用wireshark和fiddler破解中控人臉識別考勤機

寫在前面:若想實現篇中內容首先需要能接入考勤機所在網路

這篇的做法也算不上破解,只是一個作弊的小手段,拯救遲到黨

單位裝了中控刷臉考勤機,從機器這端考慮的話,刷臉比指紋更難破解了,畢竟每個人只有一張臉,不能用其他同事的手指代勞;而伺服器端沒有許可權去訪問,也談不上破解,於是可以考慮在網路傳輸方面嘗試一下。

用電腦接入考勤機所在網路,必須同一個碰撞域。這個地方很奇怪,同一個廣播域(同vlan,不同介面)下沒能嗅探到考勤機和伺服器通信的數據包。

電腦上裝網路嗅探軟體,我這裡用的是wireshark。選好對應網卡,開始捕獲,這時去考勤機上刷一下臉,製造一個考勤過程。回來停掉捕獲,準備下一步的分析過程。

這裡說一下,如果知道考勤機或者考勤伺服器的IP地址,可以捕獲前把捕獲過濾器細化一下,避免受到太多不相干的包。blog.csdn.net/cumirror/

下一步,審視一下這些捕獲到的包,如果知道IP地址當然非常好找,但如果不知道,就需要仔細找找關鍵字,比如你的工號,考勤機的一些關鍵詞:

因為數據包並不多,很明顯地可以找到考勤機和伺服器之間的交互,如果幹擾的包太多,可以在關鍵包上右鍵→追蹤流→TCP流,篩選出來。

可以看出,考勤機用POST方法給伺服器傳了一些內容,埠號8090,User-Agent指的是上傳數據的終端形式(也就是考勤機,通暢這個地方可以看出用戶用的是什麼瀏覽器),但Url中SN是什麼?table是什麼?Stamp是什麼含義? 另外,HTTP requestbody中第一部分是工號,第二部分是日期時間,但後面的255 15 0是什麼意思呢?

這時候可以查查考勤機的開發資料,雖然不多,但很幸運地找到了:wenku.baidu.com/view/c9

這個文檔裡面有關於這些欄位的定義,sn是考勤機序列號,talbe ATTLOG是考勤表,Stamp是時間戳,255 15什麼的,和開發文檔里不相符,估計版本不一致,姑且先不管。

下一步,想辦法偽造這個HTTP通訊。這裡找到一個好工具,fiddler。具體用法可以自行學習,這裡只講怎麼構建這個考勤場景中需要的POST方法。

選composer,依葫蘆畫瓢,把wireshark分析出來的內容對應填進去(Host和Content-Length不用填,自動生成的)。注意,255和15和幾個0之間是tab字元隔開的,不是空格,直接用 也不行。請求頭的冒號後面是有一個空格的,冒號要用半形,這些細節都應該注意。 編輯完畢後點Execute,執行,此時左側可以看到伺服器返回了狀態值200,OK。

如果能訪問到考勤機的請假頁面,就可以查一下對應這個工號的考勤記錄了,神奇地發現,這個考勤記錄可以不是實時添加的,也就是說你可以添加昨天或者明天的考勤記錄,可能這個考勤機制很簡單,沒有時間驗證。另外,那些參數保持不動就可以,調的時候只調工號、SN(決定了偽造哪台考勤機上傳的記錄),以及日期時間即可。

最後,思考一下考勤機的工作機制。抓包中,並沒有抓到人臉數據在網路中的傳輸記錄,說明人臉識別d過程是考勤機自己完成的,識別出來你是哪個工號的主人後,直接把你的工號加上當前機器的時間傳給伺服器。考勤機中的人臉信息,估計是事先從伺服器上獲取到的。另外,這個偽造方法不知道在伺服器後台生成的資料庫記錄會不會有問題,還需考證,如果有機會訪問到考勤伺服器,可以探究一下。


推薦閱讀:

TAG:網路工程 | 計算機網路 | 黑客Hacker |