Archive

Archive for the ‘Uncategorized’ Category

Doble factor de autenticación ssh OTP google authenticator Centos

diciembre 30, 2014 Deja un comentario

Hace poco realice una entrada de como implementar OTP Skey  en OpenBSD,  en este momento les traigo una entrada de Doble factor de autenticación OTP pero esta vez utilizando Gnu/Linux mas concretamente  Centos, y utilizando la librería de google  “libpam-google-authenticator-1.0”.

Para las personas que  exponen sus servidores  a Internet  por Ssh y que  por motivos de la empresa no pueden ser filtrados,  pero que a su ves necesitan una seguridad robusta   ya no se quieren arriesgar a que sus usuarios pierdan  sus contraseñas y de esta manera exponer su red, una solución para mitigar estos problemas  es la utilización de   un doble factor de autenticación  con lo cual tenemos una clave conocida y otra que se genera cada vez que  necesitamos ingresar a nuestro servidor, para esto google  ha generado la herramienta google-authenticator  con la cual por medio de una instalación sencilla y una App para nuestro smarphone podemos  tener un servidor SSH  con OTP de manera rápida y sencilla.

 

1. Lo primero que aremos sera instalar las librerías necesarias y  para “pam”, “gcc”, “make” para compilar los modulos y “wget” para descarga de archivos por consola.

yum install pam-devel make gcc-c++ wget

otp

 

2. Una ves instalados los paquetes necesarios creamos una carpeta para la descarga y descompresión de la librería de OTP de  google, esto lo realizamos de la siguiente manera:

# mkdir otp-google

#cd otp-google

#wget https://google-authenticator.googlecode.com/files/libpam-google-authenticator-1.0-source.tar.bz2

# bzip2 -dc libpam-google-authenticator-1.0-source.tar.bz2 | tar -xv

# cd libpam-google-authenticator-1.0

otp1

3. Luego de descargar y descomprimir la librería ingresamos a la carpeta  y procedemos a realizar la instalación de esta para esto necesitamos compilarla y lo hacemos de la siguiente manera.

#cd libpam-google-authenticator-1.0

#make

#make install

otp2

 

4. Una vez instalada la librería lo siguiente que necesitaremos realizar es la configuración de una  clave secreta para que por medio de esta podamos generar los códigos de verificación, esto lo realizamos con el comando  “google-authenticator” el cual nos realizara una serie de preguntas a las cuales responderemos con la letra “Y” al finalizar este proceso  copiamos la clave que nos genera la cual necesitaremos para el ingreso mas tarde.

#google-authenticator

La salida del comando la podemos observar en la imagen:

otp3

5. Una ves generada la clave secreta  procedemos a realizar la configuración de Pam y ssh para que utilice este método de autenticación, para esto necesitamos agregar la siguiente linea al inicio del archivo:

#vi /etc/pam.d/sshd

~auth required pam_google_authenticator.so

~

:wq

otp4

6.Una ves modificado el modulo de Pam es necesario   cambiar  la configuración del SSH para que también utilice este tipo de autenticacion para esto modificamos el archivo “/etc/ssh/sshd_config”, y buscamos la siguiente linea “ChallengeResponseAuthentication no” cambiamos el “no” por “yes”, una ves terminado esto reiniciamos el servicio SSH.

#vi /etc/ssh/sshd_config

~

#ChallengeResponseAuthentication no

ChallengeResponseAuthentication yes

:wq

otp5

 

Configuración Google Authenticator App

Para configurar la App es necesario tener un smarphone Android o iOS de apple, para este ejemplo se va a instalar e un Android y para esto vamos a el Play Store  y buscamos google authenticator y le damos instalar, una ves instalado  abrimos el programa:


otp91

 

Se nos abrirá el siguiente formulario, en el cual colocaremos un nombre a nuestro perfil  y  luego la clave que generamos anteriormente en el paso “4”  quedaría de la siguiente manera:

otp7

Y por ultimo damos clic en Agregar y luego de esto se nos abrirá una ventana donde nos mostrara los códigos que podemos utilizar para el ingreso a nuestro servidor vía SSH el código se renueva cada cierto tiempo por lo cual hay que  ser ágiles en la digitación de este:


opt65

 

Una ves que tenemos nuestro código  intentamos iniciar sesión  vía ssh y nos pedirá el código de verificación  y digitamos el código que este en ese momento luego ingresamos la contraseña del usuario y por ultimo si todo funciona correctamente podremos entrar a nuestra sesión.

otp8

Pagina oficial del proyecto: https://code.google.com/p/google-authenticator/

Wiki proyecto: http://es.wikipedia.org/wiki/Google_Authenticator

Categorías:Uncategorized

Doble factor de autenticacion ssh en Open BSD

diciembre 5, 2014 Deja un comentario

f12


f11

La autenticación de contraseña de forma segura es uno de los problemas a los que nos enfrentamos los administradores de sistemas ya que estas pueden ser interceptadas por sniffers o ataques de diccionario, en OpenSSH con un sistema de llaves publicas se mitiga un ataque por diccionario al no ser necesario contar con una clave, pero que pasa cuando el computador se ve comprometido por un ataque informático o simplemente fue robado o olvidado en algún lugar los usuarios con este método de autenticación no necesitan ingresar una contraseña y simplemente seria dar clic en el ingreso y tendría acceso a los servidores. A partir de la versión OpenSSH 6.2 lanzada el 22 de marzo de 2013, es posible ejecutar múltiples factores de autenticación. Los administradores de sistemas pueden ahora proteger sus servidores mediante la combinación de más de un factor de autenticación. CONFIGURACIÓN DE DOBLE FACTOR DE AUTENTICACIÓN EN SSH La forma tradicional para el ingreso ah una sesión de SSH es necesario la llave publica y el password para el ingreso a una sesión: AuthenticationMethods publickey,password Se realiza la solicitud de conexión y se escribe la contraseña.

 admin@TestingPC:~> ssh sistemas@192.168.70.3 -p 220

Password:

Last login: Fri Dec 5 09:22:24 2014 from 192.168.20.173 Have a lot of fun…

sistemas@SwitchDell:~>

ssh       IMPLEMENTACIÓN S/KEY

