
我目前居住在中國,我使用各種 VPN 服務來存取國際互聯網。但 VPN 往往會被自己屏蔽,所以我自然而然地擺弄了路由器之類的東西。
我目前使用的ISP 是中國電信,調變解調器是HS8145C5,每次我使用LOID 註冊調變解調器時,他們都會更改管理員密碼,他們隨時透過TR069 ACS 阻止我的VPN 連接,並且他們沒有提供LOID、我的PPPoE 密碼和連PPPoE帳號都可以!
但我可以物理存取調製解調器,這意味著我可以按重置按鈕,每次重置調製解調器時,我都會失去互聯網訪問權限,但我使用預設帳戶telecomadmin
和密碼獲得管理員訪問權限nE7jA%5m
,當然ISP 沒有提供給我。
我能夠獲得 LOID,但每次註冊調製解調器時,我都會獲得互聯網訪問權限並失去對調製解調器的管理員訪問權限,因為一旦您註冊調製解調器,他們就會將管理員密碼更改為隨機字串。
但我能夠使用我發現的這個混亂來啟用 telnet 並獲取網路管理員密碼:
telnet 192.168.1.1
root
adminHW
su
shell
cp /mnt/jffs2/hw_ctree.xml /mnt/jffs2/mycfg.xml.gz
cd /mnt/jffs2
aescrypt2 1 mycfg.xml.gz tem
gzip -d mycfg.xml.gz
grep WebUserInfoInstance mycfg.xml
rm mycfg.xml
帳號為root
,密碼為adminHW
。倒數第二行輸出如下:
<X_HW_WebUserInfoInstance InstanceID="1" ModifyPasswordFlag="0" UserName="useradmin" Password="$2!ZM$Idyl@J~}>8'n6KWMF|-@Koy>C,;ofJBq_'V5$" UserLevel="1" Enable="1" Alias="cpe-1"/>
<X_HW_WebUserInfoInstance InstanceID="2" ModifyPasswordFlag="1" UserName="telecomadmin" Password="$2:8jUNk0n|HenK~CB|'^&Aopi"<v~xJmC&<!TXx`3$" UserLevel="0" Enable="1" Alias="cpe-2" PassMode="0"/>
密碼已加密,我不知道格式,但我可以使用此解密它工具我發現(將密碼貼到“文字解密”標籤下的文字方塊中,然後點擊$2),我能夠取得新的管理員密碼。
然後我就可以找到 PPPoE 帳戶以及將輸入框從F12更改為後的密碼。type
"password"
"text"
但是我得到的密碼是一個64位元的十六進位字串,經過一番挖掘後發現是SHA256(MD5(pwd))
,所以我編寫了這個Python程式來暴力破解密碼:
from hashlib import md5, sha256
count = 0
reversemap = dict()
def guess(s):
if s in reversemap:
return reversemap[s]
global count
for n in range(count, 1000000000):
i = str(n)
digest = sha256(md5(i.encode()).hexdigest().encode()).hexdigest()
reversemap[digest] = i
if digest == s:
count = n + 1
break
return i
我能夠獲得密碼,但它沒有用,因為無論如何我都無法刪除 TR069 WAN 連線...
但我有su
telnet 存取權限,並且我能夠使用我發現的以下腳本將 ISP 介面更改為工廠介面:
cp -f /mnt/jffs2/hw_ctree.xml /mnt/jffs2/hw_ctree_bak.xml
cp -f /mnt/jffs2/hw_boardinfo /mnt/jffs2/hw_boardinfo_bak
cp -f /etc/wap/hw_default_ctree.xml /mnt/jffs2/hw_ctree.xml
sed -i 's/^.*obj.id = "0x0000001a" ; obj.value =.*$/obj.id = "0x0000001a" ; obj.value = "COMMON";/' /mnt/jffs2/hw_boardinfo
sed -i 's/^.*obj.id = "0x0000001b" ; obj.value =.*$/obj.id = "0x0000001b" ; obj.value = "COMMON";/' /mnt/jffs2/hw_boardinfo
sed -i 's/^.*obj.id = "0x00000031" ; obj.value =.*$/obj.id = "0x00000031" ; obj.value = "NOCHOOSE";/' /mnt/jffs2/hw_boardinfo
reboot
然後,我可以透過將數據機設定為橋接模式並使用路由器撥號來存取互聯網,刪除 TR069 WAN 連接並停用 ACS 和定期報告並使自動報告登入無效...
然後我就擁有了暢通無阻的 VPN 連線!但好景不長…
ISP 可以以某種方式更改我的調製解調器的設置,這是有道理的,因為我沒有更改密碼,而且我一直無法找到更改密碼的方法...
但根據程式碼,設定儲存在/mnt/jffs2/hw_ctree.xml
,這是一個 .xml 文件,經過 gzip 壓縮,然後進行 aescrypted,所以如果我可以更改這一行,gzip .xml,AES 對其進行加密,然後將生成的文件重命名為/mnt/jffs2/hw_ctree.xml
,那可以工作。
我發現我可以使用以下幾行來aescrypt2(gzip())
替換原始文件:
gzip /mnt/jffs2/mycfg.xml
aescrypt2 0 /mnt/jffs2/mycfg.xml.gz tem
cp -f /mnt/jffs2/mycfg.xml.gz /mnt/jffs2/hw_ctree.xml
但我不知道如何編輯該文件...
更重要的是,改變介面後,包含登入資訊的兩行是不同的:
<X_HW_WebUserInfoInstance InstanceID="1" ModifyPasswordFlag="0" UserName="useradmin" Password="$2*P#<Rm12MIRDkTTWT1NLn01YXTlMwFM]>d=_$|A$0&VND3OIl~fvHI$bbo8Su>jVP)^v]MiPG>.u9'{N6n)]=cIhB0+>tG1IS|9R$" UserLevel="1" Enable="1" Alias="cpe-1" Salt="deeb9e44dc1b96caaa9c312d" PassMode="3"/>
<X_HW_WebUserInfoInstance InstanceID="2" ModifyPasswordFlag="0" UserName="telecomadmin" Password="$2ha17UJ3)&/*k,o-D8Y1PJF:(4b^vWVK}$5:+UQ_0BJLWCDy:AGaY:~!_dBc'*E5DRc#De56S=r'dUHwUMP=b/h3V3:Fd^XB_MQ`N$" UserLevel="0" Enable="1" Alias="cpe-2" Salt="180cf7332c754daddf2d42f2" PassMode="3"/>
密碼加密顯然是加鹽的,使用我發現的工具無法解密它們,但我知道它們是加密的而不是散列的,第一個解密到zvsmc
第二個解密到nE7jA%5m
,我猜加密是AES。
我需要知道如何使用數據機使用的相同加密方式對密碼進行加密。
而且我也無法更改telnet密碼,根據提示數據機是BusyBox v1.26.2(Dopra Linux),以下是我嘗試更改密碼時發生的情況:
Login:root
Password:
WAP>passwd
ERROR::Command is not existed
WAP>su
success!
SU_WAP>passwd
ERROR::Command is not existed
SU_WAP>shell
BusyBox v1.26.2 () built-in shell (ash)
Enter 'help' for a list of built-in commands.
profile close core dump
WAP(Dopra Linux) # passwd
passwd: no record of srv_ssmp in /etc/shadow, using /etc/passwd
Changing password for srv_ssmp
Old password:
Incorrect password
passwd: password for srv_ssmp is unchanged
WAP(Dopra Linux) #
WAP(Dopra Linux) # passwd root
passwd: srv_ssmp can't change password for root
我已經獲得了調製解調器中存在的命令列表:文件
如何更改密碼以使 ISP 無法更改數據機的設定?調製解調器還有一個 USB 端口,可用於備份和還原設定。
我能夠獲取調製解調器的配置文件,並且我知道如何將其放回去。
我能改變它什麼?
我查到華為使用的是DES加密,解密方法如下:腳本
我正在嘗試對其進行逆向工程。