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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: [1]
1  Programación / PHP / Manipular resultados de ssh2_exec. en: 8 Marzo 2011, 20:24 pm
Hola, estoy trabajando en unas conexiones remotas con php con la función ssh2_connect y después ejecutando comandos con la función ssh2_exec. Mi pregunta es si puedo obtener a partir de alguna funcion o algo los resultados de la ejecución para trabajarlos con el php, por ejemplo

Código
  1. <?php
  2. $connection = ssh2_connect('shell.example.com', 22);
  3. ssh2_auth_password($connection, 'username', 'password');
  4.  
  5. $stream = ssh2_exec($connection, 'cat /var/log/syslog | grep arpwatch');
  6. ?>

Los resultados de cat /var/log/syslog | grep arpwatch manipularlos con el PHP.
2  Comunicaciones / Redes / Monitor de servidores DHCP en: 7 Marzo 2011, 05:39 am
Hace unos días tuve un inconveniente con una red LAN de oficinas con aproximadamente 500 usuarios. Uno de ellos compro un modem/router con switch y wireless para extender la red en su oficina sin consultar al sector técnico, la cuestión es que instalo todo “OK” pero no se dio cuenta de que dejo el servidor DHCP de su router activo y en modo autoritativo. Luego de unas horas muchos clientes no tenían conexión me puse a investigar y encontré de que no tenían las direcciones de IP y DNS correctas entonces pensé, se encabrono mi servidor DHCP porque en la configuración del cliente decía que el Servidor DHCP que había entregado los datos era el autorizado.
Revise por todos lados y no encontré anomalías en el servidor, entonces con la notebook de testeo me fui pasando por cada uno de los switchs principales para ver en donde estaba la falla,  mandando señales DISCOVERY a la red y analizando las respuestas con WIRESHARK hasta que llegue al causante del problema, lo apague y se normalizo el servicio.

Ahora les traigo un detector de servidores DHCP que se llama (dhcpdetector). Lo modifique  muy precariamente (por cuestiones de tiempo) para que se quede monitoreando la red y si encuentra algo raro me lo guarde en una base de datos y me mande un mail.
Se lo puede automatizar mucho mas, mejorarlo y hacerlo más sencillo de instalar y usar. En esta ocasión les dejo lo que tengo, por ahí a alguien le sirve para algo.

Requisitos:
Sistema operativo GNU/LINUX
Servidor web con php5 y mysql
PHPMailerv5.1
Cron


Codigos fuente y base de datos: http://www.isuncaus.com.ar/codigos.txt

Pasos para instalar:

*Una carpeta en ella tienen que estar las clases de phpmailer y el send.php (el código de send.php está abajo junto a make.sh, dhcpdetector.c y la base de datos). Para usar el dhcpdetector.c tienen que modificarlo agregando las ips de sus servidores dhcp en la función get_raw_packet, mas específicamente estas líneas:

//Aquí irían las IPs de sus servidores DHCP, los autorizados
//Las IPs las tomo como la tuma de sus rangos ej: 10.10.17.178 => 10+10+17+178
//En este caso tengo dos, ustedes pueden aregar mas       
int dhcpauth1 = 449; //10.10.17.178 => 10+10+17+178
int dhcpauth2 = 449; //10.10.40.3 => 10+10+40+3

