lunes, 12 de septiembre de 2011

Despues de Tiempo volvere a Publicar

Hola, despues de tiempo volvere a publicar en mi blog debido a que el trabajo me ha quitado demasiado tiempo para poder publicar en este blog.
Ahora les comento que tambien estoy metido en un proyecto sobre un UAV , vuelo autonomo.
con fines lucrativos.

Saludos.

lunes, 25 de abril de 2011

Parche para MIVA en PLESK soporte MYSQL

Esto es cuando MYSQL no esta configurado para ser usado por MIVA en PLESK, para poder actualizar el template del /conf/ para APACHE.

Debemos actualizar el siguiente archivo : /usr/local/psa/admin/conf/templates/default/service/miva.php

Debajo de la siguiente linea:
SetEnv MvCONFIG_DATABASE_MIVASQL server->miva->libDir ?>/databases/mivasql.so

Agregamos SetEnv MvCONFIG_DATABASE_mysql server->miva->libDir ?>/databases/mysql.so

y luego salvamos y reiniciamos el servicio
/etc/init.d/psa restart

Saludos

jueves, 7 de abril de 2011

Creando combinacion de teclado shortcuts en C#

Hoy, necesitaba crear accesos de teclado rapido para un proyecto en c# VS 2005.
(es indiferente la version de VS 2005 ) , pues la programacion sigue siendo la misma y no se necesitan librerias extras que se necesiten.

Es sencillo, en el formularo que deseemos implementar un shortcuts simplemente dentro del constructor o el metodo load de dicho formulario hacemos lo siguiente :
Si mi formulario se llama form1 , entonces seria asi :

frm1.KeyPreview = true;
this.KeyDown += new KeyEventHandler(this.frmBase_KeyDown);

Luego , afuera del constructor o funcion load del formulario , creamos este metodo

private void frmBase_KeyDown(object sender, KeyEventArgs e) {
if (e.Control && e.KeyCode == Keys.S) {
buttonX2_Click(null, null);
}
}


eso quiere decir que , cuando de Ctrl+ S , va a llamar al evento click del buttonX2 , que ya se encarga de realizar cualquier tipo de operacion.


Los Shortcuts son indispensable para cualquier software que requiera agilidad.
Saludos

martes, 15 de marzo de 2011

Cambiar propietario de un enlace simbólico

noviembre 7, 2007

No todo van a ser procedimientos de Oracle. En esta ocasión me he visto ante la tesitura de tener que crear un enlace simbólico a un fichero y cambiar el propietario (usuario y grupo) del mismo.

El propietario debía ser el usuario oracle, pero al intentar crear el link como éste me daba un error, ya que el fichero objetivo del link pertenece a root, de modo que lo he tenido que hacer como superusuario.

Crear el enlace simbólico es sencillo con el comando linux ln:

ln -s /ruta/objetivo /ruta/link

Para cambiar el propietario, he tenido que consultar la página man del comando chown, porque al ejecutarlo directamente sobre el link lo que cambia es el propietario del objetivo. De modo que, para sólo cambiar el propietario del link hay que ejecutar:

chown -h oracle:dba /ruta/link

viernes, 11 de marzo de 2011

15 usos prácticos del comando mysqladmin de MySQL

1. ¿Cómo cambiar la contraseña del usuario root en MySQL

# mysqladmin -u root -pxxx password ‘yyy’
# mysql -u root -pyyy
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.0.67 MySQL Community Server (GPL)
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

2. ¿Cómo chequear si el servidor MySQL está corriendo?

# mysqladmin -u root -p ping
Enter password:
mysqld is alive

3. ¿Cómo saber que versión de MySQL tengo?

# mysqladmin -u root -pxxx version
mysqladmin Ver 8.42 Distrib 5.0.67 on i686
Copyright (C) 2000-2006 MySQL AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version 5.0.67
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 100 days 0 hours 0 min 0 sec
Threads: 1 Questions: 241986 Slow queries: 0 Opens: 11097
Flush tables: 2 Open tables: 32 Queries per second avg: 1.23

4. ¿Cuál es el estado actual del servidor MySQL?

# mysqladmin -u root -pxxx status
Uptime: 8640000
Threads: 1 Questions: 241986 Slow queries: 0 Opens: 11097
Flush tables: 2 Open tables: 32 Queries per second avg: 1.23

El comando status muestra la siguiente información:

  • Uptime: segundos desde los que se inició el servidor
  • Threads: numero total de clientes conectados
  • Questions: número total de consultas que el servidor ha ejecutado desde desde su inicio.
  • Slow queries: número total de consulta que el servidor ha ejecutado y que tienen un tiempo mayor de ejecución a la variable long_query_time.
  • Opens: número total de tablas abiertas por el servidor.
  • Flush tables: cuantas tablas han sido “volcadas”.
  • Open tables: número total de tablas abiertas en la base de datos.

