安全矩阵

 找回密码
 立即注册
搜索
查看: 4360|回复: 0

利用FRP实现内网映射和外网Shell

[复制链接]

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
发表于 2020-7-10 11:50:52 | 显示全部楼层 |阅读模式
转载 利用FRP实现内网映射和外网Shell
前面几期的文章中说过,如何利用花生壳等工具搭建内网映射。实现外网访问我们的内网,但是由于花生壳等软件不稳定而且慢最重要的是还有点小贵。由于笔者运维着几天服务器,就想着利用frp搭建内网穿透。

frp
原理
原理
前期准备
  • vps服务器(必须)
  • 路由器(可选)
  • 树莓派(可选)

下载安装服务端- frps首先到 frp 的 releases 页面下载最新版的对应 VPS 的处理器架构的压缩包
https://github.com/fatedier/frp/releases
如何知道 VPS 的处理器架构?在 VPS 上运行这个命令:
arch

如果输出x86_64则需要下载带linux_amd64的那个压缩包;
如果输出的是其他的,则在文件列表中找 linux 的对应架构的压缩包


以x86_64架构举例
如果下载比较慢可以到https://file.kskxs.com/?dir=frp/frp-v0.32.1这里去下载
下载后,上传到服务器并解压,或者利用下面方式解决。
  1. cd /root
  2. # 下载
  3. wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
  4. # 解压
  5. tar -xzvf frp_0.33.0_linux_amd64.tar.gz
  6. # 文件夹名改成 frp,不然目录太长了不方便
  7. mv frp_0.18.0_linux_amd64 frp
  8. cd frp
  9. # 确保 frps 程序具有可执行权限
  10. chmod +x frps
复制代码
测试./frps --help


配置服务器端程序参考以下配置文件frps.ini
  1. # 下面这句开头必须要有,表示配置的开始
  2. [common]
  3. # frp 服务端端口(必须)
  4. bind_port = 7000
  5. # frp 服务端密码(必须)
  6. token = 12345678
  7. # 认证超时时间,由于时间戳会被用于加密认证,防止报文劫持后被他人利用
  8. # 因此服务端与客户端所在机器的时间差不能超过这个时间(秒)
  9. # 默认为900秒,即15分钟,如果设置成0就不会对报文时间戳进行超时验证
  10. authentication_timeout = 900
  11. # 仪表盘端口,只有设置了才能使用仪表盘(即后台)
  12. dashboard_port = 7500
  13. # 仪表盘访问的用户名密码,如果不设置,则默认都是 admin
  14. dashboard_user = admin
  15. dashboard_pwd = admin
  16. # 如果你想要用 frp 穿透访问内网中的网站(例如路由器设置页面)
  17. # 则必须要设置以下两个监听端口,不设置则不会开启这项功能
  18. vhost_http_port = 10080
  19. vhost_https_port = 10443
  20. # 此设置需要配合客户端设置,仅在穿透到内网中的 http 或 https 时有用(可选)
  21. # 假设此项设置为 example.com,客户端配置 http 时将 subdomain 设置为 test,
  22. # 则你将 test.example.com 解析到服务端后,可以使用此域名来访问客户端对应的 http
  23. subdomain_host = example.com
复制代码
./frps -c frps.ini#后台运行nohup /root/frp/frps -c /root/frp/frps.ini &#结束pkill frps
到处,我们服务器端就配置完成了。
启动frp./frps -c frps.ini#后台运行nohup /root/frp/frps -c /root/frp/frps.ini &#结束pkill frps

客户端 - frpc下载Windows客户端,打开frpc.ini开始配置
配置ssh
这里我们开始映射路由器的22端口
配置如下:
  1. [common]
  2. server_addr = xxx.xxx.xxx.xxx #公网服务器IP
  3. server_port = 7000  #(和frps一致)
  4. token = 12345678  #(和frps一致)

  5. [ssh]
  6. type = tcp
  7. local_ip = 192.168.123.1 #内网IP
  8. local_port = 22 #内网端口
  9. use_encryption = false
  10. use_compression = false
  11. remote_port = 6000 #自定义转发端口
复制代码
配置完成后,切换到cmd命令
执行frpc.exe命令


这时,我们可以利用 xxx.xxx.xxx.xxx:6000(xxx为公网IP)登录到我们的ssh服务器了。


配置http
[router-web]type = httplocal_ip = 192.168.123.1local_port = 80remote_port = 10080custom_domains = xxx.xxx.xxx.xxx


如上,我们可以利用公网IP:10080访问路由器的登录界面


需要注意的是,凡是上述的端口都需要在防火墙中开启。

配置路由器上述的方法,需要我们的pc(即客户端一直在线),但是现实中有点不允许,因为你的电脑不可能长时间开着,所以我们可以配置我们的路由器。
老毛子固件配置方案
登录路由器,在frp选项中开启并配置参数即可。


并在外部网络——端口转发添加规则即可

这样,我们便不需要长期开着电脑,从而可以实现端口转发。当然本文是将所有的功能转发到路由器上,当然你可以转发到局域网内的任意一台设备上。

生成msf外网shell因为我在路由器中直接配好了端口转发,所以无需在kali中配置端口转发,直接生成外网木马。成功得到shell


需要注意的是,在生成shell时填写的是外网的IP和端口,本地配置msf时填写的内网的IP




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-4-19 03:43 , Processed in 0.015376 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表