SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
FOCA API v0.1
Creación de un plugin básico
Debemos crear un nuevo proyecto de tipo ‘Class Library’ para la generación de una DLL
compilada.
El proyecto debe estar desarrollado sobre el Framework .NET 3.5 o inferior y la plataforma
sobre la que se debe compilar es para ‘Any CPU’. Esto es accesible desde las ‘propiedades del
proyecto / Build / Platform target’.
Una vez el proyecto esté creado será necesario agregar como referencia la DLL de la API de
FOCA (PluginsAPI.dll). Esto se puede realizar desde ‘References / Add reference / Browse’.
Para poder llevar a cabo la comunicación entre el plugin y la FOCA mediante la API será
necesaria la creación de una clase publica llamada ‘Plugin’ con las propiedades ‘name’,
‘description’ y ‘exportItems’. Esta clase será instanciada cada vez que la FOCA cargue el plugin.
A continuación se ve una plantilla con esta estructura.
public class Plugin
{
private string _name = "Name";
private string _description = "Description";
private Export export = new Export();
public Plugin()
{
}
public string name
{
get
{
return _name;
}
set
{
_name = value;
}
}
public string description
{
get
{
return _description;
}
set
{
_description = value;
}
}
public Export exportItems
{
get
{
return export;
}
}
}
Una vez llegados a este punto podremos compilar la DLL y dispondremos de una librería básica
– pero sin funcionalidad - para ser cargada en FOCA a modo de plugin.
Para realizar el desarrollo de la DLL así como su depuración aconsejamos la creación de un
nuevo proyecto dentro de la solución del plugin.
Este nuevo proyecto deberá ser configurado como ‘StartUp Project’ para que sea ejecutado
como primera instancia a la hora de llevar a cabo la depuración.
Será entonces en el ‘handler’ desde donde aconsejamos realizar las llamadas e inicialización de
nuestra DLL. Éste es sin embargo únicamente un consejo para llevar a cabo el desarrollo o
depuración de la librería.
En la siguiente captura se ve el código de uno de los ‘handler’ visualizando un formulario
localizado en el código del plugin.
GUI del plugin
La API permite dos modos de interactuar con la GUI de la FOCA: Por ventanas y por paneles
embebidos.
El desarrollo de GUI por ventanas es el propio plugin el encargado de crear y mostrar los
formularios que desee para visualizar la información. Este modo es muy similar a la forma
habitual en la que se desarrolla una aplicación con Windows Forms.
A continuación se ve una captura de la FOCA junto con el plugin ‘’ utilizando una visualización
mediante este sistema.
El sistema de paneles embebidos permite al plugin a integrarse dentro de la interfaz de la
FOCA. Para ello es necesario realizar la creación de un panel e introducir dentro del mismo los
controles que se deseen exportar a la interfaz.
A continuación se ve un ejemplo de un plugin utilizando este sistema.
Para embeber en la FOCA uno de estos paneles es necesario hacer uso del objeto
‘PluginPanel’ (PluginsAPI.Elements.PluginPanel) y añadirlo a la lista de exportación.
Ejemplo
public Plugin()
{
Panel panelForm = new Panel();
PluginPanel panelPlugin = new PluginPanel(panelForm, false);
export.Add(panelPlugin);
}
Una vez añadido el panel es necesario implementar la funcionalidad para mostrar el panel.
Esto puede llevarse a cabo añadiendo un nuevo ítem en el menú desplegable de plugins
exportando el objeto ‘PluginToolStripMenuItem’.
Ejemplo
public Plugin()
{
Panel panelForm = new Panel();
PluginPanel panelPlugin = new PluginPanel(panelForm, false);
ToolStripMenuItem toolStripMenu = new ToolStripMenuItem(_name);
toolStripMenu.Image = Properties.Resources.cookie;
toolStripMenu.Click += delegate
{
panelForm.BringToFront();
panelForm.Visible = true;
};
PluginToolStripMenuItem toolStripPlugin = new
PluginToolStripMenuItem(toolStripMenu);
export.Add(toolStripPlugin);
export.Add(panelPlugin);
}
En la siguiente captura de pantalla se ve un plugin con el código mostrado anteriormente,
embebiendo un panel vacio y agregando un ‘ToolStripItem’ en el desplegable de ‘Plugins’.
Capturar eventos
Los eventos de FOCA permiten a los plugins capturar determinados mensajes que son enviados
a éstos.
Para ello es necesaria la creación de un método de tipo ‘void’ en la clase ‘Plugin’ con el nombre
del evento a capturar.
Entre los eventos disponibles se encuentran los siguientes:
Evento Argumentos Descripción
(void) OnNewDomain Object[]
{
string domain
}
Envía un dominio.
(void) OnNewURL Object[]
{
string url
}
Envía una URL.
(void) OnNewIP Object[]
{
string ip
}
Envía una dirección IP.
(void) OnNewProject Object[]
{
string domain
}
Envía el dominio principal cuando un
proyecto es creado.
(void) OnNewNetrange Object[]
{
string ipFrom,
string ipTo
}
Envía el rango de inicio y fin de un
netrange.
(void) OnNewRelation Object[]
{
string ip,
string domain
}
Envía una relación de un dominio con una
IP cuando ésta es calculada.
(void) OnNewDocument (No implementado) (No implementado)
A continuación se ve una captura de pantalla donde se ve la plantilla capturando los dominios
agregados mediante el evento ‘OnNewDomain’.
Importar elementos desde el plugin a la FOCA
Para que los plugins puedan interactuar con la GUI de FOCA, la API dispone al desarrollador del
método Import.ImportEventCaller((ImportObject) iObject).
El constructor del objeto de tipo ‘ImportObject’ recibe dos parámetros de tipo
‘Import.Operation’ y ‘object’ con la siguiente definición:
ImportObject(Import.Operation operation, object o);
Entre las operaciones disponibles en la API se encuentran las siguientes, con los
correspondientes objetos a importar para cada tipo de operación.
Operación Objecto(s) a importar
AssociationDomainIP ImportElements.AssociationDomainIP
{
string domain,
String ip
}
AddDomain string domain
AddSQLi ImportElements.AddSQLI
{
string url,
String parameter
}
AddBackup ImportElements.AddBackUp
{
string url
}
AddDirectoryListing
(No implementado)
ImportElements.AddDirectoryListing
{
string url
}
AddDsStore
(No implementado)
ImportElements.AddDsStore
{
string url
}
AddGHDB ImportElements.AddGHDB
{
string url
}
AddInsecureMethod
(No implementado)
ImportElements.AddInsecureMethod
{
string url,
string method
}
AddLeak
(No implementado)
ImportElements.AddLeak
{
string url,
string description
}
AddListing
(No implementado)
ImportElements.AddListing
{
string url
}
AddMultiplesChoice
(No implementado)
ImportElements.AddMultiplesChoice
{
string url
}
AddProxy
(No implementado)
ImportElements.AddProxy
{
string url,
int port
}
AddSvn
(No implementado)
ImportElements.AddSvn
{
string url
}
AddUser
(No implementado)
ImportElements.AddUser
{
string domain,
string user
}
AddZoneTransfer
(No implementado)
ImportElements.AddZoneTransfer
{
string ip
}
AssignRol ImportElements.AsignRol
{
string ip,
string rol
}
AddIP String ip
AddURL String url
AddContextMenu ContextualMenu.Global
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowDomainsDomainItemMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowDomainsDomainMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowDomainsDomainRelatedDomainsItemMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowDomainsDomainRelatedDomainsMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowDomainsMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowMetadataMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowNetworkClientsItemMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowNetworkClientsMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowNetworkIpRangeMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowNetworkMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowNetworkServersItemMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowNetworkServersMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowNetworkUnlocatedItemMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowNetworkUnlocatedMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowProjectMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowRolesMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowRolesRolMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowRolesRolMenuItem
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowVulnerabilitiesMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowVulnerabilitiesVulnerabilitieMenu
{
ToolStripMenuItem menu
}
Elements.ContextualMenu.ShowVulnerabilitiesVulnerabilitieMenuItem
{
ToolStripMenuItem menu,
Elements.ContextualMenu.keyType menu
}
Ejemplo: Asigna al dominio ‘www.informática64.com’ una vulnerabilidad de tipo SQL Injection
en la URL http://www.informatica64.com/focaplugin.aspx sobre el parámetro ‘id’.
ImportObject iObject = new ImportObject(
Import.Operation.AddSQLi,
new ImportElements.AddSQLI(
"http://www.informatica64.com/focaplugin.aspx",
"id")
);
Import.ImportEventCaller(iObject);

Más contenido relacionado

La actualidad más candente

mostraremos como instalar un servidor personal
mostraremos como instalar un servidor personal mostraremos como instalar un servidor personal
mostraremos como instalar un servidor personal Andy Hernandez
 
Corcuera pablo gestorincidenciasocs
Corcuera pablo gestorincidenciasocsCorcuera pablo gestorincidenciasocs
Corcuera pablo gestorincidenciasocspablo2017
 
instalacion e intregracion de OcsInventory-NG y GLPI
instalacion e intregracion de OcsInventory-NG y GLPIinstalacion e intregracion de OcsInventory-NG y GLPI
instalacion e intregracion de OcsInventory-NG y GLPImiltonvf
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Ángel Acaymo M. G.
 
Linux ud13 - iniciar sesion en linux de forma remota
Linux   ud13 - iniciar sesion en linux de forma remotaLinux   ud13 - iniciar sesion en linux de forma remota
Linux ud13 - iniciar sesion en linux de forma remotaJavier Muñoz
 
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...
Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...Edgar A. Cruz Huaman
 
Creación de extensiones nativas
Creación de extensiones nativasCreación de extensiones nativas
Creación de extensiones nativasAngel Vazquez
 
Montar un servidor web win7
Montar un servidor web win7Montar un servidor web win7
Montar un servidor web win7New York
 
