Hinweis: Am 03.11.2020 gab Avast bekannt, dass sie beschlossen hatten, diesen Dolmetscher weltweit zu deaktivieren!
Der Haupt -Avast -Antivirenprozess heißt avastsvc.exe, das als System ausgeführt wird.

Dieser Service lädt die Antiviren -Engine auf niedriger Ebene und analysiert nicht vertrauenswürdige Daten aus Quellen wie dem Dateisystem Minifilter oder dem abgefangenen Netzwerkverkehr.
Obwohl sie nicht privilegiert und nicht vertrauenswürdige Eingaben durch Design verarbeiten, ist es ungeschickt und hat eine schlechte Abdeckung der Minderung. Jegliche Schwachstellen in diesem Prozess sind kritisch und für entfernte Angreifer leicht zugänglich.
Also .. vielleicht nicht großartig, dass es einen benutzerdefinierten JavaScript -Interpreter enthält .... ???? ?

Dieses Repository enthält eine interaktive Hülle, mit der Sie den Interpreter unter Linux auf Verwundbarkeitsforschung testen können.
So probieren Sie es aus, installieren Sie zuerst die Abhängigkeiten.
$ sudo apt install libreadline-dev:i386 libc6-dev-i386 gcc-multilib
$ sudo yum install readline-devel.i686 glibc-devel.i686 libgcc.i686
Jetzt können Sie dieses Repository klonen.
$ git clone https://github.com/taviso/avscript.git
$ cd avscript
$ git submodule update --init --recursive
Wenn alles gut aussieht, bauen Sie es und avscript sollte bereit sein.
$ make
Aus Leistungsgründen interpretiert Avast nicht jede JavaScript -Datei, die ihnen begegnen, sondern eine Heuristik, um festzustellen, ob sie erforderlich ist. Ich habe festgestellt, dass das Anhängen der in diesem Repository enthaltenen Datei javascript.txt ausreicht, um die Heuristik immer auszulösen.
Wenn Sie beispielsweise eine Sicherheitsanfälligkeit gefunden haben und sie unter Windows reproduzieren möchten, würden Sie zuerst dies tun:
$ cat yourtestcase.js javascript.txt > ReproForWindows.js
Überprüfen Sie nun, dass es immer noch das tut, was Sie erwarten, z. B.
$ ./avscript ReproForWindows.js
main(): File ReproForWindows.js` loaded, about to initialize interpreter...
Segmentation fault (core dumped)
Überprüfen Sie dann den auf Windows reproduzierten Absturz.
Der Avast -Dienst ist ein geschützter Prozess, was bedeutet, dass das Debuggen des von UserSpace schwierig ist. Wenn Sie KD konfiguriert haben, können Sie dies einfach rückgängig machen und dann funktioniert das Debuggen in UserSpace gut.
Eine schnelle und einfache Lösung, die auf 32-Bit funktioniert, besteht darin, dies zu tun (beachten Sie, dass PatchGuard dies auf X64 nicht zulässt, aber Sie können mit Breakpoint-Befehlen etwas Ähnliches tun).

Es gibt auch eine Einstellung unter "Fehlerbehebung", die als "Selbstverteidigung aktivieren" bezeichnet wird, die deaktiviert werden sollte. Ich glaube, diese Einstellung deaktiviert OpenProcess() im SSDT, wo sie normalerweise ihren eigenen Prozess schwarzlistet.
Möglicherweise müssen Sie "Schilde" in der AVAST -Benutzeroberfläche vorübergehend deaktivieren, während Sie anhängen, damit die Dateisystemoperationen nicht zugänglich sind, während der Dienst ausgesetzt ist.
Avast veröffentlicht keine Symbole für ihren Motor, aber es ist immer noch möglich, mit IDA oder GDB zu debuggen. Es gibt einige Hinweise zum Debuggen von Windows -Code von Linux in der Loadlibrary -Dokumentation.
Wenn Sie IDA verwenden möchten, würde ich empfehlen, das gdbserver -Backend zu verwenden.
Wenn Sie einfach so etwas verwenden, müssen Sie möglicherweise zuerst das GDBServer -Paket installieren:
$ gdbserver 0.0.0.0:23946 ./avscript
Dies funktioniert überraschend gut, selbst Pseudocode -Haltepunkte funktionieren.

Wenn Sie eine Sicherheitsanfälligkeit finden, ist sie wahrscheinlich kritisch und wörtlich .
Bitte melden Sie es dringend.