Proyectos

Proyecto nuevo

Pasos para crear un nuevo proyecto o taller en el lab

Crear

  1. Chequea que tu proyecto/taller cumpla con los criterios del hacklab.

  2. Definí una duración del mismo /taller/, especifica inicio y fin de la actividad, si no pueden compartir el espacio se recomienda que como máximo dure un mes y medio en caso de taller.

  3. Si la actividad va a ser fuera del horario fijo de sábados, necesitas un o una sudoer/wheeler responsable de abrir, cerrar y que te ayude a limpiar cuando termina el taller.

  4. Detalla bien los requerimientos:

  • ¿Hay que llevar notebook?
  • ¿Cual es el nivel de conocimiento técnico requerido?
  • ¿Hay que llevar algún material extra?
    *Algo mas que te parezca necesario
  1. Revisa en la agenda que día esta libre el Hacklab para la actividad y asegurate de actualizar días y horarios

  2. Si necesitas un flyer, contactáte con comunicación ( habla con algún sudoer/wheeler en el chat) :).

  3. Manda toda esta información al canal de Telegram o a la lista de mail para avisar, si la gente esta de acuerdo y nadie se opone :) empezá a organizar el contenido

  4. Si necesitas algo de infraestructura, solicita tu requerimiento mediante un ticket a la gente de infraestructura

Durante

  1. Todas las personas deben conocer la existencia del Código de conducta y antiacoso.

  2. Siempre limpia cuando te vayas.

  3. Si hay gente nueva asegurate de darles una copia del código de conducta y anti acoso.

  4. Asegurate de documentar lo que hacen subirlo a la wiki, repositorios, etc :) .

  5. Cada día que se junten volvé a recordar que el Hacklab se mantiene con donaciones.

Criterios

Criterios para actividades y proyectos

  • Si es un proyecto de software que tenga licencia Libre o ppl .
  • Que cumpla con nuestro Código de conducta y antiacoso.
  • Que sea gratuito y si existiera algun gasto material, que se cobre solo el costo.
  • Que comparta la forma de organizacion del hacklab : horizontal sin jerarquias, autodeterminada, basada en la confianza y la mutualidad.
  • Que sea apartidario, no se permiten actividades de partidos politicos en el hacklab.

Educación

Educación

Traducciones

2018/04/04 --- Una propuesta radical para mantener sus datos personales a salvo

2018/04/11 --- El Congreso de los Estados Unidos la está pifiando con respecto al caso Facebook

Educación

Una propuesta radical para mantener sus datos personales a salvo

por Richard Stallman, 03/04/2018

La vigilancia que se nos impone hoy es peor que en la Unión Soviética. En primer lugar necesitamos leyes para detener que estos datos se recopilen.

Los periodistas me han estado preguntando si la reacción contra el abuso de datos de Facebook podría ser un punto de inflexión para la campaña por recuperar la privacidad. Eso podria pasar, si el público hace su campaña más amplia y profunda.

Mas amplia, significa extenderla a todos los sistemas de vigilancia, no sólo a Facebook. Más profunda, significa pasar de regular el uso de datos, a regular la acumulación de datos. Debido a que la viligancia es tan penetrante, restablecer la privacidad es necesariamente un gran cambio y requiere medidas poderosas.

La vigilancia que se nos impone hoy excede por mucho a la de la Unión Sovietica. Por el bien de la libertad y la democracia, necesitamos erradicarla. Hay tantas maneras de usar datos para perjudicar al pueblo que la única base de datos segura es la que nunca se recopiló. Por lo tanto, en lugar del enfoque de la UE de regular principalmente cómo se pueden usar los datos personales (en su Reglamento General de Protección de Datos o GDPR), propongo una ley para evitar que los sistemas recopilen datos personales.

La manera robusta de hacer esto, la forma en que no puede dejarse de lado por el capricho de un gobierno, es exigir que se construyan sistemas que no recopilen datos sobre las personas. El principio básico es que un sistema debe estar diseñado para no recopilar ciertos datos, si su función básica puede llevarse a cabo sin ellos.

Los datos acerca de quién viaja y a dónde son particularmente sensibles, porque es una base ideal para reprimir cualquier objetivo elegido. Podemos tomar los trenes y colectivos de Londres como un caso de estudio.

El sistema de pago digital del transporte en Londres registra centralmente los viajes que cualquier tarjeta de pase "Oyster" o bancaria ha pagado. Cuando un pasajero alimenta la tarjeta digitalmente, el sistema asocia la tarjeta con la identidad del pasajero. Esto se suma a la vigilancia completa.

Espero que el sistema de transporte pueda justificar esta práctica bajo las reglas GDPR. Mi propuesta, por el contrario, requeriría que el sistema deje de rastrear quién va y a dónde. La función básica de la tarjeta es pagar por el transporte. Eso puede hacerse sin centralizar esos datos, por lo que el sistema de transporte debería dejar de hacerlo.

Cuando acepta pagos digitales, debe hacerlo a través de un sistema de pago anónimo.

Algunas características chulas en el sistema, como la característica de dejar que un pasajero revise la lista de viajes anteriores, no son parte de la función básica, por lo que no pueden justificar la incorporación de vigilancia adicional.

Estos servicios adicionales podrían ofrecerse por separado a los usuarios que los soliciten. Aún mejor, los usuarios podrían usar sus propios sistemas personales para rastrear sus propios viajes en privado.

Los taxis negros demuestran que un sistema para alquilar autos con conductores no necesita identificar a los pasajeros. Por lo tanto, no se debe permitir que dichos sistemas identifiquen pasajeros; se les debe exigir que acepten moneda que respete la privacidad de los pasajeros sin jamás tratar de identificarlos.

Sin embargo, convenientes sistemas de pago digital también pueden proteger el anonimato y la privacidad de los pasajeros. Ya hemos desarrollado uno: GNU Taler. Está diseñado para ser anónimo para el pagador, pero los beneficiarios siempre se identifican. Lo diseñamos de esa manera para no facilitar la evasión fiscal. Se debe exigir a todos los sistemas de pago digital que defiendan el anonimato utilizando este o un método similar.

