Me engañaron en Facebook para que descargara un script confuso

92

Recibí una notificación en Facebook: " (un amigo mío) te mencioné en un comentario". Sin embargo, cuando hice clic en él, Firefox intentó descargar el siguiente archivo:

comment_24016875.jse

Este es un script confuso que parece descargar un ejecutable ( autoit.exe ) y ejecutarlo.

Esta es la parte que logré deofuscar:

['Msxml2.XMLhttp', 'onreadystatechange', 'readyState', 'status', 'ADODB.Stream', 'open',
 'type', 'write', 'position', 'read', 'saveToFile', 'close', 'GET', 'send',
 'Scripting.FileSystemObject', 'WScript.Shell', 'Shell.Application', '%APPDATA%\',
 'ExpandEnvironmentStrings', 'Mozila', 'https://www.google.com',
 'http://userexperiencestatics.net/ext/Autoit.jpg',   '\autoit.exe',
 'http://userexperiencestatics.net/ext/bg.jpg',       '\bg.js',
 'http://userexperiencestatics.net/ext/ekl.jpg',      '\ekl.au3',
 'http://userexperiencestatics.net/ext/ff.jpg',       '\ff.zip',
 'http://userexperiencestatics.net/ext/force.jpg',    '\force.au3',
 'http://userexperiencestatics.net/ext/sabit.jpg',    '\sabit.au3',
 'http://userexperiencestatics.net/ext/manifest.jpg', '\manifest.json',
 'http://userexperiencestatics.net/ext/run.jpg',      '\run.bat',
 'http://userexperiencestatics.net/ext/up.jpg',       '\up.au3',
 'http://whos.amung.us/pingjs/?k=pingjse346',         '\ping.js',
 'http://whos.amung.us/pingjs/?k=pingjse3462',        '\ping2.js', '']

¿Es esto un exploit en Facebook? ¿Es posible que mi amigo haya contraído un virus que ataca a sus contactos etiquetándolos en enlaces maliciosos? ¿Debo informar de esto a Facebook? Si es así, ¿cómo?

    
pregunta Nacib Neme 25.06.2016 - 16:07
fuente

4 respuestas

105

Este es un malware de JavaScript ofuscado típico que se dirige al Windows Script Host para descargar el resto de la carga útil. En este caso, descarga lo que parece ser principalmente una extensión de Chrome ( manifest.json y bg.js ), el ejecutable de Windows de autoit, y algunos scripts de autoit que los instalan. Todos estos archivos se nombran con extensiones .jpg en el servidor (probablemente comprometido) en el que están alojados, para que sean menos visibles.

El malware parece estar parcialmente incompleto o subdesarrollado o quizás esté basado en algún otro malware (la calidad es muy baja). Muchos de los scripts de autoit en realidad no hacen nada, y lo que parece ser un ZIP destinado a contener una extensión de Firefox está realmente vacío. Los scripts de autoit son una tonelada de incluye combinados en un solo archivo, pero solo uno (ekl) en realidad tiene una carga útil al final.

El único script de autoit activo que se ejecuta en la infección reemplaza a Chrome, IE y posiblemente a otros accesos directos del navegador con un acceso directo a Chrome con los argumentos necesarios para ejecutar la extensión maliciosa de Chrome.

La extensión de Chrome es principalmente la forma en que se propaga este malware. Hace cosas desagradables como la lista negra de dominios de software antivirus y el envío automático de mensajes de Facebook. En realidad, hubo un back-end del servicio web en http://appcdn.co/datajs que sirve algunos scripts que se inyectarían en cualquier página que un usuario visite en función de la URL que se está viendo en ese momento, y así fue como se publicaron los mensajes de Facebook. Este servicio ahora está fuera de línea, probablemente deshabilitado.

  

¿Esto es un exploit en Facebook?

