Autor Beitrag
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Mi 20.02.08 16:36 
Da scheint noch jemand auf das gleiche Problem gestoßen zu sein. Lustig, wie sich manche Sachen gleichen... :roll:

kay-bruns.de/wp/2007/10/11/stockschirm/
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mi 05.03.08 13:08 
Hi hab den Thread erst jetzt gesehen.
Die Prozesse sind jedenfalls noch in der EProcess liste drin, sagt jedenfalls mein FireShield. IceSword und andere Programme zeigen das aber gar nicht an.

Vielleicht schau ich mir den Treiber mal genauer an von Antivir, benutzt das ja auch :)
Einloggen, um Attachments anzusehen!
_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Mi 05.03.08 14:18 
user profile iconuall@ogc hat folgendes geschrieben:

Vielleicht schau ich mir den Treiber mal genauer an von Antivir, benutzt das ja auch :)


Das wäre klasse! Ich habe von Reverse Engineering einfach zu wenig Ahnung und nur mal kurz drüber gesehen, was mich zu der Meinung gebracht hat, das meine Vermutung mit ObReferenceObject (und "Konsorten") und PsSetCreateProcessNotifyRoutine wohl so ziemlich trifft.

Bin gespannt, ob die da evtl. ein Update rausbringen und würde mich freuen (falls du zu Erbenissen kommst und überhaupt Zeit dafür hast), wenn du im Avira Forum unter meinen Thread eine Antwort posten würdest:
forum.avira.com/thread.php?threadid=33338

Es wird bestimmt dauern, bis Avira für den Treiber ein Update bringt, die haben sich mit Vista ja schon genug in die Nesseln gesetzt und wollen das bestimmt nicht wiederholen.
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Mi 05.03.08 16:07 
Ah... Habe mir grad dein Tool angesehen und weiß jetzt, was du meinst. Da sind Kernelmode Hooks auf eine scheinbar etwas merkwürdig Adresse.

Das ist dein Spezialgebiet und ich bin wirklich gespannt, was du da herausfindest...
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mi 05.03.08 18:53 
die Kernelhooks sind allerdings nicht von Avira (denk ich zumindest)
ich meinte eher die EProcessliste in der die Zombis angezeigt werden

Debuggen kann ich im mom net da mein Rechner putt ist auf dem SoftIce drauf war
aber ich kann jetzt Zombies reproduzieren

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
program nothing2;
 
uses
  windows, shellapi, sysutils;
 
{
  @1: Zombie wird erstellt, wenn avipbb.sys geladen
  @2: Zombie wird nicht erstellt, wenn avipbb.sys geladen
}

 
var
  pHandle: DWord;
