麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PowerShell > 正文

PowerShell腳本開發嘗試登錄SQL Server

2020-03-26 19:14:20
字體:
來源:轉載
供稿:網友

前三篇文章中創建了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  : **.**.**.**


 

PowerShell,腳本開發,登錄,SQLServer

后續思路:這里是對單臺SQLServer服務器的登錄嘗試,如果通過對指定范圍的IP進行端口的掃描發現相關的SQLServer服務器,而且能夠有比較齊全的字典,對這個函數進行改造就可以字典模式暴力破解SQLServer的用戶名、密碼(注意:本文只提供安全攻防的思路,請勿對他人系統進行暴力嘗試,否則后果由攻擊者個人自行承擔)。

本文創建了PSSecurity工具集,介紹了通過PowerShell嘗試登錄SQLServer的方法,此種方法可以用于暴力破解和窮舉賬戶密碼,窮舉就需要依靠比較全面的字典的支持了。后續的文章中將會分別對PSNet和PSSecurity兩個工具集進行擴充和升級,使其能適應真實環境的需求。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久久久久久亚洲 | 视频在线中文字幕 | 成人毛片视频免费看 | 国产人妖一区二区 | 免费一级毛片免费播放 | 欧美a∨一区二区三区久久黄 | 成人辣文| 国产精品性夜天天视频 | 日本精品婷婷久久爽一下 | 黄色片免费在线播放 | 国产精品视频一区二区三区四区国 | 午夜视频在线免费观看 | 久久成人综合视频 | 性大片性大片免费 | 欧美性生活视频免费看 | 中文在线免费观看 | 国产精品成年片在线观看, 激情小说另类 | 一级毛片免费大片 | a视频在线免费观看 | 国产一区二区久久精品 | 久久久久久久.comav | 成人午夜免费观看 | 精品一区二区在线观看视频 | 免费一区二区三区 | av免费在线播放 | 小情侣嗯啊哦视频www | 免费国产一级特黄久久 | 精品一区二区免费 | 国产91九色| 久久久一区二区三区精品 | 日本道中文字幕 | 羞羞网站 | 欧美激情性色生活片在线观看 | 欧美成人一级片 | 国产一级中文字幕 | 成人羞羞在线观看网站 | 88xx成人永久免费观看 | 一本色道精品久久一区二区三区 | 激情综合网俺也去 | 蜜桃av鲁一鲁一鲁一鲁 | 亚洲第一综合 |