/// <summary> /// Create single instance /// </summary> /// <param name="pWebServerConfig"></param> /// <returns></returns> public static TaskFacade getInstance(WebServerConfig pWebServerConfig, IPlugin pPlugin) { if (cInstance == null) cInstance = new TaskFacade(pWebServerConfig, pPlugin); return (cInstance); }
private DomainFacade(WebServerConfig pWebServerConfig, IPlugin pPlugin) { cPlugin = pPlugin; cInfrastructure = InfrastructureFacade.getInstance(pWebServerConfig, pPlugin); cObserverList = new List<IObserver>(); cRecordList = new List<Account>(); cRedirectURL = String.Empty; cRemoteHostName = String.Empty; }
private TaskFacade(WebServerConfig pWebServerConfig, IPlugin pPlugin) { cPlugin = pPlugin; cDomain = DomainFacade.getInstance(pWebServerConfig, pPlugin); }
/// <summary> /// /// </summary> /// <param name="pConfig"></param> public void startProxies(WebServerConfig pConfig) { cDomain.startProxies(pConfig); }
/// <summary> /// /// </summary> /// <param name="pWebServerConfig"></param> public void onInit(WebServerConfig pWebServerConfig) { cDomain.onInit(pWebServerConfig); }
public PluginHTTPProxyUC(PluginParameters pPluginParams) { InitializeComponent(); #region DATAGRID HEADER DGV_Accounts.AutoGenerateColumns = false; DataGridViewTextBoxColumn cMACCol = new DataGridViewTextBoxColumn(); cMACCol.DataPropertyName = "SrcMAC"; cMACCol.Name = "SrcMAC"; cMACCol.HeaderText = "MAC address"; cMACCol.ReadOnly = true; cMACCol.Width = 120; //cMACCol.Visible = false; DGV_Accounts.Columns.Add(cMACCol); DataGridViewTextBoxColumn cSrcIPCol = new DataGridViewTextBoxColumn(); cSrcIPCol.DataPropertyName = "SrcIP"; cSrcIPCol.Name = "SrcIP"; cSrcIPCol.HeaderText = "Source IP"; cSrcIPCol.Visible = false; cSrcIPCol.ReadOnly = true; cSrcIPCol.Width = 120; DGV_Accounts.Columns.Add(cSrcIPCol); DataGridViewTextBoxColumn cDstIPCol = new DataGridViewTextBoxColumn(); cDstIPCol.DataPropertyName = "DstIP"; cDstIPCol.Name = "DstIP"; cDstIPCol.HeaderText = "Destination"; cDstIPCol.ReadOnly = true; cDstIPCol.Width = 200; DGV_Accounts.Columns.Add(cDstIPCol); DataGridViewTextBoxColumn cDestPortCol = new DataGridViewTextBoxColumn(); cDestPortCol.DataPropertyName = "DstPort"; cDestPortCol.Name = "DstPort"; cDestPortCol.HeaderText = "Service"; cDestPortCol.ReadOnly = true; cDestPortCol.Width = 60; DGV_Accounts.Columns.Add(cDestPortCol); DataGridViewTextBoxColumn cUserCol = new DataGridViewTextBoxColumn(); cUserCol.DataPropertyName = "Username"; cUserCol.Name = "Username"; cUserCol.HeaderText = "Username"; cUserCol.ReadOnly = true; cUserCol.Width = 150; DGV_Accounts.Columns.Add(cUserCol); DataGridViewTextBoxColumn cmPassCol = new DataGridViewTextBoxColumn(); cmPassCol.DataPropertyName = "Password"; cmPassCol.Name = "Password"; cmPassCol.HeaderText = "Password"; cmPassCol.ReadOnly = true; // cmPassCol.Width = 120; cmPassCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; DGV_Accounts.Columns.Add(cmPassCol); cAccounts = new BindingList<Account>(); DGV_Accounts.DataSource = cAccounts; #endregion /* * Plugin configuration */ T_GUIUpdate.Interval = 1000; PluginParameters = pPluginParams; String lBaseDir = String.Format(@"{0}\", (pPluginParams != null) ? pPluginParams.PluginDirectoryFullPath : Directory.GetCurrentDirectory()); String lSessionDir = (pPluginParams != null) ? pPluginParams.SessionDirectoryFullPath : String.Format("{0}sessions", lBaseDir); cPeersDataSource = new List<PeerSystems>(); cAccountPatterns = new List<ManageAuthentications.AccountPattern>(); Config = new PluginProperties() { BaseDir = lBaseDir, SessionDir = lSessionDir, PluginName = "HTTP(S) proxy", PluginDescription = "HTTP and HTTPS reverse proxy server to sniff on (encrypted) HTTP connections.", PluginVersion = "0.7", Ports = "TCP:80;TCP:443;", IsActive = true }; cDataBatch = new List<String>(); // Make it double buffered. typeof(DataGridView).InvokeMember("DoubleBuffered", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty, null, DGV_Accounts, new object[] { true }); T_GUIUpdate.Start(); WebServerConfig lWebServerConfig = new WebServerConfig(); lWebServerConfig.BasisDirectory = Config.BaseDir; cTask = TaskFacade.getInstance(lWebServerConfig, this); DomainFacade.getInstance(lWebServerConfig, this).addObserver(this); }
public void onStartAttack() { if (Config.IsActive) { if (InvokeRequired) { BeginInvoke(new onStartAttackDelegate(onStartAttack), new object[] { }); return; } // if (InvokeRequired) PluginParameters.HostApplication.PluginSetStatus(this, "green"); setGUIInactive(); if ((!CB_RedirectTo.Checked && !String.IsNullOrEmpty(TB_RemoteHost.Text)) || (CB_RedirectTo.Checked && !String.IsNullOrEmpty(TB_RedirectURL.Text))) { WebServerConfig pConfig = new WebServerConfig { BasisDirectory = Config.BaseDir, isDebuggingOn = PluginParameters.HostApplication.IsDebuggingOn(), isRedirect = CB_RedirectTo.Checked, RedirectToURL = TB_RedirectURL.Text, RemoteHostName = TB_RemoteHost.Text, onWebServerExit = onWebServerExited }; try { cTask.startProxies(pConfig); } catch (Exception lEx) { String lLogMsg = String.Format("{0}: {1}", Config.PluginName, lEx.Message); setGUIActive(); PluginParameters.HostApplication.LogMessage(lLogMsg); PluginParameters.HostApplication.PluginSetStatus(this, "red"); PluginParameters.HostApplication.LogMessage(String.Format("{0}: {1}", Config.PluginName, lEx.Message)); cTask.onStop(); } } else { PluginParameters.HostApplication.LogMessage(String.Format("{0}: No forwarding host/URL defined. Stopping the pluggin.", Config.PluginName)); PluginParameters.HostApplication.PluginSetStatus(this, "grey"); cTask.onStop(); } // if (lRemoteHost ... } // if (cIsActiv... }
public void onInit() { if (InvokeRequired) { BeginInvoke(new onInitDelegate(onInit), new object[] { }); return; } // if (InvokeRequired) PluginParameters.HostApplication.Register(this); setGUIActive(); PluginParameters.HostApplication.PluginSetStatus(this, "grey"); WebServerConfig lWebServerConfig = new WebServerConfig(); lWebServerConfig.BasisDirectory = Config.BaseDir; lWebServerConfig.isDebuggingOn = false; lWebServerConfig.isRedirect = false; lWebServerConfig.RedirectToURL = String.Empty; lWebServerConfig.RemoteHostName = String.Empty; lWebServerConfig.onWebServerExit = onWebServerExited; cTask.onInit(lWebServerConfig); cAccountPatterns = cTask.readAuthenticationPatterns(); }
/// <summary> /// /// </summary> /// <param name="pConfig"></param> public void startProxies(WebServerConfig pConfig) { cInfrastructure.startProxies(pConfig); }
/// <summary> /// /// </summary> /// <param name="pWebServerConfig"></param> public void onInit(WebServerConfig pWebServerConfig) { cInfrastructure.onInit(pWebServerConfig); }