Linux ud16 - usuarios de dominio de samba
Linux   ud16 - usuarios de dominio de sambaLinux   ud16 - usuarios de dominio de samba
Linux ud16 - usuarios de dominio de sambaJavier Muñoz
 
Actividad ssh final - Ubuntu
Actividad ssh final - UbuntuActividad ssh final - Ubuntu
Actividad ssh final - UbuntuJose Diaz Silva
 
Linux ud17 - recursos compartidos con samba en un controlador dominio
Linux   ud17 - recursos compartidos con samba en un controlador dominioLinux   ud17 - recursos compartidos con samba en un controlador dominio
Linux ud17 - recursos compartidos con samba en un controlador dominioJavier Muñoz
 
Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365
Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365
Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365RaGaZoMe
 
ocs inventory gpli gestor incidencias castellano
ocs inventory gpli gestor incidencias castellanoocs inventory gpli gestor incidencias castellano
ocs inventory gpli gestor incidencias castellanoIvan Urgell
 
Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012Gustavo Inocente Chacón
 
Tutorial de instalación de apache, php, mysql y phpmyadmin
Tutorial de instalación de apache, php, mysql y phpmyadminTutorial de instalación de apache, php, mysql y phpmyadmin
Tutorial de instalación de apache, php, mysql y phpmyadminIgnacio Aular Reyes
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Implementación y Administración Hyper-V 2008 R2
Implementación y Administración Hyper-V 2008 R2Implementación y Administración Hyper-V 2008 R2
Implementación y Administración Hyper-V 2008 R2RaGaZoMe
 

La actualidad más candente (20)

mostraremos como instalar un servidor personal
mostraremos como instalar un servidor personal mostraremos como instalar un servidor personal
mostraremos como instalar un servidor personal
 
Corcuera pablo gestorincidenciasocs
Corcuera pablo gestorincidenciasocsCorcuera pablo gestorincidenciasocs
Corcuera pablo gestorincidenciasocs
 
instalacion e intregracion de OcsInventory-NG y GLPI
instalacion e intregracion de OcsInventory-NG y GLPIinstalacion e intregracion de OcsInventory-NG y GLPI
instalacion e intregracion de OcsInventory-NG y GLPI
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.
 
Linux ud13 - iniciar sesion en linux de forma remota
Linux   ud13 - iniciar sesion en linux de forma remotaLinux   ud13 - iniciar sesion en linux de forma remota
Linux ud13 - iniciar sesion en linux de forma remota
 
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...
Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...
 
Creación de extensiones nativas
Creación de extensiones nativasCreación de extensiones nativas
Creación de extensiones nativas
 
Montar un servidor web win7
Montar un servidor web win7Montar un servidor web win7
Montar un servidor web win7
 
Linux ud16 - usuarios de dominio de samba
Linux   ud16 - usuarios de dominio de sambaLinux   ud16 - usuarios de dominio de samba
Linux ud16 - usuarios de dominio de samba
 
Actividad ssh final - Ubuntu
Actividad ssh final - UbuntuActividad ssh final - Ubuntu
Actividad ssh final - Ubuntu
 
Tutorial de electiva
Tutorial de electivaTutorial de electiva
Tutorial de electiva
 
Practicas del 1 al 4
Practicas del 1 al 4Practicas del 1 al 4
Practicas del 1 al 4
 
Linux ud17 - recursos compartidos con samba en un controlador dominio
Linux   ud17 - recursos compartidos con samba en un controlador dominioLinux   ud17 - recursos compartidos con samba en un controlador dominio
Linux ud17 - recursos compartidos con samba en un controlador dominio
 
Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365
Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365
Modificar Extensiones Permitidas y Bloqueadas Exchange Online (OWA) Office 365
 
ocs inventory gpli gestor incidencias castellano
ocs inventory gpli gestor incidencias castellanoocs inventory gpli gestor incidencias castellano
ocs inventory gpli gestor incidencias castellano
 
