Netkeeper 探索分析

前言


Netkeeper(以下簡稱NK),是一款校園寬帶撥號軟件死嗦,它通常被認(rèn)為是該類軟件的代表趋距,而不僅指代這一款軟件。它的功能是在計算機和網(wǎng)絡(luò)之間設(shè)障礙越除,每個寬帶賬戶像一個通行證节腐,每次只允許一臺計算機通過。如果兩臺計算機都想聯(lián)網(wǎng)廊敌,不采取措施的情況下只能辦理多個寬帶賬戶铜跑。

知識預(yù)備


網(wǎng)絡(luò)基礎(chǔ)

1. 物理層

使電/光信號能夠從一端傳到另一端
物理層指的是信號傳輸?shù)拿浇槊殴郑ㄟ^如電纜(網(wǎng)線)骡澈、光纜、空氣(無線) 等媒介連著兩臺設(shè)備才有可能進行通信掷空,通過高低電平傳輸數(shù)據(jù)肋殴。但物理層的數(shù)據(jù)并不可靠,因為磁場坦弟、宇宙射線等因素可能影響正在傳輸?shù)母叩碗娖交ご福沟竭_(dá)另一端的數(shù)據(jù)并非原本的數(shù)據(jù)。

2. 數(shù)據(jù)鏈路層(PPP)

使數(shù)據(jù)能準(zhǔn)確無誤的在相鄰的兩臺設(shè)備間傳輸
數(shù)據(jù)鏈路層就是為了解決這個問題酿傍,常見如點對點協(xié)議(Point to Point Protocol)烙懦,簡稱PPP,PPP會檢測到已經(jīng)損壞的數(shù)據(jù)赤炒,并拋棄該段數(shù)據(jù)氯析,要求重新傳送,直到傳送的是正確的數(shù)據(jù)莺褒,在PPP之上掩缓,你不必?fù)?dān)心你接收到的數(shù)據(jù)是否正確,因為損壞的數(shù)據(jù)被丟棄了遵岩;PPP可以讓你可靠地在點與點之間傳輸數(shù)據(jù)你辣,但顯然你不能用一根網(wǎng)線穿越太平洋,你的網(wǎng)線沒有那么長,只夠連接到離你最近的路由器舍哄。

3. 網(wǎng)絡(luò)層(IP)

使數(shù)據(jù)能夠傳送到遠(yuǎn)程(非相鄰)設(shè)備上
網(wǎng)絡(luò)層協(xié)議最常見如IP協(xié)議宴凉,IP協(xié)議被大多數(shù)路由器支持,你只需要向路由器發(fā)送報文表悬,并說明報文的目的地(目的IP地址)跪解,報文就能被沿途所有支持IP協(xié)議的路由轉(zhuǎn)發(fā),最終被目的IP的設(shè)備接收签孔。但網(wǎng)絡(luò)層協(xié)議的不足在于叉讥,只要中途的某一次轉(zhuǎn)發(fā)出錯,這個報文就永遠(yuǎn)到達(dá)不了目的地了饥追。

※ 如果IP包總是到達(dá)不了目的地图仓,這個報文也不會被無休止的轉(zhuǎn)發(fā),報文中TTL會限制最大轉(zhuǎn)發(fā)次數(shù)但绕。

4. 傳輸層(TCP/UDP)

使數(shù)據(jù)能夠準(zhǔn)確無誤的傳達(dá)
傳輸層協(xié)議可以解決這個不足救崔,比如TCP,這是一種使數(shù)據(jù)準(zhǔn)確無誤地傳輸?shù)竭h(yuǎn)程的協(xié)議捏顺。達(dá)到準(zhǔn)確無誤的方式并不是讓IP包不出錯六孵,而是在其出錯的時候,檢查到此次錯誤幅骄,并令源設(shè)備重發(fā)該條出錯的報文劫窒。使最終的效果是,目的設(shè)備準(zhǔn)確無誤地收到順序的數(shù)據(jù)拆座。

※ TCP協(xié)議有很多細(xì)節(jié)用于提高效率主巍,比如快速失敗

5. 安全層(SSL/TLS)

使數(shù)據(jù)在傳送過程中不被窺探
安全層并不是ISO模型中的一層,但我覺得可以單獨拎出來說挪凑。
直到傳輸層孕索,報文可以做到遠(yuǎn)程可靠地傳輸,但這些報文是以明文在傳輸躏碳,一旦中途某個路由節(jié)點被控制搞旭,所有的流量都可以被窺探和篡改,安全層則以某種規(guī)范加密報文中的有效數(shù)據(jù)菇绵,可以保護流量的安全肄渗。

