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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: [1]
1  Seguridad Informática / Hacking / Re: entrar a un windows server en: 31 Enero 2013, 07:51 am
Bueno, antes de nada, agradecerte nuevamente el esfuerzo.

El link del exploit me salia como ya visitado en el navegador, asi que imagino que ya lo habria probado. De hecho lo he probado y nada :(
Código:
$ gcc xpl00.c -o xpl00
$ ./xpl00
resolved symbol commit_creds to 0xffffffff8106982c
resolved symbol prepare_kernel_cred to 0xffffffff8106970a
mapping at 3f80000000
UID 113, EUID:113 GID:118, EGID:118
$ id
uid=113(postgres) gid=118(postgres) groups=118(postgres),113(ssl-cert)
$ whoami
postgres
$
De hecho aqui figura que esta parcheado desde el 2.6.32-44:
https://security-tracker.debian.org/tracker/CVE-2010-3301
Citar
linux-2.6 (PTS)   squeeze (security)   2.6.32-44   fixed
Y el kernel de debian actualmente en uso es:
Código:
$ cat /proc/version
Linux version 2.6.32-5-amd64 (Debian 2.6.32-45) (dannf@debian.org) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Sun May 6 04:00:17 UTC 2012
Por si acaso, tambien lo he probado con la cuenta de usuario que sonsaque de la base de datos, que tiene mas privilegios que el postgres, pero lo mismo:
Código:
$ cp xpl00 /tmp
$ chmod a+rwx /tmp/xpl00
$ su OMITIDO
Password:
$ /tmp/xpl00
resolved symbol commit_creds to 0xffffffff8106982c
resolved symbol prepare_kernel_cred to 0xffffffff8106970a
mapping at 3f80000000
UID 1000, EUID:1000 GID:1000, EGID:1000
$ id
uid=1000(OMITIDO) gid=1000(OMITIDO) groups=1000(OMITIDO),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev)
$ whoami
OMITIDO

Respecto a los scripts nse tengo un problema. La version debian del nmap es la 5.00, y "solo" tiene estos scripts:
Código:
$ nmap --version

