Kali Linux 無線滲透測試入門指南 第二章 WLAN 和固有的不安全性

第二章 WLAN 和固有的不安全性

作者:Vivek Ramachandran, Cameron Buchanan

譯者:飛龍

協(xié)議:CC BY-NC-SA 4.0

簡介

建筑越高,地基就要打得越深。

-- 托馬斯·坎佩斯

沒有什么偉大的東西能在脆弱的基礎(chǔ)上構(gòu)建。在我們的語境中,固有的不安全性之上不能構(gòu)建出安全。

WLAN 在設(shè)計上擁有特定的不安全性,它們可被輕易利用,例如,通過封包注入,以及嗅探(能夠在很遠處進行)。我們會在這一章利用這些缺陷。

2.1 回顧 WLAN 幀

由于這本書處理無線方面的安全,我們假設(shè)你已經(jīng)對協(xié)議和封包的頭部有了基本的了解。沒有的話,或者你離開無線有很長時間了,現(xiàn)在是個好機會來回顧這個話題。

讓我們現(xiàn)在快速復習一些 WLAN 的基本概念,大多數(shù)你可能已經(jīng)知道了。在 WLAN 中,通信以幀的方式進行,一幀會擁有下列頭部結(jié)構(gòu):

Frame Control字段本身擁有更復雜的結(jié)構(gòu):

類型字段定義了下列三種 WLAN 幀:

  1. 管理幀:管理幀負責維護接入點和無線客戶端之間的通信。管理幀擁有下列子類型:

    • 驗證
    • 解除驗證
    • 關(guān)聯(lián)請求
    • 關(guān)聯(lián)響應
    • 重關(guān)聯(lián)請求
    • 重關(guān)聯(lián)響應
    • 解除關(guān)聯(lián)
    • 信標
    • 探測請求
    • 探測響應
  2. 控制幀:控制幀負責確保數(shù)據(jù)在接入點和無線客戶端之間合理交換。控制幀擁有下列子類型:

    • 請求發(fā)送(RTS)
    • 清除發(fā)送(CTS)
    • 確認(ACK)
  3. 數(shù)據(jù)幀:數(shù)據(jù)幀攜帶在無線網(wǎng)絡(luò)上發(fā)送的真實數(shù)據(jù)。它沒有子類型。

我們在之后的章節(jié)中討論不同攻擊的時候,會討論這些幀中每一種的安全隱患。

我們現(xiàn)在看一看如何使用 Wireshark 嗅探無線網(wǎng)絡(luò)上的這些幀。也有其他工具 -- 例如 Airodump-NG,Tcpdump,或者 Tshark -- 你同樣可以用于嗅探。我們在這本書中多數(shù)情況會使用 Wireshark,但是我們推薦你探索其它工具。第一步是創(chuàng)建監(jiān)控模式的接口。這會為你的適配器創(chuàng)建接口,使我們可以讀取空域中的所有無線幀,無論它們的目標是不是我們。在有線的世界中,這通常叫做混合模式。

實戰(zhàn)時間 -- 創(chuàng)建監(jiān)控模式的接口

讓我們現(xiàn)在將無線網(wǎng)卡設(shè)為監(jiān)控模式。

遵循下列指南來開始:

  1. 啟動 Kali 并使適配器保持連接。一旦你打開了控制臺,輸入iwconfig并確保網(wǎng)卡被檢測到,驅(qū)動被正確加載。

  2. 使用ifconfig wlan1 up命令啟動網(wǎng)卡(其中wlan1是你的適配器)。通過運行ifconfig wlan1驗證網(wǎng)卡是否正在運行。你應該在輸出的第二行看到單詞UP,像這樣:

  3. 為了將網(wǎng)卡設(shè)為監(jiān)控模式,我們使用airmon-ng,它在 Kali 中自帶。首先執(zhí)行airmon-ng命令來確認它檢測到了可用的網(wǎng)卡。你應該能看到輸出中列出的wlan1接口:

  4. 現(xiàn)在輸入airmon-ng start wlan1命令來創(chuàng)建對應wlan1設(shè)備的監(jiān)控模式接口。新的監(jiān)控模式接口名為mon0。(你可以再次不帶參數(shù)使用airmon-ng來驗證。)

  5. 同樣,運行ifconfig mon0會展示叫做mon0的新接口。

