应用层代理技术
应用层代理技术
应用层代理介绍
应用层代理是我们最常用的代理,平时在进行内网渗透,或者扫描的时候经常需要这个代理,根据协议不同大体有以下的分类
1、http代理
2、socks代理
3、SSH代理
4、DNS代理
5、还有自定义的一些协议和加密规则
每种代理应用的场景不同,在不同的场景需要选择不同的代理
代理场景介绍
一、公网资产扫描
平时在做渗透测试中我们需要对公网的资产进行扫描和探测,但是又害怕对方封掉你的IP地址,我们需要挂代理

在这种情况我我们需要哪些东西走代理呢?
1、扫描器工具
2、浏览器
3、burpsuite
使用代理一般是用http代理或者socks代理代理后的拓扑如下

这里的代理分为两类
1、单个代理:单代理就是一个代理机器,只有一个IP,不会自动切换

2、代理池:代理池就是一堆IP地址,可以实现自动变化,每次请求都变化

注意:有些工具支持可以将单个代理IP写到文本中,从而实现代理池的功能
二、内网资产扫描
内网资产扫描这种场景一般是进行内网渗透才需要的代理技术,如果你不打内网一般是不需要这种技术的,内网代理技术一般也是采用http或者socks代理

针对以上的情况我们需要如何对内网进行扫描呢?
1、直接使用web服务进行扫描
2、做代理让web服务成为代理机器
针对于内网的机器要考虑是用代理隧道还是使用端口转发
在这种情况需要用什么工具走代理呢?
1、扫描工具
2、浏览器
3、burp
使用代理一般是用http代理或者socks代理代理后的拓扑如下

总体就是这样的情况第一种一般是买代理,第二种一般是做代理
1.公网资产扫描代理配置
单代理配置
单代理介绍
平时在做渗透测试中我们需要对公网的资产进行扫描和探测,但是又害怕对方封掉你的IP地址,或者IP 已经封了我们需要挂代理
单个代理
单个代理表示就一个IP代理机器,IP地址不会自动切换
单个代理一般大家都用的免费的
一般免费的这种单个代理有以下的弊端
1、使用人比较多网速比较慢,很多都用不了
2、有可能这些代理是有些公司主动放出的用来收集用户信息
筛选代理
1、购买或者使用免费的单个代理IP
快代理提供了免费的单个代理IP,也可以花钱购买自己独有的IP

2、将IP地址整理然后进行测试,看一下那个可以用
可以使用代理检测工具检测一下
http://www.leishenhttp.com/index/check/index.html
https://www.zdaye.com/ip/CheckHttp/
使用代理
1、浏览器
2、burp
useroptions
3、工具有些扫描工具是支持代理的可以查看工具的具体命令看看用法