¿Qué hay de la seguridad? Dichos sistemas en áreas donde el público es admitido deben estar diseñados para que no puedan rastrear personas. Las cámaras de video deben hacer una grabación local que se pueda verificar durante las semanas siguientes si ocurre un delito, pero no deben permitir la visualización remota sin la recolección física de la grabación. Los sistemas biométricos deben diseñarse de modo que solo reconozcan a las personas en una lista de sospechosos ordenada por la corte, para que respeten la privacidad del resto de nosotros.

Un estado injusto es más peligroso que el terrorismo, y demasiada seguridad alienta un estado injusto.

Las regulaciones GDPR de la UE son bienintencionadas, pero no van muy lejos. No ofrecerán mucha privacidad, porque sus reglas son demasiado laxas. Permiten recopilar cualquier información si de alguna manera es útil para el sistema, y ​​es fácil encontrar una manera de hacer que cualquier información particular sea útil para algo.

El GDPR hace que muchos usuarios requieran (en algunos casos) dar su consentimiento para la recopilación de sus datos, pero eso no hace mucho bien. Los diseñadores de sistemas se han vuelto expertos en el consentimiento de fabricación (para reutilizar la frase de Noam Chomsky). La mayoría de los usuarios aceptan los términos de un sitio sin leerlos; una compañía que requería que las usuarias paguen con su primer hijo obtuvo el consentimiento de muchas usuarias. Por otra parte, cuando un sistema es crucial para la vida moderna, como los autobuses y los trenes, las usuarias ignoran los términos porque el rechazo del consentimiento es muy doloroso de ser considerado.

Para restaurar la privacidad, debemos detener la vigilancia incluso antes de solicitar el consentimiento.

Finalmente, no olvidemos el software en nuestra propia computadora. Si se trata del software privativo de Apple, Google o Microsoft, nos espía regularmente. Eso es porque está controlado por una compañía que no duda en espiarnos. Las empresas tienden a perder sus escrúpulos cuando eso es redituable. Por el contrario, el software libre es controlado por sus usuarias. Esa comunidad de usuarias mantiene el software honesto.

Postdata: Para una implementación de la "propuesta de ley radical" de Richard, considérese ésta.

Educación

El Congreso de los Estados Unidos la está pifiando con respecto al caso Facebook

Dejamos enlace al original aqui por las dudas y nos ponemos manos a la obra en el pad!!! :)

                                                                     By NahuBJJ   XD

Estados unidos Necesita un acta sobre derecho de datos personales.

Cada vez me siento más desconcertado y decepcionado por el escándalo y el festival de furia que rodea Facebook. En lugar de amontonarse apuntando a Mark Zuckerberg o preocuparse por quién tiene nuestros datos personales, los legisladores deberían centrarse en el problema real: cómo se utilizan nuestros datos.

Comencemos con algunas verdades que parecen perderse:

· Cambridge Analytica, la empresa que succionó un montón de datos sobre los usuarios de Facebook, no es en realidad una gran amenaza. Es decir, si!, es bastante sórdido, pero en su mayor parte apestaba a manipular a los votantes.

· Muchas otras compañías, tal vez cientos! - e "individuos malintencionados" también recopilan nuestros datos. Es mucho más probable que estos vendan nuestra información personal para fines fraudulentos.

· No deberíamos esperar que Zuckerberg cumpla con ninguna promesa. Ha tratado de jugar limpio de poco a nada, tiene muchos conflictos y es un autómata ingenuo.

· Incluso si Zuckerberg fuera un santo y no le importara ni un ápice las ganancias, las posibilidades de que las redes sociales sigan siendo malas para la democracia son altísimas.

Los políticos no quieren admitir que no comprenden la tecnología lo suficientemente bien como para idear regulaciones razonables. Ahora que la democracia en sí misma podría estar en juego, necesitan a alguien a quien culpar. -Inserte Zuckerberg aquí-, el punching ball perfecto. El problema es que probablemente no hizo nada ilegal, Facebook ha sido relativamente abierto y obvio acerca de sus repugnantes prácticas empresariales. En su mayor parte, a nadie realmente le importaba hasta ahora. ( y si eso suena cínico, agregaré: a los demócratas no les importaba hasta que las campañas republicanas los alcanzaban o incluso los superaban con técnicas de big data).

Lo que Estados Unidos realmente necesita es un diálogo más inteligente sobre el uso de los datos. Reconociendo primero que: nuestros datos ya están disponibles en a nube. Incluso si no hemos compartido nuestra propia información personal, alguien lo ha hecho por nosotros. Estamos todos expuestos. Las empresas tienen los datos y las técnicas que necesitan para predecir todo tipo de cosas sobre nosotros: nuestras preferencias políticas, nuestro comportamiento como consumidor, nuestra salud, nuestro futuro financiero. Eso es mucho poder ejercido por personas en quienes no tenemos porque confiar.

Si los políticos quieren crear reglas, deberían comenzar abordando estrictamente los peores usos posibles para nuestra información personal: las formas en que pueden negarse a las oportunidades laborales, limitar el acceso al seguro de salud, establecer las tasas de interés de los préstamos y decidir quién sale de la cárcel Esencialmente, cualquier decisión burocrática ahora se puede hacer por algoritmo, y sobre esos algoritmos necesitamos preguntarnos mucho más de lo que Zuckerberg hace.

Con ese fin, propongo una Declaración de Derechos de Datos. Debería tener dos componentes: el primero especificaría cuánto control podemos ejercer sobre cómo se utiliza nuestra información individual para decisiones importantes, y el segundo introduciría reglas aplicadas a nivel federal sobre cómo los algoritmos deberían ser monitoreados de manera más general.

Los derechos individuales podrían basarse en la Ley de Informes de Crédito Justos, que nos permite acceder a los datos empleados para generar nuestros puntajes de crédito. La mayoría de los algoritmos de puntuación funcionan de manera similar, por lo que este sería un modelo razonable. En cuanto a los datos agregados, deberíamos tener el derecho de saber qué algoritmos de información están utilizando para tomar decisiones sobre nosotros. Deberíamos poder corregir el registro si está mal y apelar los puntajes si creemos que son injustos. Deberíamos tener derecho a saber cómo funcionan los algoritmos: ¿Cómo, por ejemplo, cambiará mi puntaje si pierdo una factura de electricidad? Esto es un poco más de lo que FCRA* ahora ofrece. (*Acta Estadounidense de justo reporte crediticio, efectiva desde 1970)

