Hallo,
ich habe (angefangen!) mir ein AV zu erstellen. Das schwerste hierbei sind Signaturen zu finden was aber auch nicht so schwer ist!
Hier mal die EICAR Testdatei Signatur:
526172211A0700CF907300000D00000000000000453E7420902E004400000044000000023CCF51685A8C8F3E1D3009002000000065696361722E636F6D00B00DCA7858354F2150254041505B345C505A58353428505E2937434329377D2445494341522D5354414E444152442D414E544956495255532D544553542D46494C452124482B482AC43D7B00400700 EICAR.rar (EICAR Test Datei in einer RAR)
526172211A0700CF907300000D00000000000000453E7420902E004400000044000000023CCF51685A8C8F3E1D3009002000000065696361722E636F6D00B00DCA78 EICARISTHIER C43D7B00400700 EICAR.rar (Hier wurde die Signatur entfernt)
526172211A0700CF907300000D00000000000000 Leer.rar (Eine leere *.Rar Datei)
Die Signatur ist: 58354F2150254041505B345C505A58353428505E2937434329377D2445494341522D5354414E444152442D414E544956495255532D544553542D46494C452124482B482A
Der Sourcecode ist:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Alles anzeigen
Um weitere Signaturen zu finden benötigt man mehrere Viren (ist ja kein Problem bei Youtube/Google findet man diese Recht schnell in einer VM ausgeführt ist das ganze auch relativ sicher. (Die Generatoren müssen ausgeführt werden der Virus ansich nicht!)
Um ein Virus auszulesen ist empfohlen ein HexEditor zu benutzen oder dieses Script:
Spoiler anzeigen
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 1075, 947, 192, 0)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 1065, 937)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]$1 = FileOpen(@ScriptDir & "/eicar.com", 16)
$2 = FileRead($1)
$2 = StringReplace($2, "0x", "")
GUICtrlSetData($Edit1, $2 & @CRLF & @CRLF)
Anschließend speichert man diesen Code in einer TXT und erstellt bzw. sucht weitere Viren und vergleicht sie.
Irgendwann hat man einen Abteil der immer gleich ist, evntl. aber auch verändern sich einige Zahlen.
Das ist dann die Signatur.
Diese speichert man anschließend in einer TXT (Ich habs mir mal von ClamAV abgeschaut):
HexCode (Zeichen die sich verändern kommen in eine geschweifte Klammer {}):Virusname:MD5Checksum
Hier mal ein kleines Test Script um EICAR zu erkennen. (Ich habe es noch nicht überprüft was passiert wenn man die Datei packt bzw. Cryptet!)
Spoiler anzeigen
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("AutoAV", 1075, 947, 192, 0)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 1065, 937)
GUISetState(@SW_SHOW)
$EICAR = "58354F2150254041505B345C505A58353428505E2937434329377D2445494341522D5354414E444152442D414E544956495255532D544553542D46494C452124482B482A"
[/autoit] [autoit][/autoit] [autoit]$1 = FileOpen(@DesktopDir & "/eicar.rar", 16)
$2 = FileRead($1)
$2 = StringReplace($2, "0x", "")
GUICtrlSetData($Edit1, $2 & " EICAR.rar" & @CRLF & @CRLF)
$3 = GUICtrlRead($Edit1)
$4 = StringReplace($2, $EICAR, " EICARISTHIER ")
;$4 = StringReplace($4, $EICAR, " EICARISTHIER ")
GUICtrlSetData($Edit1, $3 & $4 & " EICAR.exe" & @CRLF & @CRLF)
$1 = FileOpen(@DesktopDir & "/test.rar", 16)
$2 = FileRead($1)
$2 = StringReplace($2, "0x", "")
$3 = GUICtrlRead($Edit1)
GUICtrlSetData($Edit1, $3 & $2 & " EICAR.exe" & @CRLF & @CRLF)
If StringInStr($2, $EICAR) Then
MsgBox(0, "Malicious File Found!", "This file is known as EICAR Test file, Security Level is Low!")
Else
MsgBox(0, "File seems Clean", "This file seems clean you can use it of your own risk!")
EndIf
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Hier habe ich den ganzen HexCode gesucht bei 'richtigen' Viren sollte man natürlich nur einen Teil suchen, was die Geschwindigkeit und Treffgenauigkeit erhöht!!
Nun die Frage:
Wer hätte den Lust an diesem Projekt mitzuarbeiten?
Ich könnte stellen:
Webserver + Domain
Scripten
Signaturen finden
Ihr solltet mitbringen:
Lust
Eine VM sollte vorhanden sein (VirtualBox & Ubuntu reicht! (beides Kostenlos!)) (Um Signaturen zu finden)
Verständniss im Scripten mit Autoit (Um evntl. am Script zu arbeiten) evntl. auch PHP/HTML
Das Script wird OpenSource, d.h. jeder kann das Script sehen und kann es bearbeiten