5. ¿Cómo ver las variables de estado de MySQL y sus valores actuales?

# mysqladmin -u root -pxxx extended-status
+———————————–+———–+
| Variable_name | Value |
+———————————–+———–+
| Aborted_clients | 579 |

6. ¿Cómo ver las variables del sistema de MySQL y sus valores?

# mysqladmin -u root -pxxx variables
+———————————+———————————+
| Variable_name | Value |
+———————————+———————————+
| auto_increment_increment | 1 |

7. ¿Cómo ver todos los procesos/consultas ejecutándose en la base de datos?

# mysqladmin -u root -pxxx processlist
+—-+——+———–+—-+———+——+——-+——————+
| Id | User | Host | db | Command | Time | State | Info |
+—-+——+———–+—-+———+——+——-+——————+
| 20 | root | localhost | | Sleep | 36 | | |
| 23 | root | localhost | | Query | 0 | | show processlist |
+—-+——+———–+—-+———+——+——-+——————+

También puedes correr este comando automáticamente cada un segundo de la siguiente forma:

# mysqladmin -u root -pxxx -i 1 processlist
+—-+——+———–+—-+———+——+——-+——————+
| Id | User | Host | db | Command | Time | State | Info |
+—-+——+———–+—-+———+——+——-+——————+
| 20 | root | localhost | | Sleep | 36 | | |
| 23 | root | localhost | | Query | 0 | | show processlist |
+—-+——+———–+—-+———+——+——-+——————++—-+——+———–+—-+———+——+——-+——————+
| Id | User | Host | db | Command | Time | State | Info |
+—-+——+———–+—-+———+——+——-+——————+
| 24 | root | localhost | | Query | 0 | | show processlist |
+—-+——+———–+—-+———+——+——-+——————+

8. ¿Cómo crear una base de datos MySQL?

# mysqladmin -u root -pxxx create basedeprueba

9. ¿Cómo eliminar una base de datos MySQL?

# mysqladmin -u root -pxxx drop basedeprueba
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.Do you really want to drop the ‘basedeprueba’ database [y/N] y
Database “basedeprueba” dropped

10. ¿Cómo recargar/refrescar los privilegios de la tabla de permisos?

# mysqladmin -u root -pxxx reload;

El comando refresh hará un flush de todas las tablas y cerrará/abrirá los archivos de log.

# mysqladmin -u root -pxxx refresh;

11. ¿Cuál es el método seguro de detener el servidor MySQL?

# mysqladmin -u root -pxxx shutdown

12. Listado de todos los comandos flush

# mysqladmin -u root -pxxx flush-hosts
# mysqladmin -u root -pxxx flush-logs
# mysqladmin -u root -pxxx flush-privileges
# mysqladmin -u root -pxxx flush-status
# mysqladmin -u root -pxxx flush-tables
# mysqladmin -u root -pxxx flush-threads

13. ¿Cómo matar un proceso pendiente de un cliente MySQL?
Previo a este comando es necesario identificar el thread a eliminar ejecutando el comando processlist de mysqladmin.

# mysqladmin -u root -pxxx kill 20

14. ¿Cómo iniciar y parar la replicación en un servidor esclavo en MySQL ?

# mysqladmin -u root -pxxx stop-slave
Slave stopped# mysqladmin -u root -pxxx start-slave

15. ¿Cómo combinar múltiples comandos de mysqladmin juntos?

# mysqladmin -u root -pxxx process status version
+—-+——+———–+—-+———+——+——-+——————+
| Id | User | Host | db | Command | Time | State | Info |
+—-+——+———–+—-+———+——+——-+——————+
| 43 | root | localhost | | Query | 0 | | show processlist |
+—-+——+———–+—-+———+——+——-+——————+

Uptime: 3135
Threads: 1 Questions: 50 Slow queries: 1 Opens: 10 Flush tables: 2
Open tables: 0 Queries per second avg: 0.5
mysqladmin Ver 8.42 Distrib 5.0.67 on i686
Copyright (C) 2000-2006 MySQL AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version 5.0.67
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 52 min 15 sec

lunes, 28 de febrero de 2011

Actualizar ProFtpd Plesk desde la version 9 hasta la 10.0.1

Aquí teneis una explicación en Castellano del bug http://wiki.woop.es/ProFTPD_TELNET_IAC

La solución de este bug es muy fácil

Como la gente de Atomicturtle.com son mas previsores agregaron a sus repositorios la versión 1.3.3c de psa-proftpd 1.3.3c solamente con agregar los repositorios al servidor y hacer despues un yum upgrade psa-proftpd basta para subsanar el bug de proFTPd