Además, el Congreso debería crear un nuevo regulador, en la línea de la Administración de Alimentos y Medicamentos, para garantizar que cada algoritmo importante a gran escala pueda superar tres pruebas básicas:

· Es al menos tan bueno como el proceso humano que reemplaza (esto obligará a las empresas a admitir cómo definen el "éxito" para un algoritmo, que con demasiada frecuencia simplemente se traduce en ganancias)

· No falla desproporcionadamente cuando se trata de clases protegidas (minorías en EEUU) (como se sabe qué hace el software de reconocimiento facial);

· No causar externalidades negativas desproporcionadas, como la destrucción de la confianza de las personas en los hechos o en el sentido común. Las compañías que manejan algoritmos que podrían tener tales efectos negativos a largo plazo deberían ser monitoreadas por terceros que no estén obligados con los accionistas.

No soy un experto en política, y reconozco que no es fácil comprender la magnitud y complejidad del desastre en el que nos encontramos. Sin embargo, algunas reglas simples podrían ayudar a limitar el daño.

NOTA: El autor de la nota tiene una consultora que ofrece servicios tales como estos algoritmos de auditoria.

                               Para contactar a la autora:  coneil19@bloomberg.net  (Se llama Cathy O'Neil)
Educación

Escuelita Hacker

Todos los sábados de 15:00 a 17:00 aprenderemos sobre hacking y seguridad informática desde 0. Se le da prioridad a las chicas y a la comunidad lgtbiq+.

Si querés aportar agregando o modificando contenido, hacelo acá.

Requisitos:

Van a variar dependiendo de los temas que se den, pero por ahora:

  • Traer una computadora con una distro de GNU/Linux o laptop + usb booteable con kali.
  • Avisar que venís a la escuelita!

RESUMENES

Primer encuentro

Segundo encuentro

Tercer y cuarto encuentro

Quinto encuentro

Sexto encuentro

TEMAS

Esta es una lista tentativa de temas

0 Conocimientos Básico

  • Introducción a GNU/Linux (filesystem, kernel, permisos, usuarios, procesos)
  • Bash (comandos útiles, procesamiento de texto, scripts)
  • Redes para n00bs (tcp/ip, modelo OSI, iptables, FTP, SSH, HTTP, apache/nginx, transferencia de archivos) acá debería ir el ciclo de peticiones web, cliente -> server -> ss scripting -> db -> template -> browser -> cs scripting
  • reverse shell y bind shell con nc python y php
  • Conocimientos basicos de C (MUY BASICOS)
  • Como se ejecuta un archivo
  • Estructura de un ataque (recon , scan, exploit, post exploitation- escalar privilegios, manteniendo acceso)

1 Recon:

Pasiva:

  • google dorks
  • shodan
  • tools: recon-ng whois, nslookup, fierce

Activa:

  • DNS ( host, reverse lookup , zone transfer, dnsrecon, dnsenum, fih)
  • Escaneo de puertos: tcp y udp, ping sweep, nmap, zenmap, unicornscan, sparta, sn1per
  • SMB: enum4linux, nmap
  • SMTP: smtp-userenum
  • SNMP: MIB tree, nmap, onesixtyone, snmpwalk
  • Otros Protocolos: http, ssh, ftp,etc
  • Buscar vulnerabilidades (exploit-db, openvas, nmap scrips, metasploit)

2 Exploit

  • Buscando exploits: exploit-db.com , kali,
  • Generando shellcodes
  • metasploit
  • Post Explotación
  • tools: hashcat, cewl, metasploit, hydra, johntheripper, crunch, msfvenom, mingw, hyperion

3 Post Explotación

  • Arp poisoning
  • Escalar privilegios
  • tools: tcpdump, wireshark, powershell(empire, powershellmafia), bftpd, pwdump, fgdump, icacls, ncat, putty, ssh, rinetd

4 Ataques Web

  • Arquitectura básica de una aplicación web (front-end, back-end, framewoks, lenguajes, sql, http)
  • OWASP
  • Sacando información del servidor (banner grabing)
  • XSS
  • XXE
  • Deserializacion
  • sarpar cookies
  • file inclusion (lfi, rfi)
  • sql injection (union, blind sql injection, mysql, sqlmap)
  • proxys! tamper data, burpsuit, zap
  • tools: dirb, dirbuster, sqlmap, cookies-manager, gobuster, nikto, wpscan, joomscan,

5 Técnicas para anonimizar ataques

6 Recursos

Educación

Primer encuentro

TEMAS

  • Conceptos basicos sobre microprocesadores, registros y memoria ram
  • Conceptos basicos sobre Sistemas operativos (el kernel de linux, syscalls, shell, userspace, permisos)
  • Redes, TCP/IP( capas: link, internet, transporte, aplicacion)
  • Compuertas logicas

Practicas

  • Ping sweep con nmap
  • Escanear puertos con nmap.
  • Pruebas con Metasploitable 2

Cosas para hacer en la semana

  • Ir leyendo linux journey [1]
  • Instalar virtualbox con y ponerle una imagen de kali
  • mapear rlab.be y ver que servicios estan abiertos
  • Si sobra tiempo, levantar un metasploitable2 en virtualbox y buscarle vulnerabilidades con nmap

Recursos/bibliografia

[1] linux y redes: https://linuxjourney.com/

[2] ejemplos nmap: https://highon.coffee/blog/nmap-cheat-sheet/

Educación

Segundo encuentro

Internet protocol Suit( modelo tcp/ip)

Es un modelo que incluye protocolos y capas que nos permite comunicar datos sobre internet.

Capas Protocol data unit PDU Funcion
Aplicacion Mensaje compresion, cifrado, encoding, sesiones, apis
Transporte Segemento) transmision de data entre puntos de una red
internet datagrama
Link frames
Physical bit

Como identificar dispositivos

MAC address (capa link):es un valor que identifica fisicamente a una placa de red. Direccion IP: (capa internet)*es un valor que permite identificar a un dispositivo en una red. Hostname: (capa aplicacion) Es una palabra o valor que se traduce a una ip

