Das Notes Forum

Lotus Notes / Domino Sonstiges => Tools & Downloads => Thema gestartet von: eknori am 23.07.03 - 14:45:21

Titel: Sesam öffne dich !!
Beitrag von: eknori am 23.07.03 - 14:45:21
@All

Es gibt ja schon so einige Tools, mit denen man sich den Zugriff auf eine Datenbank verschaffen kann, wenn man sich mal versehentlich ausgesperrt haben sollte. Die meisten benutzen einen Agenten, der in einer DB enthalten ist, die man auf dem Server installieren muß, signieren mit der ServerID um dann ein Config   :P :P... na ja, hören wir an dieser Stelle auf.

hab ich mir gedacht, viel zu kompliziert, kann man einfacher haben...

naladin.exe wird in das Programmverzeichnis des Servers kopiert und an der Serverconsole aufgerufen

load naladin dbname userORgroup

das progrämmelchen pflanzt dann der ACL der betreffenden Datenbank den angegebenen User oder der Gruppe ein und vergibt Managerrechte und schon ist man wieder drin.



Titel: Re:Sesam öffne dich !!
Beitrag von: klaussal am 23.07.03 - 16:08:06
... selbst gemacht  ??? :o
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 23.07.03 - 17:19:27
yoo, bisschen C API..
Titel: Re:Sesam öffne dich !!
Beitrag von: MartinG am 23.07.03 - 17:29:36
...auch ein bisschen schwach von IBM das die ACL so leicht geknackt werden kann. D.h. der einzig richtige Schutz ist wohl verschlüsseln...
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 23.07.03 - 17:38:24
das hat mit knacken nichts zu tun. Der Server hat ja ( meist ) noch den Zugriff. Also kann er auch die ACL ändern.
Mir war es einfach nur zu umständlich erst eine DB zu instllieren, dann zu signieren etc.
Das Tool kann auch keine konsistente ACL bearbeiten ( noch nicht )
Hat mir aber 4 Stunden Fahrt zu einer Aussenstelle erspart.
Da hat der lokale "Admin" den Usern Managerrechte gegeben und die haben dem Admin dann die Rechte weggenommen. Mit den Terminaldiensten kam ich auf den Rechner. Also hab ich ein bisschen nachgedacht und mir die Fahrt erspart.

Titel: Re:Sesam öffne dich !!
Beitrag von: MartinG am 23.07.03 - 17:43:47
...stimmt, wenn jemand physikalischen Zugriff auf den Server hat ist eh irgendetwas falsch gelaufen. Dachte spontan eher an ein Sicherheitsproblem...

Die Tatsache das der Server selber immer Zugriff auf die Datenbanken hat ist allerdings - insbesondere für Notesneueinsteiger schon auch nicht ganz trivial zu durchschauen. Ich kann mich da noch dran erinnern als wir Notes eingeführt haben und mein damaliger Chef mich fragte wer alles unter welchen Umständen Zugriff auf seine Mail und Kalendereinträge hat und ich ganz lässig Ihm erklärt habe nur er und ich.  

Ein paar Wochen später testeten wir dann den OctoSchedule Gruppenkalender der per Agent (mit der server.id unterzeichnet) Termine einsammelte und in einer allgemein zugänglichen Gruppenterminkalenderdatenbank veröffentlichte...
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 23.07.03 - 17:54:25
na ja, mir hat das Tool geholfen. ist zwar mit der heißen Nadel zusammengestrickt, tut aber genau das, was es soll. Ich habe es jetzt vorsichtshalber mal auf allen unseren Servern installiert. Man weiß ja nie.
Morgen schaue ich mal, wie ich das für Linux hinbekomme  ;D
Titel: Re:Sesam öffne dich !!
Beitrag von: klaussal am 24.07.03 - 08:07:05
...
load naladin termine.nsf Hugo Klotz <----- ist diese syntax so richtig  ??? ??? ???

Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 24.07.03 - 08:32:54
absolut
Titel: Re:Sesam öffne dich !!
Beitrag von: Meff am 24.07.03 - 10:07:52
Hi eknori,

siehst Du eine Möglichkeit, den Code zu posten?

Meff

P.S.: Funzt das auch unter R6?
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 24.07.03 - 10:38:19
klar, läuft auch unter R6

hier ist der Code:

#include <stdio.h>
#include <string.h>

#ifdef UNIX
#include <ctype.h>
#endif

