目录
工作组与域环境比较
#案例 1-基本信息收集操作演示
#案例 2-网络信息收集操作演示
#案例 3-用户信息收集操作演示
工作组是一群计算机的集合,它仅仅是一个逻辑的集合,各自计算机还是各自管理的,你要访问其中的计算机,还是要到被访问计算机上来实现用户验证的。而域不同,域是一个有安全边界的计算机集合,在同一个域中的计算机彼此之间已经建立了信任关系,在域内访问其他机器,不再需要被访问机器的许可了。为什么要区分呢?因为这两种环境攻击的手法不同,ARP欺骗、DNS欺骗只在工作组有效。
dmz
在实际的渗透测试中,大多数情况下,在web环境中拿到的权限都在dmz中。这个区域不属于严格意义上的内网。如果访问控制策略配置合理,dmz就会处在从内网能够访问DMz,而从dmz访问不能进入内网的状态。
内网
内网中包括很多服务器、办公电脑等,办公区的安全防护水平通常不高,基本的防护机制大多数为杀毒软件或主机入侵检测产品。服务器、域控制器的防护比较强,我们主要的目标是要拿下域控制器,要拿下域控前期的信息收集就显得格外重要。
AD域控制器一般只在Windows server系统
linux一般很少会被当成域控制器,因为管理起来特别麻烦,功能也比较少,不过linux上也有相应的活动目录的,可是要装LDAP这个环境,一般企业很少会用LDAP来管理的,功能上不及域强大,而且用linux来管理的话要求技术人员门槛也比较高。而windows作为域控制器有图形化界面,能够很好的进行管理。
演示案例:
基本信息收集操作演示
网络信息收集操作演示
用户信息收集操作演示
凭据信息收集操作演示
探针主机域控架构服务操作演示
旨在了解当前服务器的计算机基本信息,为后续判断服务器角色,网络环境等做准备
1.详细信息 查看计算机版本、补丁编号等信息
systeminfo
2.启动服务
net start
3.进程列表
tasklist
4.1查看目标主机上的计划任务信息
schtasks /query /fo LIST /v
4.2计划任务
schtasks
5. SPN:服务主体名称。使用Kerberos须为服务器注册SPN,因此可以在内网中扫描SPN,快速寻找内网中注册的服务,SPN扫描可以规避像端口扫描的不确定性探测动作。主要利用工具有:setspn。利用Windows自带的setspn工具,普通域用户权限执行即可:setspn -T rootkit.org -Q */*
可以发现内网存在mssql等服务
6. for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL=" 自带内部命令(就是ping 扫描探测存活的主机)
7.powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name,version"
系统命令查看安装软件的版本信息
8. nltest /domain_trusts
获取域信任列表信息
或者使用wmic product get name.version
命令
9.获取本机服务信息,查看是否有可以可以进行深入利用的点
wmic service list brief
10.查看防火墙的配置信息
netsh firewall show config
11.查看是否能修改删除日志
wmic nteventlog get path,filename,writeable
旨在了解当前服务器的网络接口信息,为判断当前拿下的主机角色为判断当前角色,功能,网络架构做准备
1.判断存在域-dns 有域的有dns后缀,无域的无dns后缀
ipconfig /all
2.判断存在域
net view /domain
3.1.追踪来源地址
nslookup 域名
3. 2判断主域,,其实这个就是主域的计算机名,再通过nslookup或ping命令来获取主域的IP地址
net time /domain
4.查看当前网络端口开放
netstat -ano
5. 常见端口及其服务
6. 防护软件信息收集
域内的较件和杀毒软件应该是一致的,常见的杀毒软件进程如下:
7.系统命令获取反病毒产品详情信息,包括安装位置和版本:
wmic /namespace:\root\securitycenter2 path antivirusproduct GET displayName,productState, pathToSignedProductExe
经过个人测试,这条命令在这个环境内是不可以用的,但在本机进行测试时,可以清晰的看到所有防护软件,所以这里就介绍一下。
使用ping命令检查局域网内存活的主机
7.2linux主机环境下:
7.1for i in {132..254}; do ping -q -i 0.01 -c 3 192.168.64.$i &> /dev/null && echo 192.168.64.$i is alive; done
个人感觉很不好用,要是没有在存活主机IP地址的位置开始,那么都会出现一直卡壳,这是我试验过的,所以只能从存活的主机开始。
7.3windows主机环境下:
for /l %p in (143,1,254) do @ping -l 1 -n 3 -w 40 192.168.3.%p & if errorlevel 1 (echo 192.168.3.%p>>na.txt) else (echo 192.168.3.%p>>wangcheng.txt)
na.txt记录所有ping不通的主机,wangcheng.txt则记录所有可以ping通的主机,这个文件保存的位置有点难找,需细心。
旨在了解当前计算机或域环境下的用户及用户组信息,便于后期利用凭据进行测试
1.系统默认常见用户身份:
Domain Admins:域管理员(默认对域控制器有完全控制权)
Domain Computers:域内机器
Domain Controllers:域控制器
Domain Guest:域访客,权限低
Domain Users:域用户
Enterprise Admins:企业系统管理员用户(默认对域控制器有完全控制权)
2.whoami /all 用户权限
4.net user
获取本地用户 net user /domain
获取域用户信息
域用户在执行修改账户类型等操作时,需要输入域控制器的密码
本地用户则不受域控制器的控制
5.net localgroup 本地用户组
6.net user /domain 获取域用户信息
7.net group /domain 获取域用户组信息
8.wmic useraccount get /all 涉及域用户详细信息
9.net group "Domain Admins" /domain 查询域管理员账户
10.查询管理员用户组里面的成员
net group "Enterprise Admins" /domain
11.net group "Domain Controllers" /domain 查询域控制器
12.net “Domain users” /domain
查看域用户组里面的成员
目的:为了收集各种密文,明文,口令等,为后续横向渗透做好测试准备获取所连接过的无线网名称。
系统命令进行收集
Netsh wlan show profiles
获取登录过的WiFi名称,这是在自己本机上试验,由于我们的环境都是虚拟的,所以没有连接过WiFi,无法获取结果。
netsh wlan show profile name="CSA" key=clear
获取 CSA 中的WiFi密码
通过如下命令获取连接过的wifi密码:
for /f “skip=9 tokens=1,2 delims=:” %i in (‘netsh wlan show profiles’) do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear
计算机用户 HASH,明文获取-mimikatz(win),mimipenguin(linux)
mimikatz
Releases · gentilkiwi/mimikatz · GitHubv 用于破解计算机中的账号密码
计算机各种协议服务口令获取-LaZagne(all),XenArmor(win)
XenArmor Windows Security & Password Recovery Software | XenArmor - Your Trusted Security Partner 专用于破解密码,几乎可以破解计算机上所有使用过的密码,非常牛逼,但需要钱,由于不是土豪就不演示了。
Netsh WLAN show profiles
Netsh WLAN show profile name="无线名称" key=clear
前面演示过了
1.站点源码备份文件、数据库备份文件等
2.各类数据库 Web 管理入口,如 PHPMyAdmin
3.浏览器保存密码、浏览器 Cookies
4.其他用户会话、3389 和 ipc$连接记录、回收站内容
5.Windows 保存的 WIFI 密码
6.网络内部的各种帐号和密码,如:Email、VPN、FTP、OA 等
cmdkey /list
能够列举出系统中的Windows凭据
vaultcmd(windows系统自带)
列出保管库(vault)列表:vaultcmd /list
中文操作系统,列出GUID为{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}的保管库(vault)下的所有凭据:vaultcmd /listcreds:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}
列出GUID为{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}的保管库(vault)的属性,包括文件位置、包含的凭据数量、保护方法:Vaultcmd /listproperties:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}
GDA.bat:https://github.com/nullbind/Other-Projects/tree/master/GDA
PowerSploit: https://github.com/PowerShellMafia/PowerSploit
Nishang: https://github.com/samratashok/nishang
Metasploit:https://github.com/rapid7/metasploit-framework
PowerTools: https://github.com/PowerShellEmpire/PowerTools
为后续横向思路做准备,针对应用,协议等各类攻击手法
探针域控制器名及地址信息
net time /domain nslookup ping
探针域内存活主机及地址信息
nbtscan 192.168.3.0/24 第三方工具
nmap masscan 第三方 PowerShell 脚本 nishang empire 等
#导入模块 nishang
Nishang下载地址: https://github.com/samratashok/nishang
Import-Module .\nishang.psm1
#设置执行策略
Set-ExecutionPolicy RemoteSigned
#获取模块 nishang 的命令函数
Get-Command -Module nishang
#获取常规计算机信息
Get-Information
#端口扫描(查看目录对应文件有演示语法,其他同理)
Invoke-PortScan -StartAddress 192.168.3.0 -EndAddress 192.168.3.100 -ResolveHost -ScanPort
#其他功能:删除补丁,反弹 Shell,凭据获取等
探针域内主机角色及服务信息
利用开放端口服务及计算机名判断
下载油猴子脚本 wmic_info.bat
得到输出结果是out.html,美观又大方
核心业务机器:
1.高级管理人员、系统管理员、财务/人事/业务人员的个人计算机
2.产品管理系统服务器
3.办公系统服务器
4.财务应用系统服务器
5.核心产品源码服务器(自建 SVN、GIT)
6.数据库服务器
7.文件或网盘服务器、共享服务器
8.电子邮件服务器
9.网络监控系统服务器
10.其他服务器(内部技术文档服务器、其他监控服务器等)
涉及资源:
http://unixwiz.net/tools/nbtscan.html
https://github.com/samratashok/nishang