当前位置: 首页 > java >正文

nishang--安装、使用

用途限制声明,本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。

一、Nishang 简介

Nishang 是一款基于 PowerShell 的开源渗透测试框架,专注于 Windows 环境下的红队操作、渗透测试及后渗透攻击。它由安全社区开发维护(核心开发者包括 Nikhil Mittal),通过模块化设计整合了信息收集、权限提升、远程控制、凭证窃取等功能,充分利用 PowerShell 在 Windows 系统中的原生性和隐蔽性,成为红队评估和安全测试的重要工具。

二、核心原理

Nishang 的工作原理基于 PowerShell 的特性和 Windows 系统的底层机制,主要包括:

  1. PowerShell 原生性
    PowerShell 是 Windows 内置的命令行 shell 和脚本语言,与系统深度集成(如通过 .NET 框架调用系统 API),且默认被大多数 Windows 系统支持。Nishang 脚本无需依赖额外二进制文件,可直接在目标系统中执行,降低被传统安全工具(如杀毒软件、防火墙)检测的概率。

  2. 内存加载与无文件攻击
    许多 Nishang 模块支持通过内存加载执行(如利用 Invoke-Expression 或 IEX 命令),避免将脚本写入磁盘,减少留下痕迹的风险,实现 “无文件攻击”,绕过基于文件的检测机制。

  3. 利用 Windows 内置组件
    模块设计依赖 Windows 原生功能(如 WMI、注册表、计划任务、远程桌面服务等),例如通过 WMI 远程执行命令、修改注册表实现持久化,无需安装额外工具即可完成攻击链。

  4. 规避防御机制
    通过脚本编码(如 Base64)、混淆处理(如替换关键字、添加垃圾代码)等方式,规避 PowerShell 执行日志记录和安全软件的特征检测。

三、用途

Nishang 作为基于 PowerShell 的渗透测试框架,其核心用途是辅助安全人员在合法授权的前提下,对 Windows 系统进行渗透测试、红队评估和安全弱点验证,具体使用场景包括以下几个方面:

1. 信息收集与 reconnaissance

通过内置模块对目标系统进行全面信息探测,为后续攻击提供基础数据,例如:

  • 收集系统基本信息(用户名、操作系统版本、补丁级别、进程列表等),判断目标脆弱性;
  • 探测网络配置(IP 地址、端口开放情况、域环境信息等),梳理目标网络拓扑;
  • 检测目标是否运行在虚拟机中(如 Check-VM 模块),评估攻击隐蔽性难度。
2. 权限提升与权限维持

针对 Windows 系统的权限机制,实现从低权限到高权限的突破,并维持控制权:

  • 利用系统漏洞(如过时补丁、服务配置错误)的提权模块,获取管理员或 SYSTEM 权限;
  • 通过修改注册表、创建计划任务、添加启动项等方式(如 Add-Persistence 模块),实现攻击持久化,确保目标重启后仍能控制。
3. 远程控制与命令执行

建立与目标系统的交互式连接,执行命令或操作:

  • 通过反向 TCP/UDP shell(如 Invoke-PowerShellTcp)、HTTP/HTTPS 隧道(如 Invoke-PowerShellHttp)等方式,绕过防火墙限制,获取目标 shell;
  • 利用 Windows 原生组件(如 WMI、WinRM)远程执行命令(如 Invoke-WMICommand 模块),实现无文件操作。
4. 凭证窃取与敏感信息获取

提取目标系统中的账号密码、哈希值等敏感数据,扩大攻击范围:

  • 通过 PowerShell 版 Mimikatz(Invoke-Mimikatz 模块)抓取内存中的明文密码、NTLM 哈希;
  • 收集浏览器保存的密码、VPN 配置、数据库连接信息等(如 Get-BrowserData 模块)。
5. 横向移动与内网渗透

在突破单台主机后,向内网其他主机扩散:

  • 利用获取的凭证(如哈希传递攻击)登录内网其他主机;
  • 通过 SMB、RDP 等协议横向移动,控制更多节点(如 Invoke-Command 结合凭证复用)。
6. 安全防御测试与绕过

验证目标系统的安全防护能力,帮助优化防御策略:

  • 测试终端防护(如杀毒软件、EDR)的检测能力,通过脚本混淆、编码等方式验证防御绕过效果;
  • 模拟真实攻击场景,评估企业内网的安全监控与响应能力。

四、安装

下载地址:【免费】nishang-一款强大的内网PowerShell攻击框架资源-CSDN下载

下载完成后界面如图所示

接着在此页面进入终端,然后运行以下命令

Set-ExecutionPolicy Bypass -Scope Process -Force

因为需要调整执行策略:默认情况下,PowerShell 禁止执行脚本(策略为 Restricted),需临时调整(仅在授权测试环境中使用)。

ok、安装完成,接下来就可以使用了。

五、使用

我介绍一下各个文件夹所对应的功能,文件夹里面都有对应的脚本文件,这里我就不再多说

1. ActiveDirectory

用途:针对 Windows 域环境(Active Directory) 的攻击模块,聚焦域内渗透。

  • 典型场景:
    • 枚举域用户、组、计算机、域管理员(如 Get-DomainUser 类模块);
    • 利用域漏洞(如 ACL 配置错误、MS14-068)实现权限提升或横向移动;
    • 窃取域凭证、模拟域用户登录(Pass-the-Hash 等)。

2. Antak-WebShell

用途:PowerShell 版 WebShell 相关模块,针对 Web 服务器渗透。

  • 典型场景:
    • 在 IIS 等 Web 服务中部署 PowerShell WebShell,通过 HTTP 交互执行命令;
    • 绕过 Web 应用防火墙(WAF),利用 Web 层进入内网(如结合文件上传漏洞)。

3. Backdoors

用途持久化控制 模块,确保攻击方长期维持对目标的访问权。

  • 典型场景:
    • 通过注册表(Add-RegistryBackdoor)、计划任务(Add-ScheduledTaskBackdoor)植入后门;
    • 隐藏式连接(如反向 Shell 配合随机启动项),规避运维人员检测。

4. Bypass

用途绕过防御机制(杀毒软件、EDR、PowerShell 执行策略等)。

  • 典型场景:
    • 脚本混淆(如替换关键字、添加垃圾代码),躲避 AV 特征检测;
    • 绕过 PowerShell 执行策略(Bypass-ExecutionPolicy),在受限环境运行脚本;
    • 对抗 EDR 监控(如内存加载、无文件执行)。

5. Client

用途:针对 Windows 客户端软件(浏览器、邮件客户端等)的攻击模块。

  • 典型场景:
    • 窃取浏览器保存的密码(如 Get-ChromePasswordGet-FirefoxPassword);
    • 劫持邮件客户端会话、提取配置信息(如 Outlook 邮箱凭证)。

6. Escalation

用途本地权限提升,从普通用户突破到管理员(或 SYSTEM 权限)。

  • 典型场景:
    • 利用系统漏洞(如 MS16-032、永恒之蓝衍生模块);
    • 滥用服务权限配置(如修改系统服务二进制路径);
    • 绕过 UAC(用户账户控制),提升权限执行高权限操作。

7. Execution

用途命令 / 脚本执行 模块,聚焦 “如何在目标系统运行代码”。

  • 典型场景:
    • 无文件执行(如 Invoke-Expression 加载远程脚本);
    • 通过 WMI、COM 对象远程执行命令(Invoke-WMICommand);
    • 绕过应用白名单(利用系统签名二进制加载脚本)。

8. Gather

用途信息收集,全面探测目标系统的资产、配置、敏感数据。

  • 典型场景:
    • 系统信息(Get-Information:用户名、补丁、进程);
    • 网络信息(Get-NetworkProfile:IP、端口、域信息);
    • 凭证窃取(Invoke-Mimikatz:抓取密码哈希、明文凭证)。

9. Misc

用途杂项工具,涵盖无法归类的辅助功能(如编码、测试脚本)。

  • 典型场景:
    • Base64 编码 / 解码(辅助脚本混淆);
    • 时间戳伪造(干扰日志分析);
    • 简易漏洞测试(如 SMB 签名检测)。

10. MITM

用途中间人攻击(Man-in-the-Middle),拦截或篡改网络通信。

  • 典型场景:
    • ARP 欺骗(劫持局域网流量);
    • 代理劫持(截获 HTTP/HTTPS 通信,窃取认证信息);
    • 伪造 DNS 响应(定向流量到攻击机)。

11. Pivot

用途横向移动,从已控主机向内网其他节点扩散。

  • 典型场景:
    • 端口转发(Invoke-PortForward),突破网络隔离;
    • 利用 SMB/RDP 协议,结合窃取的凭证登录其他主机;
    • 跳板攻击(通过已控主机扫描内网、部署代理)。

12. powerpreter

用途:整合 Powerpreter(另一款 PowerShell 渗透工具集)的模块,扩展功能。

  • 典型场景:
    • 更复杂的信息收集、漏洞利用(Powerpreter 原有模块的复用);
    • 补充 Nishang 未覆盖的攻击链(如特定应用漏洞利用)。

13. Prasadhak

用途自动化攻击脚本(推测,名称源自 Sanskrit,意为 “执行者”),批量执行渗透任务。

  • 典型场景:
    • 批量部署后门、窃取凭证(针对内网多台主机);
    • 自动化漏洞扫描与利用(简化重复操作)。

14. Scan

用途网络 / 系统扫描,探测目标脆弱性。

  • 典型场景:
    • 端口扫描(Invoke-PortScan),发现开放服务;
    • 漏洞检测(如永恒之蓝、MS17-010 检测脚本);
    • 弱密码探测(针对 SMB、RDP 等服务)。

15. Shells

用途反向 Shell / 交互式连接,建立与目标的控制通道。

  • 典型场景:
    • TCP 反向 Shell(Invoke-PowerShellTcp),绕过防火墙出站限制;
    • HTTP 隧道(Invoke-PowerShellHttp),利用 Web 代理通信;
    • 交互式命令执行(获取目标系统的 CMD/PowerShell 交互环境)。

