• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Сброс пароля

aameno2

Lotus Team
27.01.2009
743
145
BIT
170
Руки ваши да будут здоровы!
Господа, кто нибудь умеет сбрасывать веб пароль пользователя агентом? Именно сбрасывать.
В лоб не нашел на яве, погружаться глубже совсем не хочется)
 

savl

Lotus Team
28.10.2011
2 608
313
BIT
272

Applies to​


HCL Domino Designer 11.0.x and later versions

Introduction​


If a situation arises that requires changing several or all users' HTTP passwords, an agent can be used to do this. Below are two examples of agents that can be used to accomplish this. Agents must be signed by an ID or run by a user with permissions to update person documents in names.nsf.

Instructions​


How to reset all users' HTTP Passwords
%REM
Agent ResetAllHTTPPasswords
Created Mar 12, 2021 by Support Admin/HCL
Description: This agent will access the server provided and loop through
all of the person document and change the HTTP password to the new one provided
Target for the agent should be None
This agent can be added to any Database
%END REM
Option Public
Option Declare

Sub Initialize
Dim s As New NotesSession
Dim nab As NotesDatabase
Dim pview As NotesView
Dim pdoc As NotesDocument
Dim sServer As String
Dim sPassword As String

sServer = "127.0.0.1" ' Change this the name or IP address of the server
sPassword = "ABcd1234" ' change this to be the new password


Set nab = s.Getdatabase(sServer, "names.nsf")
Set pview = nab.GetView("($People)")
Set pdoc = pview.Getfirstdocument()
While Not pdoc Is Nothing
Dim temp As Variant
temp = Evaluate(|@Password("| & sPassword & |")|)
pdoc.HTTPPassword = temp
pdoc.HTTPPasswordChangeDate = Now
Call pdoc.save(True, False)
Set pdoc = pview.Getnextdocument(pdoc)
Wend


End Sub
Here is an example for selected documents
%REM
Agent ResetSelectedHTTPPassword
Created Mar 12, 2021 by Support Admin/HCL
Description: This Agent will Change the HTTPPassword for all the selected documents
The target of this agent will be all Selected documents
This agent will need to be added to the names.nsf
%END REM
Option Public
Option Declare

Sub Initialize
Dim s As New NotesSession
Dim nab As NotesDatabase
Dim pcoll As NotesDocumentCollection
Dim pdoc As NotesDocument
Dim sServer As String
Dim sPassword As String


sPassword = "ABcd1234" ' change this to be the new password

Set nab = s.Currentdatabase
Set pcoll = nab.Unprocesseddocuments
Set pdoc = pcoll.Getfirstdocument()
While Not pdoc Is Nothing
Dim temp As Variant
temp = Evaluate(|@Password("| & sPassword & |")|)
pdoc.HTTPPassword = temp
pdoc.HTTPPasswordChangeDate = Now
Call pdoc.save(True, False)
Set pdoc = pcoll.Getnextdocument(pdoc)
Wend

End Sub
Disclaimer: The above sample code is provided to you solely for the purpose of assisting you in the development of your applications. The code is provided "AS IS", without warranty of any kind. HCL shall not be liable for any damages arising out of your use of the sample code, even if they have been advised of the possibility of such damages.
 
  • Нравится
Реакции: lmike и aameno2

aameno2

Lotus Team
27.01.2009
743
145
BIT
170
Благодарствуем сударь. Моя лень переходит на следующий уровень)
1714051108698.png
 

VladSh

начинающий
Lotus Team
11.12.2009
1 791
157
BIT
122
Dim temp As Variant
temp = Evaluate(|@Password("| & sPassword & |")|)
У нас что-то похожее. Только не имеет смысла вычислять каждый раз хеш пароля в цикле, т.к. результат для одного и того же пароля всегда будет одинаков.
 

savl

Lotus Team
28.10.2011
2 608
313
BIT
272
У нас что-то похожее. Только не имеет смысла вычислять каждый раз хеш пароля в цикле, т.к. результат для одного и того же пароля всегда будет одинаков.
Вы таки не поверите, но это код от HCL, as is
Так да, вычисление в цикле лишнее.
@aameno2 пароль через генератор выставляется? Внешний?
 