剛剛發(fā)生了什么?

我們成功創(chuàng)建了叫做mon0的監(jiān)控模式接口。這個接口用于嗅探空域中的無線封包。這個接口已經(jīng)在我們的無線適配器中創(chuàng)建了。

試一試 -- 創(chuàng)建多個監(jiān)控模式接口

可以創(chuàng)建多個監(jiān)控模式的接口,使用相同的物理網(wǎng)卡。使用 airmon-ng 工具來看看如何完成。

太棒了!我們擁有了監(jiān)控模式接口,等待從空域中讀取一些封包。所以讓我們開始吧。

下一個練習中,我們會使用 Wireshark 和剛剛創(chuàng)建的mon0監(jiān)控器模式接口,從空域中嗅探封包。

實戰(zhàn)時間 -- 嗅探無線封包

遵循下列指南來開始:

  1. 啟動我們在第一章中配置好的接入點Wireless Lab

  2. 通過在控制臺中鍵入Wireshark &來啟動 Wireshark,一旦 Wireshark 運行,訪問Capture | Interfaces

  3. 通過點擊Start按鈕從mon0接口選擇封包捕獲,像截圖中那樣。Wireshark 會開始捕獲,現(xiàn)在你可以在 Wireshark 窗口中看到封包。

  4. 這些就是你的無線適配器從空域中嗅探到的封包。為了查看任何封包,在上面的窗口中選擇它,中間的窗口中會展示整個封包:

    點擊IEEE 802.11 Wireless LAN management frame前面的三角形來展開并查看詳細信息。

觀察封包中不同的頭部字段,并將它們和之前了解的 WLAN 幀類型以及子類型關(guān)聯(lián)。

剛剛發(fā)生了什么?

我們剛剛從空域中嗅探了第一組封包。我們啟動了 Wireshark,它使用我們之前創(chuàng)建的監(jiān)控模式接口mon0。通過查看 Wireshark 的底部區(qū)域,你應該注意到封包捕獲的速度以及目前為止捕獲的封包數(shù)量。

試一試 -- 發(fā)現(xiàn)不同設(shè)備

Wireshark 的記錄有時會令人生畏,即使在構(gòu)成合理的無線網(wǎng)絡(luò)中,你也會嗅探到數(shù)千個封包。所以深入到我們感興趣的封包十分重要。這可以通過使用 Wireshark 中的過濾器來完成。探索如何使用這些過濾器來識別記錄中唯一的無線設(shè)備 -- 接入點和無線客戶端。

如果你不能做到它,不要著急,它是我們下一個要學的東西。

實戰(zhàn)時間 -- 查看管理、控制和數(shù)據(jù)幀

現(xiàn)在我們學習如何使用 WIreshark 中的過濾器來查看管理、控制和數(shù)據(jù)幀。

請逐步遵循下列指南:

  1. 為了查看捕獲的封包中的所有管理幀,在過濾器窗口中輸入過濾器wlan.fc.type,并點擊Apply。如果你打算防止封包向下滾動過快,你可以停止封包捕獲。

  2. 為了查看控制幀,將過濾器表達式修改為wlan.fc.type == 1

  3. 為了查看數(shù)據(jù)幀,將過濾器表達式修改為wlan.fc.type == 2

  4. 為了額外選擇子類型,使用wlan.fc.subtype過濾器。例如,要查看所有管理幀中的信標幀,使用下列過濾器:

    (wlan.fc.type == 0) && (wlan.fc.subtype == 8)
    
  5. 作為替代,你可以在中間的窗口中右擊任何頭部字段,之后選擇Apply as Filter | Selected來使用過濾器。

  6. 這會自動為你在Filter字段中添加正確的過濾器表達式。

剛剛發(fā)生了什么?

我們剛剛學習了如何在 Wireshark 中,使用多種過濾器表達式來過濾封包。這有助于監(jiān)控來自我們感興趣的設(shè)備的所選封包,而不是嘗試分析空域中的所有封包。

同樣,我們也可以以純文本查看管理、控制和數(shù)據(jù)幀的封包頭部,它們并沒有加密。任何可以嗅探封包的人都可以閱讀這些頭部。要注意,黑客也可能修改任何這些封包并重新發(fā)送它們。協(xié)議并不能防止完整性或重放攻擊,這非常易于做到。我們會在之后的章節(jié)中看到一些這類攻擊。

