实习实训day9

要求

1.安装CS,写安装步骤

2.总结用户组和用户、windows信息搜集命令

3.总结手工提权思路,拿土豆提权

4.用CS插件提权,提虚拟机或本地都行

CobaltStrike安装与连接

将服务端上传到vps上:

为了防止一些权限问题,直接把整个Server目录都给与777权限:

chmod -R 777 Server/

然后进入Server目录,运行./teamserver IP地址 密码来启动CS(注意这里的IP是服务端vps的公网IP,密码是连接上这个服务端要用的,可以随便设):

我这里把密码设成了123123。可以看到服务端已经在50050端口启动了。这里下面还有个哈希值,是用来唯一标识这个服务端的,后面客户端连接的时候会用到。

在本机上打开服务端:

这里的Alias别名随便填,Host就填运行着服务端的vps公网地址,端口默认50050,User名称可以随便取,Password对应之前设定的服务端密码123123。

这里点击连接以后,如果是初次连上这个服务端,会弹出一个指纹校验窗口,上面会给出服务端的哈希值,这个值和之前启动服务端时输出的哈希值应该是一样的。

由于我之前连接过,所以没有再弹出指纹校验窗口,直接进入了客户端:

进入客户端以后可以添加一些插件,在CS菜单-脚本管理器中点击load加载,选中插件里的.cna文件即可:

Windows命令

Windows中常见用户组:

  1. Administrators(管理员组)

权限:拥有对计算机的最高控制权限,可以执行几乎所有的操作,包括安装软件、修改系统设置、访问所有文件等。

成员:通常包含系统默认的管理员账户(如Administrator),以及被手动添加到该组的用户账户。

  1. Users(普通用户组)

权限:拥有运行经过验证的应用程序的权限,但无法修改系统设置或用户资料。这是默认的用户组,新创建的用户账户默认属于此组。

安全性:提供了一个相对安全的程序运行环境,防止用户无意或有意地更改系统设置。

  1. Guests(来宾组)

权限:具有与普通用户相似的访问权限,但通常受到更多限制。来宾账户通常用于临时访问计算机,而不需要创建新的用户账户。

安全性:通过限制来宾账户的权限,可以提高计算机的安全性。

  1. SYSTEM(系统账户组)

权限:拥有比管理员更高的权限,主要用于系统服务和核心组件的访问。

注意:SYSTEM账户通常不显示在用户组列表中,也不允许用户加入。

  1. Everyone(所有用户组)

含义:代表计算机上的所有用户,包括所有经过验证登录的用户及来宾用户。

用途:在设置文件、文件夹或打印机的共享权限时,可以使用Everyone组来快速为所有用户分配相同的权限。

  1. Authenticated Users(经过验证的用户组)

成员:包含所有经过身份验证的用户,但不包括来宾用户。

用途:用于为那些需要身份验证才能访问资源的用户分配权限。

  1. Interactive Users(交互式用户组)

成员:包含所有在本地登录的用户。

用途:通常用于分配与交互式会话相关的权限,如访问某些系统资源或执行某些操作。

用户和用户组

用户管理命令

  • 查看用户列表
    • net user:显示本地计算机上的所有用户账户列表。
  • 查看特定用户信息
    • net user 用户名:查看指定用户的详细信息,包括用户名、密码状态、账户类型等。
  • 创建新用户
    • net user 用户名 密码 /add:创建一个新用户账户,并设置密码。如果不希望立即设置密码,可以使用*代替密码,稍后系统会提示设置。
  • 修改用户密码
    • net user 用户名 新密码:更改指定用户的密码。如果希望系统提示输入密码而不是直接在命令行中显示,可以使用*代替新密码。
  • 删除用户
    • net user 用户名 /del:删除指定的用户账户。注意,删除用户账户前要确保该账户没有被用于任何重要服务或文件访问权限。
  • 激活/停用用户
    • net user 用户名 /active:yes:激活指定的用户账户。
    • net user 用户名 /active:no:停用指定的用户账户。

用户组管理命令

  • 查看本地组
    • net localgroup:列出本地计算机上的所有组。
  • 查看特定组的成员
    • net localgroup 组名:显示指定本地组的成员列表。
  • 创建新组
    • net localgroup 组名 /add:创建一个新的本地组。
  • 添加用户到组
    • net localgroup 组名 用户名 /add:将指定用户添加到指定的本地组中。
  • 从组中删除用户
    • net localgroup 组名 用户名 /del:从指定的本地组中删除用户。

其他相关命令

  • 查看当前用户信息
    • whoami /user:显示当前用户的安全标识符(SID)和其他信息。
  • 用户账户控制设置
    • 虽然不是直接通过命令行修改,但用户可以通过控制面板或组策略编辑器(gpedit.msc)来调整用户账户控制(UAC)的设置。
  • 注册表编辑器
    • regedit:打开注册表编辑器,用户可以在这里查看和修改与用户和用户组相关的注册表项,但请谨慎操作,因为不当的修改可能会导致系统不稳定或无法启动。