VladSh

начинающий
Lotus Team
11.12.2009
1 791
157
BIT
122
Вы таки не поверите, но это код от HCL, as is
Так да, вычисление в цикле лишнее.
:)
Мы когда-то брали фамилию, перегоняли в латиницу, а потом брали хеш (было удобно - каждый знал, что там за пароль про сбросе). В таком случае для каждого пользователя значение разное. Возможно, что у них что-то подобное. Взяли, вырезали из реальной системы, и этот код в цикл так и попал...
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 949
609
BIT
257
писал агент через adminp (при создании юзера ставил пароль) деталей не помню...
КМК даже с DA работало (но это не точно ;) )
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 949
609
BIT
257
про хэши пароля нотуса где-то на перле видел утиль для их "взлома" ;), даже в ТГ группе обсуждали
 

savl

Lotus Team
28.10.2011
2 608
313
BIT
272
А может вспомните? А то лень должна прогрессировать )
Создание, переименование)
а DirSync заюзать пробовали?
там как раз: создание/переименование/удаление, даже пароли с AD синхронит, если domino на доменконтроллер поставить.
правда работает только с основной адресной книгой.
 

aameno2

Lotus Team
27.01.2009
743
145
BIT
170
а DirSync заюзать пробовали?
там как раз: создание/переименование/удаление, даже пароли с AD синхронит, если domino на доменконтроллер поставить.
правда работает только с основной адресной книгой.
Спасибо, гляну)
 

aameno2

Lotus Team
27.01.2009
743
145
BIT
170
Код:
Set adminp = s.Createadministrationprocess()
CAname = "/" + oldname.Organization
adminp.Certificateauthorityorg = CAname
adminp.Usecertificateauthority = True
noteid$ =  adminp.Renamenotesuser(doc.FullName(0), Lastname, Firstname)
лень это прекрасно
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 949
609
BIT
257
Код:
Set adminp = s.Createadministrationprocess()
CAname = "/" + oldname.Organization
adminp.Certificateauthorityorg = CAname
adminp.Usecertificateauthority = True
noteid$ =  adminp.Renamenotesuser(doc.FullName(0), Lastname, Firstname)
лень это прекрасно
ну вот что-то подобное я и делал ;)
 

NetWood

Lotus Team
17.04.2008
547
93
BIT
28
Имхо, отказался от паролей вообще на вебе домино. Их и так развелось слишком много. Каждый сайт стремится тебя запаролить...

Написал агента LS, который вопрошает email и шлет на майл код. Как озон и все взрослые сайты. При большом желании можно прикрутить sms гейт. Дальше окно аякс сессии на вебе ждет этот код и в случае удачи на аякс бэкраунде само все подставляет на форму из domcfg и юзеру по удаче пишет в куки DomAuthSessId или sso токен, что по сути одно и тоже и как настроено. После единственной авторизации по коду в кукаха, а лучше в локал стордж, хранится ключик пользователя для авторега по окончанию таймаута домино сессии - если ключик найден, то юзер автологинится автоматически без кодов.

Для рега юзера используется логин усекаемый из майла заменой точек и собак до юзер_домен_ру - который в интернетах всегда будет уникальным как майлы. Юзер даже про это не знает как и свой пароль. За много лет я уже таких логинов насмотрелся) что надоело и проверять еще каждый раз надо, чтоб не было одинаковых. Просто пишется юзер_фио_домен_ру в поле FullName два значения; этот логин как псевдо логин и майл реальный вторым занчением. Работает все это с доп адресной книгой ибо в names нечего пихать всех подряд. DA немного допиливается напильником.

Какие у юзера пароли понятия не имею и им знать не надо. Они генерятся автоматически. Вот прямо на netwood org можно поюзать как это работает. Жизнь стала прекрасной без логинов и паролей, так как по сути, задача авторизации сводится к запихиванию в куки юзера этого DomAuthSessId.
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!