begin
  if (ParamCount = 0then
  begin
    ShellExecute(0,nil,PChar(ExtractFileName(ParamStr(0))),PChar(IntToStr(GetCurrentProcessID)),nil,0); {@1}
    //ShellExecute(0,nil,PChar(ParamStr(0)),PChar(IntToStr(GetCurrentProcessID)),nil,0); {@2}
  end else
  begin
    Sleep(500);
    pHandle := OpenProcess(PROCESS_ALL_ACCESS,false,StrToIntDef(ParamStr(1),0));
    if (pHandle <> 0then
    begin
      MessageBoxA(0,PChar('Zombie wurde erzeugt, PID: '+ParamStr(1)),'Info',0);
      CloseHandle(pHandle);
    end else
      MessageBoxA(0,'Zombie konnte nicht erzeugt werden. System in Ordnung.','Info',0);
  end;
end.


Mit MicroAngelo ist das aber normal, da es nicht sauber programmiert ist und das Handle auf den Prozess nicht geschlossen wird. Dadurch lässt Windows dieses offen bis MicroAngelo selbst geschlossen wurde und somit das Handle nicht mehr referenziert wird.

Wenn aus Winrar oder Winzip eine Datei gestartet wird und WinZip/Rar geschlossen wird BEVOR das gestartete Programm beendet wurde dann ersteht ein Zombie. Mit obigen Code hab ich das mal nachgebaut. Glaub aber WinRar startet es direkt mit CreateProcess und erstellt vorher ein paar Events, könnte daran liegen. Ich schau mir das aber nochmal genauer morgen an.

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Do 06.03.08 20:02 
user profile iconuall@ogc hat folgendes geschrieben:
die Kernelhooks sind allerdings nicht von Avira (denk ich zumindest)
ich meinte eher die EProcessliste in der die Zombis angezeigt werden

Irrrtum. AVIPBB.SYS scheint folgende Kernelmodefunktionen zu hooken (wenn AVIPBB.SYS nicht geladen ist und auch sonst keine Firewall installieret ist, fehlen diese Hooks):

  • NtCreateThread
  • NtOpenProcess
  • NtOpenThread
  • NtTerminateProcess


Die neuen Adressen verweisen alle auf Code, der nicht in einem geladenen Modul (Treiber) liegt, also "unsichtbar" ist. Installiert hier AVIRA evtl. selbst ein RootKit????? Das wird ja immer verrückter hier! :shock: ....

Irgendwie funktioniert die EPROCESS Liste bei mir - glaube ich - nicht, da steht bei mir gar nichts drin. Über einen Screenshot würde ich mich da sehr freuen.

user profile iconuall@ogc hat folgendes geschrieben:

Mit MicroAngelo ist das aber normal, da es nicht sauber programmiert ist und das Handle auf den Prozess nicht geschlossen wird. Dadurch lässt Windows dieses offen bis MicroAngelo selbst geschlossen wurde und somit das Handle nicht mehr referenziert wird.

Vollkommen richtig, genau das wollte ich damit sagen - MIKE ist nicht sauber programmiert. Das hat nichts mit dieser Sache zu tun, richtig!

Deinen Code schaue ich mir noch an und werde versuchen, das in meine Programmiersprache umzusetzen.
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Do 06.03.08 20:15 
Stop mal!

Da fehlt ja dann eigentlich ein Hook auf NtTerminateThread!!!
Könnte das evtl. erklären, warum nur Zombies entstehen, wenn der jeweilige Prozess ein Fenster hat!
:shock:
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Do 06.03.08 21:02 
hab gar nicht auf die hooks geachtet
du schreibst, wenn der treiber nicht geladen ist, dann sind die hooks nicht installiert -> dann ist es von der sys
was ich meinte ist die eprocessliste wo die processe drin stehen (alle die nicht richtig entladen wurden haben keinen pfadnamen)

Und ja TerminateThread sollte eigentlich auch gehookt werden, ist es nicht. CreateProcess(Ex) wird wohl nicht gehookt weil das eh über die Callbackroutine läuft.

Im Anhang die beiden Bilder von mir.


PS: Jeder Virenscanner hook irgendwelche Sysgtemapis das mach KAV genau so, irgendwie müssen ja die CreateFileNT Operationen abgefangen werden.

Edit: Mein Code oben hat ja kein Fenster. Ich weiß allerdinsg nicht was ShellExecute intern macht. Aber: Es tritt nur auf wenn der aufrufende Prozess geschlossen wird bevor der Aufgerufende beendet ist.
Einloggen, um Attachments anzusehen!
_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Fr 07.03.08 17:49 
Erst mal besten Dank an dich! Das sieht sehr interessant aus. Die Liste wird auf meinem System leider nicht angezeigt - ist deshalb ganz schwer für mich nachvollziehbar.

Ich habe mal einen Prozess, der beim Beenden mit TerminateProcess keinen Zombie erzeugt, mit TerminazeThread beendet - und wums, ein Zombie war da.

AVIPBB.SYS lädt tatsächlich die Hooks, und zwar laufen die in ein "verstecktes" Stück Code im Kernelspeicher - also an eine Stelle, die sich nicht in einem geladenen Treiber befindet. Das sieht man ja in deinem einen Screenshot recht gut => "not inside kernel module". Avira versucht also das was da beim RootKitscannen abläuft etwas zu verschleiern. Ist auch verständlich (aber wohl nicht effektiv).

Der eigentliche Fehler, der zu dem Problem führt, liegt meiner Meinung nach also nicht im Treiber AVIPBB.SYS selbst, sondern in dem versteckten Stück Code, das da über die Hooks angesprochen wird.

Auf die Hooks bin ich eigentlich nur gestoßen, weil ich auf meinem Testrechner keine Firewall installiert habe; ansonsten hätte ich die auch nicht beachtet und mir wäre es so wie dir gegangen.
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Fr 07.03.08 20:06 
Habe gerade noch mal ein Update des Testprogrammes Zombie.exe hochgeladen (Downloadadresse hat sich nicht geändert).

Adressen im Kernel und Modulgrößen werden nun auch hexadezimal angezeigt, außerdem habe ich einen Bug beim Beenden von Prozessen gefixt, der mir bislang nicht aufgefallen war und beim kompilieren entstanden ist.
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Sa 08.03.08 13:01 
Erfolg auf ganzer Linie! Im März / April bringt AntiVir ein Update heraus, das scheinbar keine Zombies mehr erzeugt.
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Mo 10.03.08 11:12 
Noch ein eventuell wichtiger Hinweis:

Alle die Leute, die AntiVir benutzen und trotzdem keine oder nur einen Zombie gesehen haben, sollten einmal überprüfen, ob der Treiber avipbb.sys von Zombie.exe als geladener Treiber aufgelistet wird.

Fehlt dieser Treiber (wie das zum Beispiel bei FiceGoesDelphi der Fall ist), hat es unter Umständen einen Fehler beim Update von Version 6 auf Version 7 gegeben, was zu einem Sicherheitsloch innerhalb von AntiVir führt. Der Scanner kann dann unter Umständen sehr einfach durch Malware angehalten werden, ohne das der Anwender davon Wind bekommt (NtOpenProcess/NtOpenThread Hook wird nicht installiert).

Wer feststellt, dass avipbb.sys auf seinem System nicht geladen wird, sollte versuchen seine Version von AntiVir komplett zu deinstallieren und nach einem Reboot die Version 7 von der Avira Homepage wieder neu zu installieren.
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: Di 15.04.08 18:13 
user profile iconAHT hat folgendes geschrieben:
Erfolg auf ganzer Linie! Im März / April bringt AntiVir ein Update heraus, das scheinbar keine Zombies mehr erzeugt.

Hallo user profile iconAHT,
ich hatte diesen Thread und auch deine Threads bei Avira aufmerksam gelesen, war ich doch auch betroffen von diesen komischen blauen Zombieprozessen. Seit dem gestrigen AntiVir-Update bemerkte ich, dass das Update ewig lang dauerte und der heutige neue Splash-Screen beim Programmstart hat angedeutet, dass eine neue Version draußen ist. Jetzt hab' ich dein Tool mal laufen lassen und folgendes Erfreuliches zu vermelden:

Zitat:
[*** Gefundene PID's ohne sichtbaren Prozess ***]

________________________________________________

:zustimm: Ich bedank' mich mal für deine Aktivität, die dazu geführt hat!

Gruß

Calculon
--

_________________
Hallo Mutti
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Mi 16.04.08 09:00 
user profile iconCalculon hat folgendes geschrieben:
user profile iconAHT hat folgendes geschrieben:
Erfolg auf ganzer Linie! Im März / April bringt AntiVir ein Update heraus, das scheinbar keine Zombies mehr erzeugt.

Hallo user profile iconAHT,
ich hatte diesen Thread und auch deine Threads bei Avira aufmerksam gelesen, war ich doch auch betroffen von diesen komischen blauen Zombieprozessen. Seit dem gestrigen AntiVir-Update bemerkte ich, dass das Update ewig lang dauerte und der heutige neue Splash-Screen beim Programmstart hat angedeutet, dass eine neue Version draußen ist. Jetzt hab' ich dein Tool mal laufen lassen und folgendes Erfreuliches zu vermelden:

Zitat:
[*** Gefundene PID's ohne sichtbaren Prozess ***]

________________________________________________

:zustimm: Ich bedank' mich mal für deine Aktivität, die dazu geführt hat!

Gruß

Calculon
--


Habe mir ebenfalls die neue Version 8 heruntergeladen. Kann bestätigen, dass der Fehler dort nicht mehr enthalten ist.
Ich habe keine Ahnung, ob das Update immer automatisch funktioniert - nehme eher an, dass das nicht der Fall ist. Ich möchte jedem raten, der noch Version 7 nutzt (egal, ob nun Zombieprozesse entstehen oder nicht), sich die neue Version 8 zur Not direkt von der Avira Homepage herunterzuladen.
Bei den Leuten, die mit Version 7 gearbeitet haben und bei denen keine Zombies zu sehen waren, entstehen unter XP einige Sicherheitslücken, die den PC für Viren angreifbarer machen. Also: Auf jedern Fall Update durchführen!

Da ich speziell von jemandem auf mein Testprogramm hin angesprochen wurde, der das insgesammt für nützlich hielt, habe ich vor einiger Zeit nochmals eine neue Version meines Testprogroggies Zombie.exe hochgeladen. Bei den Treibern werden nun auch die hexadezimalen Adressen angezeigt.
Nochmals zur Bedienung:
Ist bei einem Zombie die Anzahl geöffneter Handles auf den Prozess kleiner als 2, ist der Zombie in der Regel von einem Treiber erzeugt worden. Ist dieser "Handlecount" größer als zwei, ist der Zombie durch ein nicht geschlossenes Prozesshandle (in der Regel im Usermode) entstanden und die PID des "fehlerhaften Programmes" lässt sich durch das Drücken des Buttons Nach Handleeigentümer suchen ermitteln.
Da es sich bei dem Test, den Zombie.exe durchführt, um eine Art von "Kreuzverhörtest" handelt, dürfen, wärend dieser Test läuft, keine Programme gestartet oder beendet werden (gibt sonst falsche Ergebnisse).
Desweiteren überprüft Zombie.exe nicht, ob der gefundene "Zombie" ein RootKit ist oder nicht. Zeigt Zombie.exe im Listview den Pfad des Zombies an oder ist der Exitcode des Prozesses 259 (auch einige unsauber programmierte Programme hinterlassen nach dem Beenden einen solchen Exitcode), sollte man sein System sicherheitshalber mal auf RootKits hin testen.

Ich möchte mich auch noch einmal für das rege Interesse an dem Fall bedanken. Was mich besonders freut, ist der Erfolg, den die Sache gehabt hat. Besser kanns nicht laufen! :zustimm:
Amsel0_0
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 16.04.08 09:24 
Hallo erst mal an alle

Ich nutze Windows XP Pro und SP3 bei mir sind alle grün nix mit blau und hatte etwa drei min gedauert bis es fertig war mit einlesen.

PID: 260
Prozessname: Zombie.exe
Prozesspfad: c:\Downloads\PH\Zombie.exe
Beschreibung des Programmes: Nach Zombieprozessen scannen
Dateiversion: 2,1,0,9
Firma: _
Produktname: Zombie
Produktversion: 2,1,0
Entwickelt für Betriebssystem: 32-Bit Windows
Startzeit des Prozesses: 16.4.2008 um 9:17Uhr, 3sec 323millisec
Zeit des Prozesses im Kernelmode: 40sec 948ms
Zeit des Prozesses im Usermode: 13sec 469ms
PID des Elternprozesses: 2988
Adresse des PEB's: 2147344384
Geöffnet mit Zugriffsrechten: $1F0FFF
Anzahl geöffneter Handles auf den Prozess: 4
Pointer Count: 26
Exitcode: 259
Anzahl geöffneter Handles auf Hooks: 2

________________________________________________
[*** Gefundene PID's ohne sichtbaren Prozess ***]

________________________________________________


mfg Amsel0_0