Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Поиск уч.записей принадлежащих одному владельцу

Ответить
Настройки темы
PowerShell - [решено] Поиск уч.записей принадлежащих одному владельцу

Аватара для ejik_off

Старожил


Сообщения: 471
Благодарности: 11

Профиль | Отправить PM | Цитировать


Доброе время суток!!!
Нужна помощь ваша помощь в написании скрипта.
Задача: есть файл с учетными записями, у которых в AD одинаковые пароли. Нужно этим пользователям отправить письмо с просьбой изменить пароль на уникальный и где-то сохранить что этому пользователю было отправлено сообщение допустим в эксель добавить имя уч.записи и указать цифру 1, если письмо было отправлено первый раз. 2 - если это уже второе уведомление и тд.
есть также у пользователей спец. учетки с повышенными привилегиями. Они отличаются префиксом. например есть пользователь Василий Пупкин, его учетка - vpupkin, и у него есть с правами локального админа для работы на серверах admsrv_vpupkin. Естественно пароли для этих учеток должны быть разные, но человеческий фактор никто не отменял. По этому требуется проверять файл и на подобные случаи.
Вот как выглядит файл
Скрытый текст
Код: Выделить весь код
Group 1:
iivanov
ppetrov
ssidorov
ttimofeev
Group 2:
rsemenov
mmironov
Group 3:
admdcs_ddmitriev
admsrv_ddmitriev
admwks_ddmitriev
ddmitriev
Group 4:
admsrv_lpavlov
admwks_lpavlov
lpavlov
Group 5:
admdcs_vtitov
admsrv_vtitov
Group 6:
admwks_gsergeev
admsrv_gsergeev
gsergeev

Вот такой код я накидал
Код: Выделить весь код
$filetxt = gc "C:\Temp\AccSamePass-t.txt"

for ($a=1;$a -le $filetxt.Count; $a++) {
   
    if($filetxt[$a] -like "Group*" -or $filetxt[$a] -like '') { continue }

    for ($i=$a+1; $i -le $filetxt.Count; $i++) {      
    
       if($filetxt[$i] -like "Group*" -or $filetxt[$i] -like '') { continue }

        if ($filetxt[$a].Contains($filetxt[$i])) {

                Write-host "Найдены УЗ с одинаковыми паролями:"

                $filetxt[$a]

                $filetxt[$i]

                }

        if ($filetxt[$a] -like "adm[a-z]_*") {

            $item = $filetxt[$a].Substring(2)

            if ($filetxt[$i].Contains($item)) {

                Write-host "Найдены УЗ с одинаковыми паролями_1:"

                $filetxt[$a]

                $filetxt[$i]

                }
        }

    }

}
Такой результат я получаю
Скрытый текст
Найдены УЗ с одинаковыми паролями:
admdcs_ddmitriev
ddmitriev
Найдены УЗ с одинаковыми паролями:
admsrv_ddmitriev
ddmitriev
Найдены УЗ с одинаковыми паролями:
admwks_ddmitriev
ddmitriev
Найдены УЗ с одинаковыми паролями:
admsrv_lpavlov
lpavlov
Найдены УЗ с одинаковыми паролями:
admwks_lpavlov
lpavlov
Найдены УЗ с одинаковыми паролями:
admwks_gsergeev
gsergeev
Найдены УЗ с одинаковыми паролями:
admsrv_gsergeev
gsergeev

Не получается обработать все уч.з сразу, т.е если их больше 2х, как например в случае с ddmitriev. У него 4 уч.з, и на всех один пароль, хотел сделать что бы скрипт обработал их за раз, и в одном письме указал все уч.з.
и второе, скрипт пропустил группу 5, где указаны уч.з admdcs_vtitov, admsrv_vtitov

Отправлено: 10:55, 31-08-2020

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата ejik_off:
Нужно этим пользователям отправить письмо с просьбой изменить пароль на уникальный и где-то сохранить что этому пользователю было отправлено сообщение допустим в эксель добавить имя уч.записи и указать цифру 1, если письмо было отправлено первый раз. 2 - если это уже второе уведомление и тд. »
Вообще-то, необходимо и достаточно программно установить флажок «Требовать смены пароля при следующем входе в систему» в свойствах учётной записи. И всё.

Естественно, должны быть заданы требования на неповторяемость N новых паролей пользователя на уровне домена.

Отправлено: 20:29, 31-08-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ejik_off

Старожил


Сообщения: 471
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата Iska:
Вообще-то, необходимо и достаточно программно установить флажок «Требовать смены пароля при следующем входе в систему» в свойствах учётной записи. И всё.
Естественно, должны быть заданы требования на неповторяемость N новых паролей пользователя на уровне домена. »
Все требования по парольной политике установлены, но это ни как не препятствует установке одинаковых паролей для нескольких уч.з

Последний раз редактировалось ejik_off, 01-09-2020 в 08:27.


Отправлено: 07:51, 01-09-2020 | #3


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Iska, я так понимаю проблема не с установкой одинаковых паролей для одной учетки (это действительно легко разруливается политиками), а одинаковыми паролями на разные учетки одного пользователя (например рабочая учетка, уетка с правами локального админа на компах домена, учетка с правами доменного админа и т.д.). К сожалению здесь мы ограничены человеческим фактором, насколько мне известно. МС любит замороченные политики, но не на столько чтобы позволять объединять учетки в своеобразный массив, каждый из членов которого не может иметь пароля, который уже используется у другого члена массива.
ejik_off, стесняюсь спросить, но всё же спрошу: как был выявлен факт использования одинаковых паролей? Если это был сигнал от безопасников с какого-то их хитрого софта (емнип работу назад кто-то из безопасников одного коллегу этим и напряг изрядно), то контроль за этим делом и стоит возложить на безопасников. В противном случае нужно будет рисовать какую-то функцию для сравнения элементов каждого с каждым, на входе давать массив из имен, на выходе, соответсвенно, true или false. Это, кмк, будет самым простым решением на posh, но даже за такой вариант браться не особенно хочется, если может быть вариант попроще.