Luego compilarlo usando el archivo make.sh (alojan make.sh y dhcpdetector en una carpeta (en carpeta en donde se encuentra el send.php) y ejecutan “./make.sh” entonces eso va a compilar el código y les va a generar un archivo “dhcpdetector” sin ninguna extensión. Para ejecutar el dhcpdetector teclean “./dhcpdetector suinteface” ejemplo “./dhcpdetector eth0”

*En la parte de la base de datos la exportan y generan un usuario con contraseña, luego ponen esos datos en el send.php para que pueda conectarse a ella.
*El php (send.php) tiene que estar con permisos 777 y el phpmailer configurado con los datos de alguna cuenta gmail
*Tienen que dejar programado un cron para que ejecute “./dhcpdetector suinteface” cada tanto.
Esto ocasionara que si detecta un servidor dhcp extraño, lo guarde en la base de datos (dirección de ip y mac)  y les de un aviso a su mail


Codigos fuente y base de datos: http://www.isuncaus.com.ar/codigos.txt

Saludos
3  Comunicaciones / Redes / [Wiki] Instalar ROUTER`OS en máquina virtual en: 20 Febrero 2011, 06:51 am
Hola, en este articulo voy a mostrarles como instalar ROUTEROS en una maquina virtual de Oracle VM VirtualBox para windows. Antes que nada necesitamos tener instalado el VirtualBox en nuestra pc, cabe destacar que si ustedes tienen otro virtualizador pueden utilizarlo. La primera parte de este artículo va dedicada a aquellas personas que no saben crear maquinas virtuales en VirtualBox, empezamos:

routeros: El principal producto de Mikrotik es el sistema operativo conocido como Mikrotik RouterOS basados en Linux. Permite a los usuarios convertir un ordenador personal PC en un router, lo que permite funciones como firewall, VPN Server y Cliente, Gestor de ancho de banda, QoS, punto de acceso inalámbrico y otras características comúnmente utilizado para el enrutamiento y la conexión de redes. El sistema operativo es licenciada en la escalada de niveles, cada uno de ellos en libertad a más de los disponibles RouterOS características como el nivel número se eleva. La concesión de licencias es la base y la tasa aumenta con los elementos puestos en libertad. Existe un software llamado Winbox que ofrece una sofisticada interfaz gráfica para el sistema operativo RouterOS. El software también permite conexiones a través de FTP y Telnet, SSH y acceso shell. También hay una API que permite crear aplicaciones personalizadas para la gestión y supervisión
El RouterOS implementa funcionalidades que los ISP de tamaño medio-grande pueden usar, como por ejemplo OSPF, BGP ó VPLS/MPLS.
Entendido como un todo-en-uno, RouterOS es un sistema versátil, con un soporte técnico muy bueno por parte de Mikrotik, tanto a través de un foro como de una wiki, proporcionando una amplia variedad de ejemplos de configuración.
Este software soporta virtualmente todos las interfaces de red que el kernel de Linux 2.6.16 soporta, exceptuando los inalámbricos. En este caso, solo los chipset de Atheros y PRISM están soportados.


1. Ejecutar el VirtualBox y tocar con el ratón el boton "NUEVA" y aparecerá una pantalla parecida a esta y apretamos en next:




2.Pedirá el nombre de la maquina y el sistema operativo, en mi caso el nombre de la maquina es "ROUTEROS" y el sistema operativo linux y version "other linux":




3. El siguiente paso es asignar memoria a la maquina virtual, ROUTEROS para correr no necesita mucha memoria ram, es más, muchos modelos de routerbroad Mikrotik en donde corre ROUTEROS poseen 64 MB de memoria. La memoria tiene que proporcional a la cantidad de pcs que el router maneja y al número de reglas que este tenga (se los digo para que lo tengan en cuenta el día que decidan implementar routerbroad en alguna red empresarial), para este ejemplo asigne 256 MB de RAM:




4. Después de asignar la memoria RAM a la maquina tendremos que crear el disco virtual, tildamos la casilla "disco duro de arranque" y seleccionamos "crear disco duro virtual nuevo" y pisamos en el botón siguiente



5. Ahora se tiene que escoger el tipo de almacenamiento, les recomiendo que elijan el dinámico, esto significa que no reserva todo el espacio, si no que lo va ocupando a medida de que el sistema así lo requiera




6. Se configura el espacio, no se necesita mucho. Para este ejemplo puse menos de 1GB




7. Se pulsa el botón terminar




8. Arrancamos la maquina virtual, cuando se la arranca por primera vez nos va a pedir un medio de instalación, allí tendremos que poner el .iso que descargaremos de la pagina web oficial de mikrotik http://www.mikrotik.com/download.html. En el selector "Select system type" ponemos "PC / X86" y en "Select software type" ponemos "all versions", van a ver todas las versiones disponibles descarguen el ".iso" de la versión RouterOS 4.16





9. Una vez que seleccionemos bootear desde el iso del ROUTEROS pulsamos siguiente. Va a cargar el sistema operativo y nos va a mostrar una pantalla de selección de paquetes para instalar (en este manual no voy a explayarme mucho en la descripción de los paquetes que tenemos que instalar, eso va a ser tema de los siguientes) con la barra espaciadora y con las flechas de Up y Down seleccionamos los paquetes "System", "PPP", "DHCP", "ADVANCED-TOOLS", "GPS", "HOSTPOT", "MULTICASR", "NTP", "RADIOLAN", "ROUTING", "SECURITY", "UPS" y "USER-MANAGER"



10. Una vez seleccionados todos los paquetes necesarios presionamos la tecla "i" que es la que va a iniciar la instalación, cuando presionemos "i" nos va a preguntar si queremos usar la configuración anterior, le decimos que no apretando la tecla "n"



11. Luego va a preguntar si se quiere continuar, presionamos la tecla "y", posteriormente comenzara la instalación.



12. Cuando termina de instalar nos va a dar un mensaje para que presionemos enter y luego el sistema se reinicia, tecleamos "enter". CUIDADO LAS PERSONAS QUE USAN VIRTUALBOX ANTES DE APRETAR ENTER TIENEN QUE IR A DISPOSITIVOS Y SACAR COMO PRIMARIO EL ISO DE INSTALACION DEL ROUTEROS, SI LO DEJAN COMO PRIMARIO CADA VEZ QUE REINICIEN VAN A VER LA PANTALLA DE INSTALACION.

13.Al entrar van a ver que solicita un login, el usuario por defecto es "admin" y sin ningun password, entonces pongan en login "admin" y cuando pida password presionen enter. Si se logean correctamente van a ver el mensaje de bienvenida



14. Ahora ya están dentro del sistema, si oprimen la tecla "TAB" van a ver las opciones del mismo, pero en esta edición del manual no vamos a ver en profundidad el manejo shell del SO,realizaremos unas configuraciones mínimas para poder entrar al SO por "WINBOX". En mi caso tengo un MODEM/ROUTER (IP MODEM/ROUTER: 192.168.1.1) que abastece de internet a mi ordenador (IP DE MI ORDENADOR: 192.168.1.11) necesitamos conocer estas IPs para configurar el ROUTEROS. En la shell del ROUTEROS escribimos primero "interfaces","enter" y luego "print","enter" para saber el nombre de nuestra interface (observamos que en mi caso la interface se llama ether1). Después volvemos al directorio raíz escribiendo ".." y presionando "enter". Ya en el directorio principal escribimos "ip" y presionamos "enter", dentro de "ip" escribimos "address" y presionamos "enter"








16. Ya dentro de "/ip address" escribimos: " add address=192.168.1.20/24 network=192.168.1.1 broadcast=192.168.1.1 interface=ether1" y presionamos "enter"




17. Reiniciamos la maquina virtual, nos logeamos como antes y probamos hacer ping a nuestro ordenador (en mi caso 192.168.1.11), nos aseguramos de que responda. Si responde ya está todo perfecto



18. Ahora tenemos que descargar en "winbox" para hacer esto en nuestra pc abrimos cualquier navegador y como url ponemos "192.168.1.20" que en mi caso es la ip que tiene la maquina virtual con el ROUTEROS. Veremos una web de donde descargaremos el "winbox.exe" recuerden que es un binario pero anda en linux y en MACOS usando "wine"



19. Ejecutamos "winbox.exe". En "connect to" ponemos la ip de la maquina con ROUTEROS "192.168.1.20 en mi caso", en la casilla "login" ponemos "admin" y le damos conectar.



Ahora ya están dentro del SO mediante la aplicación winbox, en manuales posteriores voy a mostrarles todas las funciones y configuraciones necesarias para un buen rendimiento en la red. Los que tengan ganas de aprender solos hoy bastante documentación en "google" les recomiendo que antes de tocar se informen bien teóricamente del asunto y luego si prueben configuraciones.


-------------------------------------------------
AUTOR: Sadamssh
E-MAIL: sadamssh@elhacker.net
País: Argentina
-------------------------------------------------
4  Seguridad Informática / Materiales y equipos / Mini pci UBIQUITI en notebook para auditorias de seguridad ERROR. en: 3 Enero 2011, 11:25 am
Hola, estoy queriendo ponerle una card wireless mas potente a mi maquina, para realizar unas auditorias de seguridad en la zona. Busque en google hay mucho y variado y por lo que leí todas las opciones son un poco peligrosas, les escribo para saber si alguien ya paso por eso, si es así que me oriente por donde ir para no romper nada, ya que los recursos no sobran, el error que tira cuando inserto la card es el siguiente:

104-unsupported wireless network device detected. system halted. remove device and restart

acá en el foro hay un tema creado, pero no hay info, les dejo el link para que se orienten

http://foro.elhacker.net/materiales_y_equipos/mini_pci_ubiquiti_xr5_600mw_en_notebook-t301304.0.html;msg1494155

y la card es esta http://ubnt.com/downloads/xr2_dimensions.pdf

Gracias.
5  Programación / Bases de Datos / Sript bash que sus usuarios busquen mas fácilmente en una base de datos MySQL en: 31 Octubre 2010, 18:42 pm
Sript para que sus usuarios busquen mas fácilmente en una base de datos MySQL desde consola (SSH)

Código
  1. #!/bin/bash
  2.  
  3. if [ $# -ne 2 ] ; then
  4.    echo -e "Uso: $0 BASE-DATOS CADENA"
  5.    exit 0
  6. fi
  7.  
  8. BD="$1"
  9. CADENA="$2"
  10.  
  11. MYSQLPASS=`cat /etc/mysql_root_pass`
  12.  
  13. LISTATABLAS=`mysql -p$MYSQLPASS $BD -e "show tables;" | grep -iv "tables_in_$BD"`
  14.  
  15. for TABLE in $LISTATABLAS ; do
  16.    LISTACOLUMNAS=`mysql -p$MYSQLPASS $BD -e "show columns from $TABLE;" | awk '{print $1}' | grep -v "Field"`
  17.    echo "Buscando \"$CADENA\" en la tabla \"$TABLE\":"
  18.    for COLUMNA in $LISTACOLUMNAS ; do
  19. mysql -p$MYSQLPASS $BD -e "select * from \`$TABLE\` where \`$COLUMNA\` like '%$CADENA%';"
  20.    done
  21. done
6  Programación / PHP / Otra perspectiva para correr el algoritmo de Julio Cesar en: 30 Octubre 2010, 20:58 pm
Julio Cesar enviaba mensajes a sus legiones cifrando los mensajes mediante el
siguiente algoritmo:
Se escogía un número n como clave y se sumaba a cada letra en el alfabeto n
posiciones. Así, si la clave escogida fuese 5, la ‘a’ pasaría a ser la ‘f’, mientras que
la ‘f’ pasaría a ser la ‘k’. Para las últimas letras del abecedario se seguiría desde el
principio. Así, con la clave de 5 la ‘y’ pasaría a ser la ‘d’

Otra perspectiva para el algoritmo de Julio Cesar para PHP
Código
  1. [code]<?php
  2. //Recuerda que aquí no dejo el formulario HTML
  3. $mensaje=$_POST['mensaje'];
  4. $n=$_POST['n'];
  5. $julio=array(
  6.        a=>"0",
  7.        b=>"1",
  8.        c=>"2",
  9. d=>"3",
  10.        e=>"4",
  11.        f=>"5",
  12.    g=>"6",
  13.        h=>"7",
  14.        i=>"8",
  15. j=>"9",
  16.        k=>"10",
  17.        l=>"11",
  18. m=>"12",
  19.        n=>"13",
  20.        ñ=>"14",
  21.    o=>"15",
  22.        p=>"16",
  23.        q=>"17",
  24.    r=>"18",
  25.    s=>"19",
  26.        t=>"20",
  27.        u=>"21",
  28. v=>"22",
  29. w=>"23",
  30. x=>"25",
  31.    y=>"25",
  32. z=>"26");
  33. $cesar=array(
  34.        0=>"a",
  35.        1=>"b",
  36.        2=>"c",
  37. 3=>"d",
  38.        4=>"e",
  39.        5=>"f",
  40.    6=>"g",
  41.        6=>"h",
  42.        7=>"i",
  43. 9=>"j",
  44.        10=>"k",
  45.        11=>"l",
  46. 12=>"m",
  47.        13=>"n",
  48.        14=>"ñ",
  49.    15=>"o",
  50.        16=>"p",
  51.        17=>"q",
  52.    18=>"r",
  53.    19=>"s",
  54.        20=>"t",
  55.        21=>"u",
  56. 22=>"v",
  57. 23=>"w",
  58. 24=>"x",
  59.    25=>"y",
  60. 26=>"z");
  61. echo "Mensaje original: ".$mensaje."<br>";
  62. echo "Mensaje codificado: <br>";
  63. for($i=0;$i<strlen($mensaje);$i++)
  64. {
  65.  $cifrado=(($julio[$mensaje[$i]] + $n))%27;
  66.  echo $cesar[$cifrado];
  67.  }
  68.  
  69.  
  70. ?>
[/code]
7  Seguridad Informática / Seguridad / Script BASH para ayudar a nuestro firewall a cubrir ataques DDOS en: 19 Agosto 2010, 16:42 pm
A continuación les voy a dejar un script que restringe el acceso de IPS (Las bloquea) a su servidor  cuando su servidor este recibiendo un ataque. Este script solo se debe ejecutar en el momento en que  detecten que el servidor este siendo atacado, su función como lo indica el titulo es ayudar al firewall a bloquear las IPS atacantes para poder restablecer el servicio más rápidamente.
Una indicación mas, el script cuenta con dos partes:

1)   blockIP.sh
2)   ataques-reading.sh

blockIP.sh: es el script que bloquea a las ips.
ataques-reading.sh: es el script que chequea las conexiones en el momento del ataque y las identifica como atacantes o no.

Lo único que tienen que hacer es subir los scripts a la carpeta root y luego asignarle los permisos.

1)   Chmod 777 blockIP.sh
2)   Chmod 777 ataques-reading.sh

En el momento del ataque entrar por consola, a la carpeta root donde están plantados los scripts y ejecutar:

./ataques-reading.sh

Y del resto del trabajo se encargan los scripts.

Por otra parte pueden usar el script blockIP.sh para filtrar ips individuales:

./blockIP.sh LAIP
./blockIP.sh 192.168.1.3

Si ustedes son administradores de sistemas y tienen colaboradores que no tienen demasiada noción en el área pueden instalar el script blockIP.sh para facilitarle la tarea, ya que muchas veces es necesario bloquear alguna que otra ip.

blockIP.sh
------------------------------------------------------------------------------------------------
Código:
#!/bin/bash

if [ $# -eq 0 ] ; then
    echo -e "   Uso: $0 IPs_a_bloquear\n"
    exit 1
fi

while [ $# -ne 0 ] ; do
    if [ "$1" == "127.0.0.1" -o "`echo $1 | cut -d'.' -f 1-3`" == "170.210.136" -o "`echo $1 | cut -d'.' -f 1-3`" == "170.210.156" ] ; then
echo "   No se bloquea $1!!!"
    else
IP="$1"
echo -n "Bloqueando $IP..."
iptables -I INPUT -s $IP -j DROP
echo -en "\nRegistrando $IP..."
echo "$IP" >> /root/blockIP.rules
echo
    fi
    shift
done

exit 0
------------------------------------------------------------------------------------------------

ataques-reading.sh
------------------------------------------------------------------------------------------------

Código:
#!/bin/bash

cd /root
CONTADOR=0

while true ; do
    [ "$1" == "-d" ] && echo -e "\nEntro al while\n"
    for IP in $(netstat -napt | grep -E "SYN_RECV|_WAIT" | sort -n -k 5 | awk '{print $5}' | cut -d':' -f 1 | sort -u | grep -vE "170.210.15[2-6]|127.0.0.1|170.210.156") ; do
CANT=$(netstat -napt | grep "$IP" | wc -l)
[ "$1" == "-d" ] && echo "Entro al for - $IP - $CANT"
if [ $CANT -gt 15 ] ; then
   (iptables -nL | grep -qw $IP) && continue
   CONTADOR=$[CONTADOR+1]
   echo "$IP: $CANT conexiones - CONTADOR: $CONTADOR"
   /root/blockIP.sh $IP
   /etc/init.d/apache2 restart 2>/dev/null
   /etc/init.d/postgres restart 2>/dev/null
   if [ $CONTADOR -eq 20 ] ; then
CONTADOR=0
   fi
   echo
fi
    done
    sleep 5
done

exit
------------------------------------------------------------------------------------------------

PD: TIENEN QUE MODIFICAR EL SCRIP por ejemplo 170.210.156 es la IP de salida del servidor en donde esta.

       /etc/init.d/apache2 restart 2>/dev/null
       /etc/init.d/postgres restart 2>/dev/null

yo reinicio apache y la base de datos, ustedes pueden modificar.

blockIP.rules (pueden sacarlo o dejarlo, allí van quedando las ips que se filtran)
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines