|
101
|
Seguridad Informática / Análisis y Diseño de Malware / Re: [Duda C/C++] Copiarse al registro, inutilizarlo, desactivar el firewall...
|
en: 17 Junio 2012, 19:02 pm
|
Bueno no te dire como hacerlo pero si te dare las llaves del registro para hacerlo. Bueno ya busque la del registro no buscare mas ya que veo que no buscaste nada, puse deshabilitar registro en google y salio. Lo que tienes que hacer es buscar en google las llaves y los valores y apare buscar ejemplos de edicion del registro qu debe haber miles... -Deshabilitar/habilitar el registro Llave: HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/system
Valor en la llave : "DisableRegistryTools" Tipo de valor: DWORD Valor que toma para deshabilitar = 1 Valor que toma para habilitar = 0 - Tambien se habilita al eliminar el valor
|
|
|
102
|
Programación / Programación C/C++ / Re: Ideas para combinaciones?
|
en: 17 Junio 2012, 10:36 am
|
Bueno te puedo dar un par de ideas que en cuestion deberian dejarte hacer tu algoritmo, el numero de permutaciones (lo que tu buscas son permutaciones no combinaciones ya que importa el orden) posibles viene dado por la expresion: numPermutaciones = numElecciones^numDigitos y en tu caso ya que el numero de elecciones no es variable (4 y 7) siempre es 2: numPermutaciones = 2^numDigitos Entonces ya tienes el numero de permutaciones posibles, lo suyo seria crear un array de tipo string (en cpp nose como se le llamara ya que soy soy un negado) del tamaño de numero de permutaciones y ir rellenandolo de la siguiente forma, mitad de 7s y mitad de 4s, despues la mitad de la mitad de los que habias rellenado con 7s los rellenas con 4s ya la otra mitad de la mitad de los rellenados con 7s los rellenas de 7s. Y asi continuamente hasta tener rellenios todos, espero que la idea te ayude. No te puedo ayudar con ejemplo ya que soy un negado en cpp
|
|
|
103
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Creando editor de servidor VB6
|
en: 14 Junio 2012, 14:45 pm
|
Si con este metodo se podria hacer directamente con el servidor de nuestro troyano, la verdad tengo que mirar lo de los archivos de recursos porque aun no lo vi. Este metodo limita el tamaño de los datos pero puedes ponerle si quieres poner una ip bastates mas caracteres. Ademas mw parecio un buen metodo en comparacion con el tipico que se da en los manuales de escribir al final del servidor, aunque este ultimo no limita la cantidad de caracteres.
|
|
|
104
|
Seguridad Informática / Análisis y Diseño de Malware / Creando editor de servidor VB6
|
en: 13 Junio 2012, 22:27 pm
|
Bueno lo que es es un editor de servidor en vb6 pero que no necesita llevar codigo en stub, no lo he visto nunca nose si ya estara inventado pero bueno me surgio la idea y me puse a ello. No sabia muy bien si publicarlo aqui o en vb6, pero como me parece que es mas orientado a malware lo de editor de servidor y eso pues bueno, lo pongo aqui Bueno se trata de hacer constantes en el stub y despues modificar los offset en los que estan escritas estas, las constantes deben ser del tamaño maximo que se introduzca desde el servidor, si una constante solo tiene una longitud para un caracter no puedes ponerle dos... Bueno vamos a ello FORMULARIO STUB '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&' ' EN EL FORMULARIO ' '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&' Option Explicit Private Sub Form_Load() MsgBox variableA 'Comprobamos que las constantes MsgBox variableB 'han sido modificadas End Sub '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&' ' EN UN MODULO LLAMADO mVariablesEdicion ' '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&' Option Explicit Public Const variableA As String = " " 'CONSTANTE DE 10 CARACTERES Public Const variableB As String = " " 'CONSTANTE DE 10 CARACTERES
Guardamos y lo compilamos. Ahora nos toca irnos a un editor hexadecimal para buscar los offset donde estan escritas las constantes, yo lo hare con WinHex. Abrimos nuestro Stub ya compilado y le damos a buscar texto, buscamos mVariablesEdicion para encontrar donde esta nuestro modulo. Nos pondra en puntero nuestro modulo y abajo veremos ya nuestras constantes, estas estan escritas de forma que se escribe un caracter y entre medias del siguiente un caracter nulo (00), seleccionamos el primer caracter de nuestra constante y abajo nos aparecera el offset en el que esta, apuntamos el offset , hacemos esto con las dos constates. Vale ya tenemos los dos offsets: variableA = 17E0 -- EN DECIMAL --> 6112 -- PARA ESCRIBIR LA CADENA --> 6113 variableB = 17FC -- EN DECIMAL --> 6140 -- PARA ESCRIBIR LA CADENA --> 6141 Ahora para escribir en el exe al offset se le aumenta un numero ya que los offset empiezan por 0 y en las cadenas el primer puntero es 1. La longitud de las constantes YA COMPILADAS es de 20 (nuestros 10 caracteres + 10 caracteres nulos (0)). Asique vamos con editor Option Explicit Private Sub Form_Load() Dim strTemp As String Open App.Path & "\Stub.exe" For Binary As #1 'Abrimos el stub strTemp = Space$(LOF(1)) 'Creamos un buffer con su tamaño Get #1, , strTemp 'Obtenemos todo el stub en strTemp Close #1 'Cerramos el stub Kill (App.Path & "\Stub.exe") 'Eliminamos el stub 'Aqui modificamos la zona donde estan escritas las constantes ' Offset Longitud Lo que queremos introducir pasandolo por una funcion que nos añade loscaracteres nulos Mid$(strTemp, 6113, 20) = InsertarNulos("VARIABLE A") 'RECORDAR QUE NO SE PUEDEN INTRODUCIR MAS CARACTERES QUE LOS DE LA CONSTANTE 'La segunda constante Mid$(strTemp, 6141, 20) = InsertarNulos("VARIABLE B") 'RECORDAR QUE NO SE PUEDEN INTRODUCIR MAS CARACTERES QUE LOS DE LA CONSTANTE Open App.Path & "\Stub.exe" For Binary As #1 'Creamos un nuevo stub y lo abrimos Put #1, , strTemp 'Le escribimos la variable strTemp Close #1 'Cerramos y terminamos End Sub Function InsertarNulos(ByVal strOriginal As String) As String Dim Temp As String Dim i As Long If Not Len(strOriginal) > 0 Then Exit Function For i = 1 To Len(strOriginal) Temp = Temp & Mid$(strOriginal, i, 1) & Chr$(0) Next i InsertarNulos = Temp End Function
Guardamos, copiamos el stub compilado a la carpeta donde hemos guardado el editor, lo ejecutamos, y al ejecutar el stub veremos las constantes cambiadas. Bueno eso es todo, comenten que les parece.
|
|
|
105
|
Seguridad Informática / Análisis y Diseño de Malware / Re: ¿La heuristica esta loca?
|
en: 6 Junio 2012, 17:04 pm
|
TR/Dropper.Gen ese odioso del avira me acuerdo que estaba, tambien me salieron 2 mas pero que no recuerdo ahora muy bien que deteccion me sacaban pero en uno ponia Gen. Tambien otra pregunta que me a surgido es porque en P-Code me salen mas detecciones que en codigo nativo?
|
|
|
106
|
Seguridad Informática / Análisis y Diseño de Malware / ¿La heuristica esta loca?
|
en: 3 Junio 2012, 21:53 pm
|
Ayer estuve trabajando en un keylogger, lo analice en chk4me.com y me salian 3 firmas, lo modee un poco y salieron rapidamente, lo escanee y ya yo na habia detecciones. Hoy con mi paranoya me ha dado por volver a escanearlo, y 3 FIRMAS de nuevo... yo aqui ya no lo entendia, pero bueno abri un nuevo proyecto, copie el codigo compile y tras las firmas fuera de nuevo... Si alguien que sepa mas de esto me podria explicar porque pasan estas cosas se lo agradeceria ya que son cosas buenas a saber cuando intentas dejar algo fud.
Salu2, Noele1995.
|
|
|
107
|
Programación / Programación Visual Basic / Re: Obtener Urls navegadores
|
en: 31 Mayo 2012, 21:53 pm
|
Si pero la forma esa de obtener el handle de la ventana del chrome no me funcionaba y aparte con el spy++ vi que la ventana que tenia la url no era esa aunque la debere modificar para todas las versiones. Si, safari lo hare cuando tenga un rato netcaptor lo he hecho porque era el navegador que usaba antes y me apetecia.
Ahira que los pienso la funcion esta chapucera porqye si tienes el caption de l ventana tienes el hwnd y hay mas variables de las que deberia, hoy no puedo pero mañana la pongo optimizada y con el safari incluido salu2 Noele1995
|
|
|
108
|
Programación / Programación Visual Basic / Re: Obtener Urls navegadores
|
en: 31 Mayo 2012, 21:15 pm
|
Si, eso se puede hacer en vez de usar las apis dde pero solo funciona con iexplorer, firefox y opera (igual que usando las apis), los demas no implementas las conversaciones dde y hay que buscar la ventana en la que se muestra la url para sacarla :-)
|
|
|
109
|
Programación / Programación Visual Basic / Obtener Urls navegadores
|
en: 31 Mayo 2012, 20:16 pm
|
Bueno el otro dia se me ocurrio obtener las urls de los navegadores (para nada bueno ) y buscando encontre una funcion de nuestro compañero LeandroA, pero esta solo podia sacar las URLs de Firefox,IExplorer y Opera. Me he puesto a investigar un poco para añadirle algun navegador mas y esto es lo que he sacado. A la funcion se le pasa el caption de la ventana de la que se queire obtener la url. Option Explicit Private Declare Function DdeInitialize Lib "user32" Alias "DdeInitializeA" (pidInst As Long, ByVal pfnCallback As Long, ByVal afCmd As Long, ByVal ulRes As Long) As Integer Private Declare Function DdeCreateStringHandle Lib "user32" Alias "DdeCreateStringHandleA" (ByVal idInst As Long, ByVal psz As String, ByVal iCodePage As Long) As Long Private Declare Function DdeConnect Lib "user32" (ByVal idInst As Long, ByVal hszService As Long, ByVal hszTopic As Long, pCC As Any) As Long Private Declare Function DdeFreeStringHandle Lib "user32" (ByVal idInst As Long, ByVal hsz As Long) As Long Private Declare Function DdeUninitialize Lib "user32" (ByVal idInst As Long) As Long Private Declare Function DdeClientTransaction Lib "user32.dll" (ByVal pData As Long, ByVal cbData As Long, ByVal hConv As Long, ByVal hszItem As Long, ByVal wFmt As Long, ByVal wType As Long, ByVal dwTimeout As Long, ByRef pdwResult As Long) As Long Private Declare Function DdeAccessData Lib "user32.dll" (ByVal hData As Long, ByRef pcbDataSize As Long) As Long Private Declare Function DdeUnaccessData Lib "user32.dll" (ByVal hData As Long) As Long Private Declare Function DdeFreeDataHandle Lib "user32.dll" (ByVal hData As Long) As Long Private Declare Function DdeDisconnect Lib "user32.dll" (ByVal hConv As Long) As Long Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long Private Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal Hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long Private Const FIREFOX As String = "firefox" Private Const OPERA As String = "opera" Private Const IEXPLORER As String = "iexplore" Private Const CHROME As String = "chrome" Private Const NETCAPTOR As String = "netcaptor" Private Const XCLASS_DATA As Long = &H2000 Private Const XTYP_REQUEST As Long = (&HB0 Or XCLASS_DATA) Private Const CP_WINANSI As Long = 1004 Private Const CF_TEXT As Long = 1 Private Const WM_GETTEXT = &HD Private Type WindowNavegador Hwnd As Long Class As String End Type Private WindowsNavegadores() As WindowNavegador Public Function GetBrowserInfo(ByVal Hwnd As Long, Optional ByVal WinCaption As String) As String On Error Resume Next Dim lpData As Long, hData As Long, sData As String Dim hServer As Long, hTopic As Long, hItem As Long Dim hConv As Long, idInst As Long, sServer As String Dim Ret As Long, i As Long Dim sBuffer As String, CLASS_1 As String, CLASS_2 As String If WinCaption = "" Then sBuffer = String$(1024, Chr$(0)) SendMessage Hwnd, WM_GETTEXT, Len(sBuffer), sBuffer WinCaption = Replace$(sBuffer, Chr$(0), "") If WinCaption = "" Then Exit Function End If If InStr(1, LCase$(WinCaption), LCase$(CHROME)) <> 0 Then sServer = CHROME: CLASS_1 = "Chrome_OmniboxView": CLASS_2 = "Chrome_AutocompleteEditView" If InStr(1, LCase$(WinCaption), LCase$(FIREFOX)) <> 0 Then sServer = FIREFOX If InStr(1, LCase$(WinCaption), LCase$("INTERNET EXPLORER")) <> 0 Then sServer = IEXPLORER If InStr(1, LCase$(WinCaption), LCase$(OPERA)) <> 0 Then sServer = OPERA If InStr(1, LCase$(WinCaption), LCase$(NETCAPTOR)) <> 0 Then sServer = NETCAPTOR: CLASS_1 = "Edit": CLASS_2 = "Edit" If sServer = "" Then Exit Function If sServer = FIREFOX Or sServer = OPERA Or sServer = IEXPLORER Then If DdeInitialize(idInst, 0, 0, 0) <> 0 Then Exit Function hServer = DdeCreateStringHandle(idInst, sServer, CP_WINANSI) hTopic = DdeCreateStringHandle(idInst, "WWW_GetWindowInfo", CP_WINANSI) hItem = DdeCreateStringHandle(idInst, "0xFFFFFFFF", CP_WINANSI) hConv = DdeConnect(idInst, hServer, hTopic, ByVal 0&) If hConv Then hData = DdeClientTransaction(0, 0, hConv, hItem, CF_TEXT, XTYP_REQUEST, 1000, 0) lpData = DdeAccessData(hData, 500) sBuffer = String$(500, Chr$(0)) lstrcpy sBuffer, lpData GetBrowserInfo = Left$(sBuffer, InStr(sBuffer, Chr(0)) - 1) DdeUnaccessData hData DdeFreeDataHandle hData DdeDisconnect hConv End If DdeFreeStringHandle idInst, hServer DdeFreeStringHandle idInst, hTopic DdeFreeStringHandle idInst, hItem DdeUninitialize idInst If GetBrowserInfo <> "" Then GetBrowserInfo = Split(GetBrowserInfo, ",")(0) If Right$(GetBrowserInfo, 1) = """" Then GetBrowserInfo = Left$(GetBrowserInfo, Len(GetBrowserInfo) - 1) If Left$(GetBrowserInfo, 1) = """" Then GetBrowserInfo = Right$(GetBrowserInfo, Len(GetBrowserInfo) - 1) End If If sServer = CHROME Or sServer = NETCAPTOR Then ReDim WindowsNavegadores(0) EnumChildWindows Hwnd, AddressOf EnumChildWndProc, 0& sBuffer = String$(1024, Chr$(0)) For i = 1 To UBound(WindowsNavegadores) If WindowsNavegadores(i).Class = CLASS_1 Or WindowsNavegadores(i).Class = CLASS_2 Then SendMessage WindowsNavegadores(i).Hwnd, WM_GETTEXT, Len(sBuffer), sBuffer GetBrowserInfo = Replace$(sBuffer, Chr$(0), "") Exit Function End If Next i End If End Function Public Function EnumChildWndProc(ByVal Hwnd As Long, ByVal lParam As Long) As Long On Error Resume Next Dim Ret As Long, sText As String * 255 ReDim Preserve WindowsNavegadores(UBound(WindowsNavegadores) + 1) WindowsNavegadores(UBound(WindowsNavegadores)).Hwnd = Hwnd Ret = GetClassName(Hwnd, sText, 255) If Ret <> 0 Then WindowsNavegadores(UBound(WindowsNavegadores)).Class = Left$(sText, Ret) End If EnumChildWndProc = 1 End Function
La funcion esta un poco chapucera pero sirve :DD PD: Espero que a LeandroA no le moleste haber modificado su funcion Salu2 Noele1995
Edit: He puesto la funcion mas ordenada con los parametros que deberia llevar y mas cortita. Safari no lo he conseguido hacer si alguien tiene una idea de como sacar la url de safari que ponga un ejemoplo o me indique un poco porque estoy dando palos a ciegas.
|
|
|
110
|
Seguridad Informática / Análisis y Diseño de Malware / Re: [VB6] Proyecto Rat
|
en: 28 Mayo 2012, 23:31 pm
|
Pues la verdad me parece que este prpyecto lo acabare haciendo o yo solo o alomejor seremos dos, pero el proyecto lo terminare eso si lo tengo seguro. Toda ayuda sera bienvenida cuando tenga hechos los esqueletos del clientw y servidor los subire
|
|
|
|
|
|
|