#include <lapicinc.h>
#include <global.h>
#include <nsfdb.h>
#include <nsfsearc.h>
#include <osfile.h>
#include <osmem.h>
#include <osmisc.h>
#include <mail.h>
#include <mailserv.h>
#include <names.h>
#include <stdnames.h>
#include <nsfdata.h>
#include <nsfnote.h>
#include <nsferr.h>
#include <textlist.h>
#include <ods.h>
#include <odstypes.h>
#include <easycd.h>
#include <agents.h>
#include <nif.h>
#include <acl.h>
#include <dname.h>
#ifdef _DEBUG
#include <lapiplat.h>
#else
#include <addin.h>
#endif
#define MSG_LENGTH 512

void LogMsg (char *);
void LogError (STATUS);

#ifdef _DEBUG
LAPI_MAIN
{
#else
STATUS LNPUBLIC AddInMain (HMODULE hModule, int argc, char *argv[])
{
HANDLE hOldStatusLine;
HANDLE hStatusLineDesc;
HMODULE hMod;
#endif

STATUS error=NOERROR;
char entryname[MAXUSERNAME], canonname[MAXUSERNAME], pathname[MAXPATH];
HANDLE hACL;
DBHANDLE hDb;
ACL_PRIVILEGES PrivBits = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int i;
WORD retLen;
DWORD dwACLFlags;


#ifdef _DEBUG

LAPI_INIT(error);
if (error) LAPI_INIT_ERROR;

#else

AddInQueryDefaults (&hMod, &hOldStatusLine);
AddInDeleteStatusLine (hOldStatusLine);
hStatusLineDesc = AddInCreateStatusLine("ALADDIN");
AddInSetDefaults (hMod, hStatusLineDesc);
AddInSetStatusText("Initializing");
AddInSetStatusText("Idle");

#endif

if (argc <3 )
{
LogMsg ("usage load naladin <dbname> <username>");
return (NOERROR);
}

strcpy (pathname, argv[1]);
strcpy (entryname, argv[2]);

for (i=3; i<argc; i++)
{
strcat (entryname, " ");
strcat (entryname, argv);
}

if (error = DNCanonicalize (0L, NULL, entryname, canonname, MAXUSERNAME, &retLen))
{
LogError (error);
return (NOERROR);
}

if (error = NSFDbOpen (pathname, &hDb))
{
LogMsg ("error opening db");
LogError (error);
return (NOERROR);
}

if (error = NSFDbReadACL(hDb, &hACL))
{
NSFDbClose (hDb);
LogMsg("error reading acl");
LogError (error);
return (NOERROR);
}

if (error = ACLGetFlags(hACL, &dwACLFlags))
{
OSMemFree (hACL);
NSFDbClose (hDb);
LogMsg("could not get ACL flags");
LogError (error);
return (NOERROR);
}

if (dwACLFlags & ACL_UNIFORM_ACCESS)
{
LogMsg("error consistent acl");
OSMemFree (hACL);
NSFDbClose (hDb);
return (NOERROR);
}
for ( i = 0; i < ACL_PRIVCOUNT; i++) ACLClearPriv (PrivBits, i);
if (error = ACLAddEntry (hACL, canonname,ACL_LEVEL_MANAGER, &PrivBits,0))
{

OSMemFree (hACL);
NSFDbClose (hDb);
LogMsg ("error adding user");
LogError (error);
return (NOERROR);
}

if (error = NSFDbStoreACL (hDb,hACL,0L,0))
{
OSMemFree (hACL);
NSFDbClose (hDb);
LogMsg ("error saving acl");
LogError (error);
return (NOERROR);
}

OSMemFree (hACL);
NSFDbClose (hDb);
#ifndef _DEBUG
AddInSetStatusText("Terminating");
#endif

return (NOERROR);
}

void LogError (STATUS error)
{
char msg[MSG_LENGTH];
char error_msg[MSG_LENGTH];
OSLoadString(NULLHANDLE, ERR(error), error_msg, sizeof(error_msg)-1);
strcpy (msg, "ALADDIN: ");
strcat (msg, error_msg);

LogMsg (msg);
return;
}

void LogMsg (char *msg)
{
#ifdef _DEBUG
printf ("\n%s", msg);
#else
AddInLogMessageText(msg, NOERROR);
#endif
return;
}
 
Titel: Re:Sesam öffne dich !!
Beitrag von: Meff am 24.07.03 - 11:14:18
Super, ich danke Dir ;D

Meff
Titel: Re:Sesam öffne dich !!
Beitrag von: obrocke am 24.07.03 - 11:27:45
Hi,

super gemacht :-)

Kann ich das auch über mehrere Datenbanken laufen lassen, also ein Verzeichnis angeben ??

Danke,

