内网穿透-FRP流量改造

前言

在拿下一台机器作为入口时,内网代理就变得尤为重要。他是我们进行横向渗透一个中间人,没了代理在内网中就寸步难行。而内网穿透的工具有很多,比如frp,reGeorg等等非常优秀的代理工具。使用方法不在赘述,这篇文章主要记录下在FRP内网代理时的流量改造。FRP作为一个开源的项目,它的特征早已被各大厂商掌握了,不进行流量上的改变我们就无法成功的建立连接,如果直接使用github编译后的EXE直接会被360等杀软直接判定为黑客行为,流量改造也是为了能够达到一定程度上的免杀效果。

改造前的流量

在frp默认配置文件 frpc.ini中不开启 tls_enable = true 时,客户端在连接服务端时会把版本信息传给服务端进行认证。下面是在连接时wires hark抓包的流量

可以看见非常明显的frp流量特征

"version","host name","user","arch","privilege_key","times tamp","run id","metas","pool_count"

这时候我们需要修改frp源码中的特征,并且使用Go环境重新编译

源码地址:

https://github.com/fatedier/frp

特征认证信息处:

pkg\msg\msg.go

可以将所有的变量加一个任意的前缀,比如Apple

而在pkg\util\version\version.go 中定义了版本信息,这里也可以修改一下

修改为3.14.15

客户端连接

如果按照正常的客户端连接方式,我们需要一个frpc.ini配置文件,这里会暴露我们的代理服务器,如果被溯源问题就大了。