Nmap version 5.00 ( http://nmap.org )
$ find / -iname "*.nse" 2>/dev/null
/usr/share/nmap/scripts/skypev2-version.nse
/usr/share/nmap/scripts/socks-open-proxy.nse
/usr/share/nmap/scripts/ftp-brute.nse
/usr/share/nmap/scripts/sql-injection.nse
/usr/share/nmap/scripts/http-iis-webdav-vuln.nse
/usr/share/nmap/scripts/smb-system-info.nse
/usr/share/nmap/scripts/ftp-anon.nse
/usr/share/nmap/scripts/smb-server-stats.nse
/usr/share/nmap/scripts/ssh-hostkey.nse
/usr/share/nmap/scripts/smb-os-discovery.nse
/usr/share/nmap/scripts/html-title.nse
/usr/share/nmap/scripts/whois.nse
/usr/share/nmap/scripts/http-auth.nse
/usr/share/nmap/scripts/smb-pwdump.nse
/usr/share/nmap/scripts/smb-enum-domains.nse
/usr/share/nmap/scripts/mysql-info.nse
/usr/share/nmap/scripts/snmp-brute.nse
/usr/share/nmap/scripts/asn-query.nse
/usr/share/nmap/scripts/pptp-version.nse
/usr/share/nmap/scripts/smb-enum-processes.nse
/usr/share/nmap/scripts/dns-random-txid.nse
/usr/share/nmap/scripts/smb-enum-users.nse
/usr/share/nmap/scripts/smb-enum-shares.nse
/usr/share/nmap/scripts/dns-recursion.nse
/usr/share/nmap/scripts/banner.nse
/usr/share/nmap/scripts/dns-zone-transfer.nse
/usr/share/nmap/scripts/smb-brute.nse
/usr/share/nmap/scripts/ftp-bounce.nse
/usr/share/nmap/scripts/imap-capabilities.nse
/usr/share/nmap/scripts/robots.txt.nse
/usr/share/nmap/scripts/irc-info.nse
/usr/share/nmap/scripts/pop3-brute.nse
/usr/share/nmap/scripts/realvnc-auth-bypass.nse
/usr/share/nmap/scripts/sniffer-detect.nse
/usr/share/nmap/scripts/sslv2.nse
/usr/share/nmap/scripts/nbstat.nse
/usr/share/nmap/scripts/auth-spoof.nse
/usr/share/nmap/scripts/finger.nse
/usr/share/nmap/scripts/http-open-proxy.nse
/usr/share/nmap/scripts/dns-random-srcport.nse
/usr/share/nmap/scripts/telnet-brute.nse
/usr/share/nmap/scripts/smtp-open-relay.nse
/usr/share/nmap/scripts/smb-check-vulns.nse
/usr/share/nmap/scripts/smtp-commands.nse
/usr/share/nmap/scripts/rpcinfo.nse
/usr/share/nmap/scripts/ms-sql-info.nse
/usr/share/nmap/scripts/smb-enum-sessions.nse
/usr/share/nmap/scripts/snmp-sysdescr.nse
/usr/share/nmap/scripts/http-passwd.nse
/usr/share/nmap/scripts/auth-owners.nse
/usr/share/nmap/scripts/smb-security-mode.nse
/usr/share/nmap/scripts/sshv1.nse
/usr/share/nmap/scripts/http-trace.nse
/usr/share/nmap/scripts/upnp-info.nse
/usr/share/nmap/scripts/daytime.nse
/usr/share/nmap/scripts/pop3-capabilities.nse
/usr/share/nmap/scripts/smtp-strangeport.nse
/usr/share/nmap/scripts/iax2-version.nse
/usr/share/nmap/scripts/p2p-conficker.nse
Probe a subirle el script http-enum del ubuntu, pero parece que al ser una version superior dice que pa mi tia:
Código:
$ nmap --script=http-enum.nse OMITIDA -p80

Starting Nmap 5.00 ( http://nmap.org ) at 2013-01-31 01:37 CST
NSE: failed to initialize the script engine:
/usr/share/nmap/nse_main.lua:236: ./http-enum.nse is missing a required function: 'hostrule' or 'portrule'
stack traceback:
        [C]: in function 'assert'
        /usr/share/nmap/nse_main.lua:236: in function 'new'
        /usr/share/nmap/nse_main.lua:392: in function 'get_chosen_scripts'
        /usr/share/nmap/nse_main.lua:594: in main chunk
        [C]: ?

QUITTING!
No estoy seguro de haber probado especificamente con esto a hacer un tunel SSH. Pero tengo la experiencia de que el nmap no reacciona igual. (Lo digo para lanzar el nmap desde el ubuntu y usar el debian de palanca hasta el w2003s)

¿Deberia probar todos los scripts de nmap que tengo en el debian? ¿Me recomiendas alguno en concreto?

Lo que si voy a hacer es un tunel del 1000 y 3000 como sugeriste y ver que encuentra el acunetix. Aunque la verdad es que he probado tantas cosas que ya no se si lo habre probado antes jajaja.

Bueno, muchas gracias por todo.
Saludos
2  Seguridad Informática / Hacking / Re: entrar a un windows server en: 30 Enero 2013, 01:37 am
Hola, muchas gracias de nuevo RevangelyonX

Es decir, si utilizas un exploit que no has programado tu, no has aprendido a hacer las cosas por ti mismo...
Pues tambien es verdad...

No acabo de entender lo que comentas del IIS pero prueba de atacar por el IIS.
Lo del IIS, (sin ponerme a buscar exactamente los nombres) es algo asi como que esta desconfigurado. Como cuando uno pone en el navegador ejemplo1.com y le lleva a la ip 80.80.80.80, o pone ejemplo2.com y tambien le lleva a la ip 80.80.80.80. Entonces el server sabe que tiene que ofrecer una web o la otra dependiendo de esos nombres que van en el comando GET del http request que se envia... Bueno, pues normalmente si uno pide un GET a /, el server esta configurado para ir a una web por defecto, pero en este caso no lo tienen configurado asi.
(Lo siento pero la terminologia no es lo mio, tengo memoria de pez para los nombres)

Lo primero, como siempre, information gathering al máximo.


Código:
nmap --script=/tu/ruta/de/nse/script/http-enum.nse ip.ip.ip.ip -p80

Sobre el linux, ya que tienes una shell sin privilegios, puedes ejecutar:

Código:
uname -a 

Para ver que kernel tiene?
No sabia que hubiera scripts de nmap. Supongo que ese que me pones de http-enum.nse no te lo habras inventado, o sea que voy a buscarlo y ver lo que hace :)

Lo del uname y tal ya se lo habia hecho. Es un debian squeeze:
Código:
$ uname -a
Linux OMITIDO 2.6.32-5-amd64 #1 SMP Sun May 6 04:00:17 UTC 2012 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 6.0.5 (squeeze)
Release:        6.0.5
Codename:       squeeze

De hecho hasta hice un script (que ha resultado no funcionar demasiado bien) para comparar las versiones de los paquetes instalados con las de los reportes de debian security, para intentar encontrar aquellos que por la ultima actualizacion que tiene el sistema aun no esten parcheados. El resultado (pensaba publicar el script, por eso esta en ingles, pero como ha resultado ser una M pues paso):
Código:
Installed package name: apache2
Installed version: 2.2.16-6+squeeze7
Vulnerability name: DSA-2579 apache2
Vulnerability fixed in version: 2.2.16-6+squeeze10
Vulnerability date: 30 Nov 2012
Vulnerability description: Multiple issues
Vulnerability url: http://www.debian.org/security/2012/./dsa-2579

Installed package name: bind9
Installed version: 1:9.7.3.dfsg-1~squeeze6
Vulnerability name: DSA-2560 bind9
Vulnerability fixed in version: 1:9.7.3.dfsg-1~squeeze8
Vulnerability date: 20 Oct 2012
Vulnerability description: denial of service
Vulnerability url: http://www.debian.org/security/2012/./dsa-2560

Installed package name: bind9
Installed version: 1:9.7.3.dfsg-1~squeeze6
Vulnerability name: DSA-2547 bind9
Vulnerability fixed in version: 1:9.7.3.dfsg-1~squeeze7
Vulnerability date: 12 Sep 2012
Vulnerability description: improper assert
Vulnerability url: http://www.debian.org/security/2012/./dsa-2547

Installed package name: gnupg
Installed version: 1.4.10-4
Vulnerability name: DSA-2601 gnupg, gnupg2
Vulnerability fixed in version: 1.4.10-4+squeeze1
Vulnerability date: 06 Jan 2013
Vulnerability description: missing input sanitation
Vulnerability url: http://www.debian.org/security/2013/./dsa-2601

Installed package name: libxml2
Installed version: 2.7.8.dfsg-2+squeeze5
Vulnerability name: DSA-2580 libxml2
Vulnerability fixed in version: 2.7.8.dfsg-2+squeeze6
Vulnerability date: 02 Dec 2012
Vulnerability description: buffer overflow
Vulnerability url: http://www.debian.org/security/2012/./dsa-2580

Installed package name: perl
Installed version: 5.10.1-17squeeze3
Vulnerability name: DSA-2586 perl
Vulnerability fixed in version: 5.10.1-17squeeze4
Vulnerability date: 11 Dec 2012
Vulnerability description: several vulnerabilities
Vulnerability url: http://www.debian.org/security/2012/./dsa-2586

Installed package name: php5
Installed version: 5.3.16-1~dotdeb.0
Vulnerability name: DSA-2527 php5
Vulnerability fixed in version: 5.4.4-4
Vulnerability date: 13 Aug 2012
Vulnerability description: several vulnerabilities
Vulnerability url: http://www.debian.org/security/2012/./dsa-2527

Installed package name: php5
Installed version: 5.3.16-1~dotdeb.0
Vulnerability name: DSA-2492 php5
Vulnerability fixed in version: 5.4.4~rc1-1
Vulnerability date: 10 Jun 2012
Vulnerability description: buffer overflow
Vulnerability url: http://www.debian.org/security/2012/./dsa-2492

Installed package name: php5
Installed version: 5.3.16-1~dotdeb.0
Vulnerability name: DSA-2465 php5
Vulnerability fixed in version: 5.4.3-1
Vulnerability date: 09 May 2012
Vulnerability description: several vulnerabilities
Vulnerability url: http://www.debian.org/security/2012/./dsa-2465
Los paquetes de php son de dotdeb, asi que a saber si las vulnerabilidades sirven para esos o estan mas o menos parcheados que los de debian. Eso de momento no lo he mirado, pero es que... Intentar nada para que? Si lo intento con la cuenta limitada no gano nada; y si consigo usarlas mediante el apache, tampoco, porque correran como el usuario nobody de apache...

El unico con potencial es el de perl, que esta ya corriendo como root. El problema es que no tengo manera de darle entrada para causar un buffer overflow. Bueno eso ya lo explique en la pregunta del principio.

Y un nmap de esa máquina quizá nos ayude a proponer ideas.

PD: Utilizas backtrack?

Salu2
Código:
PORT      STATE SERVICE     VERSION
22/tcp    open  ssh         OpenSSH 5.5p1 Debian 6+squeeze2 (protocol 2.0)
25/tcp    open  smtp        Postfix smtpd
53/tcp    open  domain      ISC BIND 9.X
80/tcp    open  http        Apache httpd 2.2.16 ((Debian))
110/tcp   open  pop3        Dovecot pop3d
111/tcp   open  rpcbind
143/tcp   open  imap        Dovecot imapd
443/tcp   open  ssl/http    Apache httpd 2.2.16 ((Debian))
953/tcp   open  rndc?
993/tcp   open  ssl/imap    Dovecot imapd
995/tcp   open  ssl/pop3    Dovecot pop3d
3306/tcp  open  mysql       MySQL 5.1.58-1~dotdeb.1
5222/tcp  open  unknown
5223/tcp  open  ssl/unknown
5229/tcp  open  unknown
5269/tcp  open  xmpp        Wildfire XMPP Client
5432/tcp  open  postgresql  PostgreSQL DB
7070/tcp  open  http        Jetty httpd 7.0.2-SNAPSHOT
7443/tcp  open  ssl/http    Jetty httpd 7.0.2-SNAPSHOT
9090/tcp  open  zeus-admin?
9091/tcp  open  ssl/unknown
10000/tcp open  http        Webmin httpd
10023/tcp open  unknown
38707/tcp open  rpcbind
Service Info: OS: Linux
El 9090 y 9091 el nmap no reconoce los fingerprints, pero son de openfire (un servicio de jabber)

Estoy usando ubuntu...

Yo atacar el debian lo veo realmente jodido... y el win2003 estoy empezando a verlo igualmente jodio... Buf, ya no se pa donde tirar...

De nuevo, gracias

Edito: Se me olvidaba, el bind9 tambien podria tener potencial. Parece ser que se le puede hacer que casque (no lo he probado), y si por casualidad tuviera una race condition leyendo de /tmp ... pues por ahi podria hacer algo, no? Pero dudo mucho que haga eso, no se
3  Seguridad Informática / Hacking / Re: entrar a un windows server en: 29 Enero 2013, 19:26 pm
Bueno, el primer exploit necesita de un usuario autenticado y no tengo ninguno :( y el antiguo usuario "MDaemon" no vale. El segundo no lo he probado porque no me sale en la lista del metasploit y no se como usarlo, y ademas creo que tambien necesita de una cuenta tambien...

He probado tambien el ms08_067_netapi y aunque parece que es un w2003 server sp2, no le vale... me imagino que estara parcheado. El spoolss tampoco...

Una ayudita, por favor
4  Seguridad Informática / Hacking / Re: entrar a un windows server en: 28 Enero 2013, 21:28 pm
Hola, muchas gracias

La verdad es que desde que empece con esto, no he hecho mas que oir metasploit por aqui y leer metasploit por alla. Vi lo que era y realmente no me gusto nada, porque es un producto que no enseña a la gente a hacer las cosas por si mismos y ademas por lo que he podido comprobar, la version buena, de pago.

Pero al final he caido ya por pura desesperacion y ya lo estoy utilizando.

Mirare esos exploits que me dices.

Muy agradecido :)
5  Seguridad Informática / Hacking / Re: Camuflar URL en: 28 Enero 2013, 11:36 am
bueno, a mi se me ocurre que podrias poner una url corta, de esas que redireccionan a otras url, como http://bit.ly/, pero no se si eso dara mas aun el cante o no...

y luego una vez en tu web, lo primero usas javascript para modificar la url que aparece en la barra de urls, para que sea la misma que la web de destino

no se si es posible hacer esto, aunque no veo por que no...

es para un ataque phising, verdad?

en la segunda respuesta dicen una forma de hacerlo (sin que el navegador se redirija automaticamente a la nueva direccion, que es lo que pasa al cambiar el valor directamente): http://stackoverflow.com/questions/136458/change-the-url-in-the-browser-without-loading-the-new-page-using-javascript
6  Seguridad Informática / Hacking / Re: Sockets y problema salida a internet en: 28 Enero 2013, 11:13 am
no tengo mucha idea de como funcionan los proxies, asi que la validez de lo que diga...

mi teoria:

a mi me da la sensacion de que lo que instalaste se adueño de la gestion de los sockets, pero al no estar bien configurados, no enviaban a donde debian enviar

quizas los desinstalaste pero no los mataste. Probaste a buscarlos en la lista de procesos? Probaste a buscarlos en la lista de servicios? Probaste a reiniciar?

la maquina virtual seguramente si tenia acceso a la red porque la interfaz entre tu tarjeta de red real y la tarjeta de red virtual de la maquina se situa en una capa mas cercana a la tarjeta de red que los proxies que instalaste que gestionaban los sockets...

repito es mi teoria
7  Seguridad Informática / Hacking / Re: Crackear password de instalaciones en: 28 Enero 2013, 10:50 am
Espero que no sea una clave de rar o zip, porque me corto los webos... para esas hay unos crackers de fuerza bruta muy bonitos que en unas horas o dias te sacan la clave (si no es muy larga, claro)
8  Seguridad Informática / Hacking / Re: Crackear password de instalaciones en: 28 Enero 2013, 10:48 am
si

yo te voy a dar una explicacion teorica, pero ya te adelanto que ni te voy a ayudar a hacerlo, ni te lo voy a hacer. No porque sea ilegal o legal (me da igual), sino porque costaria horrores explicar algo asi paso por paso a traves del foro.

lo mas facil y practico seria (en mi opinion) utilizar un depurador de codigo (debugger)

lanzas el programa que te pide la clave junto con el depurador, cuando hayas escrito la clave(cualquier palabra) en el programa, y justo antes de darle entrada (enter o click sobre el boton que sea), vas al depurador y pones un punto de ruptura donde sea que este el puntero de instrucciones (instruction pointer, eip, pc...) el programa quedara suspendido porque estaba en espera de leer las teclas que tu metas, y tu lo detuviste con el depurador (funciona en ciclos o loops)

vuelves al programa y le das a enter o click sobre el boton que de entrada

vuelves al depurador y empiezas a recorrer una por una las instrucciones siguientes

el programa ahora leera que tu le dijiste que "enter", y empezara a ejecutar una serie de instrucciones que entre otras cosas comprobaran si la clave que introdujiste es valida o no.

al cabo de una serie de instrucciones, el programa volvera al punto inicial donde te pidio la clave (si es que no termina y se cierra al introducir una clave invalida), y si recuerdas ahi pusiste un punto de interrupcion

lo que tienes que hacer es anotar todas las instrucciones de codigo desde que le diste a enter hasta que vuelves de nuevo a tu breakpoint

despues repites el proceso, pero esta vez, cuando vayas instruccion por instruccion, fijate en aquella que hagan saltos (JMP, CALL, JNZ, etc)

ejemplo: el programa podria almacenar un cierto valor en memoria o en un registro, y en base a eso saltar a una instruccion determinada u otra. Incluso el JMP puede ser condicional puesto que el programa podria saltar a una instruccion cuya direccion de memoria se encuentra almacenada en otra direccion de memoria (esto se llama puntero), si a direccion de memoria almacenada en la direccion de memoria que JMP desreferenciara, esta compuesta por valores que se compusieron antes de llegar a JMP, y esos valores sujetos a tu entrada, esto en definitiva seria como un salto condicional... pero no necesitas saber tanto... Lo unico que te importa es probar a cambiar valores en los registros o direcciones de memoria antes de cada salto, y VER SI LOS SALTOS TE SACAN de la linea de instrucciones que apuntaste anteriormente. Ojo, esto hay que hacerlo con un poco de cuidado para que el programa no se caiga, casque, se congele, se cuelgue o como sea que le digan.

Primero te aconsejo que empieces por los saltos condicionales en si, o por las llamadas (CALL). Por ejemplo si ves que antes de un JNZ se ha metido el valor 1 a un registro, prueba a meter el valor 0 a ese registro justo antes de llegar a JNZ, y asi sucesivamente, has que des con el salto que te lleve al punto del programa donde la clave ha pasado a ser correcta "por arte de magia"

En fin, como ves no es lo mas facil del mundo, pero tampoco es imposible. Si lo deseas de verdad, lo que debes hacer es leer un poco sobre el funcionamiento del sistema, como funcionan las instrucciones, los registros y la memoria. No hace falta que profundices demasiado, solo necesitas hacerte una idea basica. Luego instalate un buen depurador y familiarizate con el uso, averigua como poner breakpoints, recorrer instrucciones, y practica un poco cambiando valores aqui y alla en programas. Veras que la mayoria de las veces cascan, pero algunas otras comprobaras como lo que hiciste tiene un efecto determinado. Intenta encontrar algun tutorial basico sobre depuracion, con ejercicios practicos con programas incluidos o algo por el estilo. Veras como despues de todo saltarse la comprobacion de clave del programa no resulta tan dificil o disparatado :)