Olaf
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 24.07.03 - 11:36:00
so wie der code jetzt ist, nein. muss man reinprogrammieren
Titel: Re:Sesam öffne dich !!
Beitrag von: schurke am 29.07.03 - 08:07:44
Hallo eknori

Funzt das auch Lokal??

Gruss

Wilfried
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 29.07.03 - 08:16:53
sischer, sischer !
Titel: Re:Sesam öffne dich !!
Beitrag von: schurke am 29.07.03 - 08:22:11
aber wie?

nach dem start der .exe wird das kennwort verlangt. doch eine eingabe ist nicht möglich. was mache ich falsch?
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 29.07.03 - 08:31:43
das ist logisch, da der Code sich ja der DLLs des Clients/Servers bedient.

Aber warum gibst du nicht einfach den PW ein ??

Titel: Re:Sesam öffne dich !!
Beitrag von: schurke am 29.07.03 - 08:36:02
was ist "PW"  ???
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 29.07.03 - 08:38:42
PassWort
Titel: Re:Sesam öffne dich !!
Beitrag von: schurke am 29.07.03 - 08:48:39
PW-Eingabe ist nicht möglich, hatte ich oben schon einmal geschrieben, da die Eingabe ignoriert wird (die Tastaturanschläge werden nicht übertragen) der Cursor verbleibt an der Pos. und blinkt nur so vor sich hin

Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 29.07.03 - 09:10:34
Dann starte vorher den Client und melde dich an. Dann wird kein PW angefordert. Funktioniert aber auf meinen Systemen ( 4.6, 5.x und 6.x ) einwandfrei !
Titel: Re:Sesam öffne dich !!
Beitrag von: Christian97 am 31.07.03 - 12:39:41
Hallo eknori,

Das Programm läuft bei meinem lokal installierten Server super.
Heute wollte ich es allerdings auch mal auf dem Server meines Geldgebers testen. Ich hatte das Programm in das Verzeichnis des Servers gepackt und dann im Admin Client von der Server Console gestartet. Hier kam aber die Fehlermeldung
"no action - enforce consistent enabled"

Kannst Du mir nen Tip geben, was da falsch läuft?

Danke
Christian
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 31.07.03 - 13:01:58
yoo, auf der betreffenden Datenbank ist eine konsistente ACL eingestellt. Das kann das kleine Program ( noch nicht) knacken.

update:

hier ist eine version, die auch die konsistente ACL behandelt




Titel: Re:Sesam öffne dich !!
Beitrag von: klaussal am 31.07.03 - 15:33:31
... läuft das ding auch auf einer AS400  ??? ::) ???
Titel: Re:Sesam öffne dich !!
Beitrag von: (h)uMan am 31.07.03 - 15:42:27
@eknori

Prima Sache, vielen Dank!

Schöne Grüße, Neo
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 31.07.03 - 16:35:30
@Klaus

muss ich mal sehen, wie ich das kompilieren muß
Titel: Re:Sesam öffne dich !!
Beitrag von: Rob Green am 01.08.03 - 09:41:46
Konsistente ACL aussschalten:
falls das noch jemand braucht (ab R4 gings ja nicht mehr durch einen simplen Notes.ini Eintrag) und ohne API ..ieehh  ;D ;D http://www.basicthinking.de/blog/archive/000109.htm
Ist von einem gewissen "Higs", wobei in dem Falle aber mit einer Kopie der Quell DB gearbeitet wird. Dennoch, erstaunlich einfach.

Eke, hast Du Dir den ACL Knacker in der Sandbox schon einmal angeschaut? Gibbet da nen UNterschied? *nein, frage nicht, weils schon was gibt, sondern möchte einfach nur den Unterschied om Vorgehen der beiden Tools erfahren*
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 01.08.03 - 10:00:28
Der "Trick" ist ja, das Flag uniformAccess in der ACL zu setzen oder zu löschen. Solange der Server Zugriff auf die DB hat, kannst du ja mit der ACL machen, was willst du  ;D

To be honest, beim naladin wird die konsistente ACL noch nicht einmal "geknackt".   ::) Ich hab lediglich die Abfrage nach uniforAccess mal auskommentiert.  ;D