1) Agregamos el repositorio de Atomic con lo siguiente:

1
wget -O - http://www.atomicorp.com/installers/atomic |sh

2) Actualizamos psa-proftpd a la versión 1.3.3c con:

1
yum upgrade psa-proftpd

domingo, 27 de febrero de 2011

Configurando logwatch para automatizacion de lecturas de log

Log watch es un analizador de logs adaptable a nuestras necesidades, Logwatch analiza los logs en tu sistema en tiempos determinados y crea reportes en las tareas especificas que deceas analizar al detalle que requiera .

para instalar el programa instalamos primeramente el repositodio de Dag wiers

# rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

instalamos el programa necesario por medio de yum

# yum -y install logwatch

hacemos un respaldo del archivo de configuracion de logwatch ubicado en /etc/log.d/logwatch.conf

# cp /etc/log.d/logwatch.conf /etc/log.d/logwatch.conf-OLD

editamos el archivo /etc/log.d/logwatch.conf con las configuraciones que requerimos, el archivo se encuentra 100% documentado y explicado como adecuar a nuestras necesidades la aplicacion, en nuestro caso veremos como configurarlo con el mas alto nivel de información

# vi /etc/log.d/logwatch.conf

// indica el directorio donde tomara los logs
LogDir = /var/log

//directorio temporal
TmpDir = /tmp

//a que usuario enviara el correo generado con la informacion de los logs, existe la opcion de guardarlo en archivo

MailTo = root

// en este parametro al colocar "Yes" la salida sera enviada en pantalla y no por correo

Print = No

// dejar este parámetro en "Yes" si ud desea usar MkTemp y su versión soporta la opción -d

UseMkTemp = Yes

// folder MkTemp
MkTemp = /bin/mktemp

// se utiliza para indicar al programa que busque información en los archivos /var/log/message.1 o /var/log/messages.1.gz y no solo en /var/log/messages

Archives = Yes

//se utiliza para especificar el rango de periodo que recolectara la informacion de los logs . las opciones son , Today, Yesterday, All ,

Range = yesterday

//india el nivel de detalle de la información que sera enviara los parametros pueden ser Low, Med, High

Detail = High

// indica que servicios serán incluidos en el reporte para ver mas detalle en el archivo de configuración
Service = All

//indica el programa que utilizara para enviar el correo electronico

mailer = /bin/mail

para activar el script ( el rpm lo genera automatico ) se puede generar un enlace simbolico en el folder /etc/cron.daily de la sig manera

# ln -s /etc/log.d/scripts/logwatch.pl /etc/cron.daily

esto generara un reporte diario a las 4:00 am

How To Install BFD (Brute Force Detection) on CentOS


:: What is
Please take a look at this.


:: Installing dependency
Please take a look at this.


:: Installing BFD
[root@centoz ~]# mkdir download
[root@centoz ~]# cd download
[root@centoz download]# wget http://www.rfxnetworks.com/downloads/bfd-current.tar.gz
[root@centoz download]# tar -xzf bfd-current.tar.gz
[root@centoz download]# cd bfd-1.2/
[root@centoz bfd-1.2]# ./install.sh
.: BFD installed
Install path: /usr/local/bfd
Config path: /usr/local/bfd/conf.bfd
Executable path: /usr/local/sbin/bfd


:: Configuring BFD
[root@centoz bfd-1.2]# vi /usr/local/bfd/conf.bfd
==[ change on this options ]==
# send email alerts for all events [0 = off; 1 = on]
EMAIL_ALERTS="1"
# local user or email address alerts are sent to (separate multiple with comma)
EMAIL_ADDRESS="email@yourdomain.tld"
===================

:: Configure to Trasted IP
[root@centoz bfd-1.2]# vi /usr/local/bfd/ignore.hosts
==[ add your fix ip ]==
127.0.0.1
10.100.100.33
===============


:: Start BFD Service
[root@centoz bfd-1.2]# /usr/local/sbin/bfd -s

Instalacion de un Brute Force Detection Centos

how to install APF (Advanced Policy Firewall)

-:( what is ):-
please take a look at this.


-:( installing apf ):-
[root@centoz ~]# mkdir download
[root@centoz ~]# cd download
[root@centoz download]# wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz
[root@centoz download]# tar -xzf apf-current.tar.gz
[root@centoz download]# cd apf-9.7-1/
[root@centoz apf-9.7-1]# ./install.sh

-:( configuring apf ):-
[root@centoz apf-9.7-1]# vi /etc/apf/conf.apf
++++[ example in and outbound ]+++++
# Common inbound (ingress) TCP ports
IG_TCP_CPORTS="21,22,25,53,80,443,110,143,6000_7000"