※ 有興趣了解 非對稱加密HTTPS 等內(nèi)容

6. 會話層(無單獨實現(xiàn))

使應(yīng)用建立和維持會話,并能使會話獲得同步
無單獨實現(xiàn)

7. 表示層(無單獨實現(xiàn))

表示層為在應(yīng)用過程之間傳送的信息提供表示方法的服務(wù)
無單獨實現(xiàn)

8. 應(yīng)用層(FTP/SMTP/HTTP)

使應(yīng)用程序間能夠交流
會話層脸甘、表示層雖然是ISO模型的一部分恳啥,但并沒有被現(xiàn)實采納,而是被統(tǒng)一歸并為應(yīng)用層丹诀。
如在應(yīng)用層協(xié)議HTTP中钝的,首部字段cookies翁垂、session充當(dāng)了會話層,包體中的html文檔就充當(dāng)了表示層硝桩,xml沿猜、json充當(dāng)了應(yīng)用層。

PPPOE

一般來說碗脊,你的計算機要與遠(yuǎn)程進行數(shù)據(jù)交換啼肩,得使用TCP/IP協(xié)議,那么你本機就需要有一個IP地址衙伶,IP地址是一個標(biāo)識做盅,一般由上級網(wǎng)關(guān)分配店枣。如果上級網(wǎng)關(guān)不分配IP給你的計算機,那你的計算機就不能聯(lián)網(wǎng)。

如果我有一個合法的寬帶賬戶扣溺,獲取IP的過程是怎么樣的唬血?

在計算機獲取IP之前雌团,只能在鏈路層通信趣倾,PPP協(xié)議是點對點的,為兩個對等地址建立連接通道丸逸,即相鄰的兩個設(shè)備蹋艺。運營商顯然不會把寬帶賬戶數(shù)據(jù)庫放在與你的計算機相連的設(shè)備上。所以事實上黄刚,驗證寬帶賬戶的方式使用的是一種叫PPPOE的鏈路層協(xié)議捎谨,PPPOE為非點對點鏈路的以太網(wǎng)物理鏈路上承載PPP報文提供了一種創(chuàng)建虛擬點對點隧道鏈路的協(xié)商方式和封裝方式。即:不獲取IP的情況下隘击,使用PPPOE協(xié)議可以與運營商遠(yuǎn)程設(shè)備進行校驗寬帶賬戶合法性的操作侍芝。一旦校驗通過,就會為你的計算機分配IP地址埋同。

NK運作機制


網(wǎng)絡(luò)環(huán)境:
NK客戶端網(wǎng)站服務(wù)器
PPPOE服務(wù)器
DHCP服務(wù)器

NK工作流程:

版本1:
PC客戶端啟動
等待用戶輸入寬帶賬號、密碼
加密寬帶賬號得到臨時賬號
使用使用臨時賬號棵红,調(diào)用系統(tǒng)API進行PPPOE撥號
賬號密碼通過驗證凶赁,得到IP地址
while 客戶端正在運行 && 本地?zé)o共享行為 {
持續(xù)網(wǎng)絡(luò)連接
}
斷開網(wǎng)絡(luò)

版本2:
PC客戶端啟動
從服務(wù)器加載token,并顯示二維碼在PC客戶端上
手機客戶端啟動逆甜,并登錄寬帶賬戶
手機掃描PC客戶端二維碼
服務(wù)器為掃描的token生成臨時寬帶賬號
PC客戶端發(fā)現(xiàn)當(dāng)前token對應(yīng)的臨時寬帶賬號
PC客戶端使用該臨時賬號撥號虱肄,調(diào)用系統(tǒng)API進行PPPOE撥號
撥號時發(fā)送TCP/UDP密文,協(xié)助賬號密碼驗證
賬號密碼通過驗證交煞,得到IP地址
while PC客戶端正在運行 && 本地?zé)o共享行為 {
持續(xù)網(wǎng)絡(luò)連接
}
斷開網(wǎng)絡(luò)

