Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MD5 , fciv, Hashliste und andere Probleme...

Frage Entwicklung Batch & Shell

Mitglied: takitano

takitano (Level 1) - Jetzt verbinden

16.06.2012, aktualisiert 19:48 Uhr, 4682 Aufrufe, 17 Kommentare

Kann mir jemand helfen? Das Problem: einer von unseren Büro-PC-Freaks hat mal wieder trotz Verbot ein Spielprogramm auf dem Firmenrechner installiert. Aber nicht nur das - um die Routine-Prüfung umzugehen, hat er auch der Name der Start-Datei (z.B.DukeIII.exe in Taskmanage.exe) geändert und in einem anderem Verzeichnis (als Standard) installiert.

Nun da unser Script regelmäßig nur die standarte Installationsverzeichnisse von "verbotenen" Progs überprüft + nur die originale Dateinamen sucht, kann ich dieses Programm nicht mehr finden. Chef ist sauer...

Da kam mir die Idee mit MD5-Hashes - ich habe mir eine Liste von MD5-Hashes von allen "verbotenenen" Progs erstellt und als eine TXT-UTF8-Datei gespeichert. Die Datei sieht so aus (nur als Beispiel):

md5
rr2rt456j3bj3bj34ghg
tjwjg3ejng5i5i43ufri
rtzetzertrrzutrzuttz
erzruttiizlkfkjmnrtzm
....

Nun will ich den kompletten Laufwerk nach *.exe und *.dll Dateien untersuchen, diese hashen und den Hashwerte mit meiner Liste vergleichen. Danach sollten 2 Arten von Meldungen kommen:
1) Das Programm ist installiert (und Pfad woe sie sich befindet).
2) Keine Installationsdateien gefunden.

Das ganze sollte per Batch realisierbar sein.
Mit fciv hat es nicht geklappt - das Programm kann die Liste ohne Pfaden nicht überprüfen. Und wenn der Installationspfad vom User geändert wurde findet fciv die vorhandene Dateien auch nicht. Was kann ich da noch tun?

Grüße,
takitano
Mitglied: DerWoWusste
16.06.2012, aktualisiert um 20:21 Uhr
Moin.

Es gibt verschiedene Lösungsansätze. Ich beschreib mal einige andere als Deinen zuerst.
-nicht-technischer Ansatz: Lass die Kollegen etwas unterschreiben, was beschreibt, welche nicht-arbeitsrelevanten Tätigkeiten (z.B. priv. Mails lesen) erlaubt sind und welche nicht. Wer sich nicht daran hält, wird bestraft bis zur Abmahnung. Wie gut die technischen Überwachungsmöglichkeiten dann noch sein müssen, kann ich nicht beurteilen, ich schätze, eher gering.
-applocker (windows7) oder software restriction policies (vista und xp): definiere eine Liste von startbaren Anwendungen. Alle anderen werden geblockt.
-Dein Ansatz: habe ich auch schon gemacht. Ich benutze dafür ein Programm names jacksum http://www.jonelo.de/java/jacksum/index_de.html
Damit kannst Du das komplette Laufwerk hashen und Unterschiede zum vorigen Scan auflisten. Aber Vorsicht: das artet in Arbeit aus. Windows verändert ja nicht nur bei Windowsupdates ständig Dateien. Es ist aber denkbar, dass Du es auf eine Liste loslässt, die zuvor über ausführen von dir *.exe *.dll /s /b (z.B. unter c: ausführen) gewonnen hast.

Edit: achja... haben Eure Nutzer Adminrechte?
Bitte warten ..
Mitglied: Lochkartenstanzer
16.06.2012, aktualisiert um 22:52 Uhr
Moin:

mit cygwin/gnu-toolchain köntne das so gehen:

#/bin/bash 
 
find /cygwindir/ -type f -exec md5sum {} \; | tee aktuelle-md5liste.txt 
grep -f verbotene-md5.txt aktuelle-md5liste.txt | tee verbotene -dateien.txt 
lks

Nachtrag: Abmahnungen/Sanktionen sind ein probates Mittel gegen solche Eigenmächtigkeiten. Vorraussetzung ist allerdigns, daß vorher schrifich geklärt was der Mitarbeiter darf und was nicht.
Bitte warten ..
Mitglied: takitano
16.06.2012, aktualisiert um 23:08 Uhr
Danke, DerWoWusste. Jacksum habe ich früher auch benutzt, nur wurde jetzt Java von den Rechnern verbannt. Also diese Lösung passt nicht...