# Common inbound (ingress) UDP ports
IG_UDP_CPORTS="53"

# Outbound (egress) filtering
EGF="1"

# Common outbound (egress) TCP ports
EG_TCP_CPORTS="21,25,80,443,43"

# Common outbound (egress) UDP ports
EG_UDP_CPORTS="20,21,53"
++++++++++++++++++++


-:( starting apf service ):-
[root@centoz apf-9.7-1]# /usr/local/sbin/apf -s
after apf started, please set DEVEL_MODE="1" to "0" for automatically clearing stop firewall every 5 minutes from cron.
[root@centoz apf-9.7-1]# vi /etc/apf/conf.apf
+++++++++
DEVEL_MODE="0"
++++++++


-:( configure apf rules ):-
[root@centoz apf-9.7-1]# vi /etc/apf/deny_hosts.rules
+++[ add ip address for denied ]++++
# deny ip host
10.100.100.2

# deny ssh connection
tcp:in:d=22:s=0/0
out:d=22:d=0/0
++++++++++

[root@centoz apf-9.7-1]# vi /etc/apf/allow_hosts.rules
++++[ add ip address for allowed ]++++
# allow ip host
10.100.100.33

# allow ssh connection from host
tcp:in:d=22:s=10.100.100.33
out:d=22:d=10.100.100.33
++++++++++++++++


-:( restart apf service ):-
[root@centoz apf-9.7-1]# /usr/local/sbin/apf -r


-:( add apf service on booting ):-
[root@centoz apf-9.7-1]# chkconfig --level 2345 apf on

-:( take a look apf log ):-
[root@centoz apf-9.7-1]# tail -f /var/log/apf_log

viernes, 25 de febrero de 2011

Recopilacion de Articulos que me han sido utiles para darle mantenimiento y gestion de : Qmail, Deteccion de spam, Mantenimiento de la cola de correo,

Para iniciar, parar o reiniciar el servidor plesk / psa:

/etc/init.d/psa stop o psa start

Para iniciar, parar o reiniciar el servidor de correo por comandos:

/etc/init.d/qmail restart  | stop | start
 

Manejar la Cola de Correo Qmail con Plesk

Para ver las estadísticas de la cola:


/usr/local/psa/admin/bin/mailqueuemng -s
Messages in local queue: 0 Los mensajes en cola local: 0
Messages in remote queue: 0 Los mensajes en cola remota: 0
Messages in todo queue: 0 Los mensajes en cola de hacer: 0
Messages total: 0 Total de mensajes: 0
Messages found: 0 Los mensajes encontrados: 0
Timestamp: 1215870834 Timestamp: 1215870834
-

De esto se puede ver el estado de qmails local, remoto y hacer la lista.

- Si usted desea hacer una entrega de los mensajes en cola ahora ejecutar el siguiente comando

/usr/local/psa/admin/bin/mailqueuemng -a

- Para una lista de cola de mensajes remotos:

/usr/local/psa/admin/bin/mailqueuemng -R

- lista de cola de mensajes local:

/usr/local/psa/admin/bin/mailqueuemng -L / Usr / local / psa / admin / bin / mailqueuemng L-

- Para borrar los mensajes con un patrón particular en el asunto

/usr/local/psa/admin/bin/mailqueuemng -S”text”

eg: /usr/local/psa/admin/bin/mailqueuemng -S”failure notice”

Se eliminarán todos los mensajes de error en la entrega. Nota: si deseas ver el asunto de los mensajes que estan atascados en la cola de correo, puedes entrar a la carpeta: /var/qmail/queue/mess/ Ahi encontraras varias carpetas con nombres de numeros, y en cada una varios numeros, cada numero es un mensaje/correo solo tienes que darle a mirar/abrir el fichero y listo.
- Para borrar todos los mensajes de la cola (Utilizar con precaución - posible pérdida de datos)

/usr/local/psa/admin/bin/mailqueuemng -D

Como Tratar Problemas de Spam en Plesk - Qmail

Aqui anexo otro articulo que encontre, para ayudarnos a localizar correos en el ervidor de qmail, abrirlos, mirar su contenido, detectar posibles ataques de spam, etc. 
- Dependiendo del número de clientes alojados en un servidor, encontrar que cuenta está enviando spam puede resultar difícil.

Mediante consola podemos ver como está la cola de correo:

# /var/qmail/bin/qmail-qstat
messages in queue: 500
messages in queue but not yet preprocessed: 0

Tenemos 500 mensajes en la cola. Examinemos la cola mediante qmail-read. Tanto correo en cola sin enviar tiene pinta de spam.