S/Key es un esquema de contraseña de un solo uso basado en una función de hash de sentido único. FreeBSD utiliza el hash MD4 por compatibilidad, pero otros sistemas usan MD5 y DES-MAC. S/Key 1. Lo primero que debemos realizar es habilitar el S/Key con el siguiente comando.

sudo skeyinit -E

f1
  2. Lo siguiente que debemos realizar es ingresar a cada usuario para realizar la configuración del doble factor de autenticación el cual lo lo iniciamos con el siguiente comando.

sudo skeyinit

             f2

3. Lo siguiente que necesitamos es forzar el inicio de sesión a través del S/Key en lugar de la contraseña tradicional, editamos el archivo

sudo vi /etc/login.conf #modificamos la siguiente line a y la dejamos de la siguiente forma y guardamos el archivo. auth-defaults:auth=skey:

f3

f4

4. Lo siguiente es recompilar el archivo modificado

sudo cap_mkdb /etc/login.conf

f5
5. Ahora podemos realizar la configuración de del archivo ssh_config de OpenSSH para que utilice los dos métodos de autenticación: publickey y S/key. Abrimos el siguiente archivo.

“sudo vi /etc/ssh/sshd_config” #modificamos o agregamos la siguiente linea. # Authentication:

AuthenticationMethods publickey,keyboard-interactive

 f6

f7


6. Una ves terminado esto reiniciamos el servicio de OpenSSH.

sudo /etc/rc.d/sshd restart

f8
Ya hemos terminado la configuración para realizar una conexión no podemos olvidar que debemos tener la Llave publica previamente configurada en el servidor. 7. Para probar podemos instalar en nuestro Smarphone la siguiente aplicación en el caso de Android utilice Opiekey pero existen su equivalente en otros Smartphones como lo es OTP en Iphone, en este ingresamos nuestra contraseña secreta y el nos genera la temporal con la cual podremos lograr la conexión vía SSH.

f10

Ingresamos el Password que nos Genera el programa y como vemos podemos ingresar  de forma correcta utilizando el doble factor de autenticación.

TestingPC:/home/admin # ssh root@192.168.20.199
Authenticated with partial success.
otp-md5 96 glpi99141
S/Key Password:
otp-md5 96 glpi99141
S/Key Password:
Last login: Fri Dec 5 08:40:24 2014 from 192.168.20.173
OpenBSD 5.5 (GENERIC) #276: Wed Mar 5 09:57:06 MST 2014

Welcome to OpenBSD: The proactively secure Unix-like operating system.

Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.

#
# ls
.Xdefaults .cshrc .cvsrc .gem .klogin .login .mysql_history .profile .ssh .systrace download.rb

f9

Referencia: http://0x9900.com/blog/2013/08/28/two-factor-authentication-with-ssh-&-s/key-on-openbsd/

Categorías:Uncategorized

Misconf 2012

noviembre 8, 2012 2 comentarios

Después de mucho rato sin escribir  hoy les traigo    los  pasos que seguí para capturar algunas Flags del reto propuesto por nonroot misconf, el cual es una entorno  donde podremos poner en practica  las habilidades para resolver retos de seguridad en redes   en total son  30 retos de todos los niveles, yo logre sacar 19  para los que quieran hacer el ejercicio pueden descargarse la maquina virtual y tratar de capturar las banderas faltantes  aca dejo los links

El entornos consiste de dos partes:
A) Una maquina virtual, lista para importar (ovf) en VirtualBox (Win, Lin, Mac) : http://www.misconf.net/
B) Una scoreboard donde se pueden marcar los puntos encontrados:
Bueno como las respuestas las iba copiando a la medida que se solucionaban los retos puede que este un poco desorganisada XD.

Procedimiento para cada una de las Flags obtenidas.

Después de obtener los datos del escaneo de puertos lo primero que hago es conectarme al ftp  por el puerto 10000  tal como en la misconf del campus arroja la primera bandera.

Ftp:

shellfity@shellfity:~/misconf/ftp$ ftp 192.168.0.13 10000
Connected to 192.168.0.13.
220 Bienvenido al servidor de archivos de @nonroot, tu nueva flag es: 93-67X-FTP-9V

Lo primero que se me ocurre, y uno de los muchos errores de malas configuraciones en un servidor ftp  es intentar logueame como anonymous  lo cual resulta exitoso

Una vez logueado listamos con dir y descargamos los archivos que hay

shellfity@shellfity:~$ cat flag.txt
HOLA!

Lo siento esta no es la flag! , no podía ser tan fácil verdad?

Recuerda que puedes usar el hashtag #MISCONF para compartir y solicitar información.

😉

En este archivo esta la pista para seguir avanzando, “lo siento esta no es la flag!” si nos colocamos a mirar detalladamente termina en “!” y pues luego de mirar varias opciones se me viene a la mente  que pueden haber archivos ocultos en el ftp lo cual si alguna vez has configurado uno sabrás que se puede hacer   hide_file={} para ocultar archivos, listo intentado a ciegas un rato me fijo en lo siento esta no es la Flag y intento con “get flag” sin el txt y bingo descargo algo.

shellfity@shellfity:~/misconf/ftp$ cat flag
Feliciaciones, ienes una flag mas: 89-ZZZ-A09-BV

Continua buscando el resto de banderas, recuerda encontrar un archivo raro.

Algunas veces se me olvida escribir las leras, una pista para resolver el siguiente reo es: crypo.

Otra pista es: (3,6) (1,6) (4,3) (5,3) (2,1) (5,1) (2,5)

Si seguimos leyendo nos dice  recuerda encontrar el archivo raro  intento de nuevo lo mismo  “get raro” y descargo un archivo.

miro el archivo y está en Base64

crypo es un decodificador online  ingreso y saco la base 64 que casualmente está en la posición (2,5) de atrás para delante de la pista dada en el archivo Flag  lo que se obtiene es una cadena hexa y en la cordenada (5.1) el resultado es  una salida en ascci luego lo paso a binario, después convierto el binario en texto

shellfity@shellfity:~/misconf/ftp$ cat raro.raro
55H8=fmfdzOD2N4fdz0g+7x9af60YeWX63l3osbnLNSfulmf0fx+Fe4ziY8g6/8E
lo cual daba lo siguiente
E8/6g8Yiz4eF+xf0fmlufSNLnbso3l36XWeY06fa9x7+g0zdf4N2DOzdfmf=8H55
luego se lleva a HAZZ 15

