Delegasiona fitantanana ny fivoriana RDP

Delegasiona fitantanana ny fivoriana RDP
Ao amin'ny fikambanana iasako dia voarara ny asa lavitra. dia. Hatramin'ny herinandro lasa teo. Ankehitriny dia tsy maintsy nampihatra vahaolana maika izahay. Avy amin'ny raharaham-barotra - mampifanaraka ny dingana amin'ny endrika asa vaovao, avy aminay - PKI misy kaody PIN sy mari-pamantarana, VPN, fanoratana an-tsipiriany ary maro hafa.
Ankoatra ny zavatra hafa dia nanangana Infrastructure Desktop Remote aka Terminal Services aho. Manana fametrahana RDS maromaro any amin'ny foibe data samihafa izahay. Ny iray amin'ireo tanjona dia ny ahafahan'ny mpiara-miasa avy amin'ny sampana IT mifandray amin'ny fifandraisana amin'ny mpampiasa. Araka ny fantatrao dia misy mekanika RDS Shadow mahazatra ho an'izany, ary ny fomba tsotra indrindra handefasana izany dia ny fanomezana zon'ny mpitantana eo an-toerana amin'ny mpizara RDS.
Manaja sy manome lanja ny mpiara-miasa amiko aho, fa tena mitsiriritra rehefa mizara ny zon'ny admin. 🙂 Ho an'izay miombon-kevitra amiko dia araho ny tapaka.

Eny, mazava ny asa, andeha isika hidina any amin'ny raharaham-barotra.

dingana 1

Andao hamorona vondrona fiarovana ao amin'ny Active Directory RDP_Operators ary ampidiro ao anatin'izany ny kaontin'ireo mpampiasa izay tiantsika homena zo:

$Users = @(
    "UserLogin1",
    "UserLogin2",
    "UserLogin3"
)
$Group = "RDP_Operators"
New-ADGroup -Name $Group -GroupCategory Security -GroupScope DomainLocal
Add-ADGroupMember -Identity $Group -Members $Users

Raha manana tranokala AD maro ianao dia mila miandry mandra-pamerenana azy amin'ny fanaraha-maso ny sehatra rehetra alohan'ny hirosoana amin'ny dingana manaraka. Tsy mihoatra ny 15 minitra izany matetika.

dingana 2

Andeha isika hanome zo ny vondrona hitantana fotoam-pivoriana amin'ny tsirairay amin'ireo mpizara RDSH:

Set-RDSPermissions.ps1