Encapsulacion y headers en las capas

Cada capa le agrega un header al mensaje.

Capa Formato
Aplicacion Mensaje
Transporte Ht + Mensaje
Network Hn +Ht +Mensaje
Link Hl+Hn+Ht+Mensaje
Fisica ex:101001001001

Capa Aplicacion

Sirve para definir como formatear la data/mensaje.

Protocolos comunes de esta capa:

  • DNS : 53 - generalmente UDP pero tmb TCP para zone transfers
  • FTP : 21 tcp , se usa para compartir archivos
  • HTTP: 80 tcp 443 https , se usa para navegar
  • IMAP: 143 o 993(con ssl) tcp , se usa para administrar casillas de mail
  • LDAP: 389 , 636 tcp o udp(LDAPS over ssl) es un protocolo para gestionar el acceso de usuarios a directorios
  • POP: 110 o 995 tcp , te deja descargar y borrar mails de tu casilla
  • NTP 123 udp , sirve para sincronizacion de relojes/tiempo entre sistemas
  • SMTP 25 tcp comunicacion entre servers, 587 tcp submission desde el cliente
  • SSH/SCP 22 tcp es un canal seguro para acceder a servicios remotos
  • TLS/SSL ssl es el viejo, son protocolos que cifran la data para enviarla en una red y garantizar comunicacion segura
  • RDP: 3389 tcp y udp, remote desktop de microsoft
  • DHCP: 67-68
  • MYSQL: 3306 tcp servidor mysql
  • SMB -445 tcp compartir archivos
  • NetBios- 137,138 udp o 137,139 tcp

Capa Transporte

Define como se va a transmitir la data.

Protocolos comunes

  • TCP
  • UDP

Sockets

Los sockets estan en esta capa

TCP Three way handshake

iniciar

 -> syn  Se le manda con un squence number x
<-  syn+ack Se responde con un  sequence number propio(y) y un  ack nmber que es x+1
 -> ack  se res[ponde con un ack number que sea y +1

Terminar una conexion

-> fin
<- ack
<- fin
-> ack

Header TCP

tcpheader.jpg

Header UDP

udp-datagram.jpg

Capa Internet

Indica como mover los paquetes

Protocolos comunes

  • IP(v4 v6)
  • ICMP
  • IPsec

Formato header ip

ip_header.gif

CIDR

  • clase B 255.255.0.0 = /16
  • Clase C 255.255.255.0 = /24

Se encarga de organizar y distribuir la data usando la capa fisica

Protocolos Comunes

ARP NDP MAC

Capa fisica

Se encarga enviar la data por medios fisicos

#NMAP

Estados

Los puertos nos pueden devolver distintos estados, los primeros 4 son los mas comunes/importantes

  • open
  • closed
  • filtered
  • open|filtered : cuando la falta de respuesta es un indicador (null, xmas) puede estar en cualquiera de los dos estados
  • unfiltered : no esta filtardo, pero no sabemos si open or closed, solo -sA (ACK scan, lo marca asi)
  • close|filtered : Solo se usa en el IP idle scan

Tecnicas

Podemos mapear puertos usando distintas tecnicas

-sS (SYN scan) half open , es el default nunca termina la conexion tcp, mandas un SYN 
-sT (TCP connect scan) lo podemos usar cuando un usuario no tiene permisos para trabajar con raw packets. nmap  le manda al sistema operativo  el connect syscall  sy -sS esta disponible es mejor opcion
-sU (UDP scan)  se puede convinar con sS para chequear ambos protocolos. UDP scan le manda packetes a cada puerto, Si no se recibe respuesta se marca como open|filtered.
-sY (SCTP)  es relativamente nuevo, ni idea la verdad

-sN (TCP NULL) tcp flag es 0
- sF (FIN)  solo manda TCP FIN bit
-sX (Xmas) Setea FIN, PSH y URG flags 

NULL FIN y Xmas funcionan igual, si reciven un RST packet, se considera closed , si no hay respuesta es open|filtered, es filtered si se recive ICMP unreacable error

Opciones comunes/copadas

-Pn  no hace el host discovery (no usa icmp)
-iL  para pasarle una lista de ips en un archivo ex:hosts.txt
-sn disable port scan, solo hace ping scan.
-p : especificar puerto ej  -p80,443   o -p1-65535
-F: fast mode (scanea menos puertos)
--top-ports <numero>  escanea los <numero> puertos mas comunes
--script=" script"
-O  OS detection

-T paranoid|sneaky|polite|normal|aggressive|insane (Set a timing template)
   el default es -T3 que es normal, son templates para las distintas variables de tiempo, los primeros dos sirven para evadir IDS's

Outputs

-oN output normal
-oX output XML ( lo podemos importar a metasploit despues)
-oG  grepeable
-oA  tenes el output de los tres en el mismo
-v incrementa verbosidad -vv todavia mas
-6 enable ipv6

Ejemplos

Network sweeping

 root@kali:~# nmap -v -sn 10.10.1.1-254 -oG ping-sweep.txt
 root@kali:~# grep Up ping-sweep.txt | cut -d " " -f 2

Un scan global

:~# nmap -iL ping-sweep.txt -p- –min-hostgroup 100 -sS -n -T4 -oG full.txt

OS fingerprinting

:~# nmap -O 10.0.0.15

Banner Grabbing

:~# nmap -sV 10.0.0.15

ENUMERANDO NETBIOS

:~# nmap -sV -v -p 139,445 10.0.1.0/24
:~# nmap -sU --script nbstat.nse -p 137 10.0.1.12
:~# nmap --script-args=unsafe=1 --script smb-check-vulns.nse -p 445 10.0.0.1 // para ver si es vulnerable a ms08-067

ANEXO

UNICORNSCAN

Buscar informacion y compararlo con nmap

OSI

7 aplication
6 presentacion
5 sesion
5 transporte
4 network
3 internet
2 data link
1 physical
Educación

Tercer y cuarto encuentro

KakThePlanet KakSkull clase 4

Kaking challenge writeup

kakme0

La idea de esta práctica era poner en marca los conocimientos adquiridos en las últimas clases, agregando algunos temas nuevos a modo meramente introductorio, a la vez que simulando temáticas de los entornos reales. Las prácticas se han llevado en una red local en donde, además del servidor objetivo, existían honeypots para afianzar la perspicacia de los kakers.

Objetivos:

  • Conectarse a la red WiFi y configurar la conexión manualmente, dado que la red no cuenta con DHCP.
  • Encontrar el servidor objetivo en la red. El mismo está oculto y no responde pings.
  • Una vez encontrado el servidor, obtener información de los servicios.
  • Obtener los 3 flags que se encuentran en el mismo (+1 de yapa para ejercicio futuro).

Finalidad:

  • Mejorar la comprensión del funcionamiento de redes locales, resolución de nombres de dominio, IP, máscara, etc.
  • Practicar el uso de la herramienta nmap: búsqueda de objetivo, information gathering.
  • Aprender a distinguir un servidor de otro, y en particular un servidor de pc's de escritorio.
  • Entrenar la imaginación a fin de comprender temas que no se dieron, como p.e. un pequeño script de PHP.
  • Divertirse.

Resolución:

  • No es la única forma de resolverlo, obviamente. Si aún no lo resolviste, te recomiendo tratar de hacerlo sola y pedir ayuda si hiciera falta :)
  • Lo más importante es saber buscar en los manuales y en internet.
  • Configurar pertinentemente la conexión de red: 192.168.10.0/24
  • Buscar máquinas que respondan ping: nmap -sn 192.168.10.0/24
  • Sabemos que el servidor no responde ping, así que buscar máquinas que tengan algún servicio especial corriendo y contrastar con las que respondieron al ping: nmap -Pn -p22 192.168.10.0/24
  • A esta altura es probable que ya sepamos cuál es el servidor objetivo, pero para estar segura, obtener info de cada host del que sospechemos: nmap -A -p1-65535 -Pn $host1 $host2 $host3 ...
  • Veremos que el servidor posee 3 servicios: ssh, http y ftp. El primero queda fuera de la práctica, y no es vulnerable. Del ftp, nmap nos reporta que permite conexión anónima e incluso nos lista los archivos.
  • Ingresando por ftp sin más, se obtiene 1 flag + 1 de yapa para el futuro. El ftp está jaileado, por lo que no podemos escapar de él para irnos a recorrer el sistema de archivos. Nos desconectamos del mismo.
  • Ingresando por http nos recibe una web que nos indica que debemos ingresar a una url extraña, y nos dice que está en el mismo server. Asimismo, nos dice que miremos los headers.
  • Editando nuesto archivo de hosts, podemos fijar la url a la ip del servidor: sudo vim /etc/hosts
  • De esta manera, accediendo a esta url obtenemos 1 flag.
  • Si ahora observamos los headers de la conexión, nos indica que ingresemos a otra url extraña. Repetimos el mecanismo del punto 8 e ingresamos.
  • Esta url nos escupe un código en PHP que debemos analizar para obtener el flag. Si tratamos de acceder directamente al archivo del flag, obtenemos una respuesta vacía, así que no quedaría otra más que explotar la vulnerabilidad del código, que primero debemos hallar.
  • Leyendo el manual de PHP obtenemos la clave de la vulnerabilidad presente, que podemos explotar fácilmente con CURL o con el mismo navegador, editando la cabecera en cuestión e ingresando al sitio nuevamente, obteniendo así 1 flag más, y el último.

