域环境信息收集

  • 背景

    • 一个具有一定规模的企业,每天都可能面临员工入职和离职,因此网络管理部门经常需要对域成员主机进行格式化消除磁的文件,然后重装系统及软件,以提供给新员工使用;因此,为了便于后期交接,大多网络管理员会做好一个系统镜像盘,统一安装所有的电脑,并且在安装的时候设置惯用、甚至统一的密码
    • 因此,域中的计算机本地管理员账号,极有可能能够登陆域中较多的计算机,本地管理员的密码在服务器上后期修改的概率,远低于在个人办公电脑上的概率,而域用户权限是较低的,是无法在域成员主机上安装软件的,这将会发生下面的一幕:
      • 某个域用户需要使用everthing(放大镜)进行电脑文件全局搜索,于是联系网络管理员进行安装,网络管理员采用域管理员身份登录了域成员主机,并帮助其安装了everthing(放大镜)软件,于是这个有计算机基础的员工,切换身份登录到了本地计算机的管理员,后执行mimikatz,从内存当中抓取了域管理员的密码,便成功的控制了整个域。
    • 因此,域渗透的思路就是:通过域成员主机,定位出域控制器1P及域管理员账号,利用域成员主机作为跳板,扩大渗透范围,利用域管理员可以登陆域中任何成员主机的特性,定位出域管理员登陆过的主机IP,设法从域成员主机内存中dump出域管理员密码,进而拿下域控制器、渗透整个内网。
  • 收集啥东西

    • 当前机器角色的判断
      • 机器角色--个人PC、文件服务器、邮件服务器、数据库服务器等
    • 当前机器网络环境判断
      • 网络环境--局域网、工作组、域环境
    • 当前机器角色功能判断
      • 角色功能--任务、端口、服务、密码、漏洞、配置等
  • 常规信息类收集--应用、服务、权限等

    • systeminfo      //详细信息
    • netstat -ano      //端口列表
    • route print      //路由表
    • net start      //启动服务
    • tasklist      //进程列表
    • schtasks      //计划任务
      • schtasks命令是Windows操作系统提供的用于创建、修改、删除和查询计划任务的命令行工具。以下是一个使用示例:
        • 1. 创建一个计划任务,该任务每天早上9点运行一次,运行的程序为C:\Program Files\test.exe,运行参数为/test。
          • 命令如下:

            • schtasks /create /tn "DailyTest" /tr "C:\Program Files\test.exe /test" /sc daily /st 09:00:00
          • 解释:
            • - /create 表示创建一个新的计划任务。
            • - /tn "DailyTest" 表示指定任务名称为DailyTest。
            • - /tr "C:\Program Files\test.exe /test" 表示指定要运行的程序路径及参数。
            • - /sc daily 表示指定任务的触发器类型为每日。
            • - /st 09:00:00 表示指定任务每天触发的时间为早上9点。
        • 2. 查询计划任务DailyTest的详细信息。
          • 命令如下:

            • schtasks /query /tn "DailyTest"
          • 解释:
            • - /query 表示查询计划任务的详细信息。
            • - /tn "DailyTest" 表示指定要查询的任务名称为DailyTest。
        • 3. 删除计划任务DailyTest。
          • 命令如下:

  •     
  • schtasks /delete /tn "DailyTest" /f
    • 解释:
      • - /delete 表示删除指定的计划任务。
      • - /tn "DailyTest" 表示指定要删除的任务名称为DailyTest。
      • - /f 表示强制删除该计划任务。
    • ipconfig /all      //判断存在域
    • net view /domain      //查询域列表(判断存在域)
      • 如果此命令使用时报“发生系统错误6118”错误,请尝试关闭域防火墙

    • net time /domain      //从域控查询时间,若当前用户是域用户会从域控返回当前时间,亦用来判断域控ip地址(判断主域)
    • nslookup 域名      //追踪来源地址
    • wmic service list brief      //查询本机服务
    • net config workstation      //查询当前登录域及登录用户信息
    • wmic startup get command,caption      //查看已启动的程序信息
  • 架构信息类收集--网络、用户、域控等

    • net view /domain      //查询域列表
    • net time /domain      //从域控查询时间,若当前用户是域用户会从域控返回当前时间,亦用来判断域控ip地址
    • net 1ocalgroup administrators      //本机管理员【通常含有域用户
    • net user /domain      //查询域用户(当前域)
    • net group "domain computers" /domain      //查看加入域的所有计算机名
    • net group "domain admins" /domain      //查询域管理员用户组和域管理员用户
    • net localgroup administrators /domain      //查看域管理员
    • net accounts /domain      //查看域密码策略
  • 关键信息类收集--密码、凭据、口令等

  • 自动化工具探针--插件、Adfind

    • 下载地址链接
    • CS插件:LSTAR、Ladon、OLa、TaoWu等
    • Adfind(LSTAR插件)
      • 列出域控制器名称:AdFind -sc dclist
      • 查询当前域中在线的计算机:AdFind -sc computers_active
      • 查询当前域中在线的计算机(只显示名称和操作系统):AdFind -sc computers_active name operatingSystem
      • 查询当前域中所有计算机:AdFind -f "objectcategory=computer" name operatingSystem
      • 查询当前域中所有计算机(只显示名称和操作系统):AdFind -f"objectcategory=computer" name operatingSystem
      • 查询域内所有用户:AdFind -users name
      • 查询所有GPO:AdFind -sc gpodmg