No exactamente, más como abuso de Facebook. El código de Facebook no ha sido explotado, su amigo solo tiene un navegador infectado que phishing a sus contactos en su nombre.

  

¿Es posible que mi amigo haya contraído un virus que ataca a sus contactos al etiquetarlos en enlaces maliciosos?

Sí, así es exactamente como este malware se está propagando.

  

¿Debo informar esto a Facebook? Si es así, ¿cómo?

Sí, consulte Cómo informar cosas en el centro de ayuda de Facebook.

También sería bueno conseguir que las siguientes URL se desconecten al contactar a sus hosts.

http://userexperiencestatics.net/ext/Autoit.jpg
http://userexperiencestatics.net/ext/bg.jpg
http://userexperiencestatics.net/ext/ekl.jpg
http://userexperiencestatics.net/ext/ff.jpg
http://userexperiencestatics.net/ext/force.jpg
http://userexperiencestatics.net/ext/sabit.jpg
http://userexperiencestatics.net/ext/manifest.jpg
http://userexperiencestatics.net/ext/run.jpg
http://userexperiencestatics.net/ext/up.jpg
http://whos.amung.us/pingjs/?k=pingjse346
http://whos.amung.us/pingjs/?k=pingjse3462
http://appcdn.co/datajs

Desafortunadamente, CloudFlare aún no ha eliminado el userexperiencestatics.net de URL, aunque contacté poco después de publicar esta respuesta, y no sé quién está alojando estos archivos. CloudFlare me acaba de enviar un correo electrónico para decir que restringieron el acceso a los archivos y que notificarán al host.

ACTUALIZAR :

Después de que yo y otros probablemente informaron la URL .jse a Google, parece que han eliminado el archivo. Si encuentra más copias, éstas también deben ser reportadas. Parece que las personas han estado recibiendo los archivos de numerosas fuentes.

MÁS INFORMACIÓN:

Este malware y esta publicación están recibiendo mucha atención, así que agregaré más información para responder a las preguntas de la gente:

  

¿Este archivo se ejecutará automáticamente cuando se descargue?

Probablemente no, a menos que haya configurado su navegador para hacerlo. Está destinado a engañarte para que lo abras.

  

Puede infectar mi teléfono o una computadora que no sea Windows.

Por lo que sé, Windows es el único sistema operativo que puede ejecutar este malware. Como he mencionado, utiliza el Windows Script Host. No creo que ni siquiera Windows Phone sea vulnerable, aunque no sé mucho sobre Windows Phone.

ACTUALIZACIÓN EN RANSOMWARE:

Anteriormente, se asumía que los scripts de autoit contenían ransomware, sin embargo, después de una inspección adicional, este parece no ser el caso. Solo hay un montón de funciones criptográficas no utilizadas que ocultan la carga útil real , que en su mayoría tengo desofuscado en esto .

ACTUALIZACIÓN SOBRE LA EXTENSIÓN CROMADA:

El código de extensión de Chrome desempaquetado se puede ver aquí . Detalles sobre lo que hizo integrado arriba.

ACTUALIZACIÓN PARA JSE SCRIPT:

Mi script comment_24016875.jse desenfocado se puede ver aquí .

    
respondido por el Alexander O'Mara 25.06.2016 - 19:07
fuente
29

No tengo tiempo para aplicar ingeniería inversa completa a lo que hace este script, pero parece que está vinculado a varios archivos .jpg que en realidad no son imágenes sino texto, y luego hace referencia a algunos archivos .au3 , lo que sugiere que en realidad guarda esos archivos .jpg bajo esa extensión.

Esos archivos .au3 parecen coincidir con la extensión de archivo de AutoIt y, de hecho, parecen scripts válidos de AutoIt. Aquí hay una parte de uno, el ekl.jpg :