...o prueba a hackear cualesquiera que sean los servers que albergan esas claves... pero a mi me parece mas dificil

POR OTRO LADO, ENTIENDO QUE LA CLAVE QUE BUSCAS NO ES UNA CLAVE DE ACCESO PARA UN JUEGO ONLINE
porque aunque te saltes esa clave, luego puedes tener infinidad de problemas con el servidor del juego, por inconsistencia de datos entre cliente y servidor... En fin, tal vez escribi todo para nada :)

Ok, he releido la pregunta y veo que solo es una clave de instalacion, y tal vez sea una clave puesta por un tercero y no por la propia casa del juego, asi que quizas ni la comprueben desde el server... Bien

Suerte
9  Seguridad Informática / Hacking / entrar a un windows server en: 28 Enero 2013, 10:01 am
Hola, disculpad si mi pregunta no corresponde aqui. Soy nuevo y no sabia si colocarla aqui o en windows o donde.

Soy novato en esto, llevo como un mes intentando conseguir root en un sistema, pero es un debian y esta parcheado hasta el techo (te odio debian). Entre mediante una inyeccion sql, y como era un postgresql, tuve que crear una funcion python para lanzar comandos de sistema, pero tenia la problematica de que los netcats se me morian al instante, puesto que al parecer, al termino de la consulta sql, el postgresql mataba la funcion python que a su vez mataba al comando de sistema, y ni nohup ni lanzarlo como trabajo ni chufas funcionaba, asi que tuve que buscarme una reverse shell, subirla mediante wget y lanzarla ya como demonio y resolvi mi problema. Ya tuve una shell como usuario postgres, luego no me costo mucho averiguar una clave de un usuario del sistema buscando en la misma base de datos del psql, pero aparte de estar en los tipicos grupos de usuario normales (video, sonido, udevd, etc), ya no ha habido manera de encontrar ningun sitio por el que obtener root.