試一試 -- 玩轉(zhuǎn)過濾器

你可以查閱 Wireshark 的手冊來了解更多可用的過濾器表達式,以及如何使用。嘗試玩轉(zhuǎn)多種過濾器組合,直到你對于深入到任何細節(jié)層級都擁有自信,即使在很多封包記錄中。

下個練習中,我們會勘察如何嗅探我們的接入點和無線客戶端之間傳輸?shù)臄?shù)
據(jù)封包。

實戰(zhàn)時間 -- 嗅探我們網(wǎng)絡(luò)上的封包

這個練習中,我們會了解如何嗅探指定無線網(wǎng)絡(luò)上的封包。出于簡單性的原因,我們會查看任何沒有加密的封包。

遵循下列指南來開始:

  1. 啟動我們命名為Wireless Lab的無線接入點。讓我們將其配置為不加密。

  2. 我們首先需要尋找Wireless Lab運行在哪個頻道上。為了完成它,打開終端并執(zhí)行airodump-ng --bssid <mac> mon0,其中<mac>是接入點的 MAC 地址。運行程序,不就你就會看到你的接入點顯示在屏幕上,并帶有所運行的頻道。

  3. 我們可以從之前的截圖中看到,我們的接入點Wireless Lab運行在頻道 11 上。要注意這可能和你的接入點不同。

    為了嗅探發(fā)往和來自這個接入點的封包,我們需要將無線網(wǎng)卡鎖定在同一頻道上,也就是頻道 11。為了實現(xiàn)它,執(zhí)行iwconfig mon0 channel 11之后執(zhí)行iwconfig mon0來驗證。你會看到輸出中的Frequency: 2.462 GHz。這相當于頻道 11。

  4. 現(xiàn)在啟動 Wireshark,開始嗅探mon0接口。在 WIreshark 開始嗅探之后,在過濾器區(qū)域輸入wlan.bssid == <mac>來使用接入點 BSSID 的過濾器,像下面的截圖這樣。為你的接入點填寫合適的 MAC 地址。

  5. 為了查看接入點的數(shù)據(jù)封包,添加下列過濾器:(wlan.bssid == <mac>) && (wlan.fc.type_subtype == 0x20)。在客戶端筆記本打開你的瀏覽器,并輸入接入點管理界面的 URL。我這里,像第一章那樣,它是http://192.168.0.1。這會生成數(shù)據(jù)封包,WIreshark 會捕獲它。

  6. 封包嗅探允許我們輕易分析未加密的數(shù)據(jù)。這就是為什么我們需要在無限種使用加密的原因。

剛剛發(fā)生了什么?

我們剛剛使用 WIreshark 和多種過濾器嗅探了空域中的數(shù)據(jù)。由于我們的接入點并沒有使用任何加密,我們能夠以純文本看到所有數(shù)據(jù)。這是重大的安全問題,因為如果使用了類似 WIreshark 的嗅探器,任何在接入點 RF 范圍內(nèi)的人都可以看到所有封包。

試一試 -- 分析數(shù)據(jù)封包

使用 WIreshark 進一步分析數(shù)據(jù)封包。你會注意 DHCP 請求由客戶端生成,并且如果 DHCP 服務器可用,它會返回地址。之后你會發(fā)現(xiàn) ARP 封包和其它協(xié)議的封包。這樣來被動發(fā)現(xiàn)無線網(wǎng)絡(luò)上的主機十分簡單。能夠看到封包記錄,并重構(gòu)出無線主機上的應用如何和網(wǎng)絡(luò)的其余部分通信十分重要。Wireshark 所提供的有趣的特性之一,就是跟蹤流的能力。這允許你一起查看多個封包,它們是相同連接中的 TCP 數(shù)據(jù)交換。

此外,嘗試登陸www.gmail.com和其它流行站點并分析生成的數(shù)據(jù)流量。

我們會演示如何向無線網(wǎng)絡(luò)中注入封包。

實戰(zhàn)時間 -- 封包注入

我們使用 aireplay-ng 工具來進行這個練習,它在 Kali 中自帶。

