1. 正向代理 (Forward Proxy)
正向代理是一种位于客户端和目标服务器之间的中介。客户端通过正向代理访问目标资源,代理服务器接收请求,再将请求转发到目标服务器,然后将返回结果传回客户端。
特点和作用:
- 隐藏客户端:客户端的真实 IP 会被代理掩盖,目标服务器只能看到代理服务器的 IP。
- 访问控制:限制客户端访问某些资源,比如企业网络控制上网权限。
- 内容缓存:代理服务器缓存静态资源,加快访问速度,减少网络流量。
- 访问记录:回溯访问日志,如企业中某些敏感资源需要通过代理服务器(跳板机)进行访问
场景举例:员工通过正向代理访问互联网,公司可以记录并控制访问行为。
示意图
客户端 --> 正向代理 --> 目标服务器
2. 反向代理 (Reverse Proxy)
反向代理位于客户端和内部服务器之间,客户端并不知道真正提供服务的服务器地址,而是直接向反向代理发起请求,代理服务器再将请求转发到内部服务器。
特点和作用:
- 隐藏服务器:反向代理将后端服务器的真实 IP 地址隐藏。
- 负载均衡:将访问请求分发到多个服务器,确保系统高效运行。
- 安全防护:对请求进行过滤和认证,提升安全性。
- 内容缓存:代理服务器缓存静态资源,降低请求延迟、服务器负载。
- 路由功能:代理服务器针对不同的查询内容,将请求路由到不同的服务器。
场景举例:用户访问某大型网站时,访问的实际地址是统一的,但实际上是由多台服务器处理请求。
示意图
客户端 --> 反向代理 --> 内部服务器
3. 正向 Shell (Bind Shell)
正向 Shell 是一种远程控制技术,指目标设备在某个端口上打开监听,攻击者连接到这个端口获得 Shell 权限,从而控制目标设备。
特点和作用:
- 目标设备主动监听端口,攻击者通过已知端口号进行连接。
- 攻击者获得的是该监听端口上的 Shell 权限,可以执行系统命令。
场景举例: 当目标机器拥有公网 IP 或与攻击者位于同一网络中时比较适用。目标设备开启端口,等待攻击者远程连接到该端口控制目标系统。
局限性:如果目标机器位于防火墙后或使用 NAT,则难以建立连接,因为攻击者无法直接访问目标机器的端口。
示意图
攻击者 --> 连接目标主机的监听端口 --> 获取 Shell
Netcat 命令示例:
- 目标机器 (受害者): 监听指定端口,等待连接。