[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 4444
privilege_token = pentest
tls_enable = true

[ssh]
type = tcp
remote_port = 23333
plugin = socks5

所以我们在源码中添加一段自定义的代码,使其用接收参数的方式进行指定ip和端口。

在cmd\frpc\sub\root.go文件中添加如下函数(具体配置需要自己更改)

func getFileContent(ip string,port string) {
    var content string = `[common]
    server_addr = ` + ip + `
    server_port = ` + port + `
    tls_enable = true

    [ssh]
    type = tcp
    remote_port = 6000
    plugin = socks5
    `
    fileContent = content
}

同时别忘了对变量进行定义

在 init函数中加两行代码,对ip和端口进行接收。

rootCmd.PersistentFlags().StringVarP(&ip, "server_addr", "t", "", "server_addr")

rootCmd.PersistentFlags().StringVarP(&port, "server_port", "p", "", "server_port")

最后需要在 runClient()函数下调用我们自定义的函数getFileContent()

注意一下参数的接收和代码的注释。

Go环境搭建编译frp

这里大佬搞得一键搭建QAQ,不过注意要在 /root/ 目录下运行该脚本

go_tar_gz="go1.15.5.linux-amd64.tar.gz"

go_url="https://dl.google.com/go/${go_tar_gz}"

wget --no-check-certificate -O ${go_tar_gz}  ${go_url}
tar -xvf  ${go_tar_gz}
rm  ${go_tar_gz}

# go语言 添加环境变量

cat <> ~/.profile
export GOROOT=/root/go
export GOPATH=/root/go/work
export PATH=$PATH:/root/go/bin

EOF

source ~/.profile
mkdir -p /root/go/work
# 测试go语言安装

mkdir -p ~/helloworld
cd ~/helloworld

cat < helloworld.go

// Test that we can do page 1 of the C book.

package main

func main() {
    print("hello, world\n")
}
EOF

go build

./helloworld

我这里使用的kali安装的Go环境,使用go version检测是否成功

如果不成功可能是环境变量文件没有刷新,刷新一下就好了

source ~/.profile

编译

之后把修改过后的frp源码拖到 go/work/ 目录下,修改 Makefile.cross-compiles 文件,添加

export GOPROXY=https://goproxy.cn

之所以添加export GOPROXY=https://goproxy.cn是因为在国内,go语言的这个包的网站是被禁止的,我们无法直接访问。

make -f Makefile.cross-compiles

编译出的各种版本如下

测试

环境

内网网段:

win7 192.168.111.2

kali 192.168.111.3 (有Web服务,仅内网访问)

模拟公网网段:

win7 192.168.10.19(桥接)

实验的时候需要把物理机中自定义的内网网段的网卡禁用掉。

将编译后的frps_linux_386上传到公网VPS中,创建frps.ini文件,写入

[common] bind_port = 9998 #自定义与客户端要连接的端口

随后载入该配置文件启动

./frps_linux_386 -c frps.ini

服务端已经成功启动,我们在靶机win7上传我们编译过后的frpc_windows_386.exe.

然后通过cmd命令行指定ip和端口进行连接。当然,上传之后直接在cs中执行shell命令也可。

在本地通过SocksCap64,Proxifier代理工具连接。

连接成功,如果不使用代理服务器进行访问。

使用SocksCap64代理后进行访问

成功访问了内网kali的Web服务,ssh服务也可以连上。

关闭进程

shell taskkill /f /t /im frpc_windows_386.exe

遗留问题

虽然其他服务都能够正常的访问,但是却Ping不通,不知道是自己环境的问题还是ICMP协议通过代理后会有什么变化的问题。

临时解决:

虽然无法ping,但是可以直接通过CS拿下的机器进行信息收集等工作,感觉代理后Ping的通内网并不是刚需。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ssm_mysql_高校自习室预约系统(源码)

博主介绍&#xff1a;✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

Ansible05-Ansible进阶(流程控制、Roles角色、加密优化调优等)

目录 写在前面7 Ansible 进阶7.1 流程控制7.1.1 handlers触发器与notify7.1.1.1 未使用handlers7.1.1.2 使用handlers 7.1.2 when判断7.1.2.1 when的语法7.1.2.2 when判断主机名选择模块输出7.1.2.3 when结合register变量 7.1.3 loop/with_items循环7.1.3.1 with_items案例7.1.…

微信小程序注册流程及APPID,APPSecret获取

1.注册微信小程序 注册链接&#xff1a;公众号 (qq.com) 1.1填写邮箱、密码、验证码 1.2邮箱登录点击邮件中链接激活&#xff0c;即可完成注册 1.3用户信息登记 接下来步骤&#xff0c;将用个人主题类型来进行演示 填写主体登记信息&#xff0c;使用管理员本人微信扫描二维码…

行政工作如何提高效率?桌面备忘录便签软件哪个好

在行政管理工作中&#xff0c;效率的提高无疑是每个行政人员都追求的目标。而随着科技的发展&#xff0c;各种便捷的工具也应运而生&#xff0c;其中桌面备忘录便签软件便是其中的佼佼者。那么&#xff0c;这类软件又如何帮助我们提高工作效率呢&#xff1f; 首先&#xff0c;…

(2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少

LoRA Learns Less and Forgets Less 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. 引言 2. 背景 3. 实验设置 3.2 使用编码和数学基准测试来衡量学习&#xff08;目标域…

C++:细谈Sleep和_sleep

ZINCFFO的提醒 还记得上上上上上上上上上上上上上上上上上上&#xff08;上的个数是真实的&#xff09;篇文章吗&#xff1f; 随机应变——Sleep()和_sleep() 但在ZINCFFO的C怪谈-02中&#xff1a; 我不喜欢Sleep...... 奤&#xff1f;媜煞鷥&#xff01; 整活&#xff01;…

容器项目之前后端分离

容器化部署ruoyi项目 #需要的镜像nginx、java、mysql、redis、 #导入maven镜像、Java镜像和node镜像 docker load -i java-8u111-jdk.tar docker load -i maven-3.8.8-sapmachine-11.tar docker load -i node-18.20.3-alpine3.20.tar #拉取MySQL和nginx镜像 docker pull mysql…

权限修饰符和代码块

一.权限修饰符 1.权限修饰符:是用来控制一个成员能够被访问的范围的。 2.可以修饰成员变量&#xff0c;方法&#xff0c;构造方法,内部类。 3.例子&#xff1a; public class Student {priviate String name;prviate int age;} 二.权限修饰符的分类 有四种作用范围大小…

牛客网刷题 | BC102 带空格直角三角形图案

目前主要分为三个专栏&#xff0c;后续还会添加&#xff1a; 专栏如下&#xff1a; C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读&#xff01; 初来乍到&#xff0c;如有错误请指出&#xff0c;感谢&#xff01; 描述 KiKi学习了循环&am…

#1 深度优先搜索

深搜思想 DFS其实是针对图论的一种搜索算法&#xff0c;由一个节点出发&#xff0c;不撞南墙不回头式的遍历所有的节点。 如先遍历1&#xff0c;沿&#xff08;1,2&#xff09;遍历2&#xff0c;再沿&#xff08;2,4&#xff09;遍历4&#xff0c;撞南墙&#xff08;边界条件…

bcaktrader策略编写1

。 1 Backtrader策略类编写说明 在上一篇&#xff0c;我大体记录了整个backtrader整体最简流程&#xff0c;策略类中没有实现任何买卖逻辑&#xff0c;只是单纯的打印了每日的收盘价。今天&#xff0c;我将详细介绍策略编写类的构建过程&#xff0c;并构建一个简单的均线策略…

林业调查具体是做些什么?

林业调查是对森林资源进行系统的信息收集和处理的过程。 林业调查涵盖了对林木、林地以及林区内生长的动植物及其环境条件的全面评估&#xff0c;旨在及时掌握森林资源的数量、质量和生长消亡的动态规律。这种调查不仅关注森林本身&#xff0c;还包括与之相关的自然环境和经济…

分销与传销的界限

分销与传销&#xff0c;作为商业活动中的两种销售模式&#xff0c;确实在核心特征和法律地位上存在显著的区别。以下是关于两者的详细分析&#xff0c;以及为什么选择微信分销小程序时&#xff0c;通常建议找外包公司的理由。 一、分销与传销的区别 商业模式&#xff1a; 分销…

【String 类 常用方法详解和归类】全网最细总结

目录 一、 String 介绍二、String 类中查找字符串的方法2.1 常用查找在这里插入图片描述2.2、其他查找 三、转换功能3.1 常用转换方法3.2、其他转换方法 四、判断、比较相关方法4.1、常用判断、比较方法4.2、其他判断、比较方法 五、拆分,截取,替换方法5.1、常用拆分,截取,替换…

linux---生产者和消费者模型

生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯&#xff0c;而通过阻塞队列来进行通讯&#xff0c;所以生产者生产完数据之后不用等待消费者处理&#xff0c;直接扔给阻塞队列&#xff0c;消费者不找生产者要数据&#…

[数据集][目标检测]吉他检测数据集VOC+YOLO格式66张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;66 标注数量(xml文件个数)&#xff1a;66 标注数量(txt文件个数)&#xff1a;66 标注类别数…

面试二十七、 CAS和Atomic

CAS锁机制&#xff08;无锁、自旋锁、乐观锁、轻量级锁&#xff09;-CSDN博客 1. ABA问题 在C中&#xff0c;可以使用std::atomic和版本号来解决ABA问题。C标准库没有直接提供类似Java的AtomicStampedReference&#xff0c;但可以通过将版本号和指针组合在一起实现类似的效果。…

win系统游戏提示找不到d3dx9_37.dll丢失的解决方法-最简单的解决方法

d3dx9_37.dll 是一个动态链接库文件&#xff0c;属于 Microsoft DirectX 9 的一部分。DirectX 9 是一个用于多媒体应用&#xff0c;特别是游戏和视频的 API&#xff0c;它提供了一套丰富的功能&#xff0c;用于处理图形、声音和输入设备等。d3dx9_37.dll 文件包含了 Direct3D 9…

巨细巨细的白痴级vulntarget-a靶场wp再不会你打死我

ad一&#xff0c;靶场搭建 下载靶场&#xff1a;GitHub - crow821/vulntarget: vulntarget靶场系列 官方拓补图 ps&#xff1a;此处 攻击机ip192.168.87.134&#xff0c;win7ip1为192.168.87.144 下载完毕后直接装入虚拟机不要进去&#xff0c;不要进去&#xff0c;不要进去…

使用LLaMA-Factory微调大模型

使用LLaMA-Factory微调大模型 github 地址 https://github.com/hiyouga/LLaMA-Factory 搭建环境 git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory在 LLaMA-Factory 路径下 创建虚拟环境 conda create -p ./venv python3.10激活环境 c…