¡Esto es todo!

Educación

Quinto encuentro

METASPLOIT FRAMEWORK(intro muy basica)

Metasploit es un framework desarrollado en ruby para codear y ejecutar exploits. Para interactuar con este framework es necesario usar msfconsole.

Fuente de lo siguiente: https://www.offensive-security.com/metasploit-unleashed/

MSF Modulos

Exploits

sSon modulos que usan payloads, en msf a un exploit sin payload se le dice auxiliary

Payloads, encoders, nops

  1. Payloads: codigo que corre en la maquina target
  2. Encoders: le da formato al payload
  3. Nops : No operations

Modulos primarios

/usr/share/metasploit-framework/modules

Modulos del usuario

~/.msf/modules

Todos los modulos son clases de ruby

MSF console

Comandos

  • use
  • back
  • check
  • connect
  • edit
  • grep: grep [option] pattern cmd
  • help
  • info
  • irb
  • jobs, kill
  • search
  • sessions (sessions -l, -i)
  • set
  • show options
  • show payloads
  • show encoders
  • unset
  • setg
  • use

PAYLOADS

Hay 3 tipos basicos

Singles -> self contained y standalone
Stagers -> Generan una conexion y van cargando stages mas pesadas
Stages -> componentes que descarga el stager

Otros payloads

INline, staged, meterpreter,passiveX,NoNX

Generando payloads

msf> use <exp>
msf(exp)> generate -b '\x00\x0A' -i 3 -t java 

Usando encoders msf(exp)> generate -e x86/shikata_ga_nai

BASE DE DATOS

msf> hosts
msf> servicios -p21
msf> help database
msf> db_status
msf> workspaces

Usando nmap en msf

Importar nmap scan msf> db_import /root/scanNmap

Usando nmap adentro de msf msf> db_nmap -A target

Exportar db_export -f xml /root/out.xml

Servicios

Podemos buscar por servicios msf> services -c name, info -s http

METERPRETER

Como funciona?

  1. ejecuta el stager inicial (bind,reverso,passivex,etc)
  2. se carga el dll
  3. se genera la conexion entre el target y el atacante
  4. meterpreter carga sus extensiones

Comandos basicos

  • help
  • background
  • cat,cd,pwd,ls
  • clearev
  • download
  • edit
  • execute
  • getuid
  • hashdump
  • ipconfig
  • migrate postmodule
  • ps
  • search
  • shell
  • webcam_list
  • getprivs

Ejemplo rompiendo rmi en metasploitable 2

$ systemctl start postgresql
$ msfdb init
$ msfconsole
msf> db_nmap target
msf> grep java search rmi
msf> use java_rmi_server
msf> show options
msf> set RHOST LHOST SRVHOST ,ETC
msf> exploit
meterpreter> getuid
Educación

Sexto encuentro

DNS

Conceptos basicos

DNS: es un sistema que permite transformar direcciones unicas en nombres Domain name: es el nombre asignado a una direccion

