日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

网络安全实战之靶场渗透技术

發(fā)布時(shí)間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络安全实战之靶场渗透技术 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

信息收集

端口掃描

nmap找到三個(gè)開(kāi)放的 TCP 端口,FTP (21)、SSH (22) 和 Python 托管的 HTTP (5000):

發(fā)現(xiàn)存在ftp匿名登錄,使用ftp進(jìn)行登錄。

Flask App

訪(fǎng)問(wèn)5000端口,發(fā)現(xiàn)開(kāi)啟了web服務(wù)。

在登錄框測(cè)試了一些常規(guī)漏洞,SQL注入和弱口令都沒(méi)有用。

【一一幫助安全學(xué)習(xí),所有資源獲取處一一】
①網(wǎng)絡(luò)安全學(xué)習(xí)路線(xiàn)
②20份滲透測(cè)試電子書(shū)
③安全攻防357頁(yè)筆記
④50份安全攻防面試指南
⑤安全紅隊(duì)滲透工具包
⑥網(wǎng)絡(luò)安全必備書(shū)籍
⑦100個(gè)漏洞實(shí)戰(zhàn)案例
⑧安全大廠(chǎng)內(nèi)部視頻資源
⑨歷年CTF奪旗賽題解析

網(wǎng)站上沒(méi)有什么有趣的東西,我們?nèi)プ?cè)看看:

登錄之后,重定向到/dashboard這個(gè)目錄下。

“添加注釋”按鈕指向/add_note,它有一個(gè)表格。嘗試提交一個(gè)note進(jìn)行測(cè)試。

它顯示在我的儀表板上。

嘗試各種 XSS 有效負(fù)載,但一切似乎都正確地轉(zhuǎn)義了。“Notes” ( /notes) 現(xiàn)在顯示我的筆記:

單擊它會(huì)導(dǎo)致/note/3并顯示注釋:

我將嘗試通過(guò)檢查其他注釋 ID(/note/1)。例如,點(diǎn)擊“升級(jí)到VIP”的鏈接顯示該選項(xiàng)當(dāng)前不可用

漏洞發(fā)現(xiàn)

JWT解密

嘗試解密cookie。

Flask cookie 看起來(lái)很像 JWT。我將嘗試flask-unsign,一個(gè)用于解碼、暴力破解和制作 Flask cookie 的工具,它可以工作:

目錄爆破

沒(méi)有發(fā)現(xiàn)啥可以利用的地方,就繼續(xù)看cookie。

Flask Unsign解密

使用flask-unsign解密

flask-unsign --decode--cookie'.eJwlx0EKgCAQBdCrDH_torU3iZCQHC0wBUcpEO-e0OrxOnYfrZws0FsH1QmkHQeLQGHNjWxhSvmhmENgR1eCGUbh7z6ra2ms0IRLsjdDY3mdx_gAqEYfRw.YkOi3g.uAoRysM25q2FzuEUmYMaCRMQ4aA'{'_flashes': [('success', 'You are now logged in')], 'logged_in': True, 'username': '0xdf'}cookie:eyJsb2dnZWRfaW4iOnRydWUsInVzZXJuYW1lIjoiYWRtaW4ifQ.Yxvarg.S9d5IqA4nL7CBjzYp4CfnG8IoLk

命令

flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOnRydWUsInVzZXJuYW1lIjoiYWRtaW4ifQ.Yxvarg.S9d5IqA4nL7CBjzYp4CfnG8IoLk'

使用flask-unsign. Flask cookie 使用秘密簽名,因此在不知道該密碼的情況下無(wú)法修改它們。可以進(jìn)行暴力破解來(lái)測(cè)試弱密碼,并通過(guò)flask-unsign來(lái)提供該功能。–unsign-w,運(yùn)行它會(huì)rockyou.txt返回錯(cuò)誤:

它似乎將文件中的“123456”通過(guò)添加–no-lteral-eval. 我將添加它,它可以很快找到秘密:

以管理員身份訪(fǎng)問(wèn)測(cè)試

生成一個(gè)管理員的cookie,然后替換到瀏覽器當(dāng)中去。

eyJsb2dnZWRfaW4iOnRydWUsInVzZXJuYW1lIjoiYWRtaW4ifQ.YxvdIw.PpnxZ3h8WkIo_5JMIfhCDD7hXo8

帶有 Cookie 的暴力用戶(hù)名

使用time將可能的用戶(hù)名生成一個(gè)cookie 列表。

代碼分析

這將獲取一個(gè)名稱(chēng)列表并生成我需要的所有 cookie。這實(shí)際上很慢,運(yùn)行時(shí)間超過(guò) 8 分鐘。這是因?yàn)槊宽?xiàng)工作都必須啟動(dòng),其中包括導(dǎo)入所有 Flask。

我可以深入研究一下flask-unsign源代碼,并跟蹤我用–sign.

@lru_cache() def get_serializer(secret: str, legacy: bool, salt: str) -> URLSafeTimedSerializer:"""Get a (cached) serializer instance:param secret: Secret key:param salt: Salt:param legacy: Should the legacy timestamp generator be used?:return: Flask session serializer"""if legacy:signer = LegacyTimestampSignerelse:signer = TimestampSignerreturn URLSafeTimedSerializer(secret_key=secret,salt=salt,serializer=TaggedJSONSerializer(),signer=signer,signer_kwargs={'key_derivation': 'hmac','digest_method': hashlib.sha1})

向后追溯,我可以發(fā)現(xiàn)默認(rèn)的 salt 是“cookie-session”。我知道或只是在文件頂部導(dǎo)入的其他內(nèi)容。我可以使用它來(lái)生成我自己的腳本:

#!/usr/bin/env python3import hashlib import sys from flask.json.tag import TaggedJSONSerializer from itsdangerous import TimestampSigner, URLSafeTimedSerializerif len(sys.argv) < 2:print(f"{sys.argv[0]} [wordlist]")sys.exit()with open(sys.argv[1], 'r') as f:names = f.readlines()for name in names:cookie = URLSafeTimedSerializer(secret_key='secret123',salt='cookie-session',serializer=TaggedJSONSerializer(),signer=TimestampSigner,signer_kwargs={'key_derivation': 'hmac','digest_method': hashlib.sha1})print(cookie.dumps({"logged_in": True, "username": name.strip()}))

使用wfuzz檢查每個(gè) cookie,隱藏 302 響應(yīng)(重定向回/login

枚舉到一個(gè),解碼為blue,發(fā)現(xiàn)一個(gè)blue用戶(hù)。

使用登錄 Oracle 的暴力用戶(hù)名

使用wfuzz對(duì)所有用戶(hù)發(fā)送登錄請(qǐng)求,并注意任何不響應(yīng)“無(wú)效憑據(jù)”的用戶(hù)。有一個(gè)文件: names.txt

它返回了一個(gè)有效的用戶(hù)名,blue(就像我通過(guò)制作 cookie 找到的一樣)。我將flask-unsign用來(lái)制作 cookie:

站點(diǎn)訪(fǎng)問(wèn)/枚舉

無(wú)論我以哪種方式獲得blue的cookie,替換 Firefox 開(kāi)發(fā)工具中的當(dāng)前 cookie,然后重新加載/dashboard顯示我現(xiàn)在以blue登錄:

還有“導(dǎo)入筆記”和“導(dǎo)出筆記”按鈕。我稍后會(huì)回到這些。

發(fā)現(xiàn)FTP登錄的用戶(hù)和密碼。

FTP登錄

發(fā)現(xiàn)一個(gè) 是關(guān)于密碼安全的PDF,下載下來(lái),然后進(jìn)行分析。

發(fā)現(xiàn)了默認(rèn)的用戶(hù)名格式。

以 ftp_admin 身份訪(fǎng)問(wèn) FTP

ftp_admin@Noter!

有一個(gè)目錄files和一個(gè)PDF。目錄為空:

發(fā)現(xiàn)2個(gè)zip文件,將它們都下載到本地。

md 到 pdf 中的 RCE

使用unzip -l查看壓縮包文件內(nèi)容。

使用diff命令比較2個(gè)壓縮包的區(qū)別。

我app.py將從每個(gè)中提取,并將它們重命名為app-1.pyand app-2.py:

繼續(xù)使用diff進(jìn)行比較。運(yùn)行diff app-1.py app-2.py顯示第一個(gè)對(duì)數(shù)據(jù)庫(kù)有不同的信任:

來(lái)源分析

該代碼很有趣,export_note_local在andexport_node_remote函數(shù)中有一個(gè)有趣的東西。每個(gè)人都會(huì)得到一個(gè)注釋,要么在本地讀取它,要么從給定的 URL 讀取它,然后用來(lái)針對(duì)它subprocess運(yùn)行一個(gè)nodeJavaScript 程序。例如,來(lái)自export_node_local:

rand_int = random.randint(1,10000) command = f"node misc/md-to-pdf.js /pre>{note['body']}' {rand_int}" subprocess.run(command, shell=True, executable="/bin/bash")return send_file(attachment_dir + str(rand_int) +'.pdf', as_attachment=True)

CVE-2021-23639

漏洞描述:

影響 md-to-pdf包,版本 <5.0.0

md-to-pdf是一個(gè)用于將 Markdown 文件轉(zhuǎn)換為 PDF 的 CLI 工具。此軟件包的受影響版本容易受到遠(yuǎn)程代碼執(zhí)行 (RCE) 的影響,因?yàn)樗脦?kù)灰質(zhì)來(lái)解析前端內(nèi)容,而不禁用 JS 引擎。