防止網(wǎng)絡(luò)共享策略

  1. 不為路由器分配公網(wǎng)IP地址
    確定一臺正在撥號的設(shè)備是否為路由器聽起來有點難度咏窿,實際上NK是這樣做的,
    NK客戶端把寬帶賬號轉(zhuǎn)換為具有時效性的其它字符串素征,調(diào)用系統(tǒng)撥號API撥號集嵌。
    如果使用路由器萝挤,你填入的必定是正常的寬帶賬號,驗證寬帶合法性的時候就不會通過根欧,因為只有被轉(zhuǎn)換過的寬帶賬號可以通過怜珍,所以路由器就得不到IP地址。

  2. 不可輸入的寬帶賬號
    如果轉(zhuǎn)換出的有時效性的字符串被獲取了凤粗,用它登錄路由器似乎仍然可行酥泛。但是轉(zhuǎn)換出的字符串有不可見字符呢?網(wǎng)頁上可不能輸入不可見字符到文本框嫌拣,所以無法輸入柔袁,也無法撥號。

  3. 檢測網(wǎng)絡(luò)共享軟件
    這是NK客戶端的另一個主要作用异逐,筆記本通常有兩個網(wǎng)卡瘦馍,各種共享大師可以把筆記本變成無線熱點分享網(wǎng)絡(luò),NK客戶端在本地檢測這類共享軟件应役,檢測到情组,立即斷開網(wǎng)絡(luò)。

  4. 客戶端存在檢測
    如果用NK連上網(wǎng)絡(luò)后立刻結(jié)束進程箩祥,再開共享大師情況會如何呢院崇。答案是會享受幾百秒的WiFi時光,僅此而已袍祖。因為當(dāng)你聯(lián)網(wǎng)成功后底瓣,NK會每隔幾百秒發(fā)送一次心跳報文,如果對方服務(wù)器一段時間內(nèi)沒有收到心跳報文蕉陋,主動斷開網(wǎng)絡(luò)捐凭。

  5. 利用路由器的弱點
    大多路由器在進行PPPOE驗證時,會釋放IP凳鬓,不可以發(fā)送TCP/UDP報文茁肠。而PC會在PPPOE交互完成前持有IP,可以發(fā)送TCP/UDP報文缩举。這個版本就是在PPPOE交互時垦梆,需要NK向一個公網(wǎng)IP發(fā)送一段TCP/UDP密文,否則PPPOE交互不通過仅孩。

解決方法


版本1是需要用戶手動輸入賬號密碼的NK版本托猩,防共享策略1~4
版本2是掃碼版NK,防共享策略1~5

1. 不為路由器分配公網(wǎng)IP地址

既然NK把寬帶賬號加密了辽慕,那我把加密后的賬號得到京腥,拿這個賬號去進行PPPOE撥號,一樣會通過驗證溅蛉。

那么公浪,如何得到加密后的賬號呢他宛?

最初,反編譯可以得到了NK的寬帶加密算法因悲,任何時間都可以算出當(dāng)前的臨時寬帶賬號堕汞。這么嚴(yán)重的問題不久就被NK修復(fù)了,他們更換了算法晃琳,并且做了反編譯處理讯检。

后來,也可以這么干卫旱。Windows系統(tǒng)有系統(tǒng)日志這個東西人灼,每次PPPOE撥號后,系統(tǒng)都會將寬帶賬號/密碼記錄在日志中顾翼,所以只需要去讀系統(tǒng)日志投放,就知道NK上一次是用何種寬帶賬號撥號。NK很快把這個漏洞補上了适贸,每次撥號后灸芳,NK都會清除系統(tǒng)日志。

再后來拜姿,這個問題被有效解決了烙样,使用PPPOE協(xié)議中間人劫持策略。
寬帶賬號/密碼是通過PPPOE協(xié)議傳送的蕊肥,而且傳送的寬帶賬號是明文的谒获。
所以只要編程模擬與本機進行PPPOE握手、協(xié)商壁却、會話批狱,寬帶賬號/密碼可以在會話中明文獲取。

*PPPOE協(xié)議工作流程

  • 發(fā)現(xiàn)階段展东,有四個報文交互赔硫,分別是PADI、PADO琅锻、PADR卦停、PADS,用來建立會話的恼蓬。
  • 協(xié)商階段,用于協(xié)商使用何種方式進行驗證寬帶信息僵芹,一般有兩種:PAP处硬、CHAP。PAP方式明文傳輸賬號拇派、密碼荷辕;CHAP方式明文傳輸賬號凿跳,密碼不會明文傳輸。
  • 會話階段疮方,根據(jù)協(xié)商階段約定的驗證方式控嗜,進行寬帶信息驗證。驗證通過會給你IP骡显,不通過的話會返回原因疆栏。