代理池配置
代理池的意思就是拥有多个代理可以随意切换的东西,那么代理池一般有几种用法呢
1、购买代理池,购买的东西会自动切换IP,简单又方便
2、有些工具可以支持文本代理的方式,就是将很多单个IP代理放在一个文件里面,他会自动使用和切换
购买代理池
购买完成之后需要填写地址和端口还有域名
使用代理池
1、使用浏览器
2、使用BURP
代理后访问百度
3、使用工具 很多工具不支持代理,或者不支持密码认证这个使用想用代理怎么办,就需要使用第三方的工具来进行代理的使用(专业技代理:例如proxifier proxychain)
SSTAP和Shadowsocks
当我们想让我们的电脑全局都走代理的时候,就需要使用到全局代理,设置了全局代理我们的任何工具 直接使用不需要再做任何的配置,所有使用工具 使用BP浏览器不用做任何的配置,默认就走代理,这 种方式最推荐
Shadowsocks(与clash原理相同)
声明:v2ray / winXray / Clash / Shadowrocket / Quantumult ,目前这种科学上网的方式也是属于代 理的技术
这种工具一般是SSR订阅得到IP地址的,支持全局代理和本地代理
Shadowsocks-原理介绍
使用自己的的协议和加密方式,用软件连接代理访问外网
搭建方式
1、首先找一个国外的服务器(专业名字叫VPS)在机器上配置相应的规则和混淆
2、使用该工具连接服务器,使用相同的加密方式,进行连接
使用方式
该工具支持全局和PAC,全局的意思就是所有的工具都会通过该工具进行代理
全局模式
全局模式会在系统代理设置⼿动设置⼀个代理服务器,所有跟随系统代理设置的软件(⼀般是浏览器)都 会使⽤这个代理服务器。
PAC
代理⾃动配置(英语:Proxy auto-config,简称PAC)是⼀种⽹页浏览器技术,⽤于定义浏览器该如何⾃ 动选择适当的代理服务器来访问⼀个⽹址
SSTAP(适合全局代理)
SSTAP介绍
SSTap简介 SSTap是SocksCap64作者新开发的一款利用虚拟网卡实现的网络层代理。支持TCP,UDP,该 工具使用简单,可以使用于游戏,建议大家使用这个进行扫描
SSTAP安装
1、一直点击下一步安装
2、中途会给电脑安装一个虚拟网卡
3、完成之后可以配置HTTP代理socks代理还有订阅链接
4、支持的方式有全局和浏览器
SSTP使用
1、浏览器使用
2、burp使用
3、cmd使用
2.应用层内网代理
内网代理介绍
内网资产扫描这种场景一般是进行内网渗透才需要的代理技术,如果不打内网一般是不需要这种技术 的,内网代理技术一般也是采用http或者socks代理
针对以上的情况我们需要如何对内网进行扫描呢?
1、直接使用web服务进行扫描(参考内网渗透)
2、做代理让web服务成为代理机器
针对于内网的机器要考虑是用代理隧道还是使用端口转发
在这种情况需要用什么工具走代理呢?
1、扫描工具
2、浏览器
3、burp
使用代理一般是用http代理或者socks代理代理后的拓扑如下
代理连接工具
windows工具
如果是windows是proxifire工具
1、运行软件然后点进进行一步一步安装
2、安装完成运行软件
3、打开代理服务器配置,可以看到支持http和socks代理

4、该工具支持代理链,代理链可以支持多级代理
linux工具
linux工具下一般使用命令行工具proxychains
该工具在kali中自带
安装步骤
1、下载Proxychains源码,可以从GitHub上下载,或者直接从官网下载https://github.com/rofl0r/proxychains-ng
2、解压文件然后进行安装
1 |
|
3、安装完成之后,需要修改配置文件/usr/local/etc/proxychains.conf(其中kali的在/etc/proxychains4.conf),将其中的代理服务器修改为你的代理服务器
4、修改完成之后,可以使用proxychains命令来使用代理服务器,示例
EW(EarthWorm)工具
Earthworm简介
Earthworm简称EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功 能,可在复杂网络环境下完成网络穿透
该工具已经停止维护和下载:http://rootkiter.com/EarthWorm/
该工具支持端口转发,正向代理,反向代理,多级代理等方式,可以打通一条网络隧道,直达网络深 处,用蚯蚓独有的手段突破网络限制
下载地址:https://github.com/idlefire/ew
1.(一级代理)正向代理
拓扑图如下
正向意思就是攻击者可以访问目标的机器,也就意味着目标的机器在公网,如下拓扑,例如通过web漏洞打进去
正向连接就是黑客主动连接web服务器,在web开启监听
将ew上传到web服务器 并且执行如下命令
1 |
|
黑客的电脑使用froxyifile或者proxychains等工具进行连接
实验步骤
1、使用漏洞将web服务器控制下来然后上传ew工具执行开启监听
2、使用proxyifile连接
3、配置代理规则
4、linux 使用proxychains,修改配置文件即可
1 |
|
2.(一级代理)反向代理
反向连接适合于目标没有公网 IP 的情况,这时就需要一台公网 vps 了,这里就直接以内网地址作为演 示了。例如钓鱼钓到内网主机
VPS执行如下
1 |
|
目标器执行如下
1 |
|
这条命令表示在本地开启 socks 5 服务,并反弹到 vps 的 4444 端口,如果代理建立成功,在 VPS 端就 会看到 rssocks cmd_socket OK! 的提示
在黑客的机器上使用工具连接VPS的1080端口
实验步骤
1、先在VPS上开启监听
1 |
|
2、然后再靶机上连接VPS
1 |
|
3、在黑客电脑上使用工具连接vps的1080端口即可
3.(二级代理)正向连接
二级代理发生在如下的情况
1、web服务器在公网黑客可以访问
2、B机器在内网黑客不能访问
3、web服务器只能访问B机器
4、B机器可以访问内网机器
这种情况使用二级正向代理
在B主机上执行
1 |
|
在web服务器上执行
1 |
|
黑客使用工具连接web服务器的1080端口从而实现访问内网机器
实验步骤
1、在内网的机器B上执行命令
1 |
|
2、在web机器上执行如下命令
1 |
|
3、测试代理
4.(二级代理)反向连接
反向代理的拓扑路线如下
1、web服务器在内网可以访问VPS
2、内网机器B在内网不能访问VPS可以访问web服务
vps
1 |
|
主机B
1 |
|
web服务器
1 |
|
黑客代理到vps1080端口
FPR介绍和使用(稳定)
FRP介绍(0.51.2版本的使用,最新参考使用手册)
FRP (Fast Reverse Proxy) 是一个使用 Go 语言开发的高性能的反向代理应用,可以轻松地进行内网穿 透,对外网提供服务。FRP 支持 TCP、UDP、HTTP、HTTPS等协议类型,他支持点对点的转发,还有 全流量转发,FRP最大的一个特点是使用SOCKS代理,而SOCKS是加密通信的,类似于做了一个加密的 隧道,可以把外网的流量,通过加密隧道穿透到内网。效果有些类似于VPN。
下载地址:https://github.com/fatedier/frp/releases
使用手册:https://gofrp.org/zh-cn/docs/
FRP分为两个文件
将 frps 及 frps.ini 放到具有公网 IP 的机器上。 将 frpc 及 frpc.ini 放到处于内网环境的机器上。
FRP启动
服务端配置
Frp 默认给出两个服务端配置文件,一个是简版的 frps.ini,另一个是完整版本 frps_full.ini,服务端一 般就是搭建在公网的机器上(黑客的机器)
代理配置文件