Conexión entre php y sql server
Conexión entre php y sql serverConexión entre php y sql server
Conexión entre php y sql server
 
Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012
 
Tutorial de instalación de apache, php, mysql y phpmyadmin
Tutorial de instalación de apache, php, mysql y phpmyadminTutorial de instalación de apache, php, mysql y phpmyadmin
Tutorial de instalación de apache, php, mysql y phpmyadmin
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Implementación y Administración Hyper-V 2008 R2
Implementación y Administración Hyper-V 2008 R2Implementación y Administración Hyper-V 2008 R2
Implementación y Administración Hyper-V 2008 R2
 

Destacado

No me indexes que me cacheo
No me indexes que me cacheoNo me indexes que me cacheo
No me indexes que me cacheoChema Alonso
 
Guía de uso de Latch en la UNIR
Guía de uso de Latch en la UNIRGuía de uso de Latch en la UNIR
Guía de uso de Latch en la UNIRChema Alonso
 
LDAP Injection Techniques
LDAP Injection TechniquesLDAP Injection Techniques
LDAP Injection TechniquesChema Alonso
 
Modelado de amenazas en el contexto de la indexación de páginas y propuesta d...
Modelado de amenazas en el contexto de la indexación de páginas y propuesta d...Modelado de amenazas en el contexto de la indexación de páginas y propuesta d...
Modelado de amenazas en el contexto de la indexación de páginas y propuesta d...Chema Alonso
 
El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?Chema Alonso
 
Curso Online de Especialización en Seguridad Informática para la Ciberdefensa
Curso Online de Especialización en Seguridad Informática para la CiberdefensaCurso Online de Especialización en Seguridad Informática para la Ciberdefensa
Curso Online de Especialización en Seguridad Informática para la CiberdefensaChema Alonso
 
Auditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase IIAuditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase IIChema Alonso
 
WebBrowsing Fingerprinting y Privacidad en entornos de Big Data
WebBrowsing Fingerprinting y Privacidad en entornos de Big DataWebBrowsing Fingerprinting y Privacidad en entornos de Big Data
WebBrowsing Fingerprinting y Privacidad en entornos de Big DataChema Alonso
 
XSS Google Persistentes
XSS Google PersistentesXSS Google Persistentes
XSS Google PersistentesChema Alonso
 
Latch Security Scenarios
Latch Security ScenariosLatch Security Scenarios
Latch Security ScenariosChema Alonso
 
El juego es el mismo
El juego es el mismoEl juego es el mismo
El juego es el mismoChema Alonso
 
X Fórum AUSAPE 2014: Un Decálogo de Seguridad Máligna
X Fórum AUSAPE 2014: Un Decálogo de Seguridad MálignaX Fórum AUSAPE 2014: Un Decálogo de Seguridad Máligna
X Fórum AUSAPE 2014: Un Decálogo de Seguridad MálignaChema Alonso
 
Digital latches for your digital Life
Digital latches for your digital LifeDigital latches for your digital Life
Digital latches for your digital LifeChema Alonso
 
Ataques XSS Google Persistentes
Ataques XSS Google PersistentesAtaques XSS Google Persistentes
Ataques XSS Google PersistentesChema Alonso
 
It's a Kind of Magic
It's a Kind of MagicIt's a Kind of Magic
It's a Kind of MagicChema Alonso
 
Hacking con Python
Hacking con PythonHacking con Python
Hacking con PythonChema Alonso
 
RootedCON 2014: Playing and Hacking with Digital Latches
RootedCON 2014: Playing and Hacking with Digital LatchesRootedCON 2014: Playing and Hacking with Digital Latches
RootedCON 2014: Playing and Hacking with Digital LatchesChema Alonso
 
Ingenieros y hackers
Ingenieros y hackersIngenieros y hackers
Ingenieros y hackersChema Alonso
 
Pentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWordPentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWordChema Alonso
 
ShmooCON 2009 : Re-playing with (Blind) SQL Injection
ShmooCON 2009 : Re-playing with (Blind) SQL InjectionShmooCON 2009 : Re-playing with (Blind) SQL Injection
ShmooCON 2009 : Re-playing with (Blind) SQL InjectionChema Alonso
 

Destacado (20)

No me indexes que me cacheo
No me indexes que me cacheoNo me indexes que me cacheo
No me indexes que me cacheo
 
Guía de uso de Latch en la UNIR
Guía de uso de Latch en la UNIRGuía de uso de Latch en la UNIR
Guía de uso de Latch en la UNIR
 
LDAP Injection Techniques
LDAP Injection TechniquesLDAP Injection Techniques
LDAP Injection Techniques
 