Todos los exploits que he probado en mis ubuntus han fallado en ese debian, y eso que la ultima actualizacion no es muy reciente...

Aparte de eso solo he encontrado un proceso vulnerable ejecutado como root para intentar provocarle un desbordamiento (que sea util, por eso lo de root), que es el perl y esta ejecutando un webmin. Ocurre que el webmin en si filtra muy bien todo y no tengo acceso mas que a la pagina de login... y no pilla ni inyecciones ni nada... De hecho, si consiguiera acceso al webmin, ya no necesitaria hacerle el buffer overflow al perl, puesto q el webmin tiene algunas vulnerabilidades que me permitirian escribir y leer archivos y realmente no necesito mucho mas para obtener root.

La cuestion es que la red local del sistema tiene un windows (parece un server) con bastantes puertos abiertos, y entre otras cosas tiene IIS6 y MDaemon. Se me ha ocurrido que si pudiera entrar ahi, podria ejecutarle un programita de estos que sacan los hashes de las claves de usuarios, y ya despues tranquilamente procesarlas mediante las famosas webs que usan rainbow tables... y con suerte, esperar que la contraseña del admin sea la misma que la del root del debian.

He probado uno de esos programas y funciona, saca los hashes mientras el win esta encendido, genial, pero los he buscado en las famosas webs y no han encontrado nada. Realmente no se como funcionan esas webs o el rainbow tables, pero claro, tampoco esperaba milagros. Tengo la sensacion de que finalmente esos hashes los terminan procesando y quedan disponibles mas tarde para encontrarlos.

