[原創小程式]_成大宿舍網路自動登入器Beta 0.1

新版的位置: http://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繼續延伸 🙂

以上!

4 Comments

  1. 酷!
    在C#內你用來塞帳戶帳號和密碼是用get、set嗎?
    我其實不太了解為什麼可以直接對著指定的ip照順序塞入。

    • 哈哈為啥我也看不懂你說塞帳號密碼的意思?,你說的get, set是自動存取子
      有點像是變數,但跟基本型別的變數有點不太一樣。

      其實有html的api可以直接讓程式分析操作網頁上的元件
      這樣就很容易可以叫程式去幫你操作網頁了

  2. 那如果是authorize fail 怎麼辦??

Leave a comment

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料