信息搜集常用命令

  1. 系统信息查询
    • systeminfo:显示详细的系统信息,包括操作系统版本、系统架构、处理器、内存、热修补程序等。
    • winver:快速检查Windows版本信息。
    • wmic:使用Windows Management Instrumentation Command-line查询各种系统信息,如硬件配置、软件安装情况、系统运行状态等。
    • ver:显示操作系统版本类型。
  2. 网络配置与诊断
    • ipconfig:查看网络配置信息,如IP地址、子网掩码、默认网关、DNS服务器等。
      • ipconfig /all:显示完整的网络配置信息。
      • ipconfig /displaydns:显示DNS缓存内容。
    • tracert:跟踪数据包到达目标主机的路由路径。
    • nslookup:查询域名的IP地址或IP地址的域名信息。
    • netstat:显示网络连接、路由表、接口统计等信息。
      • netstat -an:显示所有连接和监听端口,以数字形式显示地址和端口号。
    • arp -a:打印ARP(地址解析协议)表,显示本地计算机上的IP地址与物理地址之间的映射。
  3. 用户与组管理
    • net user:列出本地用户账户。
      • net user 用户名:查看指定用户的信息。
      • net user /domain:在域环境中列出域中的所有用户账户(需相应权限)。
    • net localgroup:列出本地组。
      • net localgroup 组名:查看指定组的信息。
      • net localgroup administrators:列出本地管理员组成员。
      • net group /domain:在域环境中列出域中的所有组(需相应权限)。
    • whoami:获取当前登录的用户名
      • whoami /priv 可显示当前账户的权限信息。
    • lusrmgr.msc:打开本地用户和组管理工具。
  4. 进程与服务管理
    • tasklist:显示当前运行的进程列表。
      • tasklist /svc:显示每个进程所关联的服务。
    • taskkill:结束一个或多个进程。
    • services.msc:打开服务管理器,查看和管理Windows服务。
    • taskschd.msc:打开任务计划程序,管理计划任务。
  5. 安全与审计
    • secpol.msc:打开本地安全策略编辑器,配置安全策略设置。
    • eventvwr:打开事件查看器,查看Windows日志,包括应用程序日志、系统日志和安全日志等。
  6. 其他实用命令
    • dir:列出目录内容,可结合/s选项递归列出子目录内容。
    • findstr:在文件中搜索字符串,常与其他命令结合使用进行筛选。
    • type:显示文本文件的内容。
    • echo:在命令提示符下显示信息或创建/修改文件内容。

Windows计划任务

任务计划程序(Task Scheduler)

任务计划程序是Windows操作系统自带的一个功能,允许用户创建、编辑、删除和管理定时任务。

  1. 打开任务计划程序
    • 通过开始菜单搜索“任务计划程序”并打开。
    • 按下Win + R键,输入taskschd.msc后按回车打开。
    • 在桌面上右键点击“此电脑”或“计算机”,选择“管理”,然后在弹出的窗口中选择“任务计划程序”。
  2. 创建任务
    • 在任务计划程序窗口中,右键点击“任务计划库”,选择“创建基本任务”或“创建任务”。
    • 输入任务名称和描述,选择触发器(如每天、每周、特定时间等)。
    • 选择要执行的操作,如启动程序、发送电子邮件等。
    • 确认任务设置无误后,点击“完成”保存任务。
  3. 管理任务
    • 在任务计划程序窗口中,可以查看已创建的任务列表。
    • 右键点击任务,可以选择编辑、禁用、启用或删除任务。
    • 查看任务的详细信息,包括触发器、操作和条件等。

命令行工具schtasks

