STATEMENT
声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
前言
win10都自带了defender,查杀能力也都比较强,有时候可能木马或许不会被杀,但是工具依旧可能会被杀,那么可能就需要尝试看看能否关闭defender,此处尝试以高权限用户命令行进行关闭,前提需要本地管理员,以利用TrustedInstaller的权限对defender服务进行操作
因为常规操作经过尝试后发现如下,无法通过服务或者进程来直接停止或关闭目标程序,此处考虑针对非图形化方向来尝试关闭defend
实际利用前先简单补充下令牌、TrustedInstaller相关的知识点
令牌
windows token又叫access token,是一个描述进程或者线程安全上下文的一个对象,不同的用户登录计算机后,都会生成一个access token,这个toekn在用户创建进程或者线程时候就会被不断拷贝,也就解释了A用户创建一个进程而该进程不会有B用户的权限,重点还是关注进程或线程,当他有足够的权限就可以实现模拟另个用户,这也就是令牌模拟,目标可以是复制或使用另个进程线程的令牌,此处是需要有足够的权限才能打开并使用
更多说明:
https://docs.microsoft.com/zh-cn/windows/win32/secauthz/access-tokens?redirectedfrom=MSDN
实际使用过程中,通过模拟目标进程令牌token以实现开启新进程从而获得到更高权限,比如本地管理员针对些system进程,从而获取system权限,效果如下
除了winlogon.exe可以被拿来获取system进程,其他的也可以比如lsass
Openprocess失败
尝试过程中发现,并不是所有的system进程都可以拿来利用,比如wininit.exe,openprocess时就出现失败,对比错误代码确认Access is denied,该问题后面可以解决
查阅资料后进步比较利用成功的winlogon.exe和利用失败的wininit.exe
对比成功利用的lsass后可以确认与会话sessionid无关
进步查看acl相关配置,两者也近乎相同
过程中进程权限打开不动,于是乎尝试更换其他的失败进程对比看看是否有不同之处,后面继续尝试
Openprocesstoken失败
通过多次尝试,发现了openprocess成功,但openprocesstoken失败
尝试查看相关不同之处
winlogon.exe、lsass.exe的用户都为system、但所有者都是administrators,同1632的这个svchost对比可发现所有者的区别所在
github上正好有份可以拿来看token的ps1非常方便
https://gist.githubusercontent.com/vector-sec/a049bf12da619d9af8f9c7dbd28d3b56/raw/eaddf4151ebe4345623b7066a2c768665805fcad/Get-Token.ps1
对比下进程可确认,机器中间重启过,此处换了个svchost
username、ownername也就是用户、所有者,似乎就是成功利用system进程创建令牌的主要区别
也就是为什么在openprocesstoken失败的原因,因为用户不是所有者,知道了这个特征那么可以再去找下其他可以拿来利用的system进程,如ChsIME.exe成功利用如下
再回Openprocess
对比进程后,发现了一个特征保护属性PsProtectedSignerWinTcb-Light
关于PPL,简略介绍,在Windows 8.1/ Server 2012 R2 开始引入这个概念的,而PPL实际上是对之前Protected Process模型的扩展,增加了“Protection level”的概念,基本上就是说一些PP(L)进程可以比其他进程受到更多的保护
此时是需要修改openprocess的安全描述符从原先的PROCESS_QUERY_INFORMATION
为PROCESS_QUERY_LIMITED_INFORMATION,从而能够实现在我们的进程上openprocess,最终效果如下,以此可以成功获得到system权限
重点代码
HANDLE processHandle = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, true, PID_TO_IMPERSONATE);
// 进程令牌获取OpenProcessToken
if (!OpenProcessToken(processHandle, TOKEN_DUPLICATE | TOKEN_ASSIGN_PRIMARY | TOKEN_QUERY, &OpenProcessTokenHandle)) {
// 用的是OpenProcessToken的返回句柄,当前线程模拟另一个用户
if (!ImpersonateLoggedOnUser(OpenProcessTokenHandle)) { //https://docs.microsoft.com/en-us/windows/win32/api/securitybaseapi/nf-securitybaseapi-impersonateloggedonuser
// 用的也是OpenProcessToken令牌
if (!DuplicateTokenEx(OpenProcessTokenHandle, TOKEN_ALL_ACCESS, NULL, SecurityImpersonation, TokenPrimary, &duplicateTokenHandle)) {
// 创建目标进程
if (!(CreateProcessWithTokenW(duplicateTokenHandle, LOGON_WITH_PROFILE, "XXXXXXX", NULL, 0, NULL, NULL, &startupInfo, &processInformation))) {
TrustedInstaller
在Windows中拥有修改系统文件权限,本身是一个服务,以一个账户组的形式出现:NT SERVICE\TrustedInstaller
TrustedInstaller为Windows系统中众多系统内置安全主体中的一个,除了组之外也是系统重要服务,用户无法直接在此服务的上下文中运行程序或另一个服务。它是操作系统上用来对系统进行维护、更新等操作的组。SID是S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464。TrustedInstaller权限的意义是用来防止程序或用户无意或恶意破坏系统文件。这个安全主体本身是一个服务,名称为:Windows Modules Installer
各类百科文档说的更详细,此处就简单补充
一般常规情况下,进程默认打开未启动,需要先启动下服务才能启动
那么也就意味着要获得到TrustedInstaller的权限,需要先通过服务启动下
了解下权限划分即可知道,在windows下TrustedInstaller权限其实超过了system,再回到为什么没法直接关闭WinDefend,查看WinDefend服务的dcal,可以发现管理员、system只有start的权限没法进行stop
但服务本身和TrustedInstaller具备完全控制,可以实现stop功能
当前管理员,首先利用winlogon获得system权限,再获取到WinDefend权限,此处通过MsMpEng.exe进行令牌模拟,结合
PROCESS_QUERY_LIMITED_INFORMATION即可,但经过测试发现因为一些原因后续依旧无法进行windefend的停止
更换思路,依旧从管理员到system出发,利用winlogon获得system权限,通过StartService启动trustedinstaller服务,从而进步获取trustedinstaller的权限,利用trustedinstaller来停止defender
利用当前权限通过服务以进行windefend的关闭,效果如下,机器重启后可恢复defender,或者手动点重启也可以
那么问题来了,是否有办法来达到无法恢复defender的目的?
查找资料后,发现进步通过ChangeServiceConfig2W可以来删除原有的PsProtectSignerAntimalware-Light保护,进步结合可以尝试删除、修改defender的相关组件,以导致无法进步正常重启运行,因为现有的停止服务是可以进行重启来恢复的
主要用到的代码
if (!QueryServiceConfig2W(hService, SERVICE_CONFIG_LAUNCH_PROTECTED, LPBYTE(&srvinfo), sizeof(SERVICE_LAUNCH_PROTECTED_INFO), &cbBufSize))
if (!ChangeServiceConfig2W(hService, SERVICE_CONFIG_LAUNCH_PROTECTED, &dwLaunchProtected)) {
对比效果如下
此处以mimikatz为示例,原mimikatz默认被杀
征稿通知
知识应该被分享,安全更需携手共进
征稿持续进行中!愿意分享知识经验的小伙伴们可以把自己的知识沉淀稿件投稿至微信:
稿件一经发布将有丰厚的稿费!
RECRUITMENT
招聘启事
安恒雷神众测SRC运营(实习生) 【任职要求】
————————
【职责描述】
1. 负责SRC的微博、微信公众号等线上新媒体的运营工作,保持用户活跃度,提高站点访问量;
2. 负责白帽子提交漏洞的漏洞审核、Rank评级、漏洞修复处理等相关沟通工作,促进审核人员与白帽子之间友好协作沟通;
3. 参与策划、组织和落实针对白帽子的线下活动,如沙龙、发布会、技术交流论坛等;
4. 积极参与雷神众测的品牌推广工作,协助技术人员输出优质的技术文章;
5. 积极参与公司媒体、行业内相关媒体及其他市场资源的工作沟通工作。
1. 责任心强,性格活泼,具备良好的人际交往能力;
2. 对网络安全感兴趣,对行业有基本了解;
3. 良好的文案写作能力和活动组织协调能力。
简历投递至
设计师(实习生)
————————
【职位描述】
负责设计公司日常宣传图片、软文等与设计相关工作,负责产品品牌设计。
【职位要求】
1、从事平面设计相关工作1年以上,熟悉印刷工艺;具有敏锐的观察力及审美能力,及优异的创意设计能力;有 VI 设计、广告设计、画册设计等专长;
2、有良好的美术功底,审美能力和创意,色彩感强;
3、精通photoshop/illustrator/coreldrew/等设计制作软件;
4、有品牌传播、产品设计或新媒体视觉工作经历;
【关于岗位的其他信息】
企业名称:杭州安恒信息技术股份有限公司
办公地点:杭州市滨江区安恒大厦19楼
学历要求:本科及以上
工作年限:1年及以上,条件优秀者可放宽
简历投递至
安全招聘
————————
公司:安恒信息
岗位:Web安全 安全研究员
部门:战略支援部
薪资:13-30K
工作年限:1年+
工作地点:杭州(总部)、广州、成都、上海、北京
工作环境:一座大厦,健身场所,医师,帅哥,美女,高级食堂…
【岗位职责】
1.定期面向部门、全公司技术分享;
2.前沿攻防技术研究、跟踪国内外安全领域的安全动态、漏洞披露并落地沉淀;
3.负责完成部门渗透测试、红蓝对抗业务;
4.负责自动化平台建设
5.负责针对常见WAF产品规则进行测试并落地bypass方案
【岗位要求】
1.至少1年安全领域工作经验;
2.熟悉HTTP协议相关技术
3.拥有大型产品、CMS、厂商漏洞挖掘案例;
4.熟练掌握php、java、asp.net代码审计基础(一种或多种)
5.精通Web Fuzz模糊测试漏洞挖掘技术
6.精通OWASP TOP 10安全漏洞原理并熟悉漏洞利用方法
7.有过独立分析漏洞的经验,熟悉各种Web调试技巧
8.熟悉常见编程语言中的至少一种(Asp.net、Python、php、java)
【加分项】
1.具备良好的英语文档阅读能力;
2.曾参加过技术沙龙担任嘉宾进行技术分享;
3.具有CISSP、CISA、CSSLP、ISO27001、ITIL、PMP、COBIT、Security+、CISP、OSCP等安全相关资质者;
4.具有大型SRC漏洞提交经验、获得年度表彰、大型CTF夺得名次者;
5.开发过安全相关的开源项目;
6.具备良好的人际沟通、协调能力、分析和解决问题的能力者优先;
7.个人技术博客;
8.在优质社区投稿过文章;
岗位:安全红队武器自动化工程师
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)
【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。
【岗位要求】
1.熟练使用Python、java、c/c++等至少一门语言作为主要开发语言;
2.熟练使用Django、flask 等常用web开发框架、以及熟练使用mysql、mongoDB、redis等数据存储方案;
3:熟悉域安全以及内网横向渗透、常见web等漏洞原理;
4.对安全技术有浓厚的兴趣及热情,有主观研究和学习的动力;
5.具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。
【加分项】
1.有高并发tcp服务、分布式等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。
简历投递至
岗位:红队攻防(正式/实习)
工作地点:杭州/上海
【职位亮点】
1.种类丰富的内部红蓝对抗工具;
2.安全大牛作为技术后盾,带你提升实战攻防能力;
3.参与战略级红蓝对抗项目 (部级、省级、重点行业 等)。
【岗位要求】
1.具备红蓝对抗项目实战经验;
2.具备一定的编程能力,至少掌握一门语言 (C#/C++、Go、Java、Python 等)
3.外网打点/内网横向/域渗透/远控免杀/社工钓鱼/隐蔽持久化 等一个或多个领域有深入的理解;
4.具备良好的沟通和团队协作能力、责任心强、热爱技术、愿意分享;
【加分项】
1.实战型开源项目者优先;
2.具备丰富的实战经验,大型HW经验优先;
3:个人技术博客、优质社区投稿过文章者优先;
简历投递至
anonysec.zhang#dbappsecurity.com.cn (杭州)
ethan.hong#dbappsecurity.com.cn (上海)
微信投递至
AnonySec (杭州)
a0011221100 (上海)
岗位:安全研究(正式/实习)
工作地点:杭州/上海
【职位亮点】
1.漏洞挖掘与研究的时间自由;
2.探索前沿的攻防技术,并在实战中进行实践验证;
3.参与红蓝对抗等高端项目,丰富个人实战攻防经验;
4.与安全大牛一起打造武器化工具落地,赋能一线人员.
【岗位要求】
1.拥有大型产品、CMS、厂商漏洞挖掘案例;
2.具备出色的编程能力,熟练掌握一门语言 (C#/C++、Go、Java、Python 等)
3.深入了解漏洞原理,能够独立挖掘/分析包括但不限于PHP/JAVA/.NET/ASP等大中型应用漏洞;
4.对安全有浓厚兴趣和较强的独立钻研能力,有良好的团队精神、愿意分享;
【加分项】
1.开发过安全相关的开源项目者优先;
2.个人技术博客、优质社区投稿过文章者优先;
3:提交过高质量的CVE、具备0day挖掘能力者优先;
简历投递至
anonysec.zhang#dbappsecurity.com.cn (杭州)
ethan.hong#dbappsecurity.com.cn (上海)
微信投递至
AnonySec (杭州)
a0011221100 (上海)
END
长按识别二维码关注我们