# /var/qmail/bin/qmail-qread


Examinamos el contenido de los mensajes en la cola usando el gestor de cola de correo de Plesk o bien el comando less. Primero deberíamos encontrar el mensaje usando qmail-qread, luego encontrarmos el contenedor del fichero de correo en /var/qmail/queue con el comando find.

# /var/qmail/bin/qmail-read
[...]
20 Jan 2010 02:35:10 GMT #220458745 1552 <>
remote
user@yahoo.comEsta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
[...]

#find /var/qmail/queue/ -name 220458745
/var/qmail/queue/mess/12/220458745
/var/qmail/queue/remote/12/220458745
/var/qmail/queue/info/12/220458745

# less /var/qmail/queue/mess/12/220458745
Received: (qmail 10728 invoked from network); 20 Jan 2010 02:35:10 +0100
Received: from unknown (HELO User) (90.91.92.93)
by domain.com with SMTP; 20 Jan 2010 02:35:10 +0100
Reply-To: <
support@bankofamerica.comEsta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla >
From: “PayPal”<
support@bankofamerica.comEsta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla >
Subject: Bank of america
Date: Tue, 20 Jan 2010 02:35:10 +0100
MIME-Version: 1.0
Content-Type: text/html;
charset=”Windows-1251″
Content-Transfer-Encoding: 7bit
X-Priority: 1
X-MSMail-Priority: High
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
[...]

Vaya, parece que tenemos alguien enviando spam desde la dirección ip: 90.91.92.93 (es una ip ficticia de ejemplo como los datos del correo). Ahora deberíamos eliminar dichos mensajes antes de que nos metan la ip del servidor en una lista negra.
Una vez eliminados, comprobamos que seguimos teniendo los mismos mensajes.
Llega la hora de usar tcpdump para analizar el tráfico de dicha ip que nos está dando la lata.

# tcpdump -i eth0 -n src 90.91.92.93 \or dst 90.91.92.93 -w smtp.tcpdump -s 2048

Con esto analizamos todo el tráfico entrante y saliente de dicha ip y lo guardamos en un archivo llamado smtp.tcpdump, el cual luego analizaremos mediante el comando less.

220 server.domain.com ESMTP
helo User
250-server.domain.com
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-AUTH LOGIN CRAM-MD5 PLAIN
250-STARTTLS
250-PIPELINING
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6
dGVzdA==
334 UGFzc3dvcmQ6
MTIzNDU=
235 go ahead

Quizá esté algo más enrevesado o con caracteres de otra codificación, pero tenemos que buscar lo que hay debajo de los números 334, y encontraremos usuario y contraseña.

Procedemos a decodificar esas cadenas de texto mediante perl:

#perl –MIME::Base64 -e ‘print decode_base64(“dGVzdA==”)’
#perl –MIME::Base64 -e ‘print decode_base64(“MTIzNDU=”)’

Esto nos revelará el usuario y contraseña con los que se ha autentificado dicho spammer y revisaremos el servidor, ya que un cliente ha creado un usuario llamado “test” con contrasela “12345″

# mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa
[...]
mysql> SELECT m.mail_name, d.name, a.password FROM mail AS m LEFT JOIN (domains AS d, accounts AS a) ON (m.dom_id = d.id AND m.account_id = a.id) WHERE m.mail_name=’test’ AND a.password=’12345′;
+———–+————+———-+
| mail_name | name | password |
+———–+————+———-+
| test | example.com | 12345 |
+———–+————+———-+
1 row in set (0.01 sec)

Bien, ahora procedemos a eliminar la cuenta y repetirle al cliente que “NO SE DEBEN USAR CONTRASEÑAS INSEGURAS”

Se recomienda que se active en el servidor lo siguiente:

Ajustes de Servidor > Correo > Verificar las contraseñas para los buzones en el vocabulario.

Truco interesante para buscar cuentas de correo en plesk-qmail con contraseñas faciles:
Podemos incluso realizar comprobaciones mediante esta consulta, la cual nos indicará que usuarios de correo tienen como contraseña “12345″

SELECT m.mail_name, d.name, a.password FROM mail AS m LEFT JOIN (domains AS d, accounts AS a) ON (m.dom_id = d.id AND m.account_id = a.id) WHERE a.password=’12345′;
Fuentes: 
http://www.cordobyte.com/blog/2010/02/como-tratar-problemas-de-spam-en-plesk/ 
http://www.forosdelweb.com/f92/destrabar-cola-correo-no-procesado-625181/ 
http://youropensource.com/projects/482-How-to-Managethe-mail-queue-in-Plesk  

martes, 1 de febrero de 2011

Como saber el separador Decimal y el separado de Miles en C#