schtasks是一个命令行工具,用于在Windows中创建、查询、删除、更改、运行和中止计划任务。

  1. 创建任务
    • 语法:schtasks /create /tn TaskName /tr TaskRun /sc Schedule [/st StartTime] [/sd StartDate] [/ed EndDate] [/ri Interval] [/du Duration] [/m //computer [/u [domain\]user /p password]]
    • 示例:schtasks /create /tn DailyBackup /tr "C:\Scripts\backup.bat" /sc daily /st 22:00 创建一个名为DailyBackup的每日任务,每天晚上10点运行C:\Scripts\backup.bat脚本。
  2. 查询任务
    • 语法:schtasks /query [/fo {TABLE | LIST | CSV}] [/nh] [/v] [/s Computer [/u [Domain\]User /p Password]]
    • 示例:schtasks /query 查询所有计划任务。
  3. 删除任务
    • 语法:schtasks /delete /tn TaskName [/f] [/s Computer [/u [Domain\]User /p Password]]
    • 示例:schtasks /delete /tn DailyBackup /f 强制删除名为DailyBackup的任务。
  4. 更改任务
    • 语法较为复杂,涉及多个参数,如更改任务运行用户、密码、触发器等。
    • 示例:schtasks /change /tn TaskName /ru UserName /rp NewPassword 更改任务运行用户和密码。
  5. 运行任务
    • 语法:schtasks /run /tn TaskName [/s Computer [/u [Domain\]User /p Password]]
    • 示例:schtasks /run /tn DailyBackup 立即运行名为DailyBackup的任务。
  6. 中止任务
    • 语法:schtasks /end /tn TaskName [/s Computer [/u [Domain\]User /p Password]]
    • 示例:较少使用,主要用于停止正在运行的计划任务。

手工提权

参考链接:

https://blog.csdn.net/2302_79590880/article/details/140894909

前期准备

  1. 信息收集
  • 使用systeminfo收集目标系统的详细信息。
  • 使用工具(如wesngWindows-Exploit-Suggester)比对systeminfo的输出,搜集可能可以利用的漏洞。
  1. 漏洞筛选与利用脚本攻击
  • 利用在线工具或数据库(如KernelhubPoC-in-GitHub)比对系统信息,筛选出可利用的漏洞。
  • 根据漏洞编号查找对应的利用脚本对目标主机进行攻击,可能需要多次尝试,因为并非所有漏洞都能成功利用。

工具部署与提权尝试

  1. 上传工具
  • 通过漏洞脚本上传WebShell等方式,获得对目标系统的初步访问权限,将提权工具(如土豆家族)上传到目标系统。
  1. 配置与执行
  • 根据工具的使用说明配置相关参数。对于“土豆家族”工具,通常需要指定要执行的命令、监听的端口等。
  • 执行提权工具,尝试提权。可能也要换不同的工具进行多次尝试。

土豆家族:

GodPotato

https://github.com/BeichenDream/GodPotato

SweetPotato

https://github.com/CCob/SweetPotato

RoguePotato

https://github.com/antonioCoco/RoguePotato

BadPotato

https://github.com/BeichenDream/BadPotato

EfsPotato

https://github.com/zcgonvh/EfsPotato

MultiPotato

https://github.com/S3cur3Th1sSh1t/MultiPotato

CandyPotato

https://github.com/klezVirus/CandyPotato

RasmanPotato

https://github.com/crisprss/RasmanPotato

PetitPotato

https://github.com/wh0amitz/PetitPotato

JuicyPotatoNG

https://github.com/antonioCoco/JuicyPotatoNG

PrintNotifyPotato

https://github.com/BeichenDream/PrintNotifyPotato

CoercedPotato

https://github.com/Prepouce/CoercedPotato

权限验证与后续操作

  1. 验证权限
  • 提权成功后,使用whoami等命令验证当前用户权限是否已提升至SYSTEM级别。
  1. 后续操作
  • 一旦获得SYSTEM权限,即可执行更高级别的操作,如安装后门、窃取敏感数据、修改系统配置等。

提权实践

在windows server 2012虚拟机上,上传四个土豆尝试提权。

  1. GodPotato
GodPotato.exe -cmd "cmd /c whoami"

三个版本均失败:

  1. PetitPotato
PetitPotato.exe 3 cmd

也失败了:

  1. JuicyPotatoNG
JuicyPotatoNG.exe -t *-p "C:\windows\system32\cmd.exe"-a "/c whoami C:\juicypotatong.txt"

又失败了:

  1. PrintNotifyPotato
PrintNotifyPotato.exe  whoami

三个版本也全失败了:

其他的土豆需要编译,就不再尝试了。

CS提权

首先要添加一个监听器(CS菜单-监听器):

这里的name是监听器的名字,可以随便取。因为是服务端作为中间人转发客户端和被攻击主机之间的消息,监听器是部署在服务端上的,所以这里的HTTP地址是CS服务端的IP,端口配置为服务端上随便一个没有被占用的端口。

之后生成一个payload(攻击-web投递):

这里就是在CS服务端上面开启一个web服务,监听8001端口,网址就是服务端主机IP:8001/a。Listener要选一个可用的监听器。Type就是payload的类型,可以选powershell、exe等,对应在受害者主机上不同的执行方式。当受害者主机执行payload后,就会通过这个网址下载运行木马,然后在CS客户端就可以看到上线的受害者主机了。

点击生成以后,复制payload,在被攻击主机上执行即可:

同时可以在站点管理页面看到生成的网站:

我这里在Windows虚拟机中访问该网址,下载并执行执行这个payload:

执行了这个exe文件以后,在CS客户端就可以看到该主机上线了:

这里要设置一下sleep时间,默认为60s,即CS客户端这边发出的命令要等60s才会传过去执行,我这里改成3s(右键会话-回连间隔):

在beacon(右键会话-会话交互)中,用shell执行net user看一下有哪些用户:

可以看到被攻击的虚拟机上只有一个用户,所属组为Administrator。在下方状态栏也标出了当前用户正是该用户。

之后使用梼杌插件进行提权,不一定都能成功,需要一个个试:

试了一堆全都没成功,只有用MS14-058获得了指向rundll32.exe的会话(这里有两个是因为我运行了两次):


rundll32.exe相关:

https://blog.csdn.net/kinghzking/article/details/130924045

这个东西功能挺强大,可以加载动态链接库(DLL)文件中的函数,执行JavaScript或VBScript代码,修改注册表和服务等。也相当于提权成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值