Windows有個庫叫WinPCAP,這個庫可以捕獲惫谤、發(fā)送鏈路層及以上的流量壁顶,路由器下的LAN是局域網(wǎng),當(dāng)計算機開始PPPOE撥號溜歪,第一條報文就是PADI若专,這是條廣播報文,目的MAC為FF-FF-FF-FF-FF-FF蝴猪,局域網(wǎng)下的所有設(shè)備都能接收到這條報文调衰,包括本機。這時自阱,本機的自己的程序捕獲到PADI報文時嚎莉,向自己的MAC地址發(fā)送PADO報文,開始后邊一系列的PPPOE交互动壤。

如果自己的程序冒充PPPOE服務(wù)器萝喘,總得有個MAC地址吧,如果就填本機真實的MAC地址琼懊,那PPPOE客戶端(NK)自己發(fā)出去的報文阁簸,自己又收到,會誤以為是PPPOE服務(wù)器回的報文哼丈,這樣就容易誤判启妹,導(dǎo)致某個階段失敗,交互不能再進行下去醉旦。這樣自己的程序聲稱的MAC就不能是本機真實MAC饶米,得是別的隨意什么MAC,這樣的話PPPOE客戶端往這個MAC發(fā)送報文车胡,自己豈不收不到檬输?想想,我不正監(jiān)聽著所有出去的流量么匈棘。

2. 不可輸入的寬帶賬號

瀏覽器的文本框不能輸入不可見字符丧慈,路由器的管理App也不能輸入。所以要把劫持到的臨時賬號粘貼到路由器管理頁面是行不通的。

但既然路由器采用網(wǎng)頁作為管理方式逃默,使用的協(xié)議必定是HTTP鹃愤,HTTP報文可以承載不可見字符。所以只需要分析出撥號時發(fā)送的HTTP報文包體的結(jié)構(gòu)完域,用帶有不可見字符的臨時賬號替換掉原本HTTP包體的正常賬號软吐,將這個HTTP報文發(fā)給路由器,路由器就會執(zhí)行此次撥號吟税。

就我分析的結(jié)果來看凹耙,很多同系列的路由器的管理網(wǎng)頁界面雖然有差異,但HTTP請求是基本一樣的乌妙。但不同廠家的路由器使兔,管理頁面和HTTP請求是不盡相同的。有些路由器的安全性做的比較好藤韵,登錄獲取Session時虐沥,本地就用JS對密碼做了加密,全程不傳輸明文密碼泽艘。也有安全做的差的欲险,基本是老款路由器,直接把路由管理密碼明文放在HTTP報文的Auth頭部或Cookies中匹涮。

3. 檢測網(wǎng)絡(luò)共享軟件

這是防止PC本地使用網(wǎng)絡(luò)共享的策略天试,如果直接使用路由器,路由器連上網(wǎng)后把NK關(guān)了就OK了然低,這個問題不需要關(guān)心喜每。

4. 客戶端存在檢測

服務(wù)器靠心跳報文檢測客戶端是否存在,那一直開著NK不行嗎雳攘?
還真不行带兜,與NK進行PPPOE交互的是中間人代碼,而不是PPPOE服務(wù)器吨灭,得到寬帶賬號后就PADT終止會話了刚照,NK的表現(xiàn)會是PPPOE連接失敗,不會進行下一步循環(huán)發(fā)送心跳報文的步驟喧兄,所以NK一直開著也沒用无畔。

那怎么辦呢,這步只能硬杠了吠冤。找到NK心跳報文的算法和秘鑰浑彰,用自己的程序定時發(fā)送心跳報文。

我觀察了心跳密文的特征拯辙、NK運行時的內(nèi)存闸昨,加上一點運氣,得出了心跳的加密方式薄风、加密密鑰饵较。

加密方式用的AES-ECB-PKCS7、密鑰是"nk4*hr"開頭的16位字符串遭赂,協(xié)議是QUIC循诉,一種基于UDP的協(xié)議。心跳密文解密后是一些鍵值對撇他,包括寬帶賬號茄猫、IP、MAC困肩、NK客戶端版本等划纽。

5. 利用路由器的弱點

路由器不能一邊撥號,一邊發(fā)TCP/IP報文锌畸。PPPOE交互過程中勇劣,服務(wù)器未收到密文不能就通過交互,撥號即失敗潭枣。所以必須想辦法讓路由器一邊撥號比默,同時還讓要讓NK發(fā)送的密文順利地傳到服務(wù)器。