代理启动文件
1 |
|
使用FRPS 运行 frps.ini 配置文件
客户端配置
FRP 默认也给出两个客户端配置文件,一个是简版的 frpc.ini,另一个是完整版本 frpc_full.ini。 这里同 样以简版的 frpc.ini 文件为例,假设 FRP 服务端所在服务器的公网 IP 为 X.X.X.X:
配置文件如下

启动文件
1 |
|
配置文件非常重要,需要什么功能就可以进行不同的配置,来进行代理 参考文档:
https://gofrp.org/zh-cn/docs/reference/
1.点对点转发(P2P)
内部网络无法直接访问该端口,可以通过FRP进行端口转发到公网
1、服务端配置如下
启动服务端
1 |
|
2、客户端配置如下
连接服务端的7000端口,并将3389端口转发给服务端的6000端口
启动客户端
1 |
|
访问vps的6000端口相当于连接内网机器的3389端口
2.搭建socks代理
使用场景如下
现在我们搭建socks隧道实现对目标机器的全端口访问
服务端 配置文件:

客户端配置文件:

配置socks代理即可

3.搭建socks多级隧道
多级socks隧道搭建网络拓扑如下
代理配置:
首先搭建A->B的隧道
A执行如下

B执行如下

搭建好隧道之后接着使用端口转发
B上执行如下