16. Utility

用途辅助工具,为其他模块提供支撑功能。

  • 典型场景:
    • 日志清理(Clear-EventLog,删除 PowerShell 执行痕迹);
    • 编码转换(ConvertTo-EncodedCommand,辅助脚本混淆);
    • 系统配置修改(如关闭防火墙、修改安全策略)。

你可以把各个文件夹当成一个个模块,每个模块对应的功能不同,但是使用都是大差不差的

比如,下面我介绍一下关于信息收集的模块,就是Gather模块

信息收集(以 Get-Information 为例)

该模块用于收集目标系统的基本信息(用户名、进程、网络配置等):

# 导入模块
Import-Module .\Gather\Get-Information.ps1
Import-Module:这是 PowerShell 的内置 cmdlet(命令),用于导入 PowerShell 模块(.ps1 或 .psm1 格式的脚本文件)。模块中通常包含预定义的函数、变量或工具,导入后可以直接调用其中的功能,扩展 PowerShell 的能力。
.\Gather\Get-Information.ps1:这是模块文件的 相对路径,指向 Nishang 框架中的具体脚本:
.\ 表示 “当前工作目录”(即执行命令时 PowerShell 的当前路径,需先通过 cd 命令进入 Nishang 框架的根目录,否则路径会无效);
Gather 是 Nishang 中的子目录,专门存放 信息收集类模块;
Get-Information.ps1 是具体的模块文件,是 Nishang 中用于收集系统基础信息的核心脚本之一。
执行该命令后,PowerShell 会加载 Get-Information.ps1 脚本中定义的功能,最核心的是导入了 Get-Information 函数。# 执行信息收集并输出结果
Get-Information

这是收集的一些信息

所以说,使用的话就是通过导入相应的模块,然后再通过脚本文件名称来使用,再例如

凭证窃取(以 Invoke-Mimikatz 为例)

抓取系统中的密码哈希和明文凭证(需管理员权限):

# 导入模块
Import-Module .\Gather\Invoke-Mimikatz.ps1# 执行凭证抓取
Invoke-Mimikatz

这里面的模块就是通过相应命令调用之后,会自动完成所有的命令,不用额外的使用其它命令 ,

相当于使用相应的命令调用脚本文件之后,一键使用。

这里还有个比较有意思的文件,这里有提供一个大马,嗯,挺强大的

这个主要在windows中使用,因为需要以下条件,主要是放在IIS目录下

.NET Framework提供运行时(CLR 公共语言运行时)、类库,负责编译、执行 ASP.NET 代码需与项目开发版本匹配(如 .NET Framework 4.8),传统 ASP.NET 仅支持 Windows
Web 服务器接收 HTTP 请求,转发给 ASP.NET 处理,返回动态生成的 HTML主流为 IIS(Internet Information Services)(微软官方,深度集成 Windows);也可通过模块扩展 Apache/Nginx,但复杂度高
操作系统承载上述组件传统 ASP.NET 依赖 Windows(如 Win Server、Win 10/11);
ASP.NET Core(跨平台版)可运行在 Linux、macOS,但.aspx 需迁移适配

这个大马的最终效果图

http://www.xdnf.cn/news/17460.html

相关文章:

  • Java Stream 使用 Fork/Join框架的分治任务模型
  • 计算机视觉CS231n学习(6)
  • 基于遗传优化的稀疏线阵最优排布算法matlab仿真
  • day30-HTTP
  • 嵌入式C语言高效操作寄存器指南
  • Jenkins全链路教程——并行任务与超时控制
  • 应急响应。
  • Swift 实战:秒算两个数组的交集(LeetCode 349)
  • 快手短剧用户破新高, 累计付费用户数同比提升4倍
  • 【linux基础】Linux 文本处理核心命令指南
  • 力扣 30 天 JavaScript 挑战 第二题笔记
  • 【RH134知识点问答题】第 3 章:分析和存储日志
  • 永磁同步电机无速度算法--零速启动非线性磁链观测器
  • QT第二讲-信号和槽
  • 企业WEB服务器nginx新手超详细讲解
  • 机器学习DBSCAN密度聚类
  • 【线程池】压测确定线程池合适的参数
  • 华为实验:DHCP 典型配置
  • 深入理解Qt事件处理机制
  • 新手向:Python开发简易待办事项应用
  • Linux 中CentOS Stream 8 - yum -y update 异常报错问题
  • [每周一更]-(第155期):深入Go反射机制:架构师视角下的动态力量与工程智慧
  • Spring Boot自定义Starter:从原理到实战全解析
  • GM3568JHF:FPGA+ARM异构开发板环境搭建教程
  • 免费PDF编辑软件 pdf24-creator 及其安装包
  • C语言(10)——结构体、联合体、枚举
  • 【Vapor Mode】Vue 从“运行时“优化转向“编译时“优化的范式跃迁
  • Java基础-TCP通信单服务器接受多客户端
  • Linux运维新手的修炼手扎之第27天
  • 1.2.3 迅猛发展期(2020年至今)