[原創小程式]_成大宿舍網路自動登入器Beta 0.1
新版的位置: https://www.ntex.tw/wordpress/1505.html
其實這篇拖了很久…(應該說最近技術文都被stack到不知道多深沒發了XD)
這篇有講詳細的hacking process,若只想直接抓登入器,就直接到 :
https://github.com/thkaw/NCKU-Dorm-Net-logger/raw/master/NCKU_DORM_FORM/bin/Debug/NCKU_DORM_FORM.exe
專案在github,有興趣者直接抓來看看也可:
https://github.com/thkaw/NCKU-Dorm-Net-logger/
本程式沒有任何的木馬後門,也沒有違反宿網使用條例!
因為我只測試過勝利四舍,因此不能用的人請往下繼續看,自己抓code來改位置~
操作注意事項文末有寫。
//========================hacking process========================
繼上次我大略筆記的
http://thkaw.pixnet.net/blog/post/103510531
這篇突破宿網的文章
可以了解到宿舍的網路是綁定mac的
但會發現其實上一篇只是初步的分析認證的方式是憑藉著mac來存
可是仍然沒有達到自動化…
因為在gateway內網內的電腦,對外的位址基本上是gateway的位置以及mac(這裡的把wifi 分享器代稱gateway)
所以宿網的認證主機會認定登陸的裝置MAC為gateway的MAC
但這其中還有一個盲點
當沒有通過認證的情況下:
學校會發給一個無法上網的網段IP為192.168.X.X
而認證成功時則是發給140.116.X.X
CASE.1
如果網路線接到無線分享器,這時由接在此分享器的內網裝置發起連線請求是不會正確的收到REQUEST
例如我要去www.facebook.com,這時這個要求透過分享器網外傳給學校宿網的認證伺服器,
而這時學校會傳一個假的網站位置給無線分享器,但無線分享器上面並不會知道回傳的頁面其實是登入的伺服器
可能誤以為是www.facebook.com,而這時可能透過無線分享器上面設定的dns(例如8.8.8.8)或者舊有的cache(www.facebook.com導到之前去過fb的dns上)
因網路這時還是不通的,因此無線分享器仍然無法查8.8.8.8看到正確的fb位置,發給內網裝置一個應該要去的位置根本是無效的…
所以內網的電腦連登入頁面都無法看到
CASE.2
將宿舍網路線直接接電腦,隨便打開瀏覽器開任何一個網頁,例如我的blog
這時候會自動被導到的入頁面,並且URL保持http://thkaw.pixnet.net/不過後面多了一點東西變成
http://thkaw.pixnet.net/sys_dhcp_authcheck.html
HACK STEP1:
看出來了嗎?層層的trail-and-error,赫然發現原來認證伺服器其實做了DNS spoofing
也就是雖然URL是thkaw.pixnet.net,但其實是導到學校的認證伺服器先做認證
那麼看了一下sys_dhcp_authcheck.html這個頁面的source code,發現卻是一片空白…
而可以發現裡面有個<iframe>標籤內有另外一個呈現真正登入畫面的sys_dhcp_authcheck_content.html
可是要怎麼應付DNS spoofing找到真正騙你的那台Server呢(這裡就是學校那台認證伺服器)
直接在這個情況下ping是行不通的…,因為你的無線分享器的DNS伺服器就是設定8.8.8.8或者其他外網伺服器
這時學校預設的DNS SERVER也不會發給你
HACK STEP2:
所以…我用了wireshark分析了一下當在沒認證的情況下進入thkaw.pixnet.net的行為跟封包的收發來源
(這裡是那時候fetch存起來的data,那時候是隨便測試,所以當時點了about.me這個網站)
可以注意到綠黃色箭頭是到about.me的封包請求,但實際上的目的地是導往10.25.243.58這台伺服器…
看來一步一步的揪出兇手…
再去網址列打入10.25.243.58/sys_dhcp_authcheck.html,哇!…直接出現一樣的login頁面
但其實前面可以發現sys_dhcp_authcheck.html只是個幌子…
真正個東西放在sys_dhcp_authcheck_content.html底下
所以在讓我們看看10.25.243.58/sys_dhcp_authcheck_content.html
發現新大陸,完整頁面的source code終於出現!
題外話:其實我在打這篇文章的時候發現根本不需要用wireshark…因為dhcp伺服器跟認證伺服器是放在同一台= =,不過這也是wireshark之後才發現的…就當經驗吧~
知道login的真實位置…接著
HACK STEP3.
把網路線接回無線分享器,筆電接回無線分享器後端
這時照CASE1的敘述,是無法隨意點及網頁導入認證頁面的,因此…剛剛HACK STEP2得到真實的位置在10.25.243.58/sys_dhcp_authcheck_content.html
嘗試著在瀏覽器鍵入10.25.243.58/sys_dhcp_authcheck_content.html
嘩!,看到頁面了!!,直接認證,成功!!!
而且這時理論上學校認證伺服器上面登錄的MAC會是無線分享器的MAC,也就是說達成內網直接可以登入,解決CASE1以及上一篇網誌所述需要拔接線換MAC的問題!!
//========================hacking process end========================
好,寫到這邊總結一下
1.成大勝四舍的DHCP兼認證SERVER的真實位置在10.25.243.58/sys_dhcp_authcheck_content.html
2.你可以用第一點的網址直接開啟認證頁面
3.DHCP SERVER跟認證SERVER可能是同一台!(至少勝四是)
但是…基於懶惰的我,每次還要打帳密覺得煩
因此快速的隨手用C#+FORM寫了一隻自動LOGIN的小程式,其實想做很多功能,但後來懶了XDDD
我就OPEN SOURCE放在GITHUB上,因為每個宿舍我不確定DHCP跟認證SERVER是否為同一台所以要自己TRY看看更改位置
至於CODE的部分很簡單,我就做一個DOM PARSER+自動塞帳號密碼還有存一個簡單的CONFIG
原本想用WPF寫,但發現WEBCONTROLLER不太好用,也是懶得用(因為那時很忙…隨便弄,連文章也是到兩個多月後才打XD)
至於code的部分放在https://github.com/thkaw/NCKU-Dorm-Net-logger/
要執行檔的可以直接到https://github.com/thkaw/NCKU-Dorm-Net-logger/raw/master/NCKU_DORM_FORM/bin/Debug/NCKU_DORM_FORM.exe 抓取下來執行
簡單講一下,在100行的部分是關鍵,其他的部分就只是parse dom塞資料跟序列化帳號密碼記憶而已(帳密存成明碼喔請小心邪惡的室友)
至於偵測網際網路那個功能…請無視,失敗的功能沒拿掉
- 以及如果登入完之後還是不能上網,請按下win+r 打入 ipconfig /flushdns 確定,因為有可能你電腦上面的dns有cache到假的位置(也就是學校的認證伺服器),因此重新刷乾淨即可
- 登入可能出現dhcp boradcast fail或者沒有跳轉頁面,但也是成功登入喔,只要不是authorize fail
這樣就算是實現自動化登入了,啥後台背景偵測登入…等我有空再說吧或者歡迎fork繼續延伸 🙂
以上!
酷!
在C#內你用來塞帳戶帳號和密碼是用get、set嗎?
我其實不太了解為什麼可以直接對著指定的ip照順序塞入。
哈哈為啥我也看不懂你說塞帳號密碼的意思?,你說的get, set是自動存取子
有點像是變數,但跟基本型別的變數有點不太一樣。
其實有html的api可以直接讓程式分析操作網頁上的元件
這樣就很容易可以叫程式去幫你操作網頁了
那如果是authorize fail 怎麼辦??
你密碼有沒有打錯??
宿舍網路記得要去申請,密碼跟校務系統是分開的