Mi pregunta es si esto es asi o como funciona exactamente, porque no quiero perder mas tiempo atacando el win si finalmente no conseguire la clave.

Y mi segunda pregunta es si me podeis ayudar a entrar al win, porque yo en eso si que me pierdo del todo. El IIS lo tienen configurado de modo que un GET a / siempre devuelve que "host incorrecto" o algo por el estilo, asi que sin saber el nombre del dominio que utilizan, no tengo acceso a mas informacion...

Os doy la lista del nmap -sV al win, a ver si me podeis echar un cable. Muchas gracias a todos:

PORT      STATE SERVICE       VERSION
25/tcp    open  smtp          Alt-N MDaemon mail server 9.6.1
42/tcp    open  wins          Microsoft Windows Wins
53/tcp    open  domain        Microsoft DNS
80/tcp    open  http          Microsoft IIS webserver 6.0
88/tcp    open  kerberos-sec  Microsoft Windows kerberos-sec
110/tcp   open  pop3          MDaemon pop3d 9.6.1
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn
143/tcp   open  imap          Alt-N MDaemon imapd 9.6.1
366/tcp   open  smtp          Alt-N MDaemon mail server 9.6.1
389/tcp   open  ldap
443/tcp   open  ssl/http      Alt-N MDaemon World Client webmail 9.6.2
445/tcp   open  microsoft-ds  Microsoft Windows 2003 microsoft-ds
464/tcp   open  kpasswd5?
465/tcp   open  ssl/smtp      Alt-N MDaemon mail server 9.6.1
587/tcp   open  smtp          MDaemon smtpd 9.6.1 (MSA support)
593/tcp   open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp   open  tcpwrapped
993/tcp   open  ssl/imap      Alt-N MDaemon imapd 9.6.1
995/tcp   open  ssl/pop3      MDaemon pop3d 9.6.1
1000/tcp  open  http          World Client WDaemon httpd 3.0
1026/tcp  open  LSA-or-nterm?
1027/tcp  open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
1049/tcp  open  msrpc         Microsoft Windows RPC
1091/tcp  open  unknown
1092/tcp  open  unknown
1098/tcp  open  msrpc         Microsoft Windows RPC
1116/tcp  open  unknown
1443/tcp  open  ies-lm?
1723/tcp  open  pptp          Microsoft (Firmware: 3790)
3000/tcp  open  http          World Client WDaemon httpd 9.6.2
3268/tcp  open  ldap
3269/tcp  open  tcpwrapped
3389/tcp  open  microsoft-rdp Microsoft Terminal Service
5405/tcp  open  netsupport    NetSupport PC remote control (Name URANO)
47001/tcp open  http          Microsoft IIS httpd
Service Info: Host: OMITIDO; OS: Windows
10  Programación / Programación General / Re: Como harian su propio Bot? en: 28 Enero 2013, 07:54 am
Buenas, bueno, yo habia entrado aqui buscando tutoriales de hackeo para win, pero como estoy tan rayado ya... y vi tu post y como es algo que intente en el pasado pues te comento una idea que se me ha ocurrido.