遵循下列指南來開始:

  1. 為了執(zhí)行注入測試,首先啟動 Wireshark,并使用過濾器表達式(wlan.bssid == <mac>) && !(wlan.fc.type_subtype == 0x08)。這會確保我們只能看到我們無線網(wǎng)絡(luò)的非信標幀。

  2. 現(xiàn)在在終端中執(zhí)行命令aireplay-ng -9 -e Wireless Lab -a <mac> mon0

  3. 返回 Wireshark,你會看到屏幕上會顯示大量封包。一些封包已經(jīng)由aireplay-ng發(fā)送,它們是我們發(fā)送的,其它的是Wireless Lab接入點用于響應注入的封包。

剛剛發(fā)生了什么?

我們剛剛使用 aireplay-ng,成功向我們的測試環(huán)境網(wǎng)絡(luò)注入了封包。要注意我們的網(wǎng)卡將這些任意的封包注入到網(wǎng)絡(luò)中,而不需要真正連接到無線接入點Wireless Lab

試一試 -- 探索 Aireplay-ng 工具

我們會在之后的章節(jié)中詳細了解封包注入。現(xiàn)在請?zhí)剿饕幌?Aireplay-ng 工具用于注入封包的其它選項。你可以使用 Wireshark 監(jiān)控空域來驗證注入是否成功。

2.2 WLAN 嗅探和注入的重點筆記

WLAN 通常在三種不同頻率范圍內(nèi)工作:2.4 GHz,3.6 GHz 和 4.9/5.0 GHz。并不是所有 WIFI 網(wǎng)卡都全部支持這三種范圍和相關(guān)的波段。例如,Alfa 網(wǎng)卡只支持 IEEE 802.11b/g。這就是說,這個網(wǎng)卡不能處理 802.11a/n。這里的關(guān)鍵是嗅探或注入特定波段的封包。你的 WIFI 網(wǎng)卡需要支持它。

另一個 WIFI 的有趣方面是,在每個這些波段中,都有多個頻道。要注意你的 WIFI 網(wǎng)卡在每個時間點上只能位于一個頻道。不能將網(wǎng)卡在同一時間調(diào)整為多個頻道。這就好比車上的收音機。任何給定時間你只能將其調(diào)整為一個可用的頻道。如果你打算聽到其它的東西,你需要修改頻道。WLAN 嗅探的原則相同。這會產(chǎn)生一個很重要的結(jié)論 -- 我們不能同時嗅探所有頻道,我們只能選擇我們感興趣的頻道。這就是說,如果我們感興趣的接入點的頻道是 1,我們需要將網(wǎng)卡設(shè)置為頻道 1。

雖然我們在上面強調(diào)了 WLAN 嗅探,注入的原則也相同。為了向特定頻道注入封包,我們需要將網(wǎng)卡調(diào)整為特定頻道。

讓我們現(xiàn)在做一些練習,設(shè)置網(wǎng)卡來制定頻道或進行頻道跳躍,設(shè)置規(guī)范域以及功率等級,以及其它。

實戰(zhàn)時間 -- 使用適配器做實驗

仔細遵循以下步驟:

  1. 輸入iwconfig wlan0命令來查看網(wǎng)卡的功能。你可以看到,我們的適配器可以工作在 b、g 和 n 波段中。

  2. 為了將網(wǎng)卡設(shè)置為特定頻道,我們使用iwconfig mon0 channel X命令。

  3. iwconfig命令集并沒有頻道跳躍模式。你可以在它上面編寫簡單的腳本來實現(xiàn)。一個簡單的方式就是帶選項使用 Airodump-NG 來跳躍任何頻道,或者是某個子集,或者使用所選的波段。當我們執(zhí)行airodump-ng --help的時候,所有這些選項展示在下面。

剛剛發(fā)生了什么?

我們知道了,無線嗅探和封包注入依賴于硬件的支持。這即是說我們只能處理網(wǎng)卡支持的波段和頻道。此外,無線網(wǎng)卡每次只能位于一個頻道。這說明了我們只能一次嗅探或注入一個頻道。

試一試 -- 嗅探多個頻道。如果你需要同時嗅探多個頻道,你需要多個物理 WIFI 網(wǎng)卡。如果你可以獲得額外的網(wǎng)卡,嘗試同時嗅探多個頻道。

4.3 無線網(wǎng)絡(luò)中規(guī)范域的作用