觀察發(fā)現(xiàn)盆犁,密文要到達(dá)的地址是個公網(wǎng)IP命咐,也就是說任何運營商網(wǎng)絡(luò)都可以訪問到,包括手機的流量谐岁。正好筆記本一般都會有兩個網(wǎng)卡醋奠,有線網(wǎng)卡插網(wǎng)線,用于NK與上級交換機通信伊佃;無線網(wǎng)卡連手機熱點窜司,用于順利傳送PPPOE交互時的密文。

平時你可能發(fā)現(xiàn)了锭魔,筆記本在同時連上有線例证、無線網(wǎng)絡(luò)時,流量只會走一個網(wǎng)卡迷捧,那么什么時候讓走有線织咧、什么時候走無線呢?

答案是設(shè)置 躍點數(shù) 漠秋,這樣可以讓兩個網(wǎng)卡同時工作笙蒙。對了,Windows家庭版似乎不支持設(shè)置躍點數(shù)庆锦,但你知道原理是雙網(wǎng)卡同時工作就行捅位,并非一定要設(shè)置躍點數(shù)才能讓兩個網(wǎng)卡同時工作。

結(jié)束


OK,以上是我大學(xué)時課余的一些小研究艇搀,紕漏之處請指正尿扯。

學(xué)習(xí)過程中,感謝陳姓小哥的指點焰雕,并且欽佩你的品質(zhì)衷笋!

本項目已開源:https://github.com/liaokaime/NetkeeperShare

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市矩屁,隨后出現(xiàn)的幾起案子辟宗,更是在濱河造成了極大的恐慌,老刑警劉巖吝秕,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泊脐,死亡現(xiàn)場離奇詭異,居然都是意外死亡烁峭,警方通過查閱死者的電腦和手機容客,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來则剃,“玉大人耘柱,你說我怎么就攤上這事」飨郑” “怎么了调煎?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長己肮。 經(jīng)常有香客問我士袄,道長,這世上最難降的妖魔是什么谎僻? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任娄柳,我火速辦了婚禮,結(jié)果婚禮上艘绍,老公的妹妹穿的比我還像新娘赤拒。我一直安慰自己,他們只是感情好诱鞠,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布挎挖。 她就那樣靜靜地躺著,像睡著了一般航夺。 火紅的嫁衣襯著肌膚如雪蕉朵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天阳掐,我揣著相機與錄音始衅,去河邊找鬼冷蚂。 笑死,一個胖子當(dāng)著我的面吹牛汛闸,可吹牛的內(nèi)容都是我干的蝙茶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蛉拙,長吁一口氣:“原來是場噩夢啊……” “哼尸闸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起孕锄,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎苞尝,沒想到半個月后畸肆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡宙址,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年轴脐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抡砂。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡大咱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出注益,到底是詐尸還是另有隱情碴巾,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布丑搔,位于F島的核電站厦瓢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏啤月。R本人自食惡果不足惜煮仇,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谎仲。 院中可真熱鬧浙垫,春花似錦、人聲如沸郑诺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽间景。三九已至佃声,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背互广。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留渔扎,地道東北人志鹃。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓夭问,卻偏偏與公主長得像,于是被迫代替她去往敵國和親曹铃。 傳聞我的和親對象是個殘疾皇子缰趋,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1、iptables基礎(chǔ)知識 Netfilter組件防火墻功能是集成在內(nèi)核中的陕见,通過以下命令可以看出防火墻功能是以...
    阿喪小威閱讀 425評論 0 0
  • 1 網(wǎng)絡(luò)協(xié)議模型 1.1 什么是協(xié)議 協(xié)議其實是一種規(guī)范 1.2 OSI(open system intercon...
    b099e4f1c471閱讀 210評論 0 0
  • 今天我們主要學(xué)習(xí)了有關(guān)爬蟲的基礎(chǔ)教程秘血。爬蟲是用于抓取網(wǎng)絡(luò)上的數(shù)據(jù),因此评甜,首先必須了解有關(guān)于網(wǎng)絡(luò)協(xié)議的基礎(chǔ)知識灰粮。...
    kotw_zjc閱讀 116評論 0 0
  • 先來看幾個問題ssh是什么?ssh的作用是啥忍坷?是如何實現(xiàn)的粘舟?如何實現(xiàn)不輸入密碼進行登陸?ssh用戶這邊保存的是公鑰...
    ivan_cq閱讀 2,132評論 0 1
  • 如果沒有動力,就到售樓處去看看旬薯,在價格作衡量的房價面前晰骑,你會有動力。 如果想要失望袍暴,也要到售樓處去看看些侍,在價格和收...
    微鳴艾特羊閱讀 318評論 0 0