該package-lock.json文件將給出所需 JavaScript 包的版本。我將從檔案中提取它并通過(guò)以下方式找到它grep:

google搜索這個(gè)包和漏洞利用會(huì)返回一個(gè)頁(yè)面:

攻擊者可以將有效載荷放入傳入的降價(jià)中,這將導(dǎo)致 RCE。

獲取權(quán)限

反向殼

創(chuàng)建一個(gè)md文件,寫(xiě)入反彈shell的語(yǔ)句來(lái)利用它。

本地先啟動(dòng)一個(gè)80端口,然后使用nc進(jìn)行監(jiān)聽(tīng),接著使用網(wǎng)站的Export功能。

反彈Shell

獲得user.txt

獲得第一個(gè)user.txt文件,使用cat命令進(jìn)行查看。

MySQL

我們?cè)谄渲幸粋€(gè)腳本中發(fā)現(xiàn)了 mysql 憑據(jù)。由于這是一個(gè) CTF,這樣的事情總是會(huì)引起懷疑。

我們檢查mysql是否在本地運(yùn)行:

我們?cè)谀J(rèn)端口 3306 上看到它。我們還可以檢查服務(wù),看看它是否以 root 身份運(yùn)行

在 MySQL 中利用 UDF

這是。所以我們知道 mysql 以 root 身份運(yùn)行,并且我們有 root 憑據(jù)來(lái)登錄它。使用 Exploit-DB 上的漏洞利用我們可以將源代碼復(fù)制到盒子中,編譯它,然后使用它在 mysql 中創(chuàng)建的共享庫(kù)以 root 身份執(zhí)行代碼。

讓我們使用 searchsploit 獲取代碼:

本地開(kāi)啟一個(gè)web服務(wù),將文件下載到目標(biāo)機(jī)器上。

接著使用gcc進(jìn)行編譯。

然后下載到目標(biāo)機(jī)器上。

MYsql登錄

在之前獲取到了機(jī)器的用戶(hù)和密碼,然后進(jìn)行登錄。

權(quán)限提升

Raptor

漏洞利用:

有很多關(guān)于如何使用稱(chēng)為 Raptor 的代碼來(lái)利用以 root 身份運(yùn)行的 MySQL,我的想法是,我將編寫(xiě)一個(gè)共享庫(kù),將 SQL 中的命令運(yùn)行到插件目錄中,然后添加一個(gè)命令來(lái)訪(fǎng)問(wèn)它并以 root 身份執(zhí)行。

我需要獲取漏洞利用文件的副本并使用注釋中的說(shuō)明進(jìn)行編譯:

將腳本文件上傳上去。

漏洞利用過(guò)程

1.創(chuàng)建一個(gè)foo表并將二進(jìn)制文件讀入其中:

2.查看插件目錄

3.將二進(jìn)制文件寫(xiě)入上面的插件目錄,并將其作為用戶(hù)定義的函數(shù)加載:

4.測(cè)試文件權(quán)限。

5.運(yùn)行。

mysql復(fù)制bash并將其更改為 SUID:

需要找一個(gè)文件運(yùn)行的地方不是/dev/shm,因?yàn)樗呀?jīng)安裝nosuid:

而/tmp會(huì)正常工作。因?yàn)閎ash刪除 privs,運(yùn)行它會(huì)返回一個(gè)非 root的 shell:

獲得root.txt

讀取root.txt

【一一幫助安全學(xué)習(xí),所有資源獲取處一一】
①網(wǎng)絡(luò)安全學(xué)習(xí)路線(xiàn)
②20份滲透測(cè)試電子書(shū)
③安全攻防357頁(yè)筆記
④50份安全攻防面試指南
⑤安全紅隊(duì)滲透工具包
⑥網(wǎng)絡(luò)安全必備書(shū)籍
⑦100個(gè)漏洞實(shí)戰(zhàn)案例
⑧安全大廠(chǎng)內(nèi)部視頻資源
⑨歷年CTF奪旗賽題解析

總結(jié):

靶機(jī)主要是從信息收集開(kāi)始,發(fā)現(xiàn)是flask搭建的,然后使用flask unsign進(jìn)行解密,暴力破解。接著使用枚舉出的用戶(hù)進(jìn)行FTP登錄,FTP登錄之后,下載pdf文件,發(fā)現(xiàn)管理員賬號(hào)和密碼規(guī)則,然后登錄FTP管理員,接著下載壓縮包,進(jìn)行文件分析,發(fā)現(xiàn)可以使用CVE-2021-23639歷史漏洞可以獲取權(quán)限,在文件中發(fā)現(xiàn)存在mysql服務(wù),接著進(jìn)行權(quán)限提升,獲取到了root文件。

總結(jié)

以上是生活随笔為你收集整理的网络安全实战之靶场渗透技术的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。