JustCTF2023
要求上班八小时,上了两个小时之后吃午饭时被食堂的顶级空调吹发烧了。。。不过不是很严重,但是就可以看完一道题后心安理得的下班了。一觉起来发现大家打到了第二,tnbl8。(一觉醒来感觉又好了 ,昨天还以为自己阳了)
rmb感觉一个多小时就秒了两个十解以内的题,那是真的牛逼。是一场好歹学了点什么的比赛
Dangerous
没看,ruby写的东西,好像是能leak数据然后签一个假session并且用XFF伪造IP?
很多年以前由于科恩的任务简单的对域进行了基础的了解,但是学的很浅,网上抄的环境也很垃圾,上来就直接拿到了域管,并且自带永恒之蓝等一系列一键system的洞,加上实战一次域都没遇上过,所以实际上学的很差。最近打了一个小护网,遇到了一个无敌防御的域,这下才知道之前学的东西全是臭鱼烂虾,一点派不上用场。
所以重新入门,把以前没有很搞清楚的概念再强化一下
常用的三个工具:自带的net,powerview.ps1,adfind.exe,adfind的最大缺点是exe基本上不免杀了,得rdp之类的上去关了杀软再操作
powerview这里有一个很完整的document,可以直接查这个,查询后面接| select name
可以只显示对应的字段,并且字段支持通配符
powerview doc
对.NET和COM一窍不通,代码一行都没写过,全篇内容由读各种文章+自行想象完成,不保证准确性,若发现错误请及时联系我更改
windows在远古版本前,各种服务都是以最高权限SYSTEM跑起来的,那个时候mssql的一个xp_cmdshell就可以一键打到底,而在某个版本后,添加了local service用户,之后iis或者mssql就被降权为了networkservice之类的账户,权限很低,直接操作几乎啥也干不了,但由于这些账户本身作为服务账户,也需要在特定的情况下拥有高权限,微软是允许这些账户进行提权的,而如果我们能对这些情况进行滥用,同样的也就可以将networkservice账户恢复到system
土豆系列提权的核心是NTLM中继,通过欺骗运行在高权限(Administrator/SYSTEM)的账户进行ntlm认证,同时作为中间人对认证过程进行劫持和重放,最后调用本地认证接口使用高权限账号的ntml认证获取一个高权限token,只要当前进程拥有SeImpersonatePrivilege
或SeAssignPrimaryToken
权限即可进行令牌模仿,即可取得对应权限(同理,对于直接的令牌窃取利用也需要拥有SeImpersonatePrivilege
权限,感觉一般只用于Administrator提到SYSTEM,其他的用户一般来说要么没有这个权限,要么没法直接open高权限账户的token
前段时间稍微学了下进程镂空这个操作(ProcessHollowing),顺带就学了一点简单的windows PE结构,顺带复习了一下经典ReflectiveDll loader原理,理解了一下注入都是怎么做到的,最后扩展学习到了跨位数进程注入。。。
一个已经有五六年历史的技术了,我最近才听说。。。与进程注入类似,都是拉起一个傀儡进程后使其运行恶意代码,和进程注入较大的区别是不使用CreateRemoteThread等函数,并且可以直接将一个PE放进去跑,无需对其进行额外操作(如添加ReflectiveLoader)
既然不使用CreateRemoteThread,那么必然得使用其他的危险函数,这里用的是SetThreadContext
,具体思路其实很简单,读一个PE到内存中(可以不触碰磁盘),拉起傀儡进程,将傀儡进程的内存空间用NtUnmapViewOfSection
一把释放掉,这样子这个进程里面就没有东西了,此时我们再将我们的PE文件填进去,就完成了一个套皮进程的运行,当然,在实现上还有很多需要考虑的地方