Modelado de amenazas en el contexto de la indexación de páginas y propuesta d...
Modelado de amenazas en el contexto de la indexación de páginas y propuesta d...Modelado de amenazas en el contexto de la indexación de páginas y propuesta d...
Modelado de amenazas en el contexto de la indexación de páginas y propuesta d...
 
El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?
 
Curso Online de Especialización en Seguridad Informática para la Ciberdefensa
Curso Online de Especialización en Seguridad Informática para la CiberdefensaCurso Online de Especialización en Seguridad Informática para la Ciberdefensa
Curso Online de Especialización en Seguridad Informática para la Ciberdefensa
 
Auditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase IIAuditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase II
 
WebBrowsing Fingerprinting y Privacidad en entornos de Big Data
WebBrowsing Fingerprinting y Privacidad en entornos de Big DataWebBrowsing Fingerprinting y Privacidad en entornos de Big Data
WebBrowsing Fingerprinting y Privacidad en entornos de Big Data
 
XSS Google Persistentes
XSS Google PersistentesXSS Google Persistentes
XSS Google Persistentes
 
Latch Security Scenarios
Latch Security ScenariosLatch Security Scenarios
Latch Security Scenarios
 
El juego es el mismo
El juego es el mismoEl juego es el mismo
El juego es el mismo
 
X Fórum AUSAPE 2014: Un Decálogo de Seguridad Máligna
X Fórum AUSAPE 2014: Un Decálogo de Seguridad MálignaX Fórum AUSAPE 2014: Un Decálogo de Seguridad Máligna
X Fórum AUSAPE 2014: Un Decálogo de Seguridad Máligna
 
Digital latches for your digital Life
Digital latches for your digital LifeDigital latches for your digital Life
Digital latches for your digital Life
 
Ataques XSS Google Persistentes
Ataques XSS Google PersistentesAtaques XSS Google Persistentes
Ataques XSS Google Persistentes
 
It's a Kind of Magic
It's a Kind of MagicIt's a Kind of Magic
It's a Kind of Magic
 
Hacking con Python
Hacking con PythonHacking con Python
Hacking con Python
 
RootedCON 2014: Playing and Hacking with Digital Latches
RootedCON 2014: Playing and Hacking with Digital LatchesRootedCON 2014: Playing and Hacking with Digital Latches
RootedCON 2014: Playing and Hacking with Digital Latches
 
Ingenieros y hackers
Ingenieros y hackersIngenieros y hackers
Ingenieros y hackers
 
Pentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWordPentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWord
 
ShmooCON 2009 : Re-playing with (Blind) SQL Injection
ShmooCON 2009 : Re-playing with (Blind) SQL InjectionShmooCON 2009 : Re-playing with (Blind) SQL Injection
ShmooCON 2009 : Re-playing with (Blind) SQL Injection
 

Similar a Foca API v0.1

UDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloUDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloAnder Martinez
 
Interfaces de usuario con PyGTK
Interfaces de usuario con PyGTKInterfaces de usuario con PyGTK
Interfaces de usuario con PyGTKFco Javier Lucena
 
INFOSAN VISUAL BASIC
INFOSAN VISUAL BASICINFOSAN VISUAL BASIC
INFOSAN VISUAL BASICFRANCIACOCO
 
Examen programación
Examen programaciónExamen programación
Examen programaciónOdalisCuichan
 
Manual de android parte 1
Manual de android parte 1Manual de android parte 1
Manual de android parte 1ftriana5000
 
CONEXION A LA BASE DE DATOS SQLITE A TRAVES DE UNA APLICACION MOVIL ANDRO...
CONEXION A  LA BASE DE DATOS  SQLITE A TRAVES DE UNA APLICACION  MOVIL  ANDRO...CONEXION A  LA BASE DE DATOS  SQLITE A TRAVES DE UNA APLICACION  MOVIL  ANDRO...
CONEXION A LA BASE DE DATOS SQLITE A TRAVES DE UNA APLICACION MOVIL ANDRO...Ivan Petrlik
 
Arduino PLC: Manual Guía de Soapbox snap
Arduino PLC: Manual Guía de Soapbox snapArduino PLC: Manual Guía de Soapbox snap
Arduino PLC: Manual Guía de Soapbox snapSANTIAGO PABLO ALBERTO
 
Applets
AppletsApplets
Appletsjent46
 
Programación en Java: Applets
Programación en Java: AppletsProgramación en Java: Applets
Programación en Java: AppletsRonny Parra
 
Herramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePointHerramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePointgoreorti
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)javier_ot99
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxLuis775803
 