TOP LEVEL DOMAIN TLD: es lo que esta mas a la derecha, en una direccion, son la parte mas alta de la estructura jerarquica. por eso para tener un .com.ar tenes que pedirle permiso a nic.ar Subdomain: como dns trabaja con jerarquias, TLD puede tener muchos hijos, el subdomain existe para extender el dominio del padre.

FQDN fully qualified domain name: es el domain name absoluto, ex: 'ctf.rlab.be'

**Name Server:**es el server que se encarga de traducir dominios e ips. Cada uno puede redirigir a otro name server o delegado para que sea responsable del subset de subdominios

Zone file: es un archivo que tiene el mapeo entre ips y dominios.

Records: son un solo mapeo entre un recurso y un nombre

Estructura

Root servers -> TLD servers -> Domain level name server

  1. alguien le pregunta a root server la ip de rlab.be, root no sabe pero le da la direccion del responsable de .be
  2. el requester con la ip que el root server le dio pasa al tld , en su zone transfer tld no tiene la ip de rlab.be pero tiene la ip del server encargado de rlab.be
  3. requester manda el request al DL ns y este deberia tener un "www"record con la ip de rlab.be

ZONE FILES

Son estos archivos con todos los records y los mapeos

RECORDS

SOA start of authority

domain.com.  IN SOA ns1.domain.com. admin.domain.com. (
                                            12083   ; serial number
                                            3h      ; refresh interval
                                            30m     ; retry interval
                                            3w      ; expiry period
                                            1h      ; negative TTL
)

domain.com es el root del zone, indica que el zone file es para ee dominio. a veces se remplaza con @, que es un placeholder para $ORIGIN

IN SOA: es un indicador para iniciar el authority record

ns1.domain.com: define el name server primario.

admin.domain.com: es el mail del administrador de la zona, el @ se remplaza por un . .

12083: es el numero serial del zone file.

3h: refresh interval para la zona, es el tiempo que un esclavo espera para traerse el one file

30m: si el slave no se conecta al master, va a esperar esta cantidad antes de volver a tratar

3w: si el slave no se conecto con el master durante este periodo deja de devolver respuestas

1h: el tiempo que va a cachear un error

A y AAAA

A: mapea un host a una ipv4

AAAA: mapea un host a una ipv6

ex:

 ns1   IN  A      10.10.10.10 # es lo mismo que poner ns1.domain.com.
 host  IN  AAAA   2001:db8:85a3:0:0:8a2e:370:7334
 www   IN  A      10.10.10.1

tTenemos que tambien, aparte del host setear el base domain (domain.com), lo podemos hacer con @ @ IN A 222.222.222.22

Y podemos resolver todo lo que no sabemos al mismo server con un wild card

* IN A 222.222.222.222

CNAME

Define un aleas para el nombre canonico definido por A y AAAA

ex:

Si definimos: Server1 IN A 111.111.111.111

Podemos definir un alias que sea: www IN CNAME Server1

MX

Se usa para configurar mails, no mapean el host a nada, por que aplican para toda la zona.

     IN   MX  10   mail.domain.com.
     IN   MX  50   mail2.domain.com
mail IN   A        111.111.111.111
mail IN   A        222.222.222.222

Los numeros sirver para definir la prioridad

NS

Identifican los name servers que se van a usar para la zona. ex:

   IN NS ns1.domain.com
   IN NS ns2.domain.com

PTR

Son la inversa de los registros A y AAAA, aparte empiezan con .arpa y se delegan al dueño de la ip. por ejemplo para la ip 111.222.333.444: 444.333.222.111.in-addr.arpa. 33692 IN PTR host.example.com.

Se puede usar dig -x para buscar el nombre de una IP y +short para mostrar solo eso

n00b@escuelita:~$ dig -x 8.8.8.8 +short
google-public-dns-a.google.com.

CAA

Son para certificate authorities

source: https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts

TOOLS

Whois

Es una tool y una base de datos, contiene nombres, registradores y en algunos casos todos los contactos

root@kali:~# whois target.com

Host

host -t ns zonetransfer.me
host -t mx zonetransfer.me

-t para definir el query

Bruteforceando

lista.txt={www,ftp,mail,proxy,owa....}
for ip in $(cat lista.txt); do host $ip.zonetransfer.me;done

nslookup

Name server lookup, se usa para buscar info sobre dominios

nslookup
    nslookup <domain>

    or

    nslookup
    >set type=mx  (mail)
    uocra.org


    >set type=ns (dns)
    [domain]

cosas: https://blog.thesysadmins.co.uk/nslookup-common-usage-examples.html

Dig

Es similar a nslookup
> dig zonetransfer.me
o menos verborragico > dig zonetransfer.me +nocomments +noauthority +noadditional +nostats +notanswer

querry mx records
>dig zonetransfer.me -t MX +noall +answer

Fierce

Escanea DNS root@kali: fierce -dns example.com -threads 10 -file /root/Desktop/example-fierce.txt

Si queremos hacer un zone transfer: $ fierce --domain zonetransfer.me --wide nota: wide busca en ips adjyacentes (/24)

DNSenum

ex:
dnsenum rlab.be

  1. get: A records, Mx records, namservers, performs axfr queries (te trae todo),
  2. consigue extra names y subdominios usando google
  3. bruteforcea subdominioes y busca redes adyacentes
  4. reverse lookup

https://github.com/fwaeytens/dnsenum

Dnsrecon

ex:
dnsrecon -d rlab.be -t axfr
Aparte de lo que hace dnsenum tiene , ptr record lookup y mdns records

Educación

Taller de programación web

Taller de Desarrollo Web

  • ¿Para quién está orientando?

Cualquiera que quiera aprender desarrollo web y quiera hacerlo en un espacio donde las minorías tendrán preferencia y donde no habrá espacio para fachos, machistas, racistas, misóginos, trolls ni boicoteadores.

  • ¿Por qué?

La idea surgió de la poca disponibilidad de cursos online de programación en español y de que los proyectos más piolas en Buenos Aires son pagos (y no baratos).

  • ¿Tengo que tener algún conocimiento previo?

No hace falta conocimientos previos, vamos a empezar desde lo más básico y cualquier pregunta será bienvenida.

  • ¿Con qué tecnologías trabajaremos?