Func _crypt_startup()
    If __crypt_refcount() = 0 Then
        Local $hadvapi32 = DllOpen("Advapi32.dll")
        If $hadvapi32 = -1 Then Return SetError(1, 0, False)
        __crypt_dllhandleset($hadvapi32)
        Local $iproviderid = $prov_rsa_aes
        Local $aret = DllCall(__crypt_dllhandle(), "bool", "CryptAcquireContext", "handle*", 0, "ptr", 0, "ptr", 0, "dword", $iproviderid, "dword", $crypt_verifycontext)
        If @error OR NOT $aret[0] Then
            Local $ierror = @error + 10, $iextended = @extended
            DllClose(__crypt_dllhandle())
            Return SetError($ierror, $iextended, False)
        Else
            __crypt_contextset($aret[1])
        EndIf
    EndIf
    __crypt_refcountinc()
    Return True
EndFunc

Func _crypt_shutdown()
    __crypt_refcountdec()
    If __crypt_refcount() = 0 Then
        DllCall(__crypt_dllhandle(), "bool", "CryptReleaseContext", "handle", __crypt_context(), "dword", 0)
        DllClose(__crypt_dllhandle())
    EndIf
EndFunc

Func _crypt_derivekey($vpassword, $ialg_id, $ihash_alg_id = $calg_md5)
    Local $aret = 0, $hbuff = 0, $hcrypthash = 0, $ierror = 0, $iextended = 0, $vreturn = 0
    _crypt_startup()
    Do
        $aret = DllCall(__crypt_dllhandle(), "bool", "CryptCreateHash", "handle", __crypt_context(), "uint", $ihash_alg_id, "ptr", 0, "dword", 0, "handle*", 0)
        If @error OR NOT $aret[0] Then
            $ierror = @error + 10
            $iextended = @extended
            $vreturn = -1
            ExitLoop
        EndIf
        $hcrypthash = $aret[5]
        $hbuff = DllStructCreate("byte[" & BinaryLen($vpassword) & "]")
        DllStructSetData($hbuff, 1, $vpassword)
        $aret = DllCall(__crypt_dllhandle(), "bool", "CryptHashData", "handle", $hcrypthash, "struct*", $hbuff, "dword", DllStructGetSize($hbuff), "dword", $crypt_userdata)
        If @error OR NOT $aret[0] Then
            $ierror = @error + 20
            $iextended = @extended
            $vreturn = -1
            ExitLoop
        EndIf
        $aret = DllCall(__crypt_dllhandle(), "bool", "CryptDeriveKey", "handle", __crypt_context(), "uint", $ialg_id, "handle", $hcrypthash, "dword", $crypt_exportable, "handle*", 0)
        If @error OR NOT $aret[0] Then
            $ierror = @error + 30
            $iextended = @extended
            $vreturn = -1
            ExitLoop
        EndIf
        $vreturn = $aret[5]
    Until True
    If $hcrypthash <> 0 Then DllCall(__crypt_dllhandle(), "bool", "CryptDestroyHash", "handle", $hcrypthash)
    Return SetError($ierror, $iextended, $vreturn)
EndFunc

Func _crypt_destroykey($hcryptkey)
    Local $aret = DllCall(__crypt_dllhandle(), "bool", "CryptDestroyKey", "handle", $hcryptkey)
    Local $ierror = @error, $iextended = @extended
    _crypt_shutdown()
    If $ierror OR NOT $aret[0] Then
        Return SetError($ierror + 10, $iextended, False)
    Else
        Return True
    EndIf
EndFunc

Func _crypt_encryptdata($vdata, $vcryptkey, $ialg_id, $bfinal = True)
    Local $ireqbuffsize = 0, $aret = 0, $hbuff = 0, $ierror = 0, $iextended = 0, $vreturn = 0
    _crypt_startup()
    Do
        If $ialg_id <> $calg_userkey Then
            $vcryptkey = _crypt_derivekey($vcryptkey, $ialg_id)
            If @error Then
                $ierror = @error + 100
                $iextended = @extended
                $vreturn = -1
                ExitLoop
            EndIf
        EndIf
        $aret = DllCall(__crypt_dllhandle(), "bool", "CryptEncrypt", "handle", $vcryptkey, "handle", 0, "bool", $bfinal, "dword", 0, "ptr", 0, "dword*", BinaryLen($vdata), "dword", 0)
        If @error OR NOT $aret[0] Then
            $ierror = @error + 20
            $iextended = @extended
            $vreturn = -1
            ExitLoop
        EndIf
        $ireqbuffsize = $aret[6]
        $hbuff = DllStructCreate("byte[" & $ireqbuffsize & "]")
        DllStructSetData($hbuff, 1, $vdata)
        $aret = DllCall(__crypt_dllhandle(), "bool", "CryptEncrypt", "handle", $vcryptkey, "handle", 0, "bool", $bfinal, "dword", 0, "struct*", $hbuff, "dword*", BinaryLen($vdata), "dword", DllStructGetSize($hbuff))
        If @error OR NOT $aret[0] Then
            $ierror = @error + 30
            $iextended = @extended
            $vreturn = -1
            ExitLoop
        EndIf
        $vreturn = DllStructGetData($hbuff, 1)
    Until True
    If $ialg_id <> $calg_userkey Then _crypt_destroykey($vcryptkey)
    _crypt_shutdown()
    Return SetError($ierror, $iextended, $vreturn)
EndFunc

Func _crypt_decryptdata($vdata, $vcryptkey, $ialg_id, $bfinal = True)
    Local $aret = 0, $hbuff = 0, $htempstruct = 0, $ierror = 0, $iextended = 0, $iplaintextsize = 0, $vreturn = 0
    _crypt_startup()
    Do
        If $ialg_id <> $calg_userkey Then
            $vcryptkey = _crypt_derivekey($vcryptkey, $ialg_id)
            If @error Then
                $ierror = @error + 100
                $iextended = @extended
                $vreturn = -1
                ExitLoop
            EndIf
        EndIf
        $hbuff = DllStructCreate("byte[" & BinaryLen($vdata) + 1000 & "]")
        DllStructSetData($hbuff, 1, $vdata)
        $aret = DllCall(__crypt_dllhandle(), "bool", "CryptDecrypt", "handle", $vcryptkey, "handle", 0, "bool", $bfinal, "dword", 0, "struct*", $hbuff, "dword*", BinaryLen($vdata))
        If @error OR NOT $aret[0] Then
            $ierror = @error + 20
            $iextended = @extended
            $vreturn = -1
            ExitLoop
        EndIf
        $iplaintextsize = $aret[6]
        $htempstruct = DllStructCreate("byte[" & $iplaintextsize & "]", DllStructGetPtr($hbuff))
        $vreturn = DllStructGetData($htempstruct, 1)
    Until True
    If $ialg_id <> $calg_userkey Then _crypt_destroykey($vcryptkey)
    _crypt_shutdown()
    Return SetError($ierror, $iextended, $vreturn)
EndFunc

Func _crypt_hashdata($vdata, $ialg_id, $bfinal = True, $hcrypthash = 0)
    Local $aret = 0, $hbuff = 0, $ierror = 0, $iextended = 0, $ihashsize = 0, $vreturn = 0
    _crypt_startup()
    Do
        If $hcrypthash = 0 Then
            $aret = DllCall(__crypt_dllhandle(), "bool", "CryptCreateHash", "handle", __crypt_context(), "uint", $ialg_id, "ptr", 0, "dword", 0, "handle*", 0)
            If @error OR NOT $aret[0] Then
                $ierror = @error + 10
                $iextended = @extended
                $vreturn = -1
                ExitLoop
            EndIf
            $hcrypthash = $aret[5]
        EndIf
        $hbuff = DllStructCreate("byte[" & BinaryLen($vdata) & "]")
        DllStructSetData($hbuff, 1, $vdata)
        $aret = DllCall(__crypt_dllhandle(), "bool", "CryptHashData", "handle", $hcrypthash, "struct*", $hbuff, "dword", DllStructGetSize($hbuff), "dword", $crypt_userdata)
        If @error OR NOT $aret[0] Then
            $ierror = @error + 20
            $iextended = @extended
            $vreturn = -1
            ExitLoop
        EndIf
        If $bfinal Then
            $aret = DllCall(__crypt_dllhandle(), "bool", "CryptGetHashParam", "handle", $hcrypthash, "dword", $hp_hashsize, "dword*", 0, "dword*", 4, "dword", 0)
            If @error OR NOT $aret[0] Then
                $ierror = @error + 30
                $iextended = @extended
                $vreturn = -1
                ExitLoop
            EndIf
            $ihashsize = $aret[3]
            $hbuff = DllStructCreate("byte[" & $ihashsize & "]")
            $aret = DllCall(__crypt_dllhandle(), "bool", "CryptGetHashParam", "handle", $hcrypthash, "dword", $hp_hashval, "struct*", $hbuff, "dword*", DllStructGetSize($hbuff), "dword", 0)
            If @error OR NOT $aret[0] Then
                $ierror = @error + 40
                $iextended = @extended
                $vreturn = -1
                ExitLoop
            EndIf
            $vreturn = DllStructGetData($hbuff, 1)
        Else
            $vreturn = $hcrypthash
        EndIf
    Until True
    If $hcrypthash <> 0 AND $bfinal Then DllCall(__crypt_dllhandle(), "bool", "CryptDestroyHash", "handle", $hcrypthash)
    _crypt_shutdown()
    Return SetError($ierror, $iextended, $vreturn)
EndFunc

Func _crypt_hashfile($sfile, $ialg_id)
    Local $btempdata = 0, $hfile = 0, $hhashobject = 0, $ierror = 0, $iextended = 0, $vreturn = 0
    _crypt_startup()
    Do
        $hfile = FileOpen($sfile, $fo_binary)
        If $hfile = -1 Then
            $ierror = 1
            $vreturn = -1
            ExitLoop
        EndIf
        Do
            $btempdata = FileRead($hfile, 512 * 1024)
            If @error Then
                $vreturn = _crypt_hashdata($btempdata, $ialg_id, True, $hhashobject)
                If @error Then
                    $ierror = @error
                    $iextended = @extended
                    $vreturn = -1
                    ExitLoop 2
                EndIf
                ExitLoop 2
            Else
                $hhashobject = _crypt_hashdata($btempdata, $ialg_id, False, $hhashobject)
                If @error Then
                    $ierror = @error + 100
                    $iextended = @extended
                    $vreturn = -1
                    ExitLoop 2
                EndIf
            EndIf
        Until False
    Until True
    _crypt_shutdown()
    If $hfile <> -1 Then FileClose($hfile)
    Return SetError($ierror, $iextended, $vreturn)
EndFunc

Func _crypt_encryptfile($ssourcefile, $sdestinationfile, $vcryptkey, $ialg_id)
    Local $btempdata = 0, $hinfile = 0, $houtfile = 0, $ierror = 0, $iextended = 0, $ifilesize = FileGetSize($ssourcefile), $iread = 0, $breturn = True
    _crypt_startup()
    Do
        If $ialg_id <> $calg_userkey Then
            $vcryptkey = _crypt_derivekey($vcryptkey, $ialg_id)
            If @error Then
                $ierror = @error
                $iextended = @extended
                $breturn = False
                ExitLoop
            EndIf
        EndIf
        $hinfile = FileOpen($ssourcefile, $fo_binary)
        If @error Then
            $ierror = 2
            $breturn = False
            ExitLoop
        EndIf
        $houtfile = FileOpen($sdestinationfile, $fo_overwrite + $fo_createpath + $fo_binary)
        If @error Then
            $ierror = 3
            $breturn = False
            ExitLoop
        EndIf
        Do
            $btempdata = FileRead($hinfile, 1024 * 1024)
            $iread += BinaryLen($btempdata)
            If $iread = $ifilesize Then
                $btempdata = _crypt_encryptdata($btempdata, $vcryptkey, $calg_userkey, True)
                If @error Then
                    $ierror = @error + 400
                    $iextended = @extended
                    $breturn = False
                EndIf
                FileWrite($houtfile, $btempdata)
                ExitLoop 2
            Else
                $btempdata = _crypt_encryptdata($btempdata, $vcryptkey, $calg_userkey, False)
                If @error Then
                    $ierror = @error + 500
                    $iextended = @extended
                    $breturn = False
                    ExitLoop 2
                EndIf
                FileWrite($houtfile, $btempdata)
            EndIf
        Until False
    Until True
    If $ialg_id <> $calg_userkey Then _crypt_destroykey($vcryptkey)
    _crypt_shutdown()
    If $hinfile <> -1 Then FileClose($hinfile)
    If $houtfile <> -1 Then FileClose($houtfile)
    Return SetError($ierror, $iextended, $breturn)
EndFunc

Func _crypt_decryptfile($ssourcefile, $sdestinationfile, $vcryptkey, $ialg_id)
    Local $btempdata = 0, $hinfile = 0, $houtfile = 0, $ierror = 0, $iextended = 0, $ifilesize = FileGetSize($ssourcefile), $iread = 0, $breturn = True
    _crypt_startup()
    Do
        If $ialg_id <> $calg_userkey Then
            $vcryptkey = _crypt_derivekey($vcryptkey, $ialg_id)
            If @error Then
                $ierror = @error
                $iextended = @extended
                $breturn = False
                ExitLoop
            EndIf
        EndIf
        $hinfile = FileOpen($ssourcefile, $fo_binary)
        If @error Then
            $ierror = 2
            $breturn = False
            ExitLoop
        EndIf
        $houtfile = FileOpen($sdestinationfile, $fo_overwrite + $fo_createpath + $fo_binary)
        If @error Then
            $ierror = 3
            $breturn = False
            ExitLoop
        EndIf
        Do
            $btempdata = FileRead($hinfile, 1024 * 1024)
            $iread += BinaryLen($btempdata)
            If $iread = $ifilesize Then
                $btempdata = _crypt_decryptdata($btempdata, $vcryptkey, $calg_userkey, True)
                If @error Then
                    $ierror = @error + 400
                    $iextended = @extended
                    $breturn = False
                EndIf
                FileWrite($houtfile, $btempdata)
                ExitLoop 2
            Else
                $btempdata = _crypt_decryptdata($btempdata, $vcryptkey, $calg_userkey, False)
                If @error Then
                    $ierror = @error + 500
                    $iextended = @extended
                    $breturn = False
                    ExitLoop 2
                EndIf
                FileWrite($houtfile, $btempdata)
            EndIf
        Until False
    Until True
    If $ialg_id <> $calg_userkey Then _crypt_destroykey($vcryptkey)
    _crypt_shutdown()
    If $hinfile <> -1 Then FileClose($hinfile)
    If $houtfile <> -1 Then FileClose($houtfile)
    Return SetError($ierror, $iextended, $breturn)
EndFunc

Func _crypt_genrandom($pbuffer, $isize)
    _crypt_startup()
    Local $aret = DllCall(__crypt_dllhandle(), "bool", "CryptGenRandom", "handle", __crypt_context(), "dword", $isize, "struct*", $pbuffer)
    Local $ierror = @error + 10, $iextended = @extended
    _crypt_shutdown()
    If $ierror OR (NOT $aret[0]) Then
        Return SetError($ierror, $iextended, False)
    Else
        Return True
    EndIf
EndFunc