Sesión5 applets
Sesión5 appletsSesión5 applets
Sesión5 appletsUniversidad
 

Similar a Foca API v0.1 (20)

UDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloUDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrollo
 
Interfaces de usuario con PyGTK
Interfaces de usuario con PyGTKInterfaces de usuario con PyGTK
Interfaces de usuario con PyGTK
 
INFOSAN VISUAL BASIC
INFOSAN VISUAL BASICINFOSAN VISUAL BASIC
INFOSAN VISUAL BASIC
 
Vb
VbVb
Vb
 
Interfaces graficas(1)
Interfaces graficas(1)Interfaces graficas(1)
Interfaces graficas(1)
 
Examen programación
Examen programaciónExamen programación
Examen programación
 
Manual de android parte 1
Manual de android parte 1Manual de android parte 1
Manual de android parte 1
 
visual basic
visual basicvisual basic
visual basic
 
CONEXION A LA BASE DE DATOS SQLITE A TRAVES DE UNA APLICACION MOVIL ANDRO...
CONEXION A  LA BASE DE DATOS  SQLITE A TRAVES DE UNA APLICACION  MOVIL  ANDRO...CONEXION A  LA BASE DE DATOS  SQLITE A TRAVES DE UNA APLICACION  MOVIL  ANDRO...
CONEXION A LA BASE DE DATOS SQLITE A TRAVES DE UNA APLICACION MOVIL ANDRO...
 
Arduino PLC: Manual Guía de Soapbox snap
Arduino PLC: Manual Guía de Soapbox snapArduino PLC: Manual Guía de Soapbox snap
Arduino PLC: Manual Guía de Soapbox snap
 
Tutorial net beans
Tutorial net beansTutorial net beans
Tutorial net beans
 
Applets
AppletsApplets
Applets
 
Programación en Java: Applets
Programación en Java: AppletsProgramación en Java: Applets
Programación en Java: Applets
 
Applets
AppletsApplets
Applets
 
Herramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePointHerramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePoint
 
Clase
ClaseClase
Clase
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)
 
Visual basic
Visual basicVisual basic
Visual basic
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
 
Sesión5 applets
Sesión5 appletsSesión5 applets
Sesión5 applets
 

Más de Chema Alonso

CyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging FruitCyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging FruitChema Alonso
 
Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0Chema Alonso
 
Configurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoConfigurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoChema Alonso
 
Cazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big DataCazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big DataChema Alonso
 
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...Chema Alonso
 
CritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajarCritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajarChema Alonso
 
Dorking & Pentesting with Tacyt
Dorking & Pentesting with TacytDorking & Pentesting with Tacyt
Dorking & Pentesting with TacytChema Alonso
 
Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7Chema Alonso
 
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Chema Alonso
 
Tu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu WindowsTu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu WindowsChema Alonso
 
Codemotion ES 2014: Love Always Takes Care & Humility
Codemotion ES 2014: Love Always Takes Care & HumilityCodemotion ES 2014: Love Always Takes Care & Humility
Codemotion ES 2014: Love Always Takes Care & HumilityChema Alonso
 
Analizando la efectividad de ataques de correlación pasivos en la red de ano...
Analizando la efectividad de ataques de correlación pasivos en la red de ano...Analizando la efectividad de ataques de correlación pasivos en la red de ano...
Analizando la efectividad de ataques de correlación pasivos en la red de ano...Chema Alonso
 
X Forum AUSAPE 2014
X Forum AUSAPE 2014X Forum AUSAPE 2014
X Forum AUSAPE 2014Chema Alonso
 
Código para Latch físico: Touch_calibrate.py
Código para Latch físico: Touch_calibrate.pyCódigo para Latch físico: Touch_calibrate.py
Código para Latch físico: Touch_calibrate.pyChema Alonso
 

Más de Chema Alonso (15)

CyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging FruitCyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging Fruit
 
Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0
 
Configurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoConfigurar y utilizar Latch en Magento
Configurar y utilizar Latch en Magento
 
Cazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big DataCazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big Data
 
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
 
CritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajarCritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajar
 
Dorking & Pentesting with Tacyt
Dorking & Pentesting with TacytDorking & Pentesting with Tacyt
Dorking & Pentesting with Tacyt
 
Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7
 
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
 
Shuabang Botnet
Shuabang BotnetShuabang Botnet
Shuabang Botnet
 
Tu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu WindowsTu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu Windows
 
Codemotion ES 2014: Love Always Takes Care & Humility
Codemotion ES 2014: Love Always Takes Care & HumilityCodemotion ES 2014: Love Always Takes Care & Humility
Codemotion ES 2014: Love Always Takes Care & Humility
 