Vamos a trabajar con los 3 lenguajes de programación / especificación que componen la plataforma web: HTML, CSS y Javascript

  • ¿Cuáles son las reglas del espacio?

Código de conducta

¡Importante!

  • Hay que traer notebook - netbook* No hace falta que traigan nada instalado, solo que puedan conectarse a internet por wifi.

Coordenadas espacio temporales (cuándo, dónde)

  • ¿Horario? Todos los jueves de 18:30 a 21:00.

  • ¿Cómo llegar?(pueden pedir la dirección en el grupo de Telegram)

Recursos / materiales

  • http://librosweb.es
  • http://librosweb.es/libro/css/
  • http://librosweb.es/libro/pro_git/
  • https://thimble.mozilla.org

Temario :

Contacto

Educación

Taller de software libre

En el taller de introducción de software libre, se procedera a estudiar la filosofia y ética del mismo, capacitandose en el uso del sistema operativo GNU/Linux. El encuentro consta de 3 clases de 3 horas cada uno. Está destinado a adolescentes, adultos, profesionales, estudiantes, docentes y entusiastas. Se necesita tener un manejo básico de computación y disponer de computadora portatil que soporte el uso de maquinas virtuales.

Se veran los siguientes temas:

  • ¿Qué es el software libre?

  • Las cuatros libertades del software libre

  • Diferencia entre Open Source y Software LIbre

  • ¿ Qué es el proyecto GNU?

  • El kernel Linux

  • Sistemas operativos libres (GNU/Linux,*BSD)

  • Primeros pasos para instalar GNU/Linux

    • Compatibilidad de hardware
    • Particionado
    • Doble boot
  • Sistemas de archivo

  • La shell bash y sus alternativas

    • Comandos basicos
  • El editor vim

  • Repositorios de softwares

    • Gestor de paquetes
    • apt
    • yum
  • Alternativas libres de software de uso diario

  • Consultas

Educación

Taller de Docker

EL taller de introducción a docker esta orientado para profesionales del rubro de tecnología, entusiastas y estudiantes.

Requisitos:

  • Notebook con GNU/Linux o VM con GNU/Linux, tambien puede ser una Mac con macOS El Capitan 10.11 o superior. (Necesario)
  • Conocimiento de protocolo TCP/IP
  • Conocimiento de shell script

Temario:

  • ¿Qué es docker
  • ¿Comó instalar docker?
  • Hola mundo con docker
  • Comandos basicos :
    • docker run
    • docker -it
    • docker exec
    • docker pull
    • docker push
    • docker rm
    • docker rmi
    • docker stop
    • docker start
    • docker inspect
    • docker stats
    • docker search
  • Crear una imagen
  • Crear un Dockerfile
  • Buenas practicas
  • Docker network
  • Docker compose
Educación

Taller de FreeCAD

  1. Introducción a FreeCAD.
    1. Dime quién sos, de dónde venís y a dónde vas. El foro y la wiki de FreeCAD.
    2. Introducción al modelado paramétrico 3D.
    3. Libertad cero: Instalación y uso de FreeCAD con cualquier propósito.
    4. Comprendiendo el entorno de FreeCAD
      1. Los bancos de trabajos (Workbench).
    5. Configuración de FreeCAD.
  2. Objetos primitivos. Banco de trabajo Part.
    1. Reconociendo el espacio 3D.
    2. Banco de trabajo Part.
    3. Cubo Hola Mundo.
    4. Comprendiendo las propiedades de los objetos.
  3. Dibujando objetos. Banco de trabajo Part Desing
    1. Reconocer el flujo de trabajo del banco de trabajo
    2. Crear bocetos paramétricos.
    3. Realizar operaciones sobre los objetos
  4. El banco de trabajo Draft.
    1. Reconocimiento de sus herramientas.
    2. Mover objetos, clonarlos, etc.
  5. Creación de planos en 2D. El banco de trabajo TechDraw.
    1. Creación del plano e importación de objetos
    2. Creación de cotas
  6. Dime que hacer y lo haré por ti: La macros en FreeCAD
    1. FreeCAD y la consola python
    2. Instalación y edición de Macros.
    3. Uso de macros útiles: FCInfo y FCTreeView
  7. ¡¡Animado estoy!! Animación de objetos en FreeCAD.
    1. Animaciones mediante código python
    2. Animaciones con el banco de trabajo Sandbox:Animation
  8. De 9 meses estoy ¡¡Quiero nacer!! Impresión 3D con FreeCAD.
    1. Preparación de los para impresión 3D.
    2. El programa CURA y las impresoras 3D.
  9. Títere soy… Sincronización de FreeCAD con programas externos y bases de datos.
    1. Manipulación remota de FreeCAD. Manipulación de modelos por sockets (python)
    2. Creación automática de modelos paramétricos mediante Script python
  10. Hojas de cálculo en FreeCAD. El banco de trabajo Spreadsheet
    1. Obtener datos de los objetos del modelo.
    2. Exportación a hojas de cálculo.
  11. Viajando al espacio…FreeCAD y la web
    1. Exportar modelos de FreeCAD para webGL.
Educación

Cyberseguridad para periodistas

Open hardware

Open hardware

Arcade

Se trata de la construcción de un árcade, como en los viejos tiempos, pero en los nuevos tiempos.

Se Encarga:

  • Envido32
  • DrI

Software

  • Basado en el proyecto RetroPie. Una vez funcionando se exploraran otras distribuciones y se le agregaran otras funciones de Media Center.
  • Se hará en conjunto un compilado de ROMs clásicos probando su correcto funcionamiento uno por uno, evitaremos el uso de paquetes masivos.

Hardware

  • Se utilizara un Rasberry Pi 3B por brindar una solución integrada. Una vez funcionando se migrara a una desktop.

Otros

  • Se realizara el gabinete de madera con botones y palancas tradicionales, pintura y grafica, sistema de audio.

Open Science y Ciencia comunitaria

Open Science y Ciencia comunitaria

Sea Lion - observatorio de contaminación de la Laguna de Lobos

Resumen