$Group = "RDP_Operators"
$Servers = @(
    "RDSHost01",
    "RDSHost02",
    "RDSHost03"
)
ForEach ($Server in $Servers) {
    #Делегируем право на теневые сессии
    $WMIHandles = Get-WmiObject `
        -Class "Win32_TSPermissionsSetting" `
        -Namespace "rootCIMV2terminalservices" `
        -ComputerName $Server `
        -Authentication PacketPrivacy `
        -Impersonation Impersonate
    ForEach($WMIHandle in $WMIHandles)
    {
        If ($WMIHandle.TerminalName -eq "RDP-Tcp")
        {
        $retVal = $WMIHandle.AddAccount($Group, 2)
        $opstatus = "успешно"
        If ($retVal.ReturnValue -ne 0) {
            $opstatus = "ошибка"
        }
        Write-Host ("Делегирование прав на теневое подключение группе " +
            $Group + " на сервере " + $Server + ": " + $opstatus + "`r`n")
        }
    }
}

dingana 3

Ampio ny vondrona amin'ny vondrona eo an-toerana Mpampiasa Desktop lavitra amin'ny mpizara RDSH tsirairay. Raha atambatra amin'ny fanangonana session ny mpizaranao, dia ataonay amin'ny ambaratonga fanangonana izany:

$Group = "RDP_Operators"
$CollectionName = "MyRDSCollection"
[String[]]$CurrentCollectionGroups = @(Get-RDSessionCollectionConfiguration -CollectionName $CollectionName -UserGroup).UserGroup
Set-RDSessionCollectionConfiguration -CollectionName $CollectionName -UserGroup ($CurrentCollectionGroups + $Group)

Ho an'ny mpizara tokana ampiasainay politikan'ny vondrona, miandry ny fampiharana azy amin'ny mpizara. Ireo izay kamo loatra miandry dia afaka manafaingana ny dingana amin'ny fampiasana gpupdate taloha tsara, tsara kokoa afovoan.

dingana 4

Andao hanomana ity script PS manaraka ity ho an'ny "managers":

RDSManagement.ps1

$Servers = @(
    "RDSHost01",
    "RDSHost02",
    "RDSHost03"
)

function Invoke-RDPSessionLogoff {
    Param(
        [parameter(Mandatory=$True, Position=0)][String]$ComputerName,
        [parameter(Mandatory=$true, Position=1)][String]$SessionID
    )
    $ErrorActionPreference = "Stop"
    logoff $SessionID /server:$ComputerName /v 2>&1
}

function Invoke-RDPShadowSession {
    Param(
        [parameter(Mandatory=$True, Position=0)][String]$ComputerName,
        [parameter(Mandatory=$true, Position=1)][String]$SessionID
    )
    $ErrorActionPreference = "Stop"
    mstsc /shadow:$SessionID /v:$ComputerName /control 2>&1
}

Function Get-LoggedOnUser {
    Param(
        [parameter(Mandatory=$True, Position=0)][String]$ComputerName="localhost"
    )
    $ErrorActionPreference = "Stop"
    Test-Connection $ComputerName -Count 1 | Out-Null
    quser /server:$ComputerName 2>&1 | Select-Object -Skip 1 | ForEach-Object {
        $CurrentLine = $_.Trim() -Replace "s+"," " -Split "s"
        $HashProps = @{
            UserName = $CurrentLine[0]
            ComputerName = $ComputerName
        }
        If ($CurrentLine[2] -eq "Disc") {
            $HashProps.SessionName = $null
            $HashProps.Id = $CurrentLine[1]
            $HashProps.State = $CurrentLine[2]
            $HashProps.IdleTime = $CurrentLine[3]
            $HashProps.LogonTime = $CurrentLine[4..6] -join " "
            $HashProps.LogonTime = $CurrentLine[4..($CurrentLine.GetUpperBound(0))] -join " "
        }
        else {
            $HashProps.SessionName = $CurrentLine[1]
            $HashProps.Id = $CurrentLine[2]
            $HashProps.State = $CurrentLine[3]
            $HashProps.IdleTime = $CurrentLine[4]
            $HashProps.LogonTime = $CurrentLine[5..($CurrentLine.GetUpperBound(0))] -join " "
        }
        New-Object -TypeName PSCustomObject -Property $HashProps |
        Select-Object -Property UserName, ComputerName, SessionName, Id, State, IdleTime, LogonTime
    }
}

$UserLogin = Read-Host -Prompt "Введите логин пользователя"
Write-Host "Поиск RDP-сессий пользователя на серверах..."
$SessionList = @()
ForEach ($Server in $Servers) {
    $TargetSession = $null
    Write-Host "  Опрос сервера $Server"
    Try {
        $TargetSession = Get-LoggedOnUser -ComputerName $Server | Where-Object {$_.UserName -eq $UserLogin}
    }
    Catch {
        Write-Host "Ошибка: " $Error[0].Exception.Message -ForegroundColor Red
        Continue
    }
    If ($TargetSession) {
        Write-Host "    Найдена сессия с ID $($TargetSession.ID) на сервере $Server" -ForegroundColor Yellow
        Write-Host "    Что будем делать?"
        Write-Host "      1 - подключиться к сессии"
        Write-Host "      2 - завершить сессию"
        Write-Host "      0 - ничего"
        $Action = Read-Host -Prompt "Введите действие"
        If ($Action -eq "1") {
            Invoke-RDPShadowSession -ComputerName $Server -SessionID $TargetSession.ID
        }
        ElseIf ($Action -eq "2") {
            Invoke-RDPSessionLogoff -ComputerName $Server -SessionID $TargetSession.ID
        }
        Break
    }
    Else {
        Write-Host "    сессий не найдено"
    }
}

Mba hahamora ny fandehanana ny script PS dia hamorona akorandriaka ho azy isika amin'ny endrika rakitra cmd mitovy anarana amin'ny script PS:

RDSManagement.cmd

@ECHO OFF
powershell -NoLogo -ExecutionPolicy Bypass -File "%~d0%~p0%~n0.ps1" %*

Napetrakay ao anaty lahatahiry ho azon'ny “manager” ny rakitra roa ary mangataka azy ireo hiditra indray izahay. Amin'izao fotoana izao, amin'ny alàlan'ny fampandehanana ny rakitra cmd, dia ho afaka hifandray amin'ny fotoam-piasan'ny mpampiasa hafa amin'ny fomba RDS Shadow izy ireo ary hanery azy ireo hivoaka (mety ilaina izany rehefa tsy afaka manafoana ny fivoriana "mihantona" ny mpampiasa).

Toa toy izao izany:

Ho an'ny "manager"Delegasiona fitantanana ny fivoriana RDP

Ho an'ny mpampiasaDelegasiona fitantanana ny fivoriana RDP

Hevitra farany vitsivitsy

Nuance 1. Raha toa ka natomboka talohan'ny namonoana ny script Set-RDSPermissions.ps1 teo amin'ny mpizara ny fivorian'ny mpampiasa izay ezahantsika hofehezina, dia hahazo hadisoana fidirana ny "mpitantana". Miharihary ny vahaolana eto: andraso mandra-pidiran'ny mpampiasa tantanina.

Nuance 2. Taorian'ny andro maromaro niasana tamin'ny RDP Shadow, dia nahatsikaritra bibikely na endri-javatra mahaliana izahay: aorian'ny fiafaran'ny fotoam-pialan-tsasatra, dia tsy hita intsony ny bara fiteny ao amin'ny lovia ho an'ny mpampiasa mifandray, ary mba hamerenana azy dia mila averina indray ny mpampiasa. -Hiditra. Raha ny fantatra dia tsy irery isika: fotoana, два, telo.

Izay ihany. Mirary fahasalamana ho anao sy ny mpizaranao aho. Toy ny mahazatra, manantena ny valin-teninao amin'ny fanehoan-kevitra aho ary mangataka anao handray ny fanadihadiana fohy etsy ambany.

loharanom-baovao

Ireo mpampiasa voasoratra anarana ihany no afaka mandray anjara amin'ny fanadihadiana. HiditraPlease.

Inona no ampiasainao?

  • 8,1%AMMYY Admin5

  • 17,7%AnyDesk11

  • 9,7%DameWare6

  • 24,2%Radmin15

  • 14,5%RDS Shadow9

  • 1,6%Fanampiana haingana / Windows Fanampiana lavitra1

  • 38,7%TeamViewer24

  • 32,3%Sary VNC20

  • 32,3%hafa20

  • 3,2%LiteManager2

Mpampiasa 62 no nifidy. Mpampiasa 22 no nifady.

Source: www.habr.com

Mividiana fampiantranoana azo antoka ho an'ny tranokala misy fiarovana DDoS, mpizara VPS VDS 🔥 Mividiana fampiantranoana tranonkala azo antoka miaraka amin'ny fiarovana DDoS, mpizara VPS VDS | ProHoster