Пример #1
0
        /// <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);
        }
Пример #2
0
        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;
        }
Пример #3
0
 private TaskFacade(WebServerConfig pWebServerConfig, IPlugin pPlugin)
 {
     cPlugin = pPlugin;
       cDomain = DomainFacade.getInstance(pWebServerConfig, pPlugin);
 }
Пример #4
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="pConfig"></param>
 public void startProxies(WebServerConfig pConfig)
 {
     cDomain.startProxies(pConfig);
 }
Пример #5
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="pWebServerConfig"></param>
 public void onInit(WebServerConfig pWebServerConfig)
 {
     cDomain.onInit(pWebServerConfig);
 }
Пример #6
0
        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);
        }
Пример #7
0
        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...
        }
Пример #8
0
        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();
        }
Пример #9
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="pConfig"></param>
 public void startProxies(WebServerConfig pConfig)
 {
     cInfrastructure.startProxies(pConfig);
 }
Пример #10
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="pWebServerConfig"></param>
 public void onInit(WebServerConfig pWebServerConfig)
 {
     cInfrastructure.onInit(pWebServerConfig);
 }