WIFI 的復雜性到這里并沒有結(jié)束。每個國家都有自己的未授權(quán)的頻譜分配策略。這規(guī)定了允許的功率等級和頻譜的用戶。例如,F(xiàn)CC 規(guī)定,如果你在美國使用 WLAN,你就必須遵守這些規(guī)定。在一些國家,不遵守相關(guān)規(guī)定會收到懲罰。

現(xiàn)在讓我們看看如何尋找默認的規(guī)范設(shè)置,以及如何按需修改它們。

實戰(zhàn)時間 -- 使用適配器做實驗

仔細遵循以下步驟:

  1. 重啟的計算機并不要連接到適配器。

  2. 登錄之后,使用tail命令監(jiān)控內(nèi)核信息:

    插入適配器,你會看到像這樣的一些東西。這展示了網(wǎng)卡所使用的默認規(guī)范設(shè)置。

  3. 讓我們假設(shè)你在美國。為了將規(guī)范域修改為 US,我們在新的終端中輸入下列命令iw reg set US


    如果命令執(zhí)行成功,我們會在終端得到這樣的輸出,其中我們正在監(jiān)控/var/log/messages

  4. 現(xiàn)在嘗試把網(wǎng)卡設(shè)置為頻道 11,它生效了。但是當你嘗試設(shè)置為頻道 12 時候,你會得到錯誤。這是因為在美國不能使用頻道 12。

  5. 功率等級也使用相同的原則。US 只允許最大 27 dBm(500 毫瓦)。所以即使我們的適配器的功率為 1 瓦(30 dBm),我們也不能將其設(shè)置為最大傳輸功率:

  6. 但是,如果我們在玻利維亞,我們就能夠使用 1 瓦的傳輸功率,因為這里允許。你可以看到,我們將規(guī)范域設(shè)為玻利維亞 -- iw reg set BO -- 我們就能將網(wǎng)卡功率設(shè)置為 30DMB 或 1 瓦。我們在玻利維亞使用頻道 12,這在美國是禁止的。

剛剛發(fā)生了什么?

每個國家都有用于未授權(quán)無線波段的自己的規(guī)范。當我們將規(guī)范域設(shè)置為特定國家時,我們的網(wǎng)卡會遵循允許的頻道和指定的功率等級。但是,嗅探網(wǎng)卡的規(guī)范域,來強制它工作在不允許的頻道上,以及在高于允許值的功率等級上傳輸數(shù)據(jù)相當容易。

試一試 -- 探索規(guī)范域

查看你可以設(shè)置的多種參數(shù),例如頻道、功率、規(guī)范域,以及其它。在 Kali 上使用iw命令集。這會讓你深刻了解在不同國家的時候如何配置網(wǎng)卡,以及修改網(wǎng)卡設(shè)置。

小測驗 -- WLAN 封包嗅探和注入

Q1 哪種幀類型負責在 WLAN 中的驗證?

  1. 控制
  2. 管理
  3. 數(shù)據(jù)
  4. QoS

Q2 使用 airmon-mg 在 wlan0 上創(chuàng)建的第二個監(jiān)控器模式接口的名字是什么?

  1. mon0
  2. mon1
  3. 1mon
  4. monb

Q3 用于在 Wireshark 中查看非信標的過濾器表達式是什么?

  1. !(wlan.fc.type_subtype == 0x08)
  2. wlan.fc.type_subtype == 0x08
  3. (no beacon)
  4. Wlan.fc.type == 0x08

總結(jié)

這一章中,我們對 WLAN 協(xié)議進行了一些重要的觀察。

管理、控制和數(shù)據(jù)幀是未加密的,所以監(jiān)控空域的人可以輕易讀取。要注意數(shù)據(jù)封包載荷可以使用加密來保護,使其更加機密。我們在下一章討論它們。

我們可以通過將網(wǎng)卡設(shè)置為監(jiān)控模式來嗅探附近的整個空域。

由于管理和控制幀沒有完整性保護,使用例如 aireplay-ng 的工具通過監(jiān)控或照舊重放它們來注入封包非常容易。

未加密的數(shù)據(jù)封包也可以被修改和重放到網(wǎng)絡(luò)中。如果封包加密了,我們?nèi)匀豢梢哉张f重放它們,因為 WLAN 設(shè)計上并沒有保護封包重放。

下一章中,我們會看一看用于 WLAN 的不同驗證機制,例如 MAC 過濾和共享驗證,以及其它。并且通過實際的演示來理解多種安全缺陷。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,119評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

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