VPS上执行如下
通过工具连接
NPS的介绍和使用
NPS介绍
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
使用手册:https://ehang-io.github.io/nps/#/
下载地址:https://github.com/ehang-io/nps/releases
NPS也分为客户端和服务端两个
客户端:运行在内网中
服务端:运行在公网上
NPS使用
服务端启用
运行nps.exe
账号:admin 密码:123
需要 web 界面进行配置隧道
客户端启用
在服务端的web界面进行配置后有命令显示
1 |
|
使用代理工具连接服务端的5000端口即可
3.上线不出网机器方式
不出网机器拓扑介绍
不出网机器介绍
上线不出网机器是常见的问题,如何在内网中实现不出网机器的上线呢,分为了如下的形式,常见的网络拓扑如下
情况分类
上线不出网机器一般是指B区域的电脑上线到CS工具或者MSF上,因为B机器不出网无法和VPS进行通信
针对B区域不出网的机器一般是两种情况
1、纯内网环境,任何端口都不出网
2、只有特定的端口可以出网
针对A区域出网的机器也有如下的情况(中转机器或者是跳板机)
1、A区域的机器可以出网
2、A区域只有特定的端口可以出网
后续要用到端口复用技术和之前学习的代理技术
CS工具自带上线不出网机器
存在一台中转机器,这台机器出网,这种是最常见的情况。经常是拿下一台边缘机器,其有多块网卡,内网机器都不出网。这种情况下拿这个边缘机器做中转,就可以上线。
网络拓扑图如下:
内网网卡:192.168.111.xxx
外网网卡:192.168.41.xxx
A区域的机器已经被控制并且上线到CS,现在要将B区域的机器进行上线,有如下的形式
1.SMB-Beacon上线CS 不出网机器
介绍:SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons连接后,子Beacon从父Beacon获取到任务并发送。因为连接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效
通信网络拓扑如下:
实验步骤如下:
1、首先控制A区域的边界主机,使用CS
2、创建SMB监听器
3、创建SMB类型的木马
4、通过内网渗透技术(横向移动(IPC等)或者域内攻击)上传木马到B区域的机器
5、运行木马之后进行连接
用link 命令连接它或者unlink 命令断开它
2. TCP Beacon
TCP Beacon和SMB Beacon类似只不过TCP Beacon不是使用SMB与父Beacon进行通信而是使用TCP socket进行通信,cs4.0之后,这个技术就不适合做第一个木马使用,因为他的流量都是明文的,容易被发现但是这个技术,很适合在内网穿透的时候去使用,在内网穿透的时候一般只能使用tcp beacon去生成木马。
实验步骤如下
1、首先控制A区域的边界主机,使用CS
2、创建TCP监听器

3、创建TCP类型的木马

4、上传木马之后进行连接 这里使用connect进行连接
3.HTTP代理上线
CS的监听器支持HTTP代理的配置,在配置监听器的时候可以添加HTTP代理,从而实现内网上线

网络的拓扑图如下:
1、首先控制A区域的机器然后使用搭建HTTP隧道,HTTP隧道搭建可以使用webshell工具或者其他的工具,我们一般会借助哥斯拉或者冰蝎等webshell工具会自带该功能
2、这里我们使用第三方的工具Goproxy工具可以简单的开启http隧道,支持各种形式(这个工具很牛逼啥都支持)
下载地址:https://github.com/snail007/goproxy
在跳板机上执行
3、配置代理,因为我们是在本地进行测试,他是正向连接的代理,不能用 VPS,我们采用本地的CS
注意这里的http proxy填写的是内网网卡的地址(在第四步做了端口转发之后)
4、因为是双网卡,还需要做一个端口转发
将内网网卡的8899端口转发到另一张网卡的8081端口
1 |
|
5、运行后就可以上线
4.中转上线
CS中自带一个中转上线的操作,就是使用端口转发的技术和socket通信
1、点击这个按钮然后填写相关的内容,一般都是不变的

2、生成木马然后正常在机器上运行就可以了
跳板机只有80端口出网如何上线CS
WEB机器不出网上线CS
场景介绍
如果说当我们拿到一台电脑(一般是WEB机器)但是不出网。只有http端口可以连接,只有webshell的情况下,我们该如何将该机器上线到CS呢?
这个时候就要借助80端口,然后开启socks隧道,从而进行上线
实验前提
当前我们控制了一个WEB主机,可以使用工具连接

但是通过进一步的探测发现很多端口都不出网,被禁止了,上线CS也不行
实验步骤
这个时候我们就要开启80端口的代理
1、我们是这里使用毒刺(pystinger)这个工具,毒刺是一款正向代理工具,通过webshell可以实现内网 socks4代理和端口映射,并且也可以直接上线MSF和CS
下载地址:https://github.com/FunnyWolf/pystinger/releases/tag/v1.6
2、将工具中的服务端工具传到服务器中
3、访问proxy页面查看一定要确保可以访问
4、在服务端运行开启命令
1 |
|
5、在VPS上运行连接命令
1 |
|
6、开启CS监听器

7、生成木马然后运行上线CS
8、查看流量都是http的流量