前三篇文章中创建了PSNet程序集,其中包含了对指定IP进行端口扫描,收发TCP消息包和收发UDP消息包的相关功能,作为这是最基本的对网络情况的最基本检测,后续的文章将会对此程序集进行不断的扩充使其包含更全面的功能。但是光有这些简单网络探测的功能还远远不够,为了能更全面的使用PowerShell针对网络安全进行检测,在本文中将会创建PSSecurity程序集用于存放相关通过PowerShell的脚本。参照前几篇文章中创建PSNet程序集的方法和目录结构创建PSSecurity程序集目录,便于后续对程序集的扩展。
具体详细的步骤请参见前几篇文章,创建PSSecurity程序集之后的目录结构和文件如下所示:
复制代码 代码如下:
+D:\MY DOCUMENTS\WINDOWSPOWERSHELL\MODULES
└─PSSecurity
│ PSSecurity.psm1
│
└─SQLServer
Get-SqlSysLogin.ps1
在$Profile中添加:
复制代码 代码如下:
Import-Module $env:PSSpace\PSSecurity #用于在PowerShell启动时自动加载PSSecurity程序集
其中PSSecurity.psm1中的内容如下:
复制代码 代码如下:
. $env:PSSpace/PSSecurity/SQLServer/Get-SqlSysLogin.ps1 #导入Get-SqlSysLogin函数
Write-Host "PSSecurity Module Added" -BackgroundColor green -ForegroundColor blue #用于提示此模块已加载
Export-ModuleMember -Function * #用于将函数导出为模块成员
接下来就是Get-SqlSysLogin.ps1的内容了
复制代码 代码如下:
=====文件名:Get-SqlSysLogin.ps1=====
function Get-SqlSysLogin {
Param(
[Parameter(Mandatory = $true,
Position = 0,
ValueFromPipeLine= $true)]
[Alias("PSComputerName","CN","MachineName","IP","IPAddress")]
[string]$ComputerName,
[parameter(Position = 1)]
[string]$UserName,
[parameter(Position = 2)]
[string]$Password
)
Process {
$Connection = New-Object System.Data.SQLClient.SQLConnection
if($userName) {
$Connection.ConnectionString = "Data Source=$ComputerName;Initial Catalog=Master;User Id=$userName;Password=$password;"
} else {
$Connection.ConnectionString = "server=$computerName;Initial Catalog=Master;trusted_connection=true;"
}
Try {
$Connection.Open()
$Command = New-Object System.Data.SQLClient.SQLCommand #创建SQLClient对象
$Command.Connection = $Connection
$Command.CommandText = "SELECT * FROM master.SYS.syslogins" #从syslogin表读取SQLServer登录账户
$Reader = $Command.ExecuteReader()
$Counter = $Reader.FieldCount
while ($Reader.Read()) {
$SQLObject = @{}
for ($i = 0; $i -lt $Counter; $i++) {
$SQLObject.Add(
$Reader.GetName($i),
$Reader.GetValue($i)
);
}
# 获取登录类型
$type =
if($sqlObject.isntname -eq 1) {
if($sqlObject.isntgroup -eq 1) {
"NT Group"
} else {
"NT User"
}
} else {
"SQL Server"
}
New-Object PSObject -Property @{
Name = $sqlObject.loginname;
Created = $sqlObject.createdate;
DenyLogin = [bool]$sqlObject.denylogin;
HasAccess = [bool]$sqlObject.hasaccess;
Type = $type;
SysAdmin = [bool]$sqlObject.sysadmin;
SecurityAdmin = [bool]$sqlObject.securityadmin;
ServerAdmin = [bool][bool]$sqlObject.serveradmin;
SetupAdmin = [bool]$sqlObject.setupadmin;
ProcessAdmin = [bool]$sqlObject.processadmin;
DiskAdmin = [bool]$sqlObject.diskadmin;
DBCreator = [bool]$sqlObject.dbcreator;
NTUser = [bool]$sqlObject.isNTUser;
ComputerName = $ComputerName
} | Select-Object Name, Created, Type, DenyLogin, HasAccess, SysAdmin, SecurityAdmin, ServerAdmin, SetupAdmin, ProcessAdmin, DiskAdmin, DBCreator, NTUser, ComputerName
}
$Connection.Close()
}
Catch {
$error[0]
}
}
}
启动PowerShell进程,可以用下面的两种方式调用
复制代码 代码如下:
Get-SqlSysLogin -ComputerName SRV01 -UserName sa -Password sa #单台主机登录尝试
"SQL01","SQL02","SQL03" | Get-SqlSysLogin -UserName sa -Password sa #多台主机登录尝试
其中ComputerName代表sqlserver的主机名或者IP;UserName是用户名,如果不填,则使用默认的windows身份认证,如果使用windows身份认证则需要确保当前登录允许可以通过windows身份认证登录;Password不用说就是密码了。
复制代码 代码如下:
PS C:\Users\fuhj> Get-SqlSysLogin -ComputerName **.**.**.** -UserName sa -Password ***********
Name : sa
Created : 2003/4/8 9:10:35
Type : SQL Server
DenyLogin : False
HasAccess : True
SysAdmin : True
SecurityAdmin : False
ServerAdmin : False
SetupAdmin : False
ProcessAdmin : False
DiskAdmin : False
DBCreator : False
NTUser : False
ComputerName : **.**.**.**
Name : *****
Created : 2011/3/14 8:31:44
Type : SQL Server
DenyLogin : False
HasAccess : True
SysAdmin : False
SecurityAdmin : False
ServerAdmin : False
SetupAdmin : False
ProcessAdmin : False
DiskAdmin : False
DBCreator : False
NTUser : False
ComputerName : **.**.**.**
后续思路:这里是对单台SQLServer服务器的登录尝试,如果通过对指定范围的IP进行端口的扫描发现相关的SQLServer服务器,而且能够有比较齐全的字典,对这个函数进行改造就可以字典模式暴力破解SQLServer的用户名、密码(注意:本文只提供安全攻防的思路,请勿对他人系统进行暴力尝试,否则后果由攻击者个人自行承担)。
本文创建了PSSecurity工具集,介绍了通过PowerShell尝试登录SQLServer的方法,此种方法可以用于暴力破解和穷举账户密码,穷举就需要依靠比较全面的字典的支持了。后续的文章中将会分别对PSNet和PSSecurity两个工具集进行扩充和升级,使其能适应真实环境的需求。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 泰迪罗宾.1984-天外人(2004环球复黑王)【宝丽金】【WAV+CUE】
- 《网络夜色风 2CD》[WAV/分轨][1GB]
- 《发烧金曲金装影视 绝对超值不容错过 2CD》[WAV/分轨][600MB]
- 《林俊杰 最具影响力的创作歌手 JJ林俊杰 2CD》[WAV+CUE][940MB]
- 《CATO 黄油猫》评测:和物理老师说再见……吗?
- 《Ara:不为人知的历史》:抗衡《文明》?4X游戏挑战者
- 《艾诺提亚:失落之歌》:令人失望的意大利特色试验品
- 《蛋仔派对》斯派克皮肤图鉴
- 黑神话悟空九种美酒在哪获得 黑神话悟空九种酒位置一览
- 黑神话悟空全丹药配怎么获取 黑神话悟空全丹药配方获取方式介绍
- 梁汉文2014-听后感[天凯唱片][WAV+CUE]
- 徐小明1984-剑胆琴心(LP版)[文志][WAV+CUE]
- 韩红-精选(庆功版)[WAV整轨]
- 《暗喻幻想:ReFantazio》获IGN法国满分评价:完美的新标杆之作
- 《暗喻幻想》开分后 开发者小姐姐感动到热泪盈眶