Отправлено: 09:58, 01-09-2020 | #4


Аватара для ejik_off

Старожил


Сообщения: 471
Благодарности: 11

Профиль | Отправить PM | Цитировать


Elven, Это и не только делается с помощь модуля https://github.com/MichaelGrafnetter/DSInternals

Отправлено: 12:53, 01-09-2020 | #5


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Я Вам про Фому, Вы мне про Ерёму... но да ладно. Сравнивать все равно можно так, как я уже описал выше, правда я не припомню чтобы пароли из АД можно было выдирать в пригодном для сравнения виде, но если таковая возможность у Вас имеется - велкам.
Код: Выделить весь код
function matchinarray ($array) {
    for ($i=0; $i -lt $array.count;$i++) {
        for ($j=0; $j -lt $array.count;$j++) {
            if (($array[$i].TipaPassword -eq $array[$j].TipaPassword) -and ($i -gt $j)) {
                Write-Host "Nehoroshi chelovek!"
                Write-Host $array[$i].Name $array[$j].Name
            }
        }
   }
}

$users = @(Get-ADUser -Filter *)

matchinarray $users
з.ы. как оно сработает - хз, тестировал на сравнении фамилий, теперь у меня есть список однофамильцев

А ну и да, не понимаю почему учетки берутся из какого-то текстового файла, а не из АД напрямую.

Отправлено: 15:12, 01-09-2020 | #6


Аватара для ejik_off

Старожил


Сообщения: 471
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата Elven:
Я Вам про Фому, Вы мне про Ерёму... »
Видимо Вы меня не поняли. DSInternals - это модуль PS с помощью которого можно проводить аудит паролей в ад. Что бы избежать использования шаблонных паролей (например: Сентябрь2020) по парольной политике такой пароль проходит, но с точки зрения безопасности он не подходит. Вот так выглядит отчет
Скрытый текст

Active Directory Password Quality Report
----------------------------------------

Passwords of these accounts are stored using reversible encryption:

LM hashes of passwords of these accounts are present:

These accounts have no password set:
DefaultAccount
Гость

Passwords of these accounts have been found in the dictionary:

Historical passwords of these accounts have been found in the dictionary:

These groups of accounts have the same passwords:
Group 1:
viktor
Администратор
Group 2:
iivanov
ppetrov
ssidorov
vpupkin

These computer accounts have default passwords:

Kerberos AES keys are missing from these accounts:

Kerberos pre-authentication is not required for these accounts:

Only DES encryption is allowed to be used with these accounts:

These administrative accounts are allowed to be delegated to a service:
krbtgt
viktor
Администратор

Passwords of these accounts will never expire:
DefaultAccount
iivanov
ppetrov
ssidorov
viktor
vpupkin
Гость

These accounts are not required to have a password:
DefaultAccount
Гость


и уже с этим отчетом я дальше работаю. Поэтому я из файла беру пользователей. Тем пользователям, пароль которых был найден в словаре, отправляется уведомление о необходимости сменить пароль на более сложный. Теперь такое же уведомление нужно отправлять для тех пользователей у кого одинаковые пароли.

Отправлено: 18:47, 01-09-2020 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата ejik_off:
но это ни как не препятствует установке одинаковых паролей для нескольких уч.з »
А этого никогда и не требовалось.

И явно не «все…»: чтобы не было подбора по радужным таблицам — включают блокировку учётных записей после нескольких неправильных попыток.

Последний раз редактировалось Iska, 02-09-2020 в 12:32. Причина: См. сообщение #11.


Отправлено: 23:23, 01-09-2020 | #8


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


ejik_off, я то вас понял, а вот вы меня - явно нет. я знаю и за этот модуль, и как работает мимкатц, от которого вы хотите придумать затычку. Откуда вы будете учетки выгребать - дело ваше, точно так же как я брал их из АД в вышеприведенном примере, их можно цеплять из текстового файла, НО! остается открытым вопрос откуда брать пароль. Найдете - хорошо, переделать скрипт под свои нужды дело десяти минут.
dixi

Отправлено: 06:57, 02-09-2020 | #9


Аватара для ejik_off

Старожил


Сообщения: 471
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата Iska:
И явно не «все…»: чтобы не было подбора по радужным таблицам — включают блокировку учётных записей после нескольких неправильных попыток. »
С этим все понятно. Речь не идет о переборе, но если сильно хочется можно выгрузить базу ад и подобрать пароль офлайн.
Цитата Iska:
А этого никогда и не требовалось. »
То есть если пользователи все будут использовать один пароль ничего страшного в этом нет?
Цитата Elven:
НО! остается открытым вопрос откуда брать пароль. »
Зачем пароль?

Отправлено: 07:12, 02-09-2020 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Поиск уч.записей принадлежащих одному владельцу

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - Проблемы с уч записью. VanAliens Microsoft Windows 10 1 12-05-2020 12:28
2012 - Оператор уч. записей krec Windows Server 2012/2012 R2 14 28-06-2017 17:58
Службы - Как сдружить UAC(Контроль уч. записей) и Режим одобрения администратором hrensnim15n Microsoft Windows 8 и 8.1 4 05-04-2014 01:09
Поиск файлов по владельцу Darkich Microsoft Windows NT/2000/2003 8 29-01-2014 11:56
Доступ - [решено] Ctrl+Alt+Delete на экране выбора уч. записей. MonahNester Microsoft Windows 7 3 02-09-2011 14:32




 
Переход