Ja, einige haben schon (leider) administrative Rechte (siehe Java). ;-(
Bitte warten ..
Mitglied: takitano
16.06.2012, aktualisiert um 23:09 Uhr
Lochkartenstanzer, Danke für die Lösung! Cygwin passt leider nicht - es soll schon so ein Tool a-la fciv bzw. md5 sein, nur mit der Möglichkeit die Hashwerte aus einer Liste ohne Pfade und Dateinamen abgleichen... Ich arbeite mit einem selbstgebastelten Tool (Lua-AMS) und da sind Shell/Batch-Lösungen (also reine CMD-Werkzeuge ohne Windows-Setup)- die erste Wahl.
Bitte warten ..
Mitglied: Lochkartenstanzer
16.06.2012 um 23:11 Uhr
Hi,

Also find und grep gibt es auch als reine EXE-Dateien fertig für win32. Da kannst Du das problem dann auch mit einer CMD-batch erschlagen.

lks
Bitte warten ..
Mitglied: takitano
16.06.2012 um 23:15 Uhr
Stimmt... Das konnte ich morgen mal testen. Danke für den Tipp!
Bitte warten ..
Mitglied: bastla
16.06.2012, aktualisiert um 23:34 Uhr
Hallo takitano!
Mit fciv hat es nicht geklappt - das Programm kann die Liste ohne Pfaden nicht überprüfen
Na dann eben umgekehrt - ungetestet etwa:
01.
@echo off & setlocal 
02.
set "Liste=C:\Scripts\MD5-Liste.txt" 
03.
set "Gefunden=C:\Scripts\Installiert.txt" 
04.
 
05.
del "%Gefunden%" 2>nul 
06.
for /f "delims=" %%i in ('dir /s/b/a-d C:\') do  
07.
    echo Untersuche: %%i     
08.
    for /f "skip=3" %%a in ('fciv "%%i"') do findstr /i %%a "%Liste%">nul && >>"%Gefunden%" echo %%a;%%i 
09.
)
- das wird natürlich etwas dauern ... [Edit] - daher im Zweifelsfall zuerst den Ansatz von weiter unten testen [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: takitano
16.06.2012 um 23:28 Uhr
Danke, Bastla! Werde auch morgen mal testen - die beide Lösungen (auch mit grep und find) gefallen mir sehr gut sogar!
Bitte warten ..
Mitglied: bastla
16.06.2012 um 23:34 Uhr
Hallo takitano!

Sollte aber so besser gehen:
01.
fciv C:\ -r>C:\Scripts\Hashes.txt 
02.
findstr /ibg:C:\Scripts\MD5-Liste.txt C:\Scripts\Hashes.txt>C:\Scripts\Installiert.txt
- wobei ich allerdings nicht getestet habe, wie "findstr" mit ein paar Millionen zu durchsuchenden Zeilen zurechtkommt ...

Die "MD5-Liste.txt" sollte übrigens nur die Hashes enthalten - die erste Zeile mit "md5" vorweg entfernen, da sie ansonsten auch als Suchbegriff verwendet wird.

Grüße
bastla
Bitte warten ..
Mitglied: takitano
17.06.2012, aktualisiert um 09:42 Uhr
Danke Bastla!

Deine letzte Lösung war für mich gerade richtig (das mit der Zeit ist nicht so schlimm - die Nacht ist lang... Um alle *.exe- und *.dll-Dateien auf einer 500GB-SATA-Festplatte ( nur eine Partiition C:! mit ungefähr 100 GB installierten Programmen und Bürokram (ca. 1.200.000 Dateien)) zu finden brauchte dein Script nicht mal 2 Minuten.
Bitte warten ..
Mitglied: bastla
17.06.2012, aktualisiert um 16:09 Uhr
Hallo takitano!
alle *.exe- und *.dll-Dateien ... zu finden
würde mir im Fall des Falles aber nicht genügen (wenn etwa aus der "DukeIII.exe" eine "Bericht_2012-04-04.pdf" geworden ist)

Ansonsten noch eine Anmerkung: "Blacklisting" setzt natürlich voraus, dass Du weißt, wonach Du suchen musst - insofern solltest Du die Hinweise von DerWoWusste nochmals überdenken und dabei auch gleich das Thema "Adminrechte" hinterfragen ...

Grüße
bastla
Bitte warten ..
Mitglied: Eduard121
17.06.2012 um 17:43 Uhr
Zitat von bastla:
Hallo takitano!

Sollte aber so besser gehen:
01.
fciv C:\ -r>C:\Scripts\Hashes.txt 
02.
> findstr /ibg:C:\Scripts\MD5-Liste.txt C:\Scripts\Hashes.txt>C:\Scripts\Installiert.txt 
03.
> 
- wobei ich allerdings nicht getestet habe, wie "findstr" mit ein paar Millionen zu durchsuchenden Zeilen
zurechtkommt ...

Die "MD5-Liste.txt" sollte übrigens nur die Hashes enthalten - die erste Zeile mit "md5" vorweg
entfernen, da sie ansonsten auch als Suchbegriff verwendet wird.

Grüße
bastla

Hallo Bastla,
du hast auch mir fast damit geholfen! Aber wie überprüfe ich mehrere Laufwerke von c: bis z:? Eine Art Schleife?

fciv c:\...
fciv d:\...
fciv e:\... - funktioniert nämlich nicht. Es werden nur die Ergebnisse vom Laufwerk C: gespeichert. Unterstützt fciv überhaupt gleichzeitige Suche in mehreren Laufwerken?

Grüße aus Mosklau,
Eduard
Bitte warten ..
Mitglied: bastla
17.06.2012 um 22:19 Uhr
Hallo Eduard121!

Du kannst die Daten der weiteren Laufwerke einfach mit ">>" anstatt ">" hinzufügen:
for %%i in (D E F) fciv %%i:\ -r>>C:\Scripts\Hashes.txt
Grüße
bastla
Bitte warten ..
Mitglied: SilentTom
26.11.2012 um 00:43 Uhr
Genau dafür gibt es ein kleines praktisches Programm namens MD5 FILE HASHER von Digital-Tronic.

Mit dem Programm können vollautomatische Prüfdurchläufe erstellt werden, um in zeitgesteuerten Abständen beliebige Dateien, Dateitypen und ganze Ordner zu überwachen. Dabei stehen umfangreiche Filterfunktionen und Ausnahmeregeln zur Verfügung, um beispielsweise alle EXE, SYS und DLL Dateien des Windowsordners stündlich auf Manipulationen zu untersuchen. Geänderte, gelöschte und neu erstelle Dateien werden auf Wunsch als PopUp-Meldung mitgeteilt und können zusätzlich als TXT-Datei abgespeichert werden. Das Programm erstellt von jeder Datei einen Hashwert und vergleicht diesen bei spätere Untersuchungen - absolut sichere Sache.

Das Programm gibts auf digital-tronic.de und ist in Deutsch und Englisch verfügbar. Auf YouTube sind auch Videos bzw. Tutorials online.
Bitte warten ..
Mitglied: takitano
04.02.2013, aktualisiert um 13:40 Uhr
Zitat von bastla:
Hallo Eduard121!

Du kannst die Daten der weiteren Laufwerke einfach mit ">>" anstatt ">" hinzufügen:
for %%i in (D E F) fciv %%i:\ -r>>C:\Scripts\Hashes.txt 
> 
Grüße
bastla

Hier sehe ich 2 Probleme:

1) "do" fehlt (Sorry, ich weiß - Klugsch...r.. )
2) Die Laufwerksbuchstaben werden vorher angegeben. Das ist aber ziemlich mühsam und festgelegt... Was ist wenn man NUR lokale Laufwerke und USB-Laufwerke, aber keine Netzwerklaufwerke untersuchen will (also man weiß es vorher nicht welches Buchstabe für welchen Laufwerk steht)?
Bitte warten ..
Mitglied: bastla
04.02.2013 um 16:18 Uhr
Hallo takitano!
Was ist wenn man NUR lokale Laufwerke und USB-Laufwerke, aber keine Netzwerklaufwerke untersuchen will (also man weiß es vorher nicht welches Buchstabe für welchen Laufwerk steht)?
Dann würde ich mir die passenden Laufwerksbuchstaben mit einem VBScript wie zB hier gezeigt holen ...

Grüße
bastla
Bitte warten ..
Mitglied: takitano
05.02.2013 um 11:27 Uhr
Danke Bastla!
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
gelöst Crontab mit Shell Probleme (9)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Windows 7
gelöst Sind euch verstärkte Probleme bei Windows 7 Updates aufgefallen? (4)

Frage von RadioHam zum Thema Windows 7 ...

Cloud-Dienste
gelöst OwnCloud 8 Probleme mit Vorschaubildern auf Mobilgeräten (1)

Frage von zeroblue2005 zum Thema Cloud-Dienste ...

Windows 10
gelöst VPN Verbindung Probleme (7)

Frage von Yeter2 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...