Bueno , derrepente en varios proyectos donde se maneje dinero necesitaremos saber cual es el separador decimal en nuestro IDIOMA.
En este caso para c# se averigua de la siguiente manera:

string s;

s = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator;
MessageBox.Show("El separador decimal es: '" + s + "'");

s = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyGroupSeparator;
MessageBox.Show("El separador de miles es: '" + s + "'");


Espero les sea de ayuda

jueves, 20 de enero de 2011

Un buen Escaner de Directorios web en Perl

Podemos decir que estas herramientas a veces nos traen informacion super importante para realizar algun TEST de penetracion .
Pues con la ayuda de Nikto version 2, un excelente proyecto basado en PERL , nos permite escanear todos los posibles directorios y archivos vulnerables en nuestro sistema web.

para ello solamente vamos a la web oficial de Nikto 2 http://cirt.net/nikto2 y descargamos el proyecto.
para ejecutarlo es muy sencillo.
Solamente descargarmos el tar.gz
lo descomprimimos en el directorio de nuestra preferencia.
y ejecutamos el siguiente comando:

perl nikto.pl -h www.domain.com

y apartir de ahi nos puede lansar informacon interesante como esta:

+ /admin/admin_news_bot.php?root_path=http://cirt.net/rfiinc.txt??: Potential PHP MSSQL database connection string found.
+ /admin/admin_topic_action_logging.php?setmodules=attach&phpbb_root_path=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/admin_topic_action_logging.php?setmodules=pagestart&phpbb_root_path=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/admin_users.php?phpbb_root_path=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/auth.php?xcart_dir=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/auth.php?xcart_dir=http://cirt.net/rfiinc.txt??: Potential PHP MSSQL database connection string found.
+ /admin/auth/secure.php?cfgProgDir=http://cirt.net/rfiinc.txt??: Potential PHP MSSQL database connection string found.
+ /admin/autoprompter.php?CONFIG[BASE_PATH]=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/bin/patch.php?INSTALL_FOLDER=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/catagory.php?language=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/classes/pear/OLE/PPS.php?homedir=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/classes/pear/OLE/PPS/File.php?homedir=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/classes/pear/OLE/PPS/Root.php?homedir=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/classes/pear/Spreadsheet/Excel/Writer.php?homedir=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/classes/pear/Spreadsheet/Excel/Writer/BIFFwriter.php?homedir=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/classes/pear/Spreadsheet/Excel/Writer/Format.php?homedir=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/classes/pear/Spreadsheet/Excel/Writer/Parser.php?homedir=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/classes/pear/Spreadsheet/Excel/Writer/Workbook.php?homedir=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/classes/pear/Spreadsheet/Excel/Writer/Worksheet.php?homedir=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/code/index.php?load_page=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/comment.php?config[installdir]=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/common-menu.php?CONF[local_path]=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/components/com_fm/fm.install.php?lm_absolute_path=../../../&install_dir=http://cirt.net/rfiinc.txt??: Potential PHP MSSQL database connection string found.
+ /admin/config_settings.tpl.php?include_path=http://cirt.net/rfiinc.txt??&cmd=id: Potential PHP MSSQL database connection string found.
+ /admin/directory.php?config[installdir]=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/doeditconfig.php?thispath=../includes&config[path]=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/frontpage_right.php?loadadminpage=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/header.php?loc=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/inc/add.php?format_menue=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.
+ /admin/inc/change_action.php?format_menue=http://cirt.net/rfiinc.txt?: Potential PHP MSSQL database connection string found.


Saludos

miércoles, 19 de enero de 2011

Modulo PAM Linux

Vision general sobre PAM.

Los PAM son modulos de librerias compartidos,que son abiertos automaticamente por las aplicaciones que han sido compiladas con la libreria de autenticacion Linux-PAM primaria.

Las aplicaciones que usan los PAM (modulos PAM, se les llama a veces ) tipicamente se les hace referencia como aplicciones PAM.

Los PAM son modulos de libreria compartidos, una vision PAM del programa rsh puede reutilizar el mismo , Tienen permisos los usuarios para iniciar sesion ahora?,
Generalmente los modulos PAM tipicamente se almacenan en el directorio /lib/security , si bien en distribucionesmas antiguas Linux almacenaba los PAM en /usr/lib/security.


Los PAM usados por diferentes aplicaciones PAM pueden ser definidos de dos maneras diferentes. En implementaciones PAM modernas , son controlados por ficheros de configuracion especificos de la aplicaciones localizados en el directorio /etc/pam.d

