![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Grande....
Primero que nada, mi admiración y respeto.
Me da una idea lo que comentas en tu post, pero para ser sincero viendo el codigo que pusiste, no tengo ni idea de lo que hiciste; me pregunto cuanto fue lo que dedicaste en tiempo y esfuerzo para llegar a dominar tal nivel dentro de la programación, mi admiración mas sincera y mi envidia mas sana de la que pueda hacer gala, al igual que a otros de los compañeros del club que no los menciono puesto que podria no nombrar a alguno y no sería correcto pero que muchos sabemos quienes son. Gracias por su apoyo y enseñanza. Un saludo y abrazo a todos ustedes que hacen posible este gran espacio. |
|
#2
|
||||
|
||||
|
¿Nadie se anima a "meter el dedo" en el código?
Bueno, yo sigo dándole un lavado de cara, quitando algunas cosas que sobraban y añadiendo algunas otras. Ahora el objetivo es el FileZilla, es interesante ver como en una conexión FTP todo, incluso las contraseñas, se envían sin cifrar, mientras que usando FTPS todo se vuelve un revoltijo de bytes sin sentido. El código de la dll:
Y por si alguien tiene curiosidad sobre lo que comentaba del ftp: FTP normal: Código:
00000000 0.00000000 [3420] send: Hookeado 00000001 0.00014471 [3420] send: Hookeado 00000002 0.00025730 [3420] recv: Hookeado 00000003 0.00033300 [3420] recv: Hookeado 00000004 0.00044000 [3420] WSASend: Hookeado 00000005 0.00054169 [3420] WSARecv: Hookeado 00000006 0.01691332 [3420] WSARecv: Hookeado 00000007 6.09645510 [3420] Recv(472): 220---------- Welcome to Pure-FTPd [TLS] ----------..220-You are user number 10 of 100 allowed...220-Local time is now 11:57. Server port: 21...220-This is a private system - No anonymous login..220 You will be disconnected after 15 minutes of inactivity... 00000008 6.10500622 [3420] Send(472): USER usuario.. 00000009 6.20800686 [3420] Recv(472): 331 User usuario OK. Password required.. 00000010 6.21136618 [3420] Send(472): PASS password.. 00000011 7.68974400 [3420] Recv(472): 230-User usuario has group access to: usuario ..230 OK. Current restricted directory is /.. 00000012 7.69142294 [3420] Send(472): SYST.. 00000013 7.79814720 [3420] Recv(472): 215 UNIX Type: L8.. 00000014 7.79918385 [3420] Send(472): FEAT.. 00000015 7.90416002 [3420] Recv(472): 211-Extensions supported:.. EPRT.. IDLE.. MDTM.. SIZE.. REST STREAM.. MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;.. MLSD.. ESTP.. PASV.. EPSV.. SPSV.. ESTA.. AUTH TLS.. PBSZ.. PROT..211 End... 00000016 7.92951632 [3420] Send(472): PWD.. 00000017 8.03565025 [3420] Recv(472): 257 "/" is your current location.. 00000018 8.03662586 [3420] Send(472): TYPE A.. 00000019 8.14296532 [3420] Recv(472): 200 TYPE is now ASCII.. 00000020 8.14391899 [3420] Send(472): PASV.. 00000021 8.25138378 [3420] Recv(472): 227 Entering Passive Mode (86,109,99,252,148,1).. 00000022 8.25234795 [3420] Send(472): LIST.. Código:
00000000 0.00000000 [3444] send: Hookeado 00000001 0.00014499 [3444] send: Hookeado 00000002 0.00025925 [3444] recv: Hookeado 00000003 0.00033663 [3444] recv: Hookeado 00000004 0.00044447 [3444] WSASend: Hookeado 00000005 0.00057186 [3444] WSARecv: Hookeado 00000006 0.01196353 [3444] WSARecv: Hookeado 00000007 8.25035477 [3444] Recv(472): 220 Indy FTP Server ready... 00000008 8.25047493 [3444] Send(472): AUTH SSL.. 00000009 8.27392101 [3444] Recv(472): 234 AUTH Command OK. Initializing SSL.. 00000010 8.51114845 [3444] Send(472): .j....Q......9..8..5..............3..2../.............................@.....................>^...z....T..).Q 00000011 8.51255322 [3444] Recv(472): ._....../....0..+0...............j...0...*.H........0E1.0...U....AU1.0...U....Some-State1!0...U....Internet Widgits Pty Ltd0...070709185831Z..100708185831Z0E1.0...U....AU1.0...U....Some-State1!0...U....Internet Widgits Pty Ltd0\0...*.H.........K.0H.A...#...-..tyv.o....w....u.BC......:....&....}.P.":....9.2VI.X.s..........0..0...U......$.*$B...4.P.%..[.pHJ0u..U.#.n0l..$.*$B...4.P.%..[.pHJ.I.G0E1.0...U....AU1.0...U....Some-State1!0...U....Internet Widgits Pty Ltd.......j...0...U....0....0...*.H.........A.........'DQ....2..K..<.h|.*.8QT]..x<.... v.?...5d..0B..m.[[email protected]#..UWB..-..0.E 00000012 8.51360226 [3444] Send(472): .R.......@...<.#$./d.!..Ji....C......+{}$....`..~.M.....\(.."...u%J..L...Uh.2N.....O.(........g..diz...?nsN.LgOS...9.B...<Z.... 00000013 8.51596642 [3444] Recv(472): .(..R.....B..h+.Cx..(..../....S..V..z#......(.t....l.,....)P.....c.Ky$K.....5.Z.T..K8. Última edición por seoane fecha: 18-07-2007 a las 20:49:19. |
|
#3
|
||||
|
||||
|
Pues yo sigo jugando, así que probé a inyectarme en el Opera, Firebird y IExplorer. Los resultados no fueron los que esperaba, solo tuve éxito en el firebird.
Ejemplo de llamada a google desde firebird: Código:
00000000 0.00000000 [1612] send: Hookeado
00000001 0.00023970 [1612] send: Hookeado
00000002 0.00030451 [1612] send: Hookeado
00000003 0.00040508 [1612] recv: Hookeado
00000004 0.00055957 [1612] recv: Hookeado
00000005 0.00061293 [1612] recv: Hookeado
00000006 0.00079116 [1612] WSARecv: Hookeado
00000007 0.01721001 [1612] WSARecv: Hookeado
00000008 3.87779331 [1612] Send(424): 8
00000009 3.87790227 [1612] Recv(400): 8
00000010 7.33975983 [1612] Send(424): 8
00000011 7.36298990 [1612] Recv(400): 8
00000012 7.36321735 [1612] Send(760): GET /search?q=hola&ie=utf-8&oe=utf-8&aq=t (... continua ...)
00000013 7.50138474 [1612] Send(424): 8
00000014 7.50156593 [1612] Recv(760): HTTP/1.1 302 Found..Location: http://www.google.es/search?q=hola (... continua ...)
00000015 7.50168085 [1612] Send(424): 8
00000016 7.50173950 [1612] Recv(400): 88
00000017 7.51233768 [1612] Send(424): 8
00000018 7.51238394 [1612] Recv(400): 8
00000019 7.51343203 [1612] Send(424): 8
00000020 7.51364422 [1612] Send(792): GET /search?q=hola&ie=utf-8&oe=utf-8&aq=t (... continua ...)
00000021 7.51375008 [1612] Recv(400): 8
00000022 7.66461515 [1612] Send(424): 8
00000023 7.66482592 [1612] Recv(792): HTTP/1.1 200 OK..Cache-Control: private..Content-Type: text/html; (... continua ...)
00000024 7.66492271 [1612] Recv(400): 8
00000025 7.69945812 [1612] Send(424): 8
00000026 7.69976521 [1612] Recv(400): 8
00000027 7.74328566 [1612] Send(808): GET /images/nav_logo3.png HTTP/1.1..Host: www.google.es..User-Agent: Mozilla/5.0 (... continua ...)
00000028 7.76948357 [1612] Recv(792): 585...\.R.H......*L.b;..a+.......B`k.jImYXR;-...\.>......V.r.w.&.${NK.._ .. (... continua ...)
00000030 7.79967022 [1612] Send(424): 8
00000031 7.85533857 [1612] Send(424): 8
00000032 7.85574055 [1612] Send(424): 8
00000033 7.86081028 [1612] Recv(808): HTTP/1.1 200 OK..Content-Type: image/png..Last-Modified: (... continua ...)
00000036 7.86227322 [1612] Recv(400): 888
00000037 7.86240196 [1612] Send(424): 8
00000038 7.86249828 [1612] Send(424): 8
00000039 7.86318731 [1612] Recv(400): 88
00000040 7.93753862 [1612] Recv(808): >.0.K..NA......LZ.d......k.Q.e?j0R...X.l...{.C....... ..' (... continua ...)
00000042 7.94816399 [1612] Send(424): 8
00000043 7.94913769 [1612] Recv(400): 8
00000044 7.96834993 [1612] Send(424): 8
00000045 7.96871567 [1612] Recv(400): 8
00000046 8.02914429 [1612] Send(736): GET / HTTP/1.1..Host: www.hola.com..User-Agent: Mozilla/5.0 (... continua ...)
00000047 8.11064625 [1612] Recv(736): HTTP/1.1 200 OK..Server: Apache..Pragma: no-cache..Last-Modified: (... continua ...)
00000048 8.11452866 [1612] Send(424): 8
00000049 8.11458588 [1612] Recv(400): 8
00000050 18.88658333 [1612] Send(424): 8
00000051 18.88676453 [1612] Recv(400): 8
00000052 33.90203857 [1612] Send(424): 8
00000053 33.90223312 [1612] Recv(400): 8
00000054 48.91870117 [1612] Send(424): 8
00000055 48.91886902 [1612] Recv(400): 8
00000056 64.33921051 [1612] Send(424): 8
00000057 64.34007263 [1612] Recv(400): 8
Lo que me tiene extrañado es por que Opera e IExplorer son inmunes. Ahora estoy interceptando las llamada send, recv, wsasend, wsarecv así que supongo que estos dos no utilizan estas funciones, y me pregunto cuales usaran. O acaso están protegidos contra las inyecciones de código. Seguiré investigando, es decir jugando ![]() |
|
#4
|
|||
|
|||
|
Hooks a nivel de sistema
Que tal
Esta muy interesante el codigo (ojala lo pudieramos ir documentando) sobre todo cuando haces el inject con WriteProcessMemory Estuve haciendo unas pruebas pero al principio no veia nada en el debug View, asi que modifique la dll del hook para que escribiera a un archivo de .log y al poco tiempo empezo a mostrarse tambien en el debug viewer, algunas veces parece que no logra hacer el hook hasta despues de varios intentos. Crees que se podria hacer estos hooks de winsock a nivel de sistema, que sirviera para monitorear la red o hacer algo como un firewall? |
|
#5
|
||||
|
||||
|
Estoy un poco lerdo... se me están pasando mensajes que no se me deberían pasar...
Excelente seoane, si ya por de sí es difícil andar jugando con sockets, parece aún mas parchear las propias funciones de estos. Muy original lo de OutputDebugString, En todo caso "recuerda" que también es posible interceptar el puerto en cuestión... y ahí seguro que ni el Opera ni nadie se resiste.Una más para tu repositorio... ![]()
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
|
#6
|
|||||||
|
|||||||
|
Hola cheke, me alegro de que alguien se animara a revisar el código.
Cita:
Lo siento, es una costumbre muy fea que tengo, nunca documento el código. Intentare documentar esa función.Cita:
Cita:
Otra opción interesante es utilizar para inyectarnos la función SetWindowsHookEx, usando la librería como un hook de windows. Así seria el propio windows el encargado de inyectarnos en todos los procesos que tuvieran ventanas, una solución bastante cómoda. Aunque no controlaríamos las aplicaciones de consola. Yo por ahora el código lo veo mas como un juguete para ver como funcionan los programas "por dentro", que como una herramienta de seguridad. Pero nada impide evolucionarlo un poquito mas, es decir, afinando el proceso de inyección y hook de las apis, interceptando las llamadas a las apis que crean procesos y cargan librerías (para así reajustar los hooks), interceptando mas apis del winsock, etc ... Hola Ardilla, Cita:
Cita:
En cuanto a la función OutputDebugString, desde que la descubrí hace un par de años, es una de mis funciones preferidas. Utilisima y muy recomendable, sobre todo cuando estas escribiendo código que no tiene una salida por pantalla. Cita:
Yo todavía estoy esperando un ejemplo completo, ya sabes, bajar el archivo zip, descomprimir, compilar y ver los resultados. Lo demás es teorizar Cita:
|
|
#7
|
||||
|
||||
|
Cita:
Yo lo hice con un programa que se conecta a un servidor de ajedrez y los resultados como comenté fueron fabulosos. De todas formas, "aquel código" que publique hace unas fechas, es justamente el que utilizaba para monitorizar el puerto, si ya sabes, aquel de la "promiscuidad". Así que solamente sería cuestión de probar ese código y ver los resultados en cualquier puerto que esté ocupado por una aplicación... Eso código, básicamente en lo que difiere a otros que utilizan sockets, es en los parámetros de conexión, y en lo que hemos/han dado por llamar "modo promiscuo". Saludos.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
|
#8
|
||||
|
||||
|
Cita:
Es broma, ya se que no todo el mundo dispone de tanto tiempo como yo, y menos para emplearlo en estos asuntos.Cita:
, este tipo de expresiones son las que te hacen parecer un experto (aunque no lo seas ) |
|
#9
|
|||
|
|||
|
Hola seoane
Cita:
AppName: msnmsgr.exe AppVer: 8.1.178.0 AppStamp:45b12d6a ModName: hookit.dll ModVer: 0.0.0.0 ModStamp:2a425e19 fDebug: 0 Offset: 00001c0d Bueno no se a que se deba tal vez esta muy saturado mi msn, tenia cerca de 60 conectados de un total de 400.. o tal vez el msn despues de un rato se da cuenta que a sido intervenido Y acerca de lo que comentan de hacer dinero con este tipo de programacion, estoy muy seguro de que si se puede, hace poco antes de encontrar este post compre una dll para hacer hooks de sistema para monitorear una impresora esta dll que en realidad son dcus para delphi me costaron 199 dls. pero creo que es mas redituable aun las aplicaciones que se puedan generar a partir de esto. Por cierto estos dcus que compre (www.madshi.net) hacen un hook del sistema, mi pregunta es como lo haran porque segun lo que comentas habria que inyectarnos en todos los procesos del sistema. Tiene que ser por cada proceso o habra alguna manera general de inyectarse a todo el sistema? ¡Por cierto excelente trabajo seoane! da gusto encontrar este tipo de codigos ![]() |
|
#10
|
||||
|
||||
|
Lo del error debe ser culpa de mi código, ya dije que era una "prueba de concepto" y puede que se colara algún error. Es lo que tiene jugar con procesos ajenos
Cita:
Cita:
De todas formas, seguro que se puede ir mucho mas abajo. He oído hablar de rootkits hechos en delphi que se mueven a nivel del kernel, pero eso ya se me hace algo complicado de entender. Puede que mas adelante, quien sabe ... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| delphi y ms messenger `````` | alejo000 | Internet | 9 | 16-02-2009 19:16:02 |
| Grabar Messenger | Avellas | Internet | 15 | 29-06-2007 01:14:47 |
| Jugando con los numeros | seoane | La Taberna | 3 | 14-01-2007 15:34:15 |
| messenger por comandos | Cosgaya | Varios | 0 | 01-02-2006 12:58:17 |
| Jugando Al Golf | Bicho | Humor | 0 | 19-01-2006 11:51:52 |
|