Analizando la efectividad de ataques de correlación pasivos en la red de ano...
Analizando la efectividad de ataques de correlación pasivos en la red de ano...Analizando la efectividad de ataques de correlación pasivos en la red de ano...
Analizando la efectividad de ataques de correlación pasivos en la red de ano...
 
X Forum AUSAPE 2014
X Forum AUSAPE 2014X Forum AUSAPE 2014
X Forum AUSAPE 2014
 
Código para Latch físico: Touch_calibrate.py
Código para Latch físico: Touch_calibrate.pyCódigo para Latch físico: Touch_calibrate.py
Código para Latch físico: Touch_calibrate.py
 

Último

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 

Último (20)

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 

Foca API v0.1

  • 1. FOCA API v0.1 Creación de un plugin básico Debemos crear un nuevo proyecto de tipo ‘Class Library’ para la generación de una DLL compilada. El proyecto debe estar desarrollado sobre el Framework .NET 3.5 o inferior y la plataforma sobre la que se debe compilar es para ‘Any CPU’. Esto es accesible desde las ‘propiedades del proyecto / Build / Platform target’. Una vez el proyecto esté creado será necesario agregar como referencia la DLL de la API de FOCA (PluginsAPI.dll). Esto se puede realizar desde ‘References / Add reference / Browse’.
  • 2. Para poder llevar a cabo la comunicación entre el plugin y la FOCA mediante la API será necesaria la creación de una clase publica llamada ‘Plugin’ con las propiedades ‘name’, ‘description’ y ‘exportItems’. Esta clase será instanciada cada vez que la FOCA cargue el plugin. A continuación se ve una plantilla con esta estructura. public class Plugin { private string _name = "Name"; private string _description = "Description"; private Export export = new Export(); public Plugin() { } public string name { get { return _name; } set { _name = value; } } public string description { get { return _description; } set { _description = value; } } public Export exportItems { get { return export; } } }
  • 3. Una vez llegados a este punto podremos compilar la DLL y dispondremos de una librería básica – pero sin funcionalidad - para ser cargada en FOCA a modo de plugin. Para realizar el desarrollo de la DLL así como su depuración aconsejamos la creación de un nuevo proyecto dentro de la solución del plugin. Este nuevo proyecto deberá ser configurado como ‘StartUp Project’ para que sea ejecutado como primera instancia a la hora de llevar a cabo la depuración.
  • 4. Será entonces en el ‘handler’ desde donde aconsejamos realizar las llamadas e inicialización de nuestra DLL. Éste es sin embargo únicamente un consejo para llevar a cabo el desarrollo o depuración de la librería. En la siguiente captura se ve el código de uno de los ‘handler’ visualizando un formulario localizado en el código del plugin. GUI del plugin La API permite dos modos de interactuar con la GUI de la FOCA: Por ventanas y por paneles embebidos. El desarrollo de GUI por ventanas es el propio plugin el encargado de crear y mostrar los formularios que desee para visualizar la información. Este modo es muy similar a la forma habitual en la que se desarrolla una aplicación con Windows Forms. A continuación se ve una captura de la FOCA junto con el plugin ‘’ utilizando una visualización mediante este sistema.
  • 5. El sistema de paneles embebidos permite al plugin a integrarse dentro de la interfaz de la FOCA. Para ello es necesario realizar la creación de un panel e introducir dentro del mismo los controles que se deseen exportar a la interfaz. A continuación se ve un ejemplo de un plugin utilizando este sistema. Para embeber en la FOCA uno de estos paneles es necesario hacer uso del objeto ‘PluginPanel’ (PluginsAPI.Elements.PluginPanel) y añadirlo a la lista de exportación. Ejemplo
  • 6. public Plugin() { Panel panelForm = new Panel(); PluginPanel panelPlugin = new PluginPanel(panelForm, false); export.Add(panelPlugin); } Una vez añadido el panel es necesario implementar la funcionalidad para mostrar el panel. Esto puede llevarse a cabo añadiendo un nuevo ítem en el menú desplegable de plugins exportando el objeto ‘PluginToolStripMenuItem’. Ejemplo public Plugin() { Panel panelForm = new Panel(); PluginPanel panelPlugin = new PluginPanel(panelForm, false); ToolStripMenuItem toolStripMenu = new ToolStripMenuItem(_name); toolStripMenu.Image = Properties.Resources.cookie; toolStripMenu.Click += delegate { panelForm.BringToFront(); panelForm.Visible = true; }; PluginToolStripMenuItem toolStripPlugin = new PluginToolStripMenuItem(toolStripMenu); export.Add(toolStripPlugin); export.Add(panelPlugin); } En la siguiente captura de pantalla se ve un plugin con el código mostrado anteriormente, embebiendo un panel vacio y agregando un ‘ToolStripItem’ en el desplegable de ‘Plugins’. Capturar eventos
  • 7. Los eventos de FOCA permiten a los plugins capturar determinados mensajes que son enviados a éstos. Para ello es necesaria la creación de un método de tipo ‘void’ en la clase ‘Plugin’ con el nombre del evento a capturar. Entre los eventos disponibles se encuentran los siguientes: Evento Argumentos Descripción (void) OnNewDomain Object[] { string domain } Envía un dominio. (void) OnNewURL Object[] { string url } Envía una URL. (void) OnNewIP Object[] { string ip } Envía una dirección IP. (void) OnNewProject Object[] { string domain } Envía el dominio principal cuando un proyecto es creado. (void) OnNewNetrange Object[] { string ipFrom, string ipTo } Envía el rango de inicio y fin de un netrange. (void) OnNewRelation Object[] { string ip, string domain } Envía una relación de un dominio con una IP cuando ésta es calculada. (void) OnNewDocument (No implementado) (No implementado) A continuación se ve una captura de pantalla donde se ve la plantilla capturando los dominios agregados mediante el evento ‘OnNewDomain’.
  • 8. Importar elementos desde el plugin a la FOCA Para que los plugins puedan interactuar con la GUI de FOCA, la API dispone al desarrollador del método Import.ImportEventCaller((ImportObject) iObject). El constructor del objeto de tipo ‘ImportObject’ recibe dos parámetros de tipo ‘Import.Operation’ y ‘object’ con la siguiente definición: ImportObject(Import.Operation operation, object o); Entre las operaciones disponibles en la API se encuentran las siguientes, con los correspondientes objetos a importar para cada tipo de operación. Operación Objecto(s) a importar AssociationDomainIP ImportElements.AssociationDomainIP { string domain, String ip } AddDomain string domain AddSQLi ImportElements.AddSQLI { string url, String parameter } AddBackup ImportElements.AddBackUp { string url } AddDirectoryListing (No implementado) ImportElements.AddDirectoryListing { string url } AddDsStore (No implementado) ImportElements.AddDsStore {
  • 9. string url } AddGHDB ImportElements.AddGHDB { string url } AddInsecureMethod (No implementado) ImportElements.AddInsecureMethod { string url, string method } AddLeak (No implementado) ImportElements.AddLeak { string url, string description } AddListing (No implementado) ImportElements.AddListing { string url } AddMultiplesChoice (No implementado) ImportElements.AddMultiplesChoice { string url } AddProxy (No implementado) ImportElements.AddProxy { string url, int port } AddSvn (No implementado) ImportElements.AddSvn { string url } AddUser (No implementado) ImportElements.AddUser { string domain, string user } AddZoneTransfer (No implementado) ImportElements.AddZoneTransfer { string ip } AssignRol ImportElements.AsignRol { string ip, string rol } AddIP String ip AddURL String url AddContextMenu ContextualMenu.Global { ToolStripMenuItem menu } Elements.ContextualMenu.ShowDomainsDomainItemMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowDomainsDomainMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowDomainsDomainRelatedDomainsItemMenu { ToolStripMenuItem menu
  • 10. } Elements.ContextualMenu.ShowDomainsDomainRelatedDomainsMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowDomainsMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowMetadataMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowNetworkClientsItemMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowNetworkClientsMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowNetworkIpRangeMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowNetworkMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowNetworkServersItemMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowNetworkServersMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowNetworkUnlocatedItemMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowNetworkUnlocatedMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowProjectMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowRolesMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowRolesRolMenu { ToolStripMenuItem menu }
  • 11. Elements.ContextualMenu.ShowRolesRolMenuItem { ToolStripMenuItem menu } Elements.ContextualMenu.ShowVulnerabilitiesMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowVulnerabilitiesVulnerabilitieMenu { ToolStripMenuItem menu } Elements.ContextualMenu.ShowVulnerabilitiesVulnerabilitieMenuItem { ToolStripMenuItem menu, Elements.ContextualMenu.keyType menu } Ejemplo: Asigna al dominio ‘www.informática64.com’ una vulnerabilidad de tipo SQL Injection en la URL http://www.informatica64.com/focaplugin.aspx sobre el parámetro ‘id’. ImportObject iObject = new ImportObject( Import.Operation.AddSQLi, new ImportElements.AddSQLI( "http://www.informatica64.com/focaplugin.aspx", "id") ); Import.ImportEventCaller(iObject);