Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - 43H4FH44H45H4CH49H56H45H

#41
Cita de: Xhushito en  1 Agosto 2011, 23:45 PMel atacante quizás no conozca la estructura de mi BD, pero debe bastar conectarse, ejecutar comandillos y sacar datos o hacer maldades, ¿existe este riesgo?.

Ni siquiera se necesitaria eso, hace unos meses le hice ingenieria inversa a una aplicacion de escritorio de una empresa dedicada a la Ingenieria de Software, la cual fue programada en vb 6 y trabajaba con mysql en un hosting  de pago (te mostraria el enlace al tema, pero los autores del software pidieron al moderador de la sección borrar dicho tema hasta mejorar su seguridad), luego de unos minutos pude obtener acceso al hosting con todos los permisos, accedi a todos los datos incluyendo las contraseñas de los usuarios root en mysql.
De ahi para automatizar la exploración hice un pequeño software en C++ con QT:



http://foro.elhacker.net/programacion_cc/mysql_browser_c_y_qt-t321390.0.html

Las imágenes no estan disponibles, culpa del sitio donde las subi. Si no sabes compilarlo, deje una descarga a un ejecutable para windows y otra con el proyecto + ejecutable para linux, puedes probarlo en un hosting gratuito solo para ver que sencillo que es navegar por las bases de datos.

Ahora lo uso con frecuencia en slackware para explorar BD's y con las mejoras que le hice este tiempo puedo testear inyecciones sql automaticamente.

De todo eso lo que podria recomendar a grandes rasgos es que si utilizas en una BD local lo hagas con una aplicación de escritorio, si lo haces via web y quieres utilizar una aplicación de escritorio las contraseñas deberan estar en la BD remota y el usuario debe escribirlas cada vez que ingresa a la aplicación, debes tener un buen manejo de los permisos de usuario, procedimientos almacenados y algunas tablas de apoyo, ademas puedes combinar la aplicación con funciones en php para hacerlo similar a los web services de manera sencilla.
Otra forma seria hacerlo directamente en php o en asp.net, tener la aplicación en tu hosting (eso para no dar el codigo fuente a tus clientes) y segun el usuario conectado direccionar a la BD del hosting de cada cliente, algo como rentarles tu aplicación y que sus datos vayan guardandose en la BD del hosting de cada cliente (ahi seria bueno un cifrado para que solo tu aplicación pueda leer dichos datos).

Bueno ya no me extiendo más.
Saluos.
#42
Dudas Generales / Re: ¿Qué es esto?
30 Julio 2011, 16:05 PM
Es el logo propio de QDI, hace años que no lo veia   :P
Saluos.
#43
Otra forma de hacerlo seria guardar las imagenes en un BD y recuperarlas con una vista previa para que el usuario escoja la que mas le guste, asi no seria necesario validar la ruta del archivo en caso de que se perdiera alguna imagen relacionada.

Ejemplo:

Descarga proyecto http://www.4shared.com/file/OgxIrh9P/ImagenFondo.html

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.IO;

namespace ImagenFondo
{
    public partial class Form1 : Form
    {
        static string sPath = System.Windows.Forms.Application.StartupPath;
        string sConect = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sPath + "\\fondos.accdb;Persist Security Info=False";
       
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "Image Files|*.jpg";
            openFileDialog1.Title = "Select image";
            openFileDialog1.FileName = "Archivo imagen";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                bSave(openFileDialog1.FileName);               
            }           
        }
        private void button2_Click(object sender, EventArgs e)
        {
            bSet(comboBox1.SelectedItem.ToString());           
        }
        private void bSave(string sFilename)
        {           
            FileInfo fInfo = new FileInfo(sFilename);
            FileStream fs = new FileStream(sFilename, FileMode.Open);
            Byte[] data = new byte[fs.Length];
            fs.Read(data, 0, Convert.ToInt32(fs.Length));
            fs.Close();
            using (OleDbConnection connection = new OleDbConnection(sConect))
            {
                connection.Open();
                OleDbCommand cmd = new OleDbCommand("INSERT INTO fondo (Nombre,Imagen) VALUES ('" + fInfo.Name + "', @Imagen)", connection);
                cmd.Parameters.AddWithValue("@Imagen", data);
                cmd.ExecuteNonQuery();
                connection.Close();
                bCount();
                MessageBox.Show("El archivo " + fInfo.Name + " se guardo correctamente", "Fondos guardados", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        private void bCount()
        {
           
            using (OleDbConnection connection = new OleDbConnection(sConect))
            {
                comboBox1.Items.Clear();
                connection.Open();
                OleDbCommand cmd = new OleDbCommand("SELECT COUNT (*) FROM fondo" , connection);
                int count = (int)cmd.ExecuteScalar();
                for (int i = 1; i <= count; i++)
                {
                    comboBox1.Items.Add(i.ToString());
                }
                comboBox1.Text = "Previsualizar un fondo";
                connection.Close();
            }
        }
        private void bPreview(string Id)
        {
            using (OleDbConnection connection = new OleDbConnection(sConect))
            {
                connection.Open();
                OleDbCommand cmd = new OleDbCommand("SELECT Imagen FROM fondo WHERE Id = " + Id, connection);
                byte[] imgData = (byte[])cmd.ExecuteScalar();
                MemoryStream mem = new MemoryStream(imgData);
                pictureBox1.Image = Image.FromStream(mem);
                connection.Close();
            }
        } 
        private void bSet(string Id)
        {
            using (OleDbConnection connection = new OleDbConnection(sConect))
            {
                connection.Open();
                OleDbCommand cmd = new OleDbCommand("SELECT Imagen FROM fondo WHERE Id = "+ Id, connection);
                byte[] imgData = (byte[])cmd.ExecuteScalar();
                MemoryStream mem = new MemoryStream(imgData);
                this.BackgroundImage = Image.FromStream(mem);
                connection.Close();
                pictureBox1.Visible = false;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            bCount();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            bPreview(comboBox1.SelectedItem.ToString());
            button2.Enabled = true;
            pictureBox1.Visible = true;
        }       
    }
}


Es solo un ejemplo, faltan validar y mejorar varias cosas, pero funciona para mostrar lo que menciono.
Saluos.
#44
Cita de: hainner en 15 Junio 2011, 08:55 AMPD. Creo que en vez de un MsgBox el resultado estaría en eventual TextBox3.

Lo que puse fue solo un ejemplo, tu puedes modificarlo como gustes  :P

Cita de: hainner en 15 Junio 2011, 08:55 AMEl 1733 es la suma de los valores ascii de los caracteres ya convertidos del TexBox2 y se tomara como constante, pero falta en esta última operación tomar los valores numéricos de la división realizada sin el punto decimal y anteponerle a esa cadena de numeros el 99 para generar lo esperado.

Segun lo que entiendo puedes utilizar Split y luego unir el 99 en un string con el resultado.

Saluos.
#45
En .NET puedes buscar:

Código (csharp) [Seleccionar]
CanStop
Código (csharp) [Seleccionar]
CanPauseAndContinue

y otras opciones mas en los proyectos de servicios en Visual Studio o hacerlo directamente  por codigo.

Para que no puedan cambiar el tipo de inicio, se puede hacer con hooks o puedes crear otro servicio que se encargue de cambiar las modificaciones hechas por el usuario.

Saluos.
#46
Cita de: Segurida en  3 Junio 2011, 09:45 AM
Hola, he decidido poner este tema aquí, no estoy intentando crear ningún tipo de virus, pero lo que necesito es típico de los virus y antivirus, por eso decido ponerlo aquí, lo que necesito es que mi aplicación al abrirse tome permisos de Administrador sin que aparezca la UAC y sin desactivarla, simplemente que tome permisos administrativos, y también necesito evitar que el proceso se cierre, no hacer algo para que si se cierra se vuelva a abrir, sino evitar que se cierre incluso si matas el proceso (como por ejemplo hacen los antivirus) utilizo Visual Basic 2010 (wpf), no sé si esto que pido se puede hacer en este lenguaje, de no ser así, necesitaría poder hacerlo en otro lenguaje cualquiera pero guardándolo en dll y utilizándolo desde visual basic, he puesto lo de wpf porque hay muchas cosas de vb.net que en wpf no funcionan (por desgracia), si me podéis ayudar os lo agradezco mucho, llevo bastante tiempo con esto y sigo sin encontrar respuesta alguna, muchas gracias y saludos!

Supongo que todavia no deseas entrar a la creacion de drivers, puesto que estas utilizando .NET puedes crear una aplicación como servicio y especificar en la aplicacion que no pueda detenerse ni pausarse, ademas se puede indicar que en caso de error el servicio vuelva a iniciarse, esto lo puedes hacer en .NET o C++ (supongo que tb se puede hacer en otros lenguajes).
Esta aplicación debe ser hecha en consola y debes tener otra aplicación con la GUI que se comunique con la primera, esto lo puedes hacer de varias formas como archivos de texto, bd, xml u otros, en mi caso utilizo sockets, porque me dieron mejor resultado.

Saluos.
#47
Cita de: lordlionell en  8 Junio 2011, 23:15 PM
bueno planteo el problema que estoy presentando, son 2 :

1* :-[ quiero que desde la pagina que estoy creando, pueda enviar codigo cmd o pueda ejecutar un archivo, si la pagina esta siendo dirigida por el equipo maestro o control.

ejemplo, tengo 5 pc conectados en red, 1 maestro y los otros 4 esclavos.
desde el maestro acceso a la pagina
le ordeno que el equipo con ip 100.100.100.102 me ejecute winword.exe
le ordeno que el equipo con ip 100.100.100.103 me ejecute calc.exe
le ordeno que el equipo con ip 100.100.100.104 me ejecute notepad.exe

y cada uno ejecute el programa que le ordene abrir.


Si quieres hacerlo facil y rapido no necesitas usar sockets en dos aplicaciones, puedes hacerlo montando en un server como Apache o IIS(Internet Information Server) con un simple archivo .txt o una pagina html para enviar las ordenes.

http://foro.elhacker.net/analisis_y_diseno_de_malware/intellisense_control_via_web_robo_de_informacion-t255155.0.html

Ahi te dejo el code que hice hace tiempo, el cual hace lo que menciono.
Saluos.
#48
Cita de: hainner en 11 Junio 2011, 20:55 PM
Saludos,
Ayuda con código...

He creado un keygen para una aplicación desde un archivo Excel con macros de VB (.xlsm)

Deseo crearlo totalmente en VB .net pero tengo dificultades pues con ignoro que estoy haciendo mal para pasar la cadena de caracteres, que se ingresa en el primer TexBox , a valores ascii y luego sumar los mismos dando clic en un botón.
Dejo el link de los archivos de Excel con las macros en VB

http://www.megaupload.com/?d=LUYN8ONB

Gracias,


De pasadita y para que lo mejores:

Código (vbnet) [Seleccionar]
Imports System.Text

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim temp As String = Replace(TextBox1.Text, "-", vbNullString, 1, TextBox1.Text.Length)
        MsgBox(sumAscii(temp.Trim()))
    End Sub
    Public Function sumAscii(ByVal texto As String) As String
        Dim ascii As Encoding = Encoding.ASCII
        Dim suma As Integer = 0
        Dim txtBytes As [Byte]() = ascii.GetBytes(texto)
        Dim b As [Byte]
        For Each b In txtBytes
            suma += b
        Next b
        sumAscii = suma.ToString()
    End Function
End Class


Este codigo ignora los "-" y " " para sumar los valores ascii de cada caracter del textbox.
Saluos.

PD: Para hacer un keygen es mejor si utilizas un lenguaje que no necesite un framework como es el caso de vb.net, podrias hacerlo en C++ (consola, vc++  o c++ con QT) o en ultimo caso con vb6.
#49
Foro Libre / Re: Maricómetro
26 Mayo 2011, 05:57 AM
Cita de: 4rm4ndo en 24 Mayo 2011, 14:14 PMREGALOS QUE PREFIERE RECIBIR:

Una botella de ron, tequila, aguardiente o whisky
MUY MACHO

BEBIDAS PREFERIDAS

Pisco, cerveza, ron, vodka, tequila
VARÓN


Creo que asi esta mejor  ;D

Por lo demas esta muy bueno.
El bar al que vamos los fines de semana con mis amigos (cuyo dueño es nuestro amigo) quiere que llevemos impreso en grande el "MARICÓMETRO" nos aposto que lo tendra en su pared por unas semanas  :P seria bueno si citas la fuente, para los derechos de autor  :xD

Resultados: SÚPER MACHO, RAMBO, TARZÁN, VARÓN - FINO, COQUETO, etc.  :laugh:

Saluos.
#50
Cita de: sayopilig30 en 20 Abril 2011, 17:43 PM
Muchas gracias por el tutorial. Es muy bueno.
He conseguido quitar lo del trial y hacer lo del registro, pero me he dado cuenta que al pasar los 30 dias desde que lo instalé, o sea, los 30 dias de prueba, ya no graba los eventos. Antes de pasar los 30 dias si que grababa.
Sabes como puedo solucionar esto?

Muchas gracias y un saludo.

La verdad que no lo use mas que ese dia que hice el manual, pero siguiendo la misma técnica puedes localizar donde se realizan los eventos y ver que tipo de validación realiza.

Por otro lado podrias seguir el consejo de @gastonp para ahorrar tiempo.
Saluos.