V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vzextreme
V2EX  ›  程序员

使用 frp 将 Windows 远程桌面暴露到公网上,貌似被爆破了,怎么破

  •  
  •   vzextreme · 190 天前 · 6464 次点击
    这是一个创建于 190 天前的主题,其中的信息可能已经有所发展或是发生改变。

    起因是发现 frp dashboard 远程桌面端口流量非常大,然后查看远程桌面主机的事件查看器,非常密集的账户登录失败事件,大概每秒 3-5 次。下面是事件信息。 ps:暴露端口不是 3389,密码也是强密码

    帐户登录失败。
    
    使用者:
    	安全 ID:		NULL SID
    	帐户名:		-
    	帐户域:		-
    	登录 ID:		0x0
    
    登录类型:			3
    
    登录失败的帐户:
    	安全 ID:		NULL SID
    	帐户名:		xxxxxxx
    	帐户域:		DESKTOP
    
    失败信息:
    	失败原因:		未知用户名或密码错误。
    	状态:			0xC000006D
    	子状态:		0xC000006A
    
    进程信息:
    	调用方进程 ID:	0x0
    	调用方进程名:	-
    
    网络信息:
    	工作站名:	-
    	源网络地址:	127.0.0.1
    	源端口:		0
    
    详细身份验证信息:
    	登录进程:		NtLmSsp 
    	身份验证数据包:	NTLM
    	传递服务:	-
    	数据包名(仅限 NTLM):	-
    	密钥长度:		0
    
    登录请求失败时在尝试访问的计算机上生成此事件。
    
    “使用者”字段指明本地系统上请求登录的帐户。这通常是一个服务(例如 Server 服务)或本地进程(例如 Winlogon.exe 或 Services.exe)。
    
    “登录类型”字段指明发生的登录的种类。最常见的类型是 2 (交互式)和 3 (网络)。
    
    “进程信息”字段表明系统上的哪个帐户和进程请求了登录。
    
    “网络信息”字段指明远程登录请求来自哪里。“工作站名”并非总是可用,而且在某些情况下可能会留为空白。
    
    “身份验证信息”字段提供关于此特定登录请求的详细信息。
    	-“传递服务”指明哪些直接服务参与了此登录请求。
    	-“数据包名”指明在 NTLM 协议之间使用了哪些子协议。
    
    57 条回复    2021-03-25 16:04:09 +08:00
    yeqizhang
        1
    yeqizhang   190 天前 via Android
    Windows 这么弱的?
    selca
        2
    selca   190 天前
    你不说我没发现,我也看了一样我的 Windows 日志,也是一样的情况,改个端口看看呢
    selca
        3
    selca   190 天前
    @selca 我这边是默认端口,看账户名全都是用的 ADMINISTRATOR
    Navee
        4
    Navee   190 天前
    frp 可以设置密钥
    m2276699
        5
    m2276699   190 天前
    frp stcp
    hanxiV2EX
        6
    hanxiV2EX   190 天前 via Android
    这个日志在哪里看的?
    hand515
        7
    hand515   190 天前 via Android
    用 stcp,若直接暴露到公网,被暴破也正常
    hand515
        8
    hand515   190 天前 via Android   ❤️ 2
    @yeqizhang 这哪里能看出 windows 弱?
    SenLief
        9
    SenLief   190 天前
    换个域名。或者换个 ip
    Ayahuasec
        10
    Ayahuasec   190 天前
    我是在 frp 服务器用 iptables 做一下屏蔽,设置了只放行我所在城市的 IP 段,之后就清净了好多。
    BeautifulSoap
        11
    BeautifulSoap   190 天前
    @yeqizhang 注意看帖,lz 是被爆了,没有破
    Osk
        12
    Osk   190 天前 via Android
    欢迎来到公网,vps 上看一下 sshd 的日志吧,特别是开 22 端口的,只能说彼此彼此。

    ps:开到公网后请及时更新 windows 的安全补丁哦!
    jousca
        13
    jousca   190 天前
    @Osk SSH 那个才比较猛。我用了个脚本,密码 5 次错误封 IP 。结果半个月之后看了下 LIST,估计有几万个 IP
    zhengfan2016
        14
    zhengfan2016   190 天前 via iPad   ❤️ 1
    frp 绑定域名套 cloudflare,如果仅自用的话,cloudflare 防火墙加规则禁止非中国 ip 访问
    ik
        15
    ik   190 天前 via iPhone   ❤️ 1
    使用频率低的话,端口不暴露,ssh 映射到本地再连接。
    使用频率高的话用 vpn 组网
    yeqizhang
        16
    yeqizhang   190 天前 via Android
    @hand515
    @BeautifulSoap 没看清,以为破了……噗……
    暴露在公网的东西,被攻击很正常吧……我的 ssh 一天几百到几千字被试密码,不是弱密码让他们玩去……
    楼主如果用的路由器的 frp,可以用 frpc 的页面管理,需要用的时候再反代到 Windows 机器上
    yeqizhang
        17
    yeqizhang   190 天前 via Android
    @Ayahuasec 城市的 IP 段怎么获取到的?
    iBugOne
        18
    iBugOne   190 天前
    我的做法是用 iptables,默认屏蔽 RDP 的端口( reset 所有新 TCP 连接),然后给 VPS 上自己的用户写了个 ~/.ssh/rc 文件,给自己的登录 IP 放通 10 分钟的 RDP 端口,这样我每次 SSH 登录成功后 10 分钟内我的 IP 可以连接 RDP 端口,剩下就是本地写个脚本 SSH 连一下 VPS,这样每次我只要双击运行一下 SSH 脚本,就可以马上双击旁边的 .rdp 配置文件,并且不用担心被人扫描的情况
    123abcdf11345
        19
    123abcdf11345   190 天前
    一律 shutdown 解决
    mmdsun
        20
    mmdsun   190 天前 via Android
    @hanxiV2EX win 的日志都在事件查看器里面
    yyyb
        21
    yyyb   190 天前
    iptables 自己的 ip 白名单,动态 ip 也不怕,ddns 个免费域名,10 分钟更新一下
    ThirdFlame
        22
    ThirdFlame   190 天前
    nps 的私密代理 可以了解一下。
    Maskeney
        23
    Maskeney   190 天前
    这是正常现象啊,有什么值得单独拿出来说的吗?公网就是个黑暗森林啊
    mingl0280
        24
    mingl0280   190 天前
    frp 是 linux 上安装的吗?
    如果是的话你可以开个 Fail2Ban 规则,配合 iptables 就可以干掉大部分请求了。
    seakingii
        25
    seakingii   190 天前
    我是要用远程的时候上服务器打开端口,不用的时候关闭。
    LeeReamond
        26
    LeeReamond   190 天前
    说句题外话,请问 windows 上有类似 fai2ban 的工具吗?
    mingl0280
        27
    mingl0280   190 天前 via Android
    @LeeReamond 我以前自己写过一个挺生草的东西,就是读登录请求然后多于五次失败的拉黑名单,不过比较不稳定……
    其实你可以在 Windows 上开个 WSL 装 f2b 过滤。
    LeeReamond
        28
    LeeReamond   190 天前
    @mingl0280 f2b 这东西得接入日志吧,咋接 windows 日志不会啊。至于自己写,怕是写完以后因为运行占用太多 CPU 资源导致以为被攻击┓( ´∀` )┏
    ciaoly
        29
    ciaoly   190 天前 via Android
    可以把 FRP 换成 mesh VPN,Windows 上只允许 VPN 流量进入。而且 mesh VPN 成功打洞后直连还挺快的
    zjsxwc
        30
    zjsxwc   190 天前
    买个域名吧,frp 可以限制域名连接端口,你买个又长又乱码的域名指向你的 frp server,然后 frp 绑定端口到这个域名就行,直接用 ip 风险确实大。
    lqw3030
        31
    lqw3030   190 天前 via iPhone
    要不要尝试下我的方案,带 ip 名单,时间限制的:

    [-]( https://www.v2ex.com/t/729271#reply10)
    mingl0280
        32
    mingl0280   190 天前
    @LeeReamond C#直接接入 eventlog 就行了,有事件发生会通知线程的。主要是你要知道你要监听的事件的 ID 什么的,挺简单。
    yanzhiling2001
        33
    yanzhiling2001   190 天前
    @zjsxwc 大佬,frp 怎么绑定域名访问端口
    yanzhiling2001
        34
    yanzhiling2001   190 天前
    用 frp 的 stcp 模式可以避免直接暴漏端口在公网上的风险

    https://www.linuxprobe.com/frp-security.html
    zjsxwc
        35
    zjsxwc   190 天前
    @yanzhiling2001 我看错了,只有 http 服务才能 custom domain

    你直接 tcp,只能用 stcp 了
    https://github.com/fatedier/frp#expose-your-service-privately
    rund11
        36
    rund11   190 天前 via Android
    1 换个端口,2 启用密钥没得问题
    Blessing1
        37
    Blessing1   190 天前
    换个端口 然后设置好 只有你指定的 IP 或者 IP 域可以访问
    v2tudnew
        38
    v2tudnew   190 天前
    最不担心的就是爆破了,穷举出来了我马上去买彩票。
    129tyc
        39
    129tyc   190 天前 via Android
    可以使用 v2ray 做反代,比直接用 frp 更加安全
    taylor007
        40
    taylor007   189 天前
    一键关机解决 (开玩笑的,不过如果用密钥的话要好吧
    wzw
        41
    wzw   189 天前 via iPhone   ❤️ 2
    你们都用 frp,我用 nps,感觉配置更灵活,客户端不用配置
    v2tudnew
        42
    v2tudnew   189 天前
    其实还有个办法,RDP 被登陆时邮件提醒。虽然不能防御,但可以亡羊补牢。
    ReferenceE
        43
    ReferenceE   189 天前 via Android
    换端口试试?
    EVJohn
        44
    EVJohn   189 天前
    用 tinc 把,或者是 zerotier
    Huelse
        45
    Huelse   189 天前
    NSAgold
        46
    NSAgold   189 天前 via Android
    @zhengfan2016 #14 审题啊 他是 3389 的 tcp 连接,cf 防不了
    NSAgold
        47
    NSAgold   189 天前 via Android
    @NSAgold #46 更正一下“是 RDP 的 tcp 连接”
    kruskal
        48
    kruskal   189 天前
    ScotGu
        49
    ScotGu   189 天前
    /t/740532
    早年间发现 frp 这个特性,但是没有找到什么好的办法处理。
    所以现在转 zerotier 了。
    bjdgyc
        50
    bjdgyc   189 天前
    可以试试用 vpn 的方式解决
    https://github.com/bjdgyc/anylink
    no1xsyzy
        51
    no1xsyzy   189 天前
    如果不是暴露给别人用,那就不要把端口暴露到公网,要可识别来源的 VPN 类方案。
    PUBG98k
        52
    PUBG98k   189 天前
    可以试试 ToDesk
    wevsty
        53
    wevsty   189 天前
    针对楼主的问题,还是用 FRP 自带的 STCP 比较好。

    @LeeReamond

    推广一下: https://github.com/wevsty/RDPBlocker
    逃。
    realpg
        54
    realpg   189 天前
    @selca #2
    基本啥端口过一阵子都会挨扫
    laqow
        55
    laqow   188 天前 via Android
    目前是 frp 开放一个机场的服务端端口,通过飞机代理连内网再连 RDP,这样开放到外网只是一个没有特征的机场的端口。暂时没发现有攻击。
    zlowly
        56
    zlowly   188 天前
    提醒一下,安全防护方面不要寄希望于简单的服务端口就能躲过端口扫描,即使普通的 nmap 之类的工具都可以通过端口的指纹识别判断服务甚至版本。
    Ansen
        57
    Ansen   184 天前
    我的也是,在 github 上找到了这个项目, 根据实际情况 block 一些国家的 IP 就好了,我是 block 的是 俄罗斯

    https://github.com/iiiiiii1/Block-IPs-from-countries
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3376 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 03:58 · PVG 11:58 · LAX 20:58 · JFK 23:58
    ♥ Do have faith in what you're doing.