mkGMlHP9=RDaWGPy/+6tWGzy1Htz+HLM=0Nh=dwX
y por ultimo tigo 3

 am0__los_CODIFICADORES_0nlin3

snmp

En el escaneo  UDP vemos  puerto 33692 el cual nos dice que está abierto pero no nos dice que servicio está escuchando, bueno si hacemos una búsqueda en google nos dice que posiblemente puede ser un servidor dns,dhcp,snmp pues son unos de los servicios más comunes en udp haciendo los descartes y si todo es como en el reto de la campus me voy por la opción del snmp,  lo primero que se hace es buscar un cliente con el cual podamos comprobar  “snmpwalk” para conectarnos necesitamos pasarle  la comunidad y la versión las cuales las pasamos con el argumento -c comunity  -v version, bueno si el snmp nos está en configuración por defecto debe de permitir cualquier petición.

Host is up (0.0046s latency).
PORT      STATE         SERVICE VERSION
22161/udp open|filtered unknown

Lo primero es intentar conectarnos  intentando encontrar el nombre de comunity lo cual duró algo así de 5 minutos hasta que di con la que era  “12345” y como versión 1 y nos da la siguiente flag y la pista para capturar la otra.

snmpwalk -c 12345  -v 1 192.168.20.146:22161
iso.3.6.1.2.1.1.1.0 = STRING: “Linux flyxj 2.6.32-5-686 #1 SMP Sun May 6 04:01:19 UTC 2012 i686”
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (11484665) 1 day, 7:54:06.65
iso.3.6.1.2.1.1.4.0 = STRING: “Para mas flags, habla con los jugadores en #MISCONF y @misconf :

8U-PLZ-J7A-63
iso.3.6.1.2.1.1.5.0 = STRING: “flyxj”
iso.3.6.1.2.1.1.6.0 = STRING: “Transmitiendo desde la casa, Quilla de mis amores. http://host:port/de/prueba/para/este/reto/”
iso.3.6.1.2.1.1.7.0 = INTEGER: 72

Está  flag nos da la pista para el siguiente reto,  nos dice que ingresemos host:puerto y una ruta  lo primero que intenté fue colocar la IP el puerto de apache más la ruta pero no funciono así que lo hice con host  modifique mi /etc/hosts y coloque que  me resolviera host a la IP de la maquina virtual  así coloque http:/host:8954/de/prueba/para/este/reto/
y  nos aparece un algo que se llama DATA  lo descargamos y luego miro que tipo de archivo es con file  y me devuelve que es un archivo comprimido en formato xz  le cambio la extensión a xz lo descomprimo con “xz -d”   luego vuelvo a mirar que tipo de archivo es y me dice que es data lo miro con el comando “strings” y en uno de sus strings me devuelve la Flag  si vemos la Flag parce valida pero cuando intento  me la rechaza  si miramos en  la documentación de la misconf está el formato valido de una flag xx-xxx-xxx-xx y intento de esta manera consigo la Flag valida:

root@shellfity-MS-6638:/home/shellfity/Descargas# file DATA
DATA: XZ compressed data
root@shellfity-MS-6638:/home/shellfity/Descargas# mv DATA DATA.xz
root@shellfity-MS-6638:/home/shellfity/Descargas# xz -d DATA.xz
root@shellfity-MS-6638:/home/shellfity/Descargas# file DATA
DATA: data
root@shellfity-MS-6638:/home/shellfity/Descargas# strings DATA | grep ‘flag’
badflagBAD SECTOR
goodflag6H-7AA-F32-ABATT

Servidor de correo

En el escaneo vemos
6729/tcp open  imap    Dovecot imapd

Lo primero que se me viene a la mente es hacer un telnet al puerto

root@shellfity-MS-6638:/home/shellfity/misconf/dovedcot# telnet 192.168.20.146 6539
Trying 192.168.20.146…
Connected to 192.168.20.146.
Escape character is ‘^]’.
+OK Bienvenido a la casa de las palomas, quieres una flag?: DO-VEC-OTT-TT
y obtenemos la siguiente flag

Lo siguiente es intentar loguearme en el servidor, intente con varios usuarios hasta que por la ultima coloque nonroot nontoo  el cual fue correcto, queda una flag por sacar que está en un binario compilado en OpenBSD. Que es el primero donde coloque binario  por no colocar la salida :).
a1 LOGIN nonroot nonroot
a1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in

a2 LIST “” “*”
a3 EXAMINE INBOX
a4 FETCH 1 BODY[]
Binario
a5 FETCH 2 BODY[]

From root@flyxjp Thu Aug 10 14:19:23 2015
Return-path:
Envelope-to: admin@misconf
Delivery-date: Thu, 09 Aug 2012 17:19:23 -0400
Received: from root by misconf.net with local (Exim 7.52)
(envelope-from )
id 1Sza8Z-0000YP-88; Thu, 09 Aug 2012 17:19:23 -0400
Date: Thu, 09 Aug 2012 17:19:23 -0400
Message-Id:
To: admin@misconf
Subject: Cuanto sabes sobre otros S.O.?
Cc: nonroot@misconf
From: root

a5 FETCH 3 BODY[]
From root@flyxjp Thu Aug 09 17:19:23 2015
Return-path:
Envelope-to: admin@misconf
Delivery-date: Thu, 09 Aug 2012 17:19:23 -0400
Received: from root by misconf.net with local (Exim 7.52)
(envelope-from )
id 1Sza8Z-0000YP-88; Thu, 09 Aug 2012 17:19:23 -0400
Date: Thu, 09 Aug 2012 17:19:23 -0400
Message-Id:
To: admin@misconf
Subject: Cuanto sabes de IPv6?
Cc: nonroot@misconf
From: root

Please insert the following code into the website at http://ipv6.he.net/certification: HE-IPV-6XD-OO
)
a4 OK Fetch completed.

a5 LOGOUT

Bueno para descargar el binario lo que pueden hacer  Colocar el base 64 que está en uno de los correos  y copiarlo a un archivo de texto de esa forma cuando se descifre nos quedara el binarioJ.

Router

En el escaneo aparece un puerto raro no tiene nombre así que como en todos los otros retos me conecto por telnet al puerto y no me arroja nada así que no hago nada y sigo con otro reto pero pues pensé que podía haber algo, así que lo retome volví y di un telnet pero esta vez se me quedó bloqueado así que le di varios enters hasta que sorpresa.

PORT      STATE SERVICE
20050/tcp open  unknown

root@shellfity-MS-6638:/home/shellfity/misconf/reto# telnet  192.168.20.146 20050
Trying 192.168.20.146…
Connected to 192.168.20.146.
Escape character is ‘^]’.

Welcome to my system, I’m watching you since 1984 – P1-4P0-C0C-0D

User Access Verification

La siguiente pista es  1984 Buscando un poco sobre Cisco.
La empresa fue fundada en 1984 por el matrimonio de Leonard Bosack y Sandra Lerner, quienes formaban parte del personal de computación de la Universidad de Stanford. El nombre de la compañía viene de la palabra “San Francisco”; al mirar por la ventana había al frente un cartel que decía “San Francisco” y un árbol se interponía entre la palabra separando San Fran Cisco, de ahí proviene el nombre de la empresa. Allí comenzó su despliegue como empresa multinacional.

intento con la contraseña cisco y no me funciona luego intento con todas en mayúsculas  y por la última coloque la C mayúscula y bingo la clave es Cisco  luego intento colocarme en modo privilegiado con el comando enable  pero tiene contraseña de consola  esta fue la contraseña que cogí mas fácil y pues sin pistas por la última  los que jugamos en misconf del campus  la contraseña era bigbrother así que fue la primera que se me vino a la mente  y claro esa era

Password:

NAVAJO>enable
Password:
NAVAJO#

luego ago un NAVAJO#show  running-config  para ver la configuración encuentro unas claves  busco buscando un poco  sobre como decifrarlos co y obtengo  los password “admin administrator” y “nonroot nonroot” ingreso  pero veo todo igual.

Luego lo intento con el comando “more”  y le paso como argumento el signo “?”  lo cual en los router cisco nos trae los parámetros que recibe el comando intentó con varios me llama la atención “unix”  y lo intento  “more unix:?” pasándole como argumento el signo “?” de nuevo y me lista unos archivos

NAVAJO#more unix:?
unix:FLAG    unix:IFMAP  unix:NETMAP       unix:R1
unix:README  unix:iourc  unix:nvram_00001  unix:sha1.sum

intento con cada uno y en README obtener la otra flag

NAVAJO#more unix:README
Hola!

Veo que vas muy bien, te voy a regalar una bandera más: 9T-UNI-XRU-LX

(El reto final de esta terna, es producto de la mente malevola de maybe-failed [rmolina], gracias por la ayuda)

NAVAJO#

NAVAJO#more unix:FLAG 


pero no me trae ninguna flag  descargo el archivo por medio de tftp

NAVAJO#copy unix:FLAG tftp:192.168.1.8

Luego miramos el tipo de archivo con un file y notamos que es un gzip, al descomprimir hay un tar que contiene un texto dentro de un lzma:

root@shellfity:/home/shellfity/Descargas# gzip -d FLAG.gz
root@shellfity:/home/shellfity/Descargas# file FLAG
FLAG: POSIX tar archive (GNU)
root@shellfity:/home/shellfity/Descargas# mv FLAG FLAG.tar
root@shellfity:/home/shellfity/Descargas# tar xvf FLAG.tar
texto
root@shellfity:/home/shellfity/Descargas# cat texto
]�2FV�X�)�D
|�&�-͋�p ����M�Fe��LACpD���`�7��?
����V�_wꑪ0�mJ�0/6HB ]����[4�[�d/�m�&�/-����F=�슈�
��%ڣroot@shellfity:/home/shellfity/Descargas# file texto
texto: LZMA compressed data, non-streamed, size 285
root@shellfity:/home/shellfity/Descargas# mv texto texto.lzma
root@shellfity:/home/shellfity/Descargas# lzma -d texto.lzma
root@shellfity:/home/shellfity/Descargas# cat texto
duRuputa mišiRi hubie kémaba tsúkuRu ké:Ri kémaba wawàwa duRuputa mišiRi tsàmana adai hawaitu adai í:Ri kémaba í:Ri kémaba é:waba duRuputa í:Ri adai duRuputa mišiRi ké:Ri kémaba tsúkuRu ké:Ri kémaba wawàwa tsàmana adai í:Ri í:Ri duRuputa tsàmana hubie kémaba
root@shellfity:/home/shellfity/Descargas#

Traduciendolo (Cortesía de @C4Fdez) queda: ESTAFLAGESCOMORARAPEROESLAFLAGCORRECTA
😉

Servidor web

Ingresamos a http://192.168.1.6:8954/ usando como host: localhost y vemos que existe un archivo flag.txt que contiene:

Hola!

Cuando encuentres una FLAG de una forma tan sencilla, significa que es el camino correcto para dos flags más.

Muy buen trabajo, tu FLAG es: BH-7AA-F00-JB

La pista para la siguiente flag es: A+B

Lo que sigue es, tal como indica la pista en twitter, buscar el directorio oculto, es decir http://192.168.1.6:8954/oculto/ , carpeta que está protegida 😦
La mala configuración permite ver el archivo http://192.168.1.6:8954/.htaccess

#flag: OT-RAF-LAG-DD
<Directory ./oculto>
AuthType Basic
AuthName “Area restringida para el usuario admin”
AuthUserFile ./htpasses
require valid-user
</Directory>

El cual nos dice que el archivo de interés es htpasses:
admin:/E5ig/GyPan.s

Al preguntarle a nuestro amigo John nos dice que es una clave “Traditional DES [128/128 BS SSE2]” y que corresponde a “administ” 😉

Usando como host nonroot vemos lo siguiente:
🙂
<!– @nonroot no se le olvide eliminar el comentario, el archivo final es: testfinal.php →

i colocamos nonroot:8954/test.php sin el tes final  obtenemos otra flag
Buena imaginación, te regalo una flag por eso: YH-K9K-LLL-8A
Siguiendo con la misma temática pero ya con test3 y mirando el code fuente obtenemos la flag 8
nonroot:8954/test3.php
ok<!– Recordar eliminar esto, para evitar fuga de información, RECUERDALO NONROOT: GB-WEB-2XD-02>

mirando  las pistas que nos dan  nos dice que debemos tomar un valor e y s del la entrada del usuario
y generar un valor timestam  y que debíamos sumar el valor de la entrada del usuario con el random  y luego a esa suma
le sacábamos un md5 y que si el md5 coincidía siria ok

después de varios intentos fallidos tratando de generar valores aleatorios y enviándolos con perl  en el archivo testfinal.php
vemos que nos muestra una hora, y si verificamos es una hora diferente a la de nuestro sistema, ya con eso y con lo de generar
un valor timestamp empiezo a sospechar que el random hay que generarlo con base a la fecha que nos muestra, haciendo un búsqueda
en google  algo así “generar rando basado en la hora php” encontramos en el manual de php la funcion ‘uniqid’ la cual genera un
valor random basándose en la hora actual del sistema. http://php.net/manual/es/function.uniqid.php
lo que hice fue probarla y  me pareció algo curioso que cuando la ejecutaba
en mi maquina me sacaba un random parecido al  los ejemplos que nos muestra  en las pistas, como veo la hora de mi sistema
es diferente a la hora del reto está atrasada una hora exactamente, bueno acá fue un dolor de cabeza tratando de cambiar la hora
para que fuera igual a la hora del reto pero no me funcionaba, lo siguiente que pensé fue que  el reto está actualizando la hora
de un servidor ntp diferente al mío, entonces lo la tarea fue buscar un ntp que estuviera una hora menos que  el que yo tenía en
el momento. Buscando encontré una zona horaria que coincidía con la hora del reto y era la zona horaria de ‘new york’ la configuro
en mi sistema con el comando “dpkg-reconfigure tzdata” busco america y “new_york” listo  ya con esto apago la maquina virtual
y la enciendo de nuevo y veo que las horas ya coinciden.  Intento de nuevo y bingo obtengo la flag.

test1.php

Tomar E y S de la entrada de usuario, luego generar un valor de timestamp aleatorio
y luego sumar la entrada del usuario con el random y sacarle un md5, si el md5 coincide
con la segunda entrada entonces OK, // $entrada=$_GET[‘e’];      print “E: $entrada
“; $salida=$_GET[‘s’]; print “S: $salida

“; //bETA, AUN NO FUNCIONA // pEnsar en como evitar la colision de MD5, leer paper

test2.php
If SHA1(E+R)=Salida –> todo estara OK
test3.php
Avoid Colision! …
3
2
1
If MD5(E+R)=Salida –> todo estara OK
2012-09-21 11:41:34
E:
S:
R: 505c8aae1fd4f
NO!, puedes sincronizarte?

 El script con el que obtengo la flag es el siguiente

en el valor de la entrada de usuario se puede colocar cualquier numero que queramos enviar.

shellfity@shellfity-MS-6638:~/misconf$ cat peticion.php

<?php

$e=”10″;
$rand=uniqId();
$aleatorio=$e+$rand;
$s=md5($aleatorio);

$arch = “http://nonroot:8954/testfinal.php?s=$s&e=$e&#8221;;
header(‘Content-Disposition: attachment; filename=’.basename($arch));
readfile($arch);
shellfity@shellfity-MS-6638:~/misconf$

ejecutando el script

shellfity@shellfity-MS-6638:~/misconf$ php peticion.php
<html>
2012-09-21 11:55:12<p>E: 10<p>S: 2b8a61594b1f4c4db0902a8a395ced93<p>R: 505c8de0672d2<p><p>Oh yeah!, la Flag es: A_SIMPLE_DESIGN_BUG_XD</html>
shellfity@shellfity-MS-6638:~/misconf$

SVN

en el escaneo vemos el puerto abierto

Host is up (0.0018s latency).
PORT      STATE SERVICE
54321/tcp open  unknown

le doy un telnet al puerto  y identifico que es un servidor svn por el resultado

root@shellfity-MS-6638:/home/shellfity/misconf/reto# telnet  192.168.20.146 54321
Trying 192.168.20.146…
Connected to 192.168.20.146.
Escape character is ‘^]’.
( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) )
Connection closed by foreign host.

lo siguiente es descubrir el nombre de la carpeta que esta compartida en el repositorio bueno luego de buscar y desistir   doy con el directorio que era fácil de suponer pero en medio de la desesperación no lo coloque  el directorio era subversion  fue lo último que se me ocurrió ya y bingo

root@shellfity-MS-6638:/home/shellfity/misconf# svn co svn://192.168.20.146:54321/subversion
A    subversion/texto.txt

como vemos nos dice que hay un directorio que se llama subversion y un archivo que se llama texto.txt lo siguiente es ingresar a la ruta

root@shellfity-MS-6638:/home/shellfity/misconf/subversion# cat texto.txt
Que crees que estas buscando?, no lo encontraras, tengo el mejor sistema de seguridad.

Security By Obscurity
root@shellfity-MS-6638:/home/shellfity/misconf/subversion#

pero sorpresa recibo este mensaje  😦   buscando intento  miro los log

root@shellfity-MS-6638:/home/shellfity/misconf/subversion# svn log subversion
————————————————————————
r1 | (sin autor) | 2012-08-10 08:31:11 -0500 (vie 10 de ago de 2012) | 1 línea

OO-SVN-CVS-OO
y obtenemos la bandera

$ svn co svn://192.168.1.6:54321/subversion@27
D    subversion/texto.txt
A    subversion/texto.txt
Checked out revision 27.

$ cat texto.txt
Una flag mas: UN-AFL-AGM-AS
(Flag 26)

$ svn co svn://192.168.1.6:54321/subversion@1
D    subversion/texto.txt
A    subversion/sha1.sum
A    subversion/CAPTURE_THE_FLAG

$ file CAPTURE_THE_FLAG
CAPTURE_THE_FLAG: tcpdump capture file (little-endian) – version 2.4 (Ethernet, capture length 65535)
$ strings CAPTURE_THE_FLAG
1408211395071504071533764763476268
900144709729822751405304052739653
167733405485203020638181867947357249512517914094996251174073132
71429530043020283191008286359495653566736882365099398175220072
38334305606565807817274479129461586573989649989591328
12114989066639206310863735798186114315728004227364198
168231606344082579197649654374296622
241043874733770163076343277334914592
28399553900998639609274026331934947173747
39267297635833818505004804699498772395347
152967422443718917448050
540146568205934109221920
203248797539096092951287405721025567367423917414532690111589
636644850557234539748783008118773429693899752012683537309984
656991220756433307666367727629102
942132238785460445894373068334112

Traduciendo (cortesía de @C4Fdez):

“En la batalla,hay dos tipos de posturas,fuerza extraordinaria  fuerza normal.Sus combinaciones dan lugar a una serie interminable de maniobras.” Sun Tzu, El arte de la guerra.

Ipv6

DNS

La dirección ipv6 es la siguiente fe80::a00:27ff:fe39:8468

como vemos es una ip  Link-Local  si intentamos darle un ping no nos va a contestar  pueno un ping ipv6 nos responderia esto

root@shellfity-MS-6638:/home/shellfity/misconf/bindipv6# ping fe80::a00:27ff:fe39:8468
ping: unknown host fe80::a00:27ff:fe39:8468

como vemos el comando ping no lo soporta para poder ver las direcciones ipv6 tenemos que utilizar el comando ping6

root@shellfity-MS-6638:/home/shellfity/misconf/bindipv6# ping6 fe80::a00:27ff:fe39:8468
connect: Invalid argument
root@shellfity-MS-6638:/home/shellfity/misconf/bindipv6#

pero nos saliendo el mismo problema, como dige antes es una ip link-local las cuales no son enrutables entonces como lo hacemos debemos colocarle la interfaz por la cual van a salir los paquetes lo cual lo hacemos colocándole al final  %eth0  y de esta forma nos debería  funcionar

root@shellfity-MS-6638:/home/shellfity/misconf/bindipv6# ping6 -c 2 fe80::a00:27ff:fe39:8468%eth0
PING fe80::a00:27ff:fe39:8468%eth0(fe80::a00:27ff:fe39:8468) 56 data bytes
64 bytes from fe80::a00:27ff:fe39:8468: icmp_seq=1 ttl=64 time=1.93 ms
64 bytes from fe80::a00:27ff:fe39:8468: icmp_seq=2 ttl=64 time=1.43 ms

— fe80::a00:27ff:fe39:8468%eth0 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 1.433/1.681/1.930/0.251 ms

Haciendo un escaneo ipv6  vemos  que el servidor tiene el puerto 53 abierto,  aunque este puerto no lo mostraba cerrado en un escaneo ipv6

root@shellfity-MS-6638:/home/shellfity# nmap -6 -sT  fe80::a00:27ff:fe39:8468%eth0

Starting Nmap 5.21 ( http://nmap.org ) at 2012-09-19 13:32 COT
Nmap scan report for fe80::a00:27ff:fe39:8468
Host is up (0.024s latency).
Not shown: 997 closed ports
PORT   STATE SERVICE
23/tcp open  telnet
53/tcp open  domain
80/tcp open  http
root@shellfity-MS-6638:/home/shellfity/misconf/bindipv6#

como vemos tenemos el puerto 53 abierto el cual le pertenece a un servidor de nombres de dominio o DNS,  lo siguiente que debemos hacer  colocarnos una ip en ipv6

root@shellfity-MS-6638:/home/shellfity/misconf/bindipv6# ifconfig eth0
eth0      Link encap:Ethernet  direcciónHW 00:24:21:b2:01:d9  
         Direc. inet:192.168.20.100  Difus.:192.168.20.255  Másc:255.255.255.0
         Dirección inet6: fe80::224:21ff:feb2:1d9/64 Alcance:Enlace
         Dirección inet6: fe80::224:21ff:feb2:1d8/64 Alcance:Enlace
         ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
         Paquetes RX:353971 errores:0 perdidos:0 overruns:0 frame:0
         Paquetes TX:222381 errores:0 perdidos:0 overruns:0 carrier:0
         colisiones:0 long.colaTX:1000
         Bytes RX:378983102 (378.9 MB)  TX bytes:41847139 (41.8 MB)
         Interrupción:42 Dirección base: 0x6000

y lo siguiente es indicarle a nuestro pc cual va hacer su servidor dns  lo cual lo modificamos  en el resolv.conf  pero esta vez colocamos la dirección de nuestro dns en ipv6

root@shellfity-MS-6638:/home/shellfity/misconf/bindipv6# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN
nameserver fe80::a00:27ff:fe39:8468%eth0
root@shellfity-MS-6638:/home/shellfity/misconf/bindipv6#

Lo siguiente es con nslookup ver las zonas que tiene  en lo cual tarde un ratico por que como no me resolvía  la ip  que nombres tenia pensaba que no era la forma de resolver el reto hasta que en un momento de lucidez  me dio por resolver misconf.net y bingo.

root@shellfity-MS-6638:/home/shellfity/misconf/bindipv6# nslookup
> set q=any
> fe80::a00:27ff:fe39:8468%eth0
Server:                       127.0.0.1
Address:         127.0.0.1#53

** server can’t find fe80::a00:27ff:fe39:8468%eth0: NXDOMAIN
> misconf.net
Server:                       127.0.0.1
Address:         127.0.0.1#53

misconf.net
origin = ns.misconf.net
mail addr = nonroot.misconf.net
serial = 10004
refresh = 3600
retry = 900
expire = 3600000
minimum = 3600
misconf.net     nameserver = ns.misconf.net.
misconf.net     mail exchanger = 10 TT-XXX-PLA-MX.misconf.net.
misconf.net     text = “SE9MQUFBQSEKClR1IG51ZXZhIGZsYWcgZXM6IFVVLUROUy05T0EtTlouCgpEZXNjYXJnYSBlbCBhcmNoaXZvIGJpbjAxIGRlbCBzZXJ2aWNpbyBGVFAgcGFyYSBjb250aW51YXIuCg==”
>

como vemos nos arroja una bandera y en el text un texto cifrado   en base64 inconfundiblemente lo descubro,  lo siguiente es  copiar en texto a un archivo y descifrarlo.

root@shellfity-MS-6638:/home/shellfity/misconf/bindipv6# echo  SE9MQUFBQSEKClR1IG51ZXZhIGZsYWcgZXM6IFVVLUROUy05T0EtTlouCgpEZXNjYXJnYSBlbCBhcmNoaXZvIGJpbjAxIGRlbCBzZXJ2aWNpbyBGVFAgcGFyYSBjb250aW51YXIuCg== > dns1
root@shellfity-MS-6638:/home/shellfity/misconf/bindipv6# base64 -d dns1
HOLAAAA!

Tu nueva flag es: UU-DNS-9OA-NZ.

Resultado final después de dos meses de estar abierto bueno cabe destacar que no jugué todo el tiempo   solo unos cuantos días 🙂

Doy muchas gracias a nonroot por tomarse el tiempo de preparar este tipo de plataformas con las cuales nos podemos divertir un rato de la forma que mas nos gusta.

http://nonroot.blogspot.com/search/label/wargames

Categorías:Uncategorized

scripts perl …

junio 22, 2012 Deja un comentario

Hola tiempo sin escribir en el blog, hoy les traigo unos pequeños scripts que hice en perl, hace ratico empecé la certificación de oscp y estos son unos ejercicios que pedían realizar, bueno no soy el mas hábil al programar me considero pésimo,  aunque los scripts son algo sencillos quiero compartirlos con ustedes.

El primer ejercicio consistía en extraer todas las url de una web especifica en este caso la de entorno de pruebas,  primero teníamos que descargar index de la pagina web dicha existen formas muy sencillas de hacerlo como solamente aplicando el comando ‘wget’ + la dirección web del sitio a descargar pero como la idea era hacerlo con un lenguaje de scripting mi solución en perl fue la siguiente.

shellfity@shellfity:~/taller$ cat solucion1.pl
#!/usr/bin/perl

use strict;
use Data::Dumper;
use warnings;
use LWP::Simple;

my $url = ‘http://www.offsec.com/pwbonline/icq.html&#8217;;

my $rsd = get($url);

open(ARCHIVO,”>icq.txt”);

print ARCHIVO Dumper($rsd);
close ARCHIVO;

El segundo es un poquito mas complejo y consistía en utilizar expresiones regulares para filtrar la información que tenia el archivo descargado y solo mostrar las URL que se encuentran en el archivo descargado anteriormente,  de la misma forma que el anterior utilice perl para hacerlo XD.

#!/usr/bin/perl

use 5.006;
use strict;
use warnings;
#Creo una variable con un string a buscar
my $link = ‘href’;
my $icq = ‘icq.com’;


#abro el archivo
open (ARCHIVO, ‘icq.txt’);
#Leo el archivo y le doy el valor $url a cada linea que lee
while ( my $url = <ARCHIVO>)
{

#Busco si la palabra se encuentra en la variable
if($url =~ /$link/i){

#creo un array con el resultado y lo separo por “/”
@_ split( “/”, $url);
#luego busco en la posición 2 del array si se encuentra el string icq.com y si esta #imprimo los resultados
if ($_[2] =~ /$icq/){
print “$_[2]\n”;
}

}

Con este script logramos filtrar y obtener todas las url que se encuentran en el archivo  aunque nos trae url que se encuentra repetidas,  pero para organizar este problema podemos recurrir a nuestro amigo sort.

y de esta manera tener el resultado deseado 🙂

shellfity@debian:~/taller$ perl solucion.pl | sort -u
blogs.icq.com
chat.icq.com
c.icq.com
company.icq.com
download.icq.com
gallery.icq.com
games.icq.com
greetings.icq.com
groups.icq.com
people.icq.com
search.icq.com
http://www.icq.com

Pero pues aunque esta no es la única forma de realizar esta tarea igualmente con awk también podemos realiza esta labor, lo siguiente era coger las url y hacer resolver las ips de los dominios obtenidos .

#!/usr/bin/perl
use warnings;
use strict;
use Net::DNS::Nslookup;

open(URL, ‘urls.txt’);
my @ips =<URL> ;

foreach (@ips) {
my $dns = Net::DNS::Nslookup->get_ips($_);
@_ = split( “,”, $dns);
print “$_[1]\n”;
}

shellfity@debian:~/taller$ perl resuldns.pl

178.237.23.237

178.237.23.237

178.237.25.84

205.188.27.190

178.237.23.237

178.237.23.237

178.237.23.237

178.237.23.237

178.237.23.237

178.237.23.237

178.237.23.236

178.237.23.237

Categorías:Uncategorized

Primer Reto Navideño

diciembre 21, 2011 Deja un comentario

 

Bueno hoy les escribo para invitarlos a participar en el primer reto navideño que lanzara InterCEPTeam el reto estará disponible desde el 22 de diciembre espero que puedan jugar y divertirsen un rato también se dará un premio de un libro de seguridad informática que esta por confirmar, acá les dejo la web del grupo para que la chequen y miren las reglas del juego buena suerte y que puedan salvar la navidad.

http://www.intercepteam.org

Categorías:Uncategorized

LulzSec y Anonymous lanzan “Operation Anti-Security”

junio 20, 2011 Deja un comentario

 

Tras las noticias que nos llegaban la semana pasada sobre un posible ataque de Lulz a 4chan luego desmentido, uno de los espacios donde el colectivo Anonymous se mostraba más activo, parecía que ambos grupos se habían declarado la guerra. Nada más lejos de la realidad. Desde hace una horas se ha anunciado la unión de ambos con la denominada Operación Anti-security, una “cruzada” contra cualquier gobierno, agencia o corporación del mundo que trate de coartar “la libertad y el progreso” con todo tipo de ataques y filtraciones en la red. No sólo eso, anuncian a WikiLeaks como medio de soporte.

Como se anuncia en la carta publicada desde hace unas horas, el movimiento no sólo se trata de la unión de estos colectivos que han sido el azote de las grandes corporaciones en los últimos meses, es un mensaje con el que se espera que se unan todos los pueblos del mundo, que se difunda el mensaje y que no se quede en ataquesDDoS, sino en la fuga de todo tipo de documentos secretos al estilo de WikiLeaks (en la misma carta finalizan nombrando a WikiLeaks como uno de los “grandes soportes” de la operación). No hay nombres concretos en la operación, aunque muy posiblemente, la mayoría de las “grandes” podrían pensar desde hoy que están bajo una nueva amenaza aún más peligrosa con esta nueva unión entre ambos colectivos. Os dejo con la transcripción de la carta anunciada a través del Twitter de Lulzsec:

Somos conscientes de que el gobierno y los terroristas de la “seguridad” en todo el mundo siguen dominando y manteniendo el control de nuestra Internet. Un botín lleno de corruptos que piensan que esto es aceptable a condición de esclavizarnos a todos. Lulzsec y su flota de combate declara la guerra inmediata y constante al robo de estos “moderadores” de la libertad de este 2011.

Bienvenidos a la operación contra la Seguridad (#AntiSec). Animamos a cualquier barco, grande o pequeño, para abrir fuego contra cualquier gobierno o agencia que se cruza en su camino. Estamos totalmente de acuerdo con la proclama de la palabra “AntiSec” en cualquier sitio web de cualquier gobierno. Les animamos a difundir la palabra de AntiSec a lo largo y ancho, ya que será recordada. Para aumentar los esfuerzos, ahora estamos haciendo equipo con el colectivo Anonymous y todos sus barcos de guerra afiliados.

Ya sea porque estas navegando con nosotros o contra nosotros, ya sea porque guardes rencor del pasado o un ardiente deseo de hundir el barco en solitario, les invitamos a unirse a la rebelión. Juntos podemos defendernos de manera que nuestra privacidad no esté invadida por glotones hambrientos de ganancias. Su sombrero puede ser blanco, gris o negro, la piel y la raza no son importantes. Si usted es consciente de la corrupción, únase a AntiSec.

La prioridad máxima es robar y lanzar cualquier fuga de información clasificada del gobierno, incluyendo carretes de correos electrónicos y documentación. Nuestros objetivos principales son los bancos y demás establecimientos de alto rango. Si ellos tratan de censurar nuestro progreso, nosotros vamos a borrar el censor con sangre de lagarto.

Es ahora o nunca. Súbete a bordo, les estamos esperando …

La historia comienza hoy.

Lulz de Seguridad,

fuente: http://alt1040.com/2011/06/lulzsec-anonymous-operation-anti-security

Categorías:Uncategorized

EL CAMPO DE BATALLA ES INTERNET

junio 13, 2011 2 comentarios

Son dos lógicas. Dos formas de pensar que se están enfrentando y el campo de batalla es Internet.

Estamos hablando de dos generaciones que tienen dos lógicas distintas. La una, la antigua, piensa en átomos, y la nueva, que piensa en bits. Para la vieja generación los recursos son limitados, puesto que algo material basado en átomos no puede duplicarse fácilmente, hay un alto costo en ésta operación.Para la nueva generación entre más se comparta, más riqueza se crea; por que los bits son baratos y fáciles de copiar.

La lógica de la vieja generación es la de la escasez. Como los recursos son limitados éstos deben ser controlados, no cualquiera puede tener acceso a ellos. Por ello, se da la apropiación. Las cosas te deben pertenecer para tener control sobre ellas. Por eso, desde ésta lógica, es lícito el uso de la fuerza para proteger esos recursos.

Esta vieja generación está intentando entender Internet y lo que ven es anarquía. Entonces tratan de adaptarla a su forma de pensar. Por ello, Internet y todo lo que pasa en ella debe ser regulado. Deben apropiarse de Internet para que se comporte según su lógica de escasez. Quieren convertir a Internet en una televisión, en donde la transmisión sea desde unas muy pocas fuentes que están bajo su control.

La naturaleza misma de internet es la copia. El sólo hecho de abrir una página en un navegador es un proceso de copia. Por ello, es absurdo cuando se pone en una página de Internet “todos los derechos reservados, esta página no puede ser copiada por ningún medio”. Y para ver tal letrero hay que sacar una copia de ese letrero. ¿Cómo regular la copia en una tecnología que se basa en ella?

En cambio, la lógica de la nueva generación es la de abundancia. Entre más se comparta un conocimiento este se enriquece, no sólo por que más personas lo apropian, lo usan, sino que en este usar el conocimiento es modificado, transformado; evolucionado.

La cultura también se crea, recrea y cocrea mediante la copia. De hecho la ciencia es parte de la cultura y esta evolucionó mediante el compartir. Sectores como la moda y la culinaria han existido y evolucionado por siglos sin ninguna protección a la copia, más bien, diría que gracias a esto. En la nueva forma de pensar no se apropia para controlar, sino para poder compartir y reconocer quién fue el de la idea. El uso de la fuerza y la violencia no es necesario, por que cuando se copia no se está privando a alguien de un bien, al contrario, se está duplicando, hay más de lo mismo.

Se crea riqueza no quitándole a los otros, sino compartiendo. Actualmente, los investigadores se enfrentan aun laberinto de patentes que retrasa o impide la investigación. Pensando desde la abundancia, estas investigaciones se compartirían tempranamente y por la fuerza del número, una gran cantidad de personas usándolas y modificándolas, evolucionarían rápidamente en soluciones rentables y prácticas. Casos como el Software Libre apoyan esta idea.

En las lógicas de la abundancia no se está diciendo que no se protejan las creaciones, al contrario, se deben proteger más, pero se debe hacer adecuadamente, sin limitar la creatividad y la evolución de la ciencia y la cultura.

Tampoco se está hablando en contra del capitalismo, se está hablando de que el capitalismo evolucionó. Ya no se basa en las lógicas de la escasez, sino en las de la abundancia. Incluso hay que crear un nuevo tipo de teoría económica que tenga esto en cuenta. El Equilibrio de Nash es una de las muchas teorías matemáticas y económicas que apunta en este sentido.

Es básicamente un cambio de paradigma, un cambio de la forma en como se ve el mundo. Por eso, a las viajas generaciones, que piensan en lógicas de la escasez, les cuenta tanto ver el nuevo estado de las cosas. Entonces, surge resistencia, en forma de leyes o incluso oposición violenta.

Internet basa su funcionamiento en las lógicas de la abundancia. El futuro dependerá de que las lógicas de la escasez tomen el control de la red o que Internet siga siendo el medio mediante el cual la abundancia se distribuya a todo el mundo. El campo de batalla es Internet.

El Campo de Batalla es Internet by Luis Alejandro Bernal Romero, Aztlek is licensed under aCreative Commons Attribution-ShareAlike 3.0 Unported License.

fuente:http://aztlek.org/2011/06/13/el-campo-de-batalla-es-internet/

 

 

 

 

 

Categorías:Uncategorized