La Laguna de Lobos se encuentra en la localidad de Lobos, provincia de Buenos Aires. Las vecinas denuncian que ya no pueden utilizar la laguna debido a la contaminación. La municipalidad no da respuestas, y debido a esto las vecinas necesitan evidencia de la contaminación para realizar las denuncias correspondientes.

El observatorio de la laguna consiste en recolectar datos a través de sensores colocados en diferentes puntos estratégicos de la laguna y publicar estos datos con un formato abierto y accesible públicamente.

Si estás interesada en participar de este proyecto, mandanos un mail a contacto@rlab.be

Objetivos

Desarrollar el sistema de monitoreo y la infraestructura necesaria para recolectar datos significativos sobre la contaminación de la laguna de Lobos. El sistema de monitoreo debe recolectar periódicamente información sobre conductividad eléctrica, temperatura, ph y turbidez del agua. También debe enviar estos datos a un repositorio central y este repositorio debe ser de acceso público y con formatos abiertos.

Capacitar a las vecinas de Lobos para leer los datos publicados.

Financiamiento

En principio el proyecto lo vamos a finaciar las personas interesadas.

Aplicamos para una beca de Mozilla Science por un monto de 5000usd, y tendremos una respuesta en marzo. Adjuntamos la Letter of Intent que enviamos a Mozilla.

Documentación

La bitácora del proyecto se puede ver en github.

El plan de trabajo se puede consultar en este proyecto de github donde las tareas se van manejando como issues.

La información de materiales y presupuestos se encuentra en esta página.

Open Science y Ciencia comunitaria

ETER - monitor libre de calidad de aire para investigación y educación

El problema

La contaminación del aire es una amenaza invisible que afecta la salud del 80% de la población en centros urbanos como Buenos Aires1. En 2016 la OMS clasificó a Buenos Aires dentro de las ciudades que superan el límite de 10 μg/m3 para material particulado menor a 2.5 micrones2, altamente nocivo para la salud humana. Sin embargo, la información pública sobre la calidad del aire del Área Metropolitana de Buenos Aires es inexistente.

Una alternativa libre

La disponibilidad de sensores de bajo costo combinada con la ética del software y la cultura libres abre posibilidades para desarrollar dispositivos de monitoreo ambiental comunitarios. Como hacklab, nos interesa trabajar la metodología de prototipado con la comunidad, ya que nos permite formarnos entre todas e integrar distintos tipos de conocimiento en la construcción de un objeto material.

¿Qué queremos hacer?

Con este proyecto pretendemos actualizar y documentar el prototipo de monitor abierto de calidad de aire desarrollado en Mendoza por el Proyecto MACA. Este monitor quedó obsoleto porque algunos componentes fueron discontinuados. En este caso, nos interesa co-prototipar un sensor de PM10 y PM2.5 con docentes de escuelas técnicas del conurbano y generar materiales educativos libres para que se pueda reproducir la experiencia. Además, los datos generados van a ser alojados en nuestros servidores, puestos a libre disponibilidad.

Financiamiento

En principio el proyecto lo vamos a finaciar las personas interesadas.

Aplicamos para una beca de Mozilla Science por un monto de 5000usd, y tendremos una respuesta en marzo. Adjuntamos la Letter of Intent que enviamos a Mozilla acá.

Documentación

La bitácora del proyecto se puede encontrar en GitHub

El Plan de Trabajo también se puede consultar en este proyecto de GitHub donde las tareas se manejan como issues.

El Presupuesto también puede consultarse en este archivo en GitHub

Si estás interesada en participar de este proyecto, mandanos un mail a contacto@rlab.be

Open Science y Ciencia comunitaria

Taller de análisis de datos experimental

Biohacking

Biohacking

Huertechno

Monitoreo y Control Remoto de 'Cyborgs' Vegetales

Somos un proyecto de huerto tecnológico que tiene por objetivo implementar la automatización del riego, luz y ventilación necesarios para la producción vegetal. Además, con nuestro dispositivo generamos un registro para posterior análisis de datos y estudio científico. Se desea que el sistema sea lo suficientemente flexible para controlar cualquier especie de planta! Actualmente estamos trabajando con tomates cherry y en un futuro queremos elaborar prototipos de producción en hidroponía para controlar más y mejor las variables del sustrato. La posibilidad de monitorear, controlar y ajustar parámetros de automatización constantemente harán del horticultor amateur un productor profesional. El objetivo general es lograr un sistema sustentable con una máxima autonomía, rendimiento y eficacia. Un huerto conectado a través de Internet posibilita el intercambio de información y "recetas" con otros huertos, gracias a las redes de pares. Podes consultar la lista de materiales del primer prototipo y leer más sobre el funcionamiento si así lo deseas. Si este es tu primer proyecto con Arduino, te recomendamos leer la síntesis del primer taller abierto. Si hay duda/s escribinos a huertechno[at]disroot[dot]org para aclararas y ¡ayudanos a mejorar ese documento! Si no es tu primer proyecto, pasate a ver los issues :3

Intereses Sociopolíticos

La producción de gran escala es un problema de salud pública dada la creciente prevalencia de casos de cáncer en zonas rurales (¡incluyendo escuelas!). ¡Este es un proyecto de soberanía tecnológica para la soberanía alimentaria! Nuestros fines son educativos, no comerciales y todo lo que se desarrolle será liberado como software libre. Los dispositivos de hardware que utilizamos, lamentablemente no son libres. Una vez que estemos en una etapa más avanzada del desarrollo, nos ocuparemos dando talleres para generar debates en torno a las distintas problemáticas sociales que nos atraviesan y promover la filosofía del hágalo usted misma (DIY, de sus siglas en inglés). En dichos encuentros los asistentes recibirán todos los materiales, el código y los conocimientos para que al concluir sean capaces de... ¡domesticar sus propios Cyborgs Vegetales!

Live coding

logo1.png

Live coding es una técnica creativa y una práctica de performance que consiste en escribir código de manera improvisada. Este grupo trata de reunir a aquellas personas que la practican o están interesadas en hacerlo. :-)

Nuestra vía preferencial de comunicación es el canal #live-coding-argentina porque es donde es más fluido el feedback de la comunidad global de livecoding.

Tocamos el primer sábado de cada mes en Atom. También hacemos meetups cada tanto y solemos anunciarlas por Facebook en Liveconding Argentina