En implementaciones mas antiguas de PAM, todos los modulos PAM usados por las aplicaciones de un sistema eran definidos en un solo fichero central de configuracion.
/etc/pam.conf. El enfoque antiguo todavia se admite para mantener la compatibilidad con las versiones antiguas mientras se promueve el enfoque mas moderno, pero esta obsoleto, se usaran los contenidos del directorio /etc/pam.d en vez del fichero /etc/pam.conf. si ambos existen en su sistema.

Ficheros de Configuracon PAM por Aplicacion/Servicio.

Cada fichero de configuracon PAM en /etc/pam.d tiene el mismo nombre que el servicio o aplicacion PAM asociado.
Por ejemplo zimbra debe tener su propio fichero de configuracion PAM asociado.

y este debe de contener las reglas PAM usadas durante su proceso de autentcacion.
El nombre del fichero de configuracion a usar se deriva del primer parametro pasado a la funcion pam_start() de la libreria Linux-PAM, que esl el nombre del servicio que esta siendo autenticado ( a mednudo el mismo de la aplicacion por comodidad). Estos ficheros puede ademas cotener comentarios ( Cualquier caracter en una linea a continuacion del tradicional signo de almohadillas (#) se iterpreta como un comentario).
Cada Linea que no es un comentario en uno de los ficheros en /etc/pam.d/ se define como un modulo PAM usado como parte del proceso de autenticacion para el servicio o aplicacion asociado. Cada uno de estos ficheros pueden contener cuatro campos separados por espcacios en blanco , los primeros tres de los cuales son obligatorios . Estos campos tiene el siguiente significado y contenido:

1) module-type: El tipo de modulo PAM definido en la linea. Un tipo de modulo PAM define coo es usado durante el proceso de autenticacion y cuyos valores validos son:

a) auth: identifica la comprobacion de autenticacion para verificar bien la identidad del usuario , o bien los requsisitos del sistema se han cumplido. Requsisitos del sistema comunes son que un servicio pueda ser iniciado en el momento actual ( Por ejemplo , que /etc/nologin no existe cuando un usuario esta intentando iniciar sesion) , que se este usando un dispositivo aceptable ( o lo que es lo mismo que el dispositivo este incluido en /etc/securitty ) si el usuario es el super-usuario , etc).

b) account: Verifica si el usuario puede autenticarse en base a requsitos del sistema , talos como si el usuario posee una cuenta valida, el numero maximo de usuarios permitidos en el sistema, el dispositivo que se este usando para acceder al sistema, si el usuario tiene acceso al servicio o aplicacion solicitado, etc.

c) password: Verifica la capacidad de un usuario paa actualizar mecanismos de autenticacion. Normalemente hay un modulo del tipo password por cada entrada al auth ligada a un mecanismo de autenticacion que puede ser actualizado.

d) session : identifica los modulos asociados con tareas que deben ser hechas antes de que el servicio o aplicacion asociado sea activado o que justo antes de terminar su ejecucion. Los modulos de este tipo son normalmente realizan la funcion tales como montar directorios o llevar registros de la informacion de un proceso de auditoria de sistema, o garantizar que los recursos del sistema estan disponibles.

2.- control-flag : las consecuencias del valor devuelto por el modulo PAM especificado. Valores Validos son:
a) required: indica que el exito en le ejecucion de un modulo PAM es obligatoria para el tipo de modulo especificado. El fallo de cualquier PAM marcado como required para un tipo de modulo especifico ( asi como el de todos los etiquetdos con auth ) es comunicado al servicio o aplicacion asociado solo despues de que todos los PAM requeridos para ese tipo de modulo han sido ejecutados.

b)requisite : Indica que un fallo del modulo PAM sera inmediatamente comunicado al servicio o aplicacion asociado.

c) sufficient: Indica que el exito en la ejecucion de modulo PAM satisface los requisitos de autenticacion de este tipo de modulo. Sin ningun otro PAM previo identificado como required ha falladado, ningun otro PAM para el modulo asociado sera ejecutado. El fallo de un PAM identificado sufficient es ignorado mientras que los posteriores modulos identificados como reiquired para ese tipo de modulo tengan existo. Si un PAM anterior con el valor de required falla, el exito de un PAM marcado como sufficent se ignora.

d)optional: Infica que el exito de un modulo PAM no es critico para el servicio o aplicacion, a menos que sea el unico PAM para un tipo de modulo especifico. Si es asi , su exito o fallo determina el exito o fallo del tipo de modulo especificado.

e) module-path : El nombre del modulo PAM asociado con esta entrada. Por defecto los modulos PAM se encuentran en /lib/security , pero este campo puede identificar ademas modulos localizados en otros directorios con especificar la ruta absoluta y el nombre del fichero de un modulo PAM.

f) arguments: Opcional, argumentos especificos del modulso

Bien, esto probablemente ha sido demasiado pesado pero una informacion referencia necesaria.

Denegar cualquier acceso en menos de un segundo Linux

Hola que tal, derrepente a ustedes les habra pasado alguna vez que estan revisando los log's de cualquier servidor y se encuentran con una IP tratando de apoderarse de alguna cuenta de usuario de nuestro servidor. Entonces nosotros queremos denegar cualquier acceso de cualquier usuario a nuestro servidor, claro con excepcion de nuestro querido super-usuario root.

Para lograr esto se necesita usar el siguiente comando:

#touch /etc/nologin

con esto nosotros estamos desactivando, cualquier actividad .

Otro mecanimso que suelo usar es el siguiente:
Generalmente en la estructura de /etc/ nos encontramos con dos ficheros muy interesantes como el hosts.deny y el hosts.allow simplemente para denegar cualquier acceso deberiamos de mover estos dos ficheros a otro lado o en el mismo lugar pero con otro nombre y crear uno nuevo llamado /etc/hosts.deny con el siguiente contenido:


ALL:ALL@ALL

Esto bloqueara cualquier acceso a nuestro servidor.

martes, 18 de enero de 2011

Renovar Cache DNS Windows XP/LINUX/MAC OS

Algunas vez derrepente haz querido renovar tus registros DNS en windows XP , cuando haces alguna migracion de dominio en los DNS del mismo y quieres comprobar si es que ya cambio.
Para realizar esto con mayor seguridad derrepente los DNS de tu proovedor ISP ya cambiaron pero tus registro de cliente del DNS aun no se actualizan y para poder hacerlo necesitas ir a Ininio/Ejecutar/cmd
Luego de eso deberas introducir el comando :
#ipconfig /dnsflush

Para realizar este procedimiento en sistemas Linux, se debe reiniciar el nscd daemon:

- Para reiniciar el nscd daemon, usted debe tipiar /etc/rc.d/init.d/nscd restart en su terminal SSH.

- Una vez que usted ejecuta el comando en su sistema Linux, la cache DNS es renovada y en vaciada.

Para renovar la cache DNS en sistemas Mac OS:

- Usted debe tipiar lookupd -flushcache en su terminal para renovar la cache DNS, en el caso de las nuevas versiones (10.5 en adelante, Leopard) se debe utilizar dscacheutil -flushcache para renovar la cache.

ex: bash-2.05a$ lookupd -flushcache

- Una vez que ejecuta el comando su cache DNS será renovada (en Mac OS X).



Saludos

Revisando el Espacio en nuestro Disco Duro GNU/LINUX

Existen oportunidades que nos nace saber cual es el espacio disponible que se encuentra en nuestro disco duro en LINUX, para ello existe un comando muy facil que nos puede ayudar en esta tarea.
Ese comando es: df

Este comando nos muestra información sobre las particiones: el tamaño, el espacio usado, el espacio disponible, el porcentaje de uso y el punto de montaje. Se puede usar con -h para que muestre los tamaños en forma “entendible por humanos” (en lugar de que mostrar 3064428 muestre 3.0G:

df -h

Comando du

Con este comando podemos ver cuánto tamaño ocupa cada carpeta (y subcarpeta) del sistema. En mi caso me fue de mucha utilidad, pues quería saber exactamente qué es lo que me ocupaba tanto espacio dentro de /home. También admite la opción -h. Dependiendo de la profundidad (número de subcarpetas) que tenga alguna carpeta o sistema de archivos puede llegar a ser un poco tedioso ver la salida del comando. Por eso, otra opción interesante es --max-depth=n donde n es la máxima profundidad que queremos que se nos muestre. Así, si por ejemplo ejecutamos:

du -h --max-depth=3 /home/koki

Nos mostrará el total de espacio que ocupa cada carpeta, hasta un nivel de 3 subcarpetas a partir de /home/koki/, por ejemplo una parte de la salida es:

4.0K /home/koki/.kde/share/icons 1.9M /home/koki/.kde/share/wallpapers 160K /home/koki/.kde/share/mimelnk 1.6M /home/koki/.kde/share/config 4.0K /home/koki/.kde/share/locale 8.0K /home/koki/.kde/share/services 4.0K /home/koki/.kde/share/servicetypes 16K /home/koki/.kde/share/applnk 57M /home/koki/.kde/share/apps 61M /home/koki/.kde/share

Donde vemos el tamaño de cada subcarpeta dentro de .kde/share y al final el total.

Si es que tenemos un número grande de carpetas, podemos redireccionar la salida a un archivo de texto para analizarlo luego con calma:

du -h --max-depth=3 /home/koki >archivo.txt

Espero les sea de mucha ayuda