Ya en el pasado probe a hacer algo parecido. En una ocasion hice un bot de IRC, muy sencillo, era un simple bicho que respondia a comandos o preguntas estrictas con respuestas o acciones predeterminadas. Fin. Eso no tiene mucha gracia, verdad?

En otra ocasion intente con redes neuronales. Eso tiene mas gracia, pero no se puede hacer a lo loco. Las redes neuronales artificiales responden a los entrenamientos, si. Pero no se puede simplemente darle una entrada de datos totalmente arbitraria, sin haberla preparado para que tenga un cierto sentido estructural antes, y esperar que la red neuronal responda de manera inteligente. Al menos no con una red de tan pocas neuronas y de estructura tan simple como las que permiten los ordenadores(si, soy español) de hoy dia. Finalmente intente crear un programa de entrenamiento neuronal, que consistia en hacer permutaciones de la estructura neuronal, hasta dar con la estructura mas eficiente para el resultado buscado. Generalmente el entrenamiento neuronal consiste en un reajuste de los pesos de los puentes neuronales para adecuar la respuesta dada a la respuesta esperada; asi que modificar la estructura neuronal era ir un pasito mas alla, pero tampoco es que hiciera milagros. No suele haber indicadores a la hora de diseñar la estructura neuronal que mejor realice un trabajo determinado; es mas una cuestion de prueba y error. Por eso era importante para mi automatizar este proceso de modificacion de la estructura y ver hasta donde podia llegar.

Lo que se me ha ocurrido es lo siguiente(no se si es algo descabellado):

