Cobalt Strike----(6)

Windows注册表

     使用 reg query [x86|x64] [HIVE\path\to\key] 来查询注册表中一个指定的键。这个命令会打印
键内的值和一个子键的列表。 x86/x64 的选项是必须的,强制 Beacon 使用 WOW64 x86 )或注册表 的本地视图。 reg_query [x86|x64] [HIVE\path\to\key] [value] 会查询注册表内某个键的特定
的键值。

键盘记录和屏幕截图 

      Beacon 键盘记录和截屏的工具被设计为注入另一个进程并把结果报告给你的 Beacon。 要开始键盘记录器,使用 keylogger pid 来注入一个 x86 程序。使用 keylogger pid x64 来注入 一个 x64 程序。 Explorer.exe 是一个好的候选程序。使用单独的 keylogger 命令来将键盘记录器注 入一个临时程序。键盘记录器会监视从被注入的程序中的键盘记录并将结果报告给 Beacon ,直到程序终止或者你杀死了这个键盘记录后渗透任务。

 注意:在使用键盘记录的时候,要预先找到对应的进程id,不然可能会出现:

[-] ould not open process 16180: 87
[-] Could not connect to pipe: 2

关闭键盘记录器:
jobs #查看进程
kill [对应进程ID]
   具体注入哪一个程序其实都没关系,因为都会记录你所有的键盘记录。之所以推荐 Explorer.exe 主要是为了持久和稳定,比如你注入了 chrome.exe 那么目标把 chrome 关了就没有了,主要是要看被注入的这个程序是不是持久稳定,所以 explorer 是个好的选择。 请注意,多个键盘记录器可能相互冲突。对每个桌面会话只应使用一个键盘记录器。
    要获取屏幕截图,使用 screenshot pid 来将截屏工具注入到一个 x64 的进程中。使 screenshot
pid x64 注入到一个 x64 进程中。同样的, Explorer.exe 是一个好的候选程序。 screenshot 命令的
变体将保存一个截图并退出。单独使用 screenshot 命令会将截屏工具注入到一个临时进程中。使用
screenshot pid 架构 时间 来请求截屏工具运行指定的秒数并在每一次 Beacon 连接到团队服务器的 时候报告一张屏幕截图。这是查看用户桌面的一种简便方法。
    当 Beacon 接收到新的屏幕截图或者键盘记录时,它将向 Beacon 控制台发送一条消息。不过屏幕截图 和键盘记录的具体内容无法通过 Beacon 控制台查看。要查看键盘记录的具体信息,通过 View → Keystrokes 来查看从你的所有 Beacon 会话中记录的键盘记录。要查看截屏的具体信息,通过 View → Screenshots 来浏览从你的所有 Beacon 会话中获取的截屏。这两个对话框都会随着新信息的进入而更新,这些对话框使得一个操作员可以轻松的监视从所有 Beacon 会话中获取的键盘记录和截屏。

后渗透任务

一些 Beacon 的功能在另一个进程中作为任务运行(例如,键盘记录器和屏幕截图工具)。这些任务在后台中运行,并在可用时报告其输出。使用 jobs 命令来查看在你的 Beacon 中运行的任务。使用jobkill [job number] 来杀死一个任务。

进程浏览器

    进程浏览器做的事情显而易见;它对一个 Beacon 下达对你展示进程列表及其具体信息的任务。左侧栏展示进程树。你 Beacon 的当前进程被黄色高亮出来了

    进程浏览器的右边部分显示进程详细信息。进程浏览器也是从另一个进程伪造令牌、部署截屏工具或者部署键盘记录器比较方便的地方。选中一个或多个程序(按住 ctrl 键再点击程序可以多选)并按选项卡底部的相应按钮。
     如果你选中了多个 Beacon 并让它们显示进程,则 Cobalt Strike 将显示进程浏览器,进程浏览器会声明进程来自哪个主机。这个进程浏览器的变体是一次往多个系统部署 Beacon 的后渗透工具(如键盘记录器、截屏)的便捷方法。简单的按进程名排序,选中你的目标主机系统上你感兴趣的进程,然后按Log Keystrokes 或者 Screenshot 键来将这些工具部署到所有这些选中的主机系统。

 桌面控制

    要与目标主机上的桌面交互,通过 [beacon] Explore Desktop(VNC) 。这会将一个 VNC 服务器转入当前进程的内存中并通过 Beacon 对连接建立隧道。 当 VNC 服务器准备就绪时, Cobalt Strike 会打开一个标签为 Desktop HOST@PID 的标签页。 也可以使用 Beacon desktop 命令来将一个 VNC 服务器注入一个特定的进程。使用 desktop pid 架构 low|high 命令。最后一个参数用于指定 VNC 会话的画质。

 桌面标签页底部有一些按钮,包括:刷新屏幕,仅查看,减小缩放,增加缩放,缩放至100%,调整缩放程度至适合标签页     发送Ctrl+Escape  锁定Ctrl 锁定Alt

   如果你无法在一个桌面选项卡中键入,检查 Ctrl Alt 按钮的状态。无论这两个按钮中的哪个被按 下了,你的所有键盘记录都会被使用 Ctrl Alt 修饰符发送。按 Ctrl Alt 按钮来关闭此行 为。也要确保 View only 没有被按下。为了阻止你意外的移动鼠标, View only 被默认按下了

权限提升

一些后渗透命令要求系统管理员级别的权限。 Beacon 有几个帮助你提升访问权限的选项。
利用漏洞提权
      输入 elevate 来列出在 Cobalt Strike 中注册的权限提升漏洞。运行 elevate [exploit listener]
来尝试使用特定的漏洞利用来提权。你也可以通过 [beacon] Access Elevate 来启动其中一
个漏洞利用。

单独使用 runasadmin 命令,来列出在 Cobalt Strike 中注册的权限提升命令。运行runasadmin[exploit] [command+agrs] 来尝试在提权的临时环境中运行特定的命令 

     Cobalt Strike 将提权的漏洞利用命令和会话范围的漏洞利用命令分开,因为一些用于提权的攻击是派生会话的自然机会。其他攻击产生一个运行此命令的原语。从一个「运行此命令」的原语派生一个会话会导致把大量武器化的决策交到你的工具开发人员手中(这不总是有利的)。使用 runasadmin ,你可以 自己决定丢一个可执行文件在磁盘上并运行它,运行 PowerShell 单行程序,或者在某些程度上削弱目标.
      如果你想要使用 PowerShell 单行程序来派生会话,通过 [session] Access One- liner 对话会在你的 Beacon 会话内建立一个仅本地的 web 服务器来托管一个 payload stage 并返回一个 PowerShell 命令来下载和运行这个 payload stage 。这个 web 服务器是一次性的。一旦连
接了一次,它就会自我清理并停止服务于你的 payload 。如果你在此工具内运行一个 TCP SMB 的 Beacon,你将需要手动的使用 Connect 模块或链接到设定的 payload 控制。另外请注意如果你试图使 用一个 64 payload ,如果你的 $PATH 中是 x86 PowerShell 那么就可能会失败。

使用已知凭证提权

       使用 runas [DOMAIN\user] [password] [command] 使用其他用户的凭证来以其他用户身份运行一 个命令。这个 runas 命令不会返回任何输出。但是,你也可以在非特权上下文中使用 runas
     使用 spawnas [DOMAIN\user] [password] [command] 使用其他用户的凭证来以其他用户身份派生一个会话。这个命令派生一个临时的进程并将你的 payload stage 注入进那个进程。你也可以通过 [beacon] → Access Spawn As 来运行此命令。 使用这两个命令时,请注意,SID 不是 500 的账号的凭据会派生一个中等完整性上下文中的 payload 。 你将需要使用 Bypass UAC 来提权至一个高完整性上下文。同时也要注意,你应该从特定账户可以读取的工作文件夹中运行这些命令。
runas
1、/noprofile不应该加载用户的配置文件,这会这会加速应用程序加载,但可能会造成一些应用程序运行不正常。]或者/profile 指定应该加载用户的配置文件。  这是默认值。
2、/env 要使用当前环境而不是用户的环境
3、/netonly只在指定的凭据限于远程访问的情况下才使用,/cavecrd用用户以前保存的凭据
4、 /smartcard        如果凭据是智能卡提供的,则使用这个选项。可选
5、 /user             <UserName> 应使用 USER@DOMAIN 或 DOMAIN\USER 形式
6、 /showtrustlevels  显示可以用作 /trustlevel 的参数的信任级别。
7、  /trustlevel       <Level> 应该是在 /showtrustlevels 中枚举的一个级别。
8、 /machine          指定进程的计算机架构。应为 x86|amd64|arm|arm64 之一。
9、   program           EXE 的命令行。请参阅下面的例子
例:runas /noprofile /user:administrator cmd
只在得到提示时才输入用户的密码。

获取 SYSTEM 账号 

    使用 getsystem 命令来模拟一个 SYSTEM 账号的令牌。此访问等级可以允许你执行管理员用户无法执 行的特权操作。
     另一种获取 SYSTEM 权限的方法是创建一个运行 payload 的服务。 elevate sve - exe [ 监听器 ] 命令 可以实现此目的。此命令会在目标磁盘上落地一个运行 payload 的可执行文件、创建一个服务来运行此 exe,承担对 payload 的控制,然后清理服务和可执行文件。

UAC Bypass

      Microsoft Windows Vista 中引入了 UAC 机制并在 Windows 7 中对 UAC 机制进行了完善。 UAC 与 UNIX 中的 sudo 的工作机制十分相似。平时用户以普通权限工作,当用户需要执行特权操作时,系统会询问他们是否要提升其权限。Cobalt Strike 附带了一些绕过 UAC 的攻击。但如果当前用户不是管理员,攻击会失效。要检查当前用户是否在管理员组里,使用 run whoami /groups 命令 elevate uac - token - duplication [listener] 命令会使用提升的权限派生一个临时的进程并将一个
payload stage 注入进此进程。此工具使用一个 UAC 漏洞允许一个非提权的进程使用从一个提权的进程 窃取的令牌来启动一个任意进程。该漏洞要求攻击者一些分配给提权的令牌的权限。你的新会话的能力 会反映这些受限的权利。如果「始终通知」处于最高设置,此攻击要求提权的进程已经运行在当前桌面 会话中(作为同一用户)。此攻击适用于2018 11 月更新之前的 Windows 7 Windows 10 系统。 runasadmin uac- token - duplication [ 命令 ] 是和上面描述的相同的攻击,但是此变形是在一个提权 的上下文中运行你选择的命令。 runasadmin uac- cmstplua [ 命令 ] 将尝试过 UAC 并在一个提权的上下文中运行命令。此攻击依赖 于 COM 对象,该对象会自动从特定的进程(微软签名的,位于 c:\windows\* 目录下的)上下文中提 权。
特权
输入 getprivs 以启用分配给你的当前访问令牌的特权。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值