Insofern ist da kein Unterschied zwischen Script und C++
Und Higs macht die Kopie eh nur zur Sicherung
Titel: Re:Sesam öffne dich !!
Beitrag von: widmaier am 01.08.03 - 10:01:57
Hallo zusammen, ich denke man muß hier unterscheiden, ob ich Zugriff auf eine DB möchte oder ob ich die konsistente ACL knacken möchte. Die konstistente ACL hebel ich einfach dadurch aus, daß ich per HEX editor (Freeware) den -Default- Wert auf Manager setze. Das schöne an dem "naladin" ist doch aber, daß ich einen Eintrag in die ACL bekomme, obwohl ich keinen Zugriff habe, weil zum Beispiel der User als Manager die Admins rausgeschmissen hat und der Server tatsächlich als Server eingetragen ist, oder habe ich da irgendetwas grundsätzlich nicht verstanden?
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 01.08.03 - 10:08:57
Zitat
Das schöne an dem "naladin" ist doch aber, daß ich einen Eintrag in die ACL bekomme, obwohl ich keinen Zugriff habe, weil zum Beispiel der User als Manager die Admins rausgeschmissen hat

und genau zu DIESEM Zweck habe ich das Ding geschrieben !!

Titel: Re:Sesam öffne dich !!
Beitrag von: Rob Green am 01.08.03 - 10:43:46
danke für die Infos!  ;)

cool gemacht
Titel: Re:Sesam öffne dich !!
Beitrag von: cococo69 am 05.08.03 - 14:51:11
Gibt es auch eine Lösung unter UNIX???
Titel: Re:Sesam öffne dich !!
Beitrag von: Driri am 05.08.03 - 17:52:38
Ich würde mich auch sehr über eine Version für die AS/400 freuen, unter Windows komm ich ja zur Not irgendwie dran, aber auf der AS/400 hab ich auch noch keinen (halbwegs machbaren) Weg gefunden.
Titel: Re:Sesam öffne dich !!
Beitrag von: eknori am 05.08.03 - 17:58:18
uuuiiiii, da bin ich wohl gefordert.
da muss ich mich mal schlaumachen, wie ich das kompieren muß; hab da NULL Erfahrung.
Werde mir erst mal die API für die Systeme ziehen. Vielleicht bin ich dann schleuer.
Oder ist hier wer, der da mal helfen kann. Unix/Linux kann ich mir ja noch vorstellen, aber AS/400 ?? Was ist das dann für ein OS ? OS/390 oder wie heißt das da.
Evtl kannst du mir noch ein paar einzelheiten dazu posten, bitte

eknori
Titel: Re:Sesam öffne dich !!
Beitrag von: Daniel am 11.08.03 - 18:56:55
Ich weiß nicht, viel kann man nich falsch machen aber bei mir kommt immer die Meldung

"no action - enforce consistent enabled"

Obwohl ich das Update benutze.

Vielleicht ein Aktualisierungsproblem?
Titel: Re:Sesam öffne dich !!
Beitrag von: Driri am 12.08.03 - 09:54:24
Hi eknori,

bin leider auch nicht der AS/400-Spezi  ;)

Das Betriebssystem heißt OS/400, wir setzen zur Zeit Version 5 Release 2 ein.
Ich kann mal meine Kollegen fragen, wie man son C-Progrämmchen auf der Maschine lauffähig kriegt.

Ich melde mich dann noch mal.
Titel: Re:Sesam öffne dich !!
Beitrag von: klaussal am 12.08.03 - 09:59:27
... habe eknori mal die adresse eines as400-gurus geschickt. wenn alle aus dem urlaub wieder da sind, gibt's ja vielleicht eine lösung.
bis dahin: geduld geduld geduld (oder DOMINO6 einsetzen)  ;D
Titel: Re:Sesam öffne dich !!
Beitrag von: g202e am 12.08.03 - 19:58:09
In der Sandbox gibts eine "AdminACL2.nsf" von einem israelischen Notes-Spezi, damit kommt man an jede Datenbank!
Titel: Re:Sesam öffne dich !!
Beitrag von: Driri am 13.08.03 - 09:56:24
Nettes Tool, aber wieder mal nur für Windowssysteme, denn es wird scheinbar eine DLL verwendet und das funktioniert z.B. auf unseren AS/400-Maschinen nicht.
Titel: Re: Sesam öffne dich !!
Beitrag von: Dandy81 am 12.01.11 - 15:45:24
Hat das schon jemand auf einem 64Bit System (Win Server 2003 und Domino 8.0.2) getestet?
Titel: Re: Sesam öffne dich !!
Beitrag von: eknori am 12.01.11 - 15:46:07
Ja, aber warum kramst du einen 7 Jahre alte Post wieder aus?
Titel: Re: Sesam öffne dich !!
Beitrag von: Dandy81 am 12.01.11 - 15:49:34
Wow, das nenne ich mal schnell  :D
Bekomme es bei mir leider nicht zum laufen mit der angegebenen Syntax. In der Domino Console wird nur der Load Befehl angezeigt. Keine Fehlermeldung oder Bestätigung und die ACL bleibt leider unverändert.  :'(