-
背景
- 一个具有一定规模的企业,每天都可能面临员工入职和离职,因此网络管理部门经常需要对域成员主机进行格式化消除磁的文件,然后重装系统及软件,以提供给新员工使用;因此,为了便于后期交接,大多网络管理员会做好一个系统镜像盘,统一安装所有的电脑,并且在安装的时候设置惯用、甚至统一的密码。
- 因此,域中的计算机本地管理员账号,极有可能能够登陆域中较多的计算机,本地管理员的密码在服务器上后期修改的概率,远低于在个人办公电脑上的概率,而域用户权限是较低的,是无法在域成员主机上安装软件的,这将会发生下面的一幕:
- 某个域用户需要使用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。
- 命令如下:
- 1. 创建一个计划任务,该任务每天早上9点运行一次,运行的程序为C:\Program Files\test.exe,运行参数为/test。
- schtasks命令是Windows操作系统提供的用于创建、修改、删除和查询计划任务的命令行工具。以下是一个使用示例:
-
-
-
-
-
- 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 //查看域密码策略
-
关键信息类收集--密码、凭据、口令等
- 旨在收集各种密文,明文,口令等,为后续横向渗透做好测试准备
- 计算机用户HASH,明文获取--mimikatz(win),mimipenguin(linux)
- https://github.com/gentilkiwi/mimikatz/
- https://github.com/huntergregal/mimipenguin
- 计算机各种协议服务口令获取-LaZagne(a11),XenArmox(win),CS插件
- https://github.com/AlessandroZ/LaZagne/
- XenArmor All-In-One Password Recovery Pro 2023 Software | XenArmor
- 站点源码备份文件、数据库备份文件等
- 各类数据库Web管理入口,如PHPMyAdmin
- 浏览器保存密码、浏览器Cookies
- 其他用户会话、3389和ipc$连接记录、回收站内容
- Windows 保存的WIFI密码
- 网络内部的各种帐号和密码,如:Emai1、VPN、FTP、OA等
-
自动化工具探针--插件、Adfind
- 下载地址链接
- https://github.com/k8gege/LadonGo
- http://www.joeware.net/freetools/tools/adfind/index.htm
- 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
- 下载地址链接