Crear tablas de significado unico por cada palabra, y conseguir un significado unico y completo (como el humano) por cada frase -> procesarlo por una red neuronal -> traducir la respuesta a la inversa con dichas tablas. Me explico:

Analogia:
Como formamos 256 numeros unicos(significados unicos) con tan solo un byte?
Un byte tiene 8 bits. Cada uno de ellos tiene dos unicos estados (1 o 0), pero combinando cada uno de ellos en sus distintos estados conseguimos 256 numeros distintos. Esto funciona porque cada bit es interpretado segun la posicion que ocupa dentro del byte.

Si decimos que cada uno de esos bits es una palabra o la raiz de una palabra (que tiene significado unico por si sola), y los combinamos de manera analoga a como se hace en el byte, obtendriamos 256 significados unicos (frases de diferente significado)

Esto se hace mediante ORs. Por ejemplo:

1: perro
2: bonito
4: esta
8: triste
16: gato
32: feo
64: corre
128: feliz

perro bonito esta triste -> 1+2+4+8 = 15 (15 seria el significado unico que representaria a la frase "(el) perro bonito esta triste")
gato feo corre feliz -> 16+32+64+128 = 240 (240 seria el significado unico que representaria a la frase "(el) gato feo corre feliz")
perro feliz esta feo -> 1+128+4+32 = 165 (165 seria el significado unico que representaria a la frase "(el) perro feliz esta feo")
etc

Esto tiene un problema:
p.e.: "el perro feliz esta feo" y "el perro feo esta feliz" tendria el mismo significado, pero sabemos que en realidad no es asi. No es lo mismo "el perro (que es) feliz esta feo", que "el perro (que es feo) esta feliz". Lo primero apunta a un perro que por lo general suele estar feliz, o que en ese momento esta feliz, y le añade a este un estado (esta feo). Lo segundo apunta a un perro cuya caracteristica es la de ser feo, y añade un significado de estado: esta feliz.

La solucion pasaria por un filtrado de subsecciones semanticas o sintacticas del lenguaje. Obtener el valor significativo unico de cada subseccion, y OR'earlo a la sección padre junto con un bit extra que le indique a la sección padre, que el significado proviene de una sección hija, de modo que el significado final del padre, sea el conjunto completo de padre e hijo y la diferenciacion clara de lo que es el padre y lo que es el hijo. (Esto se me esta complicando ;) ) No tengo muy claro hasta que punto seria esto factible. Voy con un ejemplo, a ver si me puedo aclarar yo mismo, jaja:

De hecho, he pensado que seria imposible determinar el padre y el hijo mediante un solo bit. Por eso creo que la manera adecuada, seria mediante el posicionamiento de los bytes. Vamos a determinar que el byte mas anterior sea el padre del siguiente. Ejemplo:
"el perro feliz esta feo":
"el perro feliz" -> 1+128 = 129
"esta feo" -> 4+32 = 36
"el perro feliz" "esta feo" -> 129 36
si esto lo traducimos en bits, usando dos bytes y no uno, seria:
10000001 00100100
si en lugar de OR'ear estos dos bytes (como haciamos antes con todos los bits) interpretamos los dos bytes tal cual, es decir, asignando nuevos valores de significado unico para los bits del byte superior (el anterior), tendriamos un significado unico de:
33060

"el perro feo esta feliz":
"el perro feo" -> 1+32 = 33
"esta feliz" -> 4+128 = 132
"el perro feo" "esta feliz" -> 33 132
00100001 10000100
8580

Por tanto ahora cada frase tendria un significado completamente distinto, justo como en la realidad.

Y procederiamos asi indefinidamente hasta resolver toda la jerarquia sintactica :)

Mas problemas:
Hay que tener en cuenta que el español, por ejemplo, consta de unas 90mil palabras.
Si cada palabra tomara un valor unico y OR'eable como se explico al principio, tendriamos valores ENORMES, que ningun ordenador actual seria capaz de procesar directamente, PERO, mediante un proceso secuencial, se podria lograr. Es decir, el ordenador no necesita saber que un significado consta de 100mil bytes(por ejemplo), solo necesita procesarlo adecuadamente, con la unidad mayor de informacion de que sea capaz (bytes, palabras de 64bits, etc).
Si ademas, añadimos el hecho de que deberemos utilizar secciones del numero de bits que corresponda al conjunto de todas las palabras del lenguaje, y que cada subseccion semantica podria ser hija de otra sección, tendriamos numeros ASTRONOMICOS. Por ejemplo, si el español consta de unas 90mil palabras, deberiamos manejar secciones compuestas de 90mil bits. Como "esta feo" es una subseccion semantica que pertenece a "el perro feliz", tendriamos una entrada de nada menos que 180mil bits.

Empieza a parecerme que mi acercamiento a la interpretacion del lenguaje humano, aunque parece ser factible y funcional, es ,hoy por hoy, impractico :)

En definitiva, este seria el proceso que yo utilizaria principalmente:

*Filtrar la entrada: eliminar palabras carentes de significado per se, como los articulos determinados (el la), etc.
*procesar la estructura sintactica de la entrada y encontrar las antedichas subsecciones semanticas
*alimentar el valor significativo y unico final a una red neuronal
*entrenar dicha red para que responda:
 -con acciones
 -con lenguaje humano: se procesa la salida de manera inversa a como se proceso la entrada alimentada a la red, traduciendo mediante tablas las diferentes subsecciones semanticas, obteniendo una estructura sintactica final con sentido semantico unico

Y ya, para terminar, el summum del summum:
*que el ordenador modifique la estructura de su propia red neuronal, acorde con el significado extraido de la entrada:
Al principio, podria modificarse a si mismo, segun lo que interprete de lo que le digamos, en definitiva solo estaria siguiendo ordenes complejas, nada nuevo.
Si le programamos una subrutina que se lance cuando el significado unico de la entrada diga algo asi como "te odio" o "me parece que eres tonto", etc. Esta subrutina podria hacer modificaciones estructurales minimas en la red neuronal, de modo que la siguiente entrada no seria interpretada exactamente del mismo modo que la primera vez, pero aun conserva la capacidad suficiente de interpretacion como para tener un alto grado de coherencia en sus respuestas. Sin embargo, tras ciertas llamadas a esta subrutina, se experimentaria un cambio(experiencia) final que se alejaria mas y mas del entrenamiento inicial(nacimiento), llegando al punto de que el sistema pudiera generar autenticas nuevas salidas(soluciones, opinion), y que no reaccionara del mismo modo anterior para llamar a su subrutina de modificacion estructural(comportamiento, se vuelve terco o complejo).

Por supuesto habria que mantener unos bancos de memoria enormes para almacenar la serie de entradas y salidas pasadas, un historico, y darle una subrutina para que el mismo pueda comprobarlas cuando reaccione a una determinada entrada, que bien pudiera haberse diluido o modificado de la inicial puesto que recordemos que incluimos una subrutina de modificacion estructural. De este modo, gozaria de un simil de la memoria humana, y accederia a ella, para sumarsela a la entrada, segun la entrada inicial lo exigiera, dando como resultado algo que no depende exclusivamente de la entrada recibida ni de su estructura neuronal, sino tambien de su memoria o experiencia(mas alla de su estructura neuronal).

Tambien podria incluirse el factor tiempo, para que pueda recordar y goce de un pensamiento mas humano. Se incluiria una subrutina cuyo proposito fuera el de llamar a la subrutina de acceso a los bancos de memoria (recordar), cogiendo varios y alimentandolos como entrada, para generar una nueva salida, que como ya habreis adivinado, puede ser decir algo, o realizar una accion practica, entre las que se incluirian las susodichas subrutinas de modificacion estructural, acceso a memoria pasada, y alimentacion a la misma subrutina tiempo inicializandola con valores basados en la entrada, para que, segun la entrada, sea llamada en un determinado siguiente momento... Y vuelva a recordar, y a modificarse a si mismo, etc, etc, etc...

Pfiuuu...
Bueno, pues eso es lo que yo NO haria jajajajaja
Yo cogeria algo hecho ya por ahi, e intentaria adaptarlo a mis necesidades.
Como elucubracion esta bonito, pero como proyecto practico queda bastante alejado de la realidad, me parece a mi.
Pero oye, si conseguis hacerlo asi como yo he dicho, me encantaria verlo. Seria algo asi como una conciencia en si misma...
Me avisais cuando lo hagais jajaja ;)

Saludos

Edito:
Un par de apuntes mas (o elucubraciones):

*Aclarar que el procesamiento de numeros mas grandes de los que puede manejar el ordenador no es ninguna invencion, y es perfectamente factible. Si tenemos un sistema de arquitectura de 64bits, con un S.O. de 64 bits, abrimos una calculadora y calculamos el valor de 2 elevado a 64, vemos que nos da el resultado decimal, pero si seguimos sumandole 1, 1, 1... el resultado no se vuelve cero ni mucho menos. El programa de calculo utiliza este sistema de procesamiento al que me referi anteriormente, y nos sigue dando numeros mas altos de los que el sistema es capaz de utilizar per se.

*Habiamos calculado que "el perro feliz esta feo" ocuparia nada menos que 180mil bits, lo que viene a ser 21Kbs nada menos! Pero hay que tener en cuenta, que dificilmente un ser humano lograria componer una frase(o mejor, una subseccion semantica) con la totalidad de las palabras de la lengua española. Por lo que, en definitiva, la mayoria del espacio ocupado por ese "significado", constaria de 0's. Y eso significa que se podria comprimir, y terminaria ocupando muchiiisimo menos, nada que ver. Y no solo seria practico la compresion y descompresion para almacenarlo en la memoria(de recuerdos), sino que incluso se podria utilizar en si misma(sin descomprimir en la practica) a la hora de la interpretacion de los significados mediante el anteriormente citado procesamiento secuencial. Y quizas incluso ahorrariamos ciclos de proceso.

Problem solved!

Lo se, soy un alucinado de la vida :)
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines