Scoperto Uroburos, un nuovo software spia dalla Russia ... - [NEWS]

Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Amministratore L'avatar di giampa
    Registrato
    May 2002
    Località
    Pisa
    Età
    59
    Messaggi
    23,859

    Nexthardware Istallazioni militari, agenzie governative e grandi imprese nel mirino dei cyber criminali.




    Solo gli utenti registrati possono leggere l'articolo sul forum. Registrati o effettua il login!


    "Scusate, ma se quest'anno in Texas ci avete spedito questo deficiente, vuol dire che c'è speranza per tutti?"

  2. #2
    Daniele L'avatar di Trattore
    Registrato
    Jul 2011
    Località
    provincia Lecco
    Età
    48
    Messaggi
    9,787
    configurazione

    Predefinito

    Che tristezza


  3. #3
    Nexthardware Staff L'avatar di brugola.x
    Registrato
    Feb 2007
    Località
    1/2 lombardo
    Età
    50
    Messaggi
    18,799
    configurazione

    Predefinito

    tra russi ed americani in realtà non sò chi sia il peggiore.. di certo c'è che trovano sempre una scusa buona per farsi i c@zzi degli altri!
    hanno mezzi, capacità e competenze necessarie per scatenare un pandemonio digitale ma credo e spero che abbiano loro stessi troppo da perderci quindi desistano

  4. #4
    Scassatore L'avatar di j0h89
    Registrato
    Apr 2009
    Età
    34
    Messaggi
    3,444

    Predefinito

    Originariamente inviato da brugola.x
    tra russi ed americani in realtà non sò chi sia il peggiore.. di certo c'è che trovano sempre una scusa buona per farsi i c@zzi degli altri!
    hanno mezzi, capacità e competenze necessarie per scatenare un pandemonio digitale ma credo e spero che abbiano loro stessi troppo da perderci quindi desistano
    Questi sono quelli che si sanno..

  5. #5
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    43
    Messaggi
    23,387
    configurazione

    Predefinito

    Al di là dell'etica, questi malware sono veramente interessanti da studiare. Il livello di complessità le rende delle piccole opere d'arte.

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

  6. #6
    ●⁞◌ Ȏrȉzzȏntέ Ðέglȋ ȨvέntȊ ◌⁞●
    Registrato
    Aug 2008
    Località
    Palermo
    Messaggi
    2,952

    Predefinito

    effettivamente tutta la struttura, a partire dall'ideazione indica chiaramente che a metterci
    le mani è un gruppo all'altezza e ben organizzato.

    Partendo da alcune certezze che G.Data ha riscontrato nelle attività di questo malware e, più
    precisamente nella creazione di una sub-chiave nel registro dal nome "Ultra3" all'interno del HiveKey
    LocalMachine, ho buttato giù qualche riga di codice in VBScript (da inserire in uno script) che
    attivate ne possano verificare l'esistenza.

    Volendo, qualora non venisse rilevato, è anche possibile far rimanere lo script residente in memoria
    (nella sessione corrente) in attesa che quella chiave venga (speriamo di no) creata.

    Per il momento espleta le funzioni di una semplice sentinella; le attività da compiere al momento
    della verifica dell'esistenza di quella particolare chiave di registro, attribuibile a UroBuros, vedrò di
    aggiungerle successivamente (tempo permettendo).

    codice:
    
    
    Option Explicit
    
    
    Public intTotChiavi, arChiavi()
    '/-----
    Dim boolEsisteChiave, boolRisultato, boolErrore
    Dim objRegistro, objDizionario, objChiave
    Dim strComputer, strHive, strPath, strChiave 
    Dim strPathChiave, strValore, strMessaggio, y
    '/--
    boolEsisteChiave    = False
    strComputer            = "."
    strHive                = "HKLM" 
    strPath                = "System\CurrentControlSet\Services" 
    strChiave            = "Ultra3"
    strPathChiave        = strPath  & "\" & strChiave
    strValore            = ""
    '/--
    Set objRegistro        = New clsRegistro
    '/--
    boolRisultato        = objRegistro.Connetti(strComputer)
    '/--
    If boolRisultato Then
    
    
        '/----- enumera le sub-chiavi della chiave madre di quella da
        '/--    ricercare
        boolRisultato = objRegistro.EnumeraChiavi(strHive, strPath)
        '/--
        If boolRisultato Then
    
    
            '/----- imposta l'oggetto della classe necessario all'enumerazione
            Set objDizionario = objRegistro.get_EnumDizionario
            '/--
            strMessaggio = Empty
            ReDim arChiavi(intTotChiavi)
            y = 0
            '/--
            For Each objChiave In objDizionario
    
    
                arChiavi(y) = objChiave
                y = y + 1
                '/--
                If obJChiave = strChiave Then boolEsisteChiave = True
    
    
            Next
        Else
            WScript.Echo "Non esistono sub-chiavi all'interno della chiave."
        End If
        '/-----    
    
    
        If boolEsisteChiave Then 
    
    
            WScript.Echo "La Chiave che " & Chr(232) & " stata ricercata: " & vbCrLf & vbCrLf & _
                strPathChiave & vbCrLf & vbCrLf & Chr(232) & " gi" & Chr(224) & " esistente!"
        Else    
    
    
            If MsgBox("La Chiave che " & Chr(232) & " stata interessata alla ricerca: " & vbCrLf & vbCrLf & _
                strPathChiave & vbCrLf & vbCrLf & "non esiste attualmente all'interno del Registro di Sistema." & VbCrLf & _
                "Rispondendo 'SI' a questa finestra di dialogo, le attivit" & Chr(224) & " dello script permarranno in background, " & _
                "residenti in memoria, sino allo shutdown del sistema." & _
                vbCrLf & vbCrLf & "Si desidera continuare ?", vbYesNo) = vbNo Then 
                Wscript.Quit
    
    
            End If
    
    
        End If
    
    
        If Not boolEsisteChiave Then
    
    
            With objRegistro
    
    
            '/-----                '/-----    crea ed imposta l'oggetto WMI che permetterà la 
            '/--                '/--    creazione della eventuale chiave di recupero
            '/--                boolRisultato = .CreaChiave(strHive, strPathChiave)
            '/--                '/--
            '/--                If boolRisultato Then
            '/--                    WScript.Echo "Chiave correttamente creata."
            '/--                Else
            '/--                    WScript.Echo "Impossibile creare la chiave."
            '/--                End If
            '/-----    
    
    
                Do
                    '/-----    crea ed imposta l'oggetto WMI che permetterà di controllare 
                    '/--    l'esistenza della chiave
                    boolRisultato = .EsisteChiave(strHive, strPath, strChiave)
                    '/--
                    '/-----    verifica l'eventuale creazione della chiave ricercata
                    If boolRisultato Then
                        
                        '/--
                        WScript.Echo "ATTENZIONE !!!" & vbCrLf & vbCrLf & "La Chiave interessata alla ricerca: " & vbCrLf & vbCrLf & _
                            strPathChiave & vbCrLf & vbCrLf & Chr(232) & " stata appena creata."
                        '/--
                        boolEsisteChiave = True
                        '/--
                        Exit Do
    
    
                    End If
                    '/-----
                    Wscript.Sleep 5000
    
    
                Loop
    
    
            '/-----                '/-----    crea ed imposta l'oggetto WMI che permetterà la 
            '/--                '/--    cancellazione della chiave ricercata
            '/--                boolRisultato = .CancellaChiave(strHive, strPathChiave, True)
            '/--                '/--
            '/--                If boolRisultato Then 
            '/--                    WScript.Echo "Chiave correttamente cancellata."
            '/--                Else
            '/--                    WScript.Echo "Impossibile cancellare la chiave."
            '/--                End If
            '/-----    
    
    
            '/--    
            End With
    
    
        End If
    '/--
    End If
    
    
    WScript.Quit
    
    
    
    
    Sub StatusScript ( strMessaggio )
    
    
        '/----- se lo script è stato avviato tramite CSCRIPT, questa procedura 
        '/--    avvia la linea di comando in una shell DOS. Se lo script viene 
        '/--    invece normalmente avviato con WSCRIPT, non utilizzerà alcuna Shell 
        '/--
        If Lcase(Right(Wscript.FullName, 12)) = "\cscript.exe" Then Wscript.Echo strMessaggio
    
    
    End Sub
    
    
    
    
    Class clsRegistro
    
    
            Dim REG_SZ
            Dim REG_EXPAND_SZ
            Dim REG_BINARY
            Dim REG_DWORD
            Dim REG_QWORD
            Dim REG_MULTI_SZ
            Dim REG_RESOURCE_LIST
            Dim REG_FULL_RESOURCE_DESCRIPTOR
            Dim REG_RESOURCE_REQUIREMENTS_LIST
            '/--
            Dim g_TipoRegistro
            Dim g_EnumDizionario
            Dim g_ProviderRegistro
            '/--
    
    
            Private Sub Class_Initialize()
    
    
                REG_SZ                                        = 1
                REG_EXPAND_SZ                                = 2
                REG_BINARY                                    = 3
                REG_DWORD                                    = 4
                REG_MULTI_SZ                                = 7
                REG_RESOURCE_LIST                            = 8
                REG_FULL_RESOURCE_DESCRIPTOR                = 9
                REG_RESOURCE_REQUIREMENTS_LIST                = 10
                REG_QWORD                                    = 11
                '/--
                Set g_TipoRegistro                            = CreateObject("Scripting.Dictionary")
                Set g_EnumDizionario                        = CreateObject("Scripting.Dictionary")
                '/--
                g_TipoRegistro.CompareMode                    = vbTextCompare
                g_EnumDizionario.CompareMode                = vbTextCompare
                '/--
                With g_TipoRegistro
                    .Add "HKCR",                            &H80000000
                    .Add "HKEY_CLASSES_ROOT",                &H80000000
                    .Add "HKCU",                            &H80000001
                    .Add "HKEY_CURRENT_USER",                &H80000001
                    .Add "HKLM",                            &H80000002
                    .Add "HKEY_LOCAL_MACHINE",                &H80000002
                    .Add "HKEY_USERS",                        &H80000003
                    .Add "HKEY_CURRENT_CONFIG",                &H80000005
                    .Add "REG_SZ",                            REG_SZ
                    .Add REG_SZ,                            "REG_SZ"
                    .Add "REG_EXPAND_SZ",                    REG_EXPAND_SZ
                    .Add REG_EXPAND_SZ,                        "REG_EXPAND_SZ"
                    .Add "REG_BINARY",                        REG_BINARY
                    .Add REG_BINARY,                        "REG_BINARY"
                    .Add "REG_DWORD",                        REG_DWORD
                    .Add REG_DWORD,                            "REG_DWORD"
                    .Add "REG_MULTI_SZ",                    REG_MULTI_SZ
                    .Add REG_MULTI_SZ,                        "REG_MULTI_SZ"
                    .Add "REG_QWORD",                        REG_QWORD
                    .Add REG_QWORD,                            "REG_QWORD"
                    .Add "REG_RESOURCE_LIST",                REG_RESOURCE_LIST
                    .Add REG_RESOURCE_LIST,                    "REG_RESOURCE_LIST"
                    .Add "REG_FULL_RESOURCE_DESCRIPTOR",     REG_FULL_RESOURCE_DESCRIPTOR
                    .Add REG_FULL_RESOURCE_DESCRIPTOR,        "REG_FULL_RESOURCE_DESCRIPTOR"
                    .Add "REG_RESOURCE_REQUIREMENTS_LIST",    REG_RESOURCE_REQUIREMENTS_LIST
                    .Add REG_RESOURCE_REQUIREMENTS_LIST,    "REG_RESOURCE_REQUIREMENTS_LIST"
                End With
    
    
            End Sub
    
    
    
    
            '/----- get_EnumDizionario()
            Function get_EnumDizionario ( )
    
    
                Set get_EnumDizionario = g_EnumDizionario
    
    
            End Function
    
    
    
    
            '/----- Connetti()
            Function Connetti ( ByVal NomeComputer )
    
    
                Dim Risultato
                '/--
                Connetti = False
                '/--
                NomeComputer = UCase(Trim(NomeComputer))
                If Left(NomeComputer, 2) = "\\" Then NomeComputer = Mid(NomeComputer, 3)
                '/--
                On Error Resume Next
                '/--
                Set g_ProviderRegistro = GetObject("winmgmts:{impersonationlevel=impersonate}!//" & _ 
                    NomeComputer & "/root/default:StdRegProv")
                '/--
                Risultato = Err.Number
                On Error GoTo 0
                '/--
                If Err.Number <> 0 Then Exit Function
                '/--
                Connetti = True
    
    
            End Function
    
    
    
    
            '/----- Iif()
            Function Iif ( ByVal Condizione, ByVal ValoreVero, ByVal ValoreFalso )
    
    
                If Condizione Then Iif = ValoreVero Else Iif = ValoreFalso
    
    
            End Function
    
    
    
    
            '/----- CancellaChiave()
            Function CancellaChiave ( ByVal NomeHive, ByVal NomeSubChiave, ByVal CancellaSubChiavi )
    
    
                Dim Risultato, strSubChiaveRegistro
                Dim strChiaveRegistro, NomiChiavi, x
                '/--
                CancellaChiave = False
                '/--
                x = InStrRev(NomeSubChiave, "\")
                If x = 0 Then Exit Function
                '/--
                strSubChiaveRegistro = Left(NomeSubChiave, x - 1)
                strChiaveRegistro = Right(NomeSubChiave, Len(NomeSubChiave) - x)
                '/--
                If Not EsisteChiave(NomeHive, strSubChiaveRegistro, strChiaveRegistro) Then
    
    
                    CancellaChiave = True
                    '/--
                    Exit Function
    
    
                End If
                '/--
                If CancellaSubChiavi Then
    
    
                    Risultato = g_ProviderRegistro.EnumKey(g_TipoRegistro(NomeHive), NomeSubChiave, NomiChiavi)
    
    
                    If (Risultato = 0) And (Not IsNull(NomiChiavi)) Then
    
    
                        For x = 0 To UBound(NomiChiavi)
                            
                            CancellaChiave = CancellaChiave(NomeHive, _
                                  NomeSubChiave & "\" & NomiChiavi(x), CancellaSubChiavi)
                            If CancellaChiave <> 0 Then Exit Function
    
    
                        Next
    
    
                    End If
    
    
                End If
                '/--
                Risultato = g_ProviderRegistro.CancellaChiave(g_TipoRegistro(NomeHive), NomeSubChiave)
                '/--
                If Risultato <> 0 Then Exit Function
                '/--
                CancellaChiave = True
    
    
            End Function
    
    
    
    
            '/----- EsisteChiave()
            Function EsisteChiave ( ByVal NomeHive, ByVal NomeSubChiave, ByVal NomeChiave )
    
    
                Dim Esiste, Risultato
                Dim NomiChiavi, x
                '/--
                Esiste = False
                '/--
                Risultato = g_ProviderRegistro.EnumKey(g_TipoRegistro(NomeHive), NomeSubChiave, NomiChiavi)
                '/--
                If (Risultato = 0) And (Not IsNull(NomiChiavi)) Then
    
    
                    For x = 0 To UBound(NomiChiavi)
    
    
                        Esiste = UCase(NomeChiave) = UCase(NomiChiavi(x))
                        If Esiste Then Exit For
    
    
                    Next
    
    
                End If
                '/--
                EsisteChiave = Esiste
    
    
            End Function
    
    
    
    
            '/----- EnumeraChiavi()
            Function EnumeraChiavi ( ByVal NomeHive, ByVal NomeSubChiave )
    
    
                Dim Risultato, NomiChiavi, x
                '/--
                EnumeraChiavi = False
                '/--
                Risultato = g_ProviderRegistro.EnumKey(g_TipoRegistro(NomeHive), NomeSubChiave, NomiChiavi)
                '/--
                g_EnumDizionario.RemoveAll
                '/--
                If (Risultato = 0) And (Not IsNull(NomiChiavi)) Then
    
    
                    For x = 0 To UBound(NomiChiavi)
    
    
                        g_EnumDizionario.Add NomiChiavi(x), ""
    
    
                    Next
    
    
                End If
                '/--
                If (Risultato = 0) And (Not IsNull(NomiChiavi)) Then EnumeraChiavi = True
                '/--
                intTotChiavi = UBound(NomiChiavi)
    
    
            End Function
    
    
    End Class

    Per attivare il codice (dovrebbe funzionare con tutte le versioni di Windows a partire dalla 98) bisogna
    inserirlo in un file (il nome può essere qualunque, ovviamente valido) dandogli l'estensione .VBS e
    semplicemente avviarlo.

  7. #7
    Nexthardware Staff L'avatar di brugola.x
    Registrato
    Feb 2007
    Località
    1/2 lombardo
    Età
    50
    Messaggi
    18,799
    configurazione

    Predefinito

    grazie Totocellux

  8. #8
    Daniele L'avatar di Trattore
    Registrato
    Jul 2011
    Località
    provincia Lecco
    Età
    48
    Messaggi
    9,787
    configurazione

    Predefinito

    A mio modesto avviso temo che spesso anche chi li crea ne perda il controllo, ad esempio attraverso versioni scartate che poi passano di mano in mano in modo incontrollato


  9. #9
    Nexthardware Staff L'avatar di brugola.x
    Registrato
    Feb 2007
    Località
    1/2 lombardo
    Età
    50
    Messaggi
    18,799
    configurazione

    Predefinito

    rispetto a qualche anno fà ora come ora c'è anche molta più gente che è in grado di farlo, vuoi per hobby vuoi molto più probabilmente perchè hanno studiato, il numero di persone con le competenze necessarie a gestirli è cresciuto e nei prossimi anni lo farà ancora.
    non solo, anche la "popolazione" potenzialmente esposta agli attacchi cresce di pari passo, sempre più gente ha internet in casa e ancora di più ha modo di collegarsi quasi h24 tramite i dispositivi mobili come smartphone o tablet.

  10. #10
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    43
    Messaggi
    23,387
    configurazione

    Predefinito

    Come dice l'articolo, non siamo di fronte ad uno strumento nato per spiare un "John Doe" qualunque... Questa è roba che serve per operazioni di intelligence, mi viene davvero difficile credere che possa "scappare di mano" per sbaglio.
    Il fatto stesso che il sistema non colpisca sistemi già infettati da un malware "imparentato" ma già noto e scoperto è segno della grande attenzione volta a mantenerlo stealth... Probabilmente il malware stesso è già stato "abbandonato" da chi lo controlla in favore di un più recente derivato.

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Tags

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022