目录
5.1 获取计算机用户名密码 mimikatz & mimipenguin
5.2 获取计算机各种协议服务口令 LaZagne(all,win&linux) & XenArmor(win)
(一)前置知识
0x01 DMZ区
- 英文全名“Demilitarized Zone”,中文含义是“隔离区”,在安全领域的具体含义是“内外网防火墙之间的区域”。DMZ区是一个缓冲区,在DMZ区存放着一些公共服务器,比如论坛等
0x02 工作组 VS 域环境
- 工作组:地位平等,管理分散,没有集中管理。
- 域环境:地位不平等,管理集中,实现集中管理。
域环境会有一台主机来管理计算机,假如说你想在每台电脑上面开一个共享文件,用来存储文件,几台还好,如果是上百台,上千台......这样的配置过于繁琐,域控可以解决这个问题,方便管理
攻击范围
这里我们把域环境和工作组区分开来是因为他们的攻击手段不同,工作组中的攻击手法如DNS劫持、ARP欺骗在域环境下是没有作用的。有一些攻击手段需要一些条件,这些条件在域环境下没有,相应的攻击手段就会失效
0x03 域控制器DC
域控DC是这个域中的管理者,域里面的最高权限,判断是否拿下整个域,就是看你是否拿下这台域控制器
0x04 AD(活动目录)
是微软所提供的目录服务(查询,身份验证),活动目录的核心包含了活动目录数据库,在活动目录数据库中包含了域中所有的对象(用户,计算机,组…),活动目录(Active Directory)是面向Windows Standard Server、Windows Enterprise Server 以及Windows Datacenter Server的目录服务。Active Directory储存了有关网络对象的信息,并且让管理员和用户能够轻松的查找和使用这些信息,Active Directory使用了一种结构化的数据储存方式,并以此作为基础对目录信息进行合乎逻辑的分层组织
0x05 linux域渗透问题
- Q:AD域控制器只在windows server系统能做吗?Linux可以?
- A:linux上也有相应的活动目录的,不过要装LDAP环境,一般企很少会用LDAP来管理的,因为功能上不及域强大,而且用linux来管理的话要求技术人员门槛也比较高,个人认为Linux还是比较适合做服务器好一点。(就是说Linux上面的域环境需要环境支撑,而且功能没有windows上的域强大,所以大部分我们遇见的都是windows,这也是没有Linux的原因。当然,Linux这个操作系统也是可以加入域的,比如域内有Linux的操作系统,有Linux的服务器也行,只是很少)
0x06 局域网技术适用问题
- 不同的攻击技术手段适用面不同,这个我们要有所了解,比如arp欺骗适用于局域网,而不适用于域
0x07 大概内网安全流程问题
- 熟悉基础概念-信息收集-后续探针-权限提升-横向渗透-权限维持
(二)案例演示
0x01、环境介绍
- 下图属于单域环境,Windows2008R2作为域控DC,有五个域成员主机,fileserver文件服务器、SqlServer数据库服务器、webserver网站服务器和两台个人PC。他们都是在192.168.3.0这个网段,网站服务器有两个网卡,一个在3.31一个在230.131,这个230.133就好比是它的一个对外出口(外网接口),kali攻击机就好比攻击者,它通过230.131这个接口进入网站服务器计算机,由于这台计算机是处于内网连接,所有它享有3这个网段的访问权限。拿下网站服务器后的首要攻击目标就是DC!只要拿下DC,也就相当于同时拿下了所有域成员主机权限
0x02、基本信息收集操作演示
旨在了解当前服务器的计算机基本信息,为后续判断服务器角色,网络环境等做准备。
systeminfo 详细信息(操作系统版本、补丁编号等信息)
net start 启动服务(查看当前主机开启了哪些服务,从服务中就可以判断它是什么角色)
tasklist 进程列表(查看当前主机开启了哪些进程)
schtasks 计划任务(若报错无法加载列资源,说明你的权限不够,因此要提权才能使用该命令)
0x03、网络信息收集操作演示
ipconfig /all 判断存在域-最简单方式查看是否存在主DNS后缀
net view /domain 判断存在域
net time /domain 判断主域(主域就是域控的意思)【在域环境下查看当前时间】
nslookup <域控制器全名> 追踪来源地址
netstat -ano 当前网络端口开放
3.1 ipconfig /all
查看主DNS后缀,这就是当前最简单最直接判断当前服务器是域环境还是单纯的工作组局域网环境!有域的话会有主DNS,因为在域环境里面通常会由DNS解析服务器。这是第一个判断标准.
3.2 net view /domain
判断存在域
3.3 net time /domain
判断主域(主域就是域控的意思),
net time /domain
可以判断主域,是因为域成员计算机的时间一般会以域控制器为准,所以当执行net time /domain
命令时,该计算机会去域控获取时间,此时返回的OWA2010CN-God.god.org
就是域控的计算机全名。然后可以通过nslookup
来最终确认域控IP
- 每一台计算机名字都是基于域名下面生成的(如
SqlServer.god.org
),另外,如果找到了god.org
,sqlserver.god.org
,xiaodi.sqlserver.god.org
之类的计算机全名,说明当前环境存在多域,sqlserver.god.org
是父域,xiaodi.sqlserver.god.org
是子域
3.4 nslookup <域控制器全名>
nslookup <域控制器全名>
追踪来源地址,OWA2010CN-God.god.org
就是域控的计算机全名,我们可以通过nslookup
和ping
命令去ping这个名字来获取域控的对应ip地址
3.5 netstat -ano
netstat -ano
查看当前网络端口开放
0x04、用户信息收集操作演示
了解当前计算机或域环境下的用户及用户组信息,便于后期利用凭据进行测试
4.1 系统默认常见用户身份
Domain Admains:域管理员(默认对域控制器有完全控制权)
Domain Computers:域内机器
Domain Controllers:域控制器
Domain Guest:域访客,权限低
Domain users:域用户
Enterprise Admains:企业系统管理员用户(默认对域控有完整控制权)
我们主要攻击Domain Admains和Enterprise Admains,大部分成员主机在Domain users域用户里
4.2 相关用户收集操作命令
whoami /all 用户权限
net config workstation 登录信息
net user 当前电脑里面的用户(本地用户)
net localgroup 本地用户组
net user /domain 当前域里面的用户
net group /domain 获取域用户组信息
wmic useraccount get /all 涉及域用户详细信息
net group "Domain Admins" /domain 查询域管理员账户
net group "Enterprise Admins" /domain 查询管理员用户组
net group "Domain Controllers" /domain 查询域控制器
收集用户信息的作用
-
先找到域用户名,为后续进行密码账号的攻击做准备,后续攻击是可以用这些真实的用户名套用密码字典进行暴力破解,一旦找到对应的密码就可以登录计算机进行后续操作。看看用户名在哪个组,我就有什么权限
-
net user
获取当前电脑里面的用户(本地用户),对于本地用户,当前计算机可通过用户名密码登录 -
net user /domain
获取当前域里面的用户,对于域用户,当前计算机是否可登录,受活动目录限制,若权限不够,是不能登录的
net localgroup
本地用户组
net group /domain
获取域用户组信息
wmic useraccount get /all
涉及域用户详细信息
net group "Domain Admins" /domain
查询域管理员账户
net group "Domain users" /domain
查询域用户
0x05 凭据信息收集操作演示
收集各种密文,明文,口令等,为后续横向渗透做好测试准备
计算机用户HASH,明文获取 -mimikatz(win),mimipenguin(linux)
计算机各种协议服务口令获取 -LaZagne(all,win&linux),XenArmor(win)
Netsh WLAN show profiles //查询所有连接过的wifi名称
Netsh WLAN show profile name ="无线名称" key =clear //查询某wifi密码
获取凭据的方法:
1.站点源码备份文件,数据库备份文件等
2.各类数据库WEB管理入口,如PHPmyadmin
3.浏览器保存密码,浏览器cookies
4.其他用户会话,3389和ipc$连接记录,回收站内容
5.windows 保存的WIFI密码
6.网络内部的各种账号和密码,如:Email,VPN,FTP,OA等
5.1 获取计算机用户名密码 mimikatz & mimipenguin
https://github.com/gentilkiwi/mimikatz/releases
mimikatz-master.zip
https://github.com/huntergregal/mimipenguin/releases/
mimipenguin-master.zip
注意:mimikatz运行需要域管理员权限,域用户无法运行,因为权限不够
同样,mimipenguin运行需要root权限,普通用户无法运行(按照方法github上面有介绍)
5.2 获取计算机各种协议服务口令 LaZagne(all,win&linux) & XenArmor(win)
- 优点:免费;自动化脚本;支持win&linux
- 缺点:很多密码都获取不到,不好用
- https://github.com/AlessandroZ/LaZagne
- LaZagne-master.zip
- XenArmor国外软件,价格40-50美元,网上可能有破解版,不过是老版
- 这两个软件主要是通过自动化翻找以下内容,从而获取凭据
- 站点源码备份文件,数据库备份文件等
- 各类数据库WEB管理入口,如PHPmyadmin
- 浏览器保存密码,浏览器cookies
- 其他用户会话,3389和ipc$连接记录,回收站内容
- windows保存的WIFI密码
- 网络内部的各种账号和密码,如:Email,VPN,FTP,OA等
0x06 探针主机域控架构服务操作
目的是为后续横向思路做准备,针对应用,协议等各类攻击手法
1、探针域控制器名及地址信息
net time /domain
nslookup <域控名称>
ping <域控名称>
2、探针域内存活主机及地址信息
nbtscan 192.168.3.0/24 第三方工具(老牌工具,说实在没必要用这个工具,不强大!不免杀!)
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL =" 自带内部命令(推荐使用)
其他:nmap,masscan,第三方Powershell脚本nishang、empire等(个人喜欢NiShang)
NiShang简介:
Powershell用于渗透测试其实早在多年前就已经被提出了。利用Powershell,攻击者可以在无需接触磁盘的情况下执行命令等,并且相较已经被大家广泛关注并防御的Cmd而言,Powershell并非那么的引人瞩目。Nishang是基于PowerShell的渗透测试专用工具。它集成了框架、脚本和各种payload,能够帮助渗透测试人员在对Windows目标的全过程检测中使用,是一款来源于作者实战经历的智慧结晶。(类似于MSF)
<1>下载NiShang:https://github.com/samratashok/nishang
<2>进入目录,执行以下命令
Import-Module .\nishang.psml 导入模块nishang
set-ExecutionPolicy RemoteSigned 设置执行策略
Get-Command -Module nishang 获取模块nishang的命令函数(有很多命令函数分别执行不同功能,比如以下命令)
Get-information 获取常规计算机信息
Invoke-Mimikatz 获取计算机用户名密码
Invoke-Portscan -startaddress 192.168.3.0 -Endaddress 192.168.3.100 -ResolveHost -ScanPort 端口扫描(查看目录对应文件有演示语法,其他同理)
其他功能:删除补丁,反弹shell,凭据获取等
探针域内主机角色及服务信息
- 利用开放端口服务及计算机名判断
- 核心业务机器:
- 1.高级管理人员,系统管理员,财务/人事、业务人员的个人计算机
- 2.产品管理系统服务器
- 3.办公系统服务器
- 4.财务应用系统服务器
- 5.核心产品源码服务器
- 6.数据库服务器
- 7.文件或者网盘服务器
- 8.电子邮件服务器
- 9.网络监控系统服务器
- 10.其他服务器(内部技术文档服务器,其他监控服务器)
其他涉及资源:
- https://nagareshwar.securityxploded.com/download-softwares/
- https://xenarmor.com/allinone-password-recovery-pro-software/
参考
https://blog.csdn.net/Waffle666/article/details/120157352
https://baijiahao.baidu.com/s?id=1697474162209043682&wfr=spider&for=pc