Func __crypt_refcount()
    Return $__g_acryptinternaldata[0]
EndFunc

Func __crypt_refcountinc()
    $__g_acryptinternaldata[0] += 1
EndFunc

Func __crypt_refcountdec()
    If $__g_acryptinternaldata[0] > 0 Then $__g_acryptinternaldata[0] -= 1
EndFunc

Func __crypt_dllhandle()
    Return $__g_acryptinternaldata[1]
EndFunc

Func __crypt_dllhandleset($hadvapi32)
    $__g_acryptinternaldata[1] = $hadvapi32
EndFunc

Func __crypt_context()
    Return $__g_acryptinternaldata[2]
EndFunc

Func __crypt_contextset($hcryptcontext)
    $__g_acryptinternaldata[2] = $hcryptcontext
EndFunc

Como puede ver, hay un código relacionado con criptografía que sugiere que se trata de un ransomware (bastante malo y aficionado). Siéntase libre de hacer ingeniería inversa de todo lo demás.

    
respondido por el André Borie 25.06.2016 - 17:59
fuente
15

Por lo que parece, un actor malintencionado aprovecha lo que se conoce como una vulnerabilidad de entidad externa XML ( XXE ) y luego una falsificación de solicitud del lado del servidor (SSRF).

Los servidores de Facebook fueron engañados para vincular un archivo XML malicioso de otro dominio, procesarlo y entregarlo a usted. Aquí está la XXE cheat sheet y truco de la biblia de la SSRF t, si te interesa, puedes averiguarlo.

Piénsalo ... tu script confuso tenía lo siguiente (método msxml2.XMLhttp y declaró que venía de google).

Específicamente, usó " el objeto ADODB.Stream para enviar archivos binarios al navegador a través de ASP . "

En resumen, sí, aprovechó una XXE (a través de asp escribiendo un documento xml) y la falsificó (SSRF) indicando que venía de google.

    
respondido por el grepNstepN 25.06.2016 - 21:44
fuente
10
  

¿Esto es un exploit en Facebook?

Lo más probable. Los inescrupulosos siempre están tratando de encontrar formas de acceder a cuentas bancarias, contraseñas, listas de amigos y cualquier otra cosa que puedan hacer para ganar dinero.

  

¿Es posible que mi amigo haya contraído un virus que ataca a sus contactos al etiquetarlos en enlaces maliciosos?

No hay razón para pensar lo contrario. La mayoría de los usuarios de computadoras ni siquiera saben qué es un virus, cómo "atrapar" un virus o qué hacer una vez que se han infectado. Si fuera yo, rastrearía al amigo, le enviaría un enlace a un programa antivirus y le ofrecería ayuda. Por supuesto, dependiendo de tus amigos, puede que no seas tan amable, pero creo firmemente que debo ayudar a la humanidad lo mejor que pueda.

  

¿Debo informar esto a Facebook?

Definitivamente. No pondrá a su amigo en problemas, pero puede ayudarles a rastrear las acciones y, en última instancia, reducir la cantidad de personas afectadas por este virus / malware / estafa.

  

Si es así, ¿cómo?

Vaya a la publicación original, haga clic en la opción para marcar la publicación y siga el asistente. Se le notificará si toman medidas, creo.

Una nota final: Microsoft ya parece estar al tanto de este archivo; cuando intenté descargarlo en IE Edge, recibí una advertencia de que el archivo era peligroso y no se pudo guardar. Probablemente, cualquier persona que use SmartScreen estará a salvo, y este virus no parece estar dirigido a sistemas que no sean de Microsoft. Lo más probable es que la mayoría de tus amigos y familiares menos inteligentes estén bien, a menos que aún estén ejecutando XP, en cuyo caso deberías sugerir que se actualicen a al menos 7.

    
respondido por el phyrfox 25.06.2016 - 17:24
fuente

Lea otras preguntas en las etiquetas