Main.vb
上传用户:wangting
上传日期:2020-01-24
资源大小:2226k
文件大小:14k
源码类别:

破解

开发平台:

ASP/ASPX

  1. #Region "GPL License"
  2. 'This file is part of XSS Tunnel.
  3. '
  4. 'XSS Tunnel, XSS Tunneling tool 
  5. 'Copyright (C) 2007 Ferruh Mavituna
  6. 'This program is free software; you can redistribute it and/or
  7. 'modify it under the terms of the GNU General Public License
  8. 'as published by the Free Software Foundation; either version 2
  9. 'of the License, or (at your option) any later version.
  10. 'This program is distributed in the hope that it will be useful,
  11. 'but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. 'GNU General Public License for more details.
  14. 'You should have received a copy of the GNU General Public License
  15. 'along with this program; if not, write to the Free Software
  16. 'Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  17. #End Region
  18. Imports System.Net
  19. Imports XSSTunnelLib
  20. Public Class Main
  21.     Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  22.         Me.AlwaysOnTopToolStripMenuItem.Checked = My.Settings.AlwaysOnTop
  23.         Me.TopMost = AlwaysOnTopToolStripMenuItem.Checked
  24.         Me.MnuEnableCache.Checked = My.Settings.CacheEnabled
  25.         Me.TrackTrans.Value = My.Settings.Trans
  26.         ChangeTransParency()
  27.         FillUpInterfaces()
  28.     End Sub
  29.     ''' <summary>
  30.     ''' Fill up interfaces
  31.     ''' </summary>
  32.     ''' <remarks></remarks>
  33.     Private Sub FillUpInterfaces()
  34.         'Fill up interfaces
  35.         Dim AnyInt As Integer = CmbInterface.Items.Add("Any Interface")
  36.         For Each IP As IPAddress In Dns.GetHostAddresses(Dns.GetHostName())
  37.             CmbInterface.Items.Add(IP)
  38.         Next
  39.         CmbInterface.SelectedIndex = AnyInt
  40.     End Sub
  41.     Private Sub BtnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnStart.Click
  42.         StartXSSTunnel()
  43.     End Sub
  44.     Private ListLock As New Object
  45.     Private TextLock As New Object
  46.     Private Delegate Sub DelHandleResponse(ByVal response As ReadableResponse)
  47.     ''' <summary>
  48.     ''' Handle responses
  49.     ''' </summary>
  50.     ''' <param name="response"></param>
  51.     ''' <remarks></remarks>
  52.     Private Sub HandleResponse(ByVal response As ReadableResponse)
  53.         If InvokeRequired Then
  54.             Invoke(New DelHandleResponse(AddressOf HandleResponse), response)
  55.         Else
  56.             UpdateStats()
  57.             If response.Cached Then Exit Sub
  58.             SyncLock ListLock
  59.                 Dim ResponseItem As New ListViewItem(response.Status.ToString)
  60.                 ResponseItem.SubItems.Add(response.Path)
  61.                 'ResponseItem.SubItems(1).Text = response.Path
  62.                 LstResponses.Items.Add(ResponseItem)
  63.             End SyncLock
  64.         End If
  65.     End Sub
  66.     ''' <summary>
  67.     ''' Update Stats
  68.     ''' </summary>
  69.     ''' <remarks></remarks>
  70.     Private Sub UpdateStats()
  71.         If Proxy Is Nothing Then
  72.             LblCached.Text = "0"
  73.             LblRequests.Text = "0"
  74.             LblResponses.Text = "0"
  75.             Exit Sub
  76.         End If
  77.         LblCached.Text = Proxy.CachedRequests.ToString
  78.         LblRequests.Text = Proxy.Requests.ToString
  79.         LblResponses.Text = Proxy.Responses.ToString
  80.         If PrgMain.Value >= PrgMain.Maximum Then
  81.             PrgMain.Value = PrgMain.Minimum
  82.         End If
  83.         PrgMain.PerformStep()
  84.     End Sub
  85.     Private Delegate Sub DelHandleDebug(ByVal message As String, ByVal sender As Object)
  86.     ''' <summary>
  87.     ''' Handle Debug Messages
  88.     ''' </summary>
  89.     ''' <param name="message"></param>
  90.     ''' <param name="sender"></param>
  91.     ''' <remarks></remarks>
  92.     Private Sub HandleDebug(ByVal message As String, ByVal sender As Object)
  93.         If InvokeRequired Then
  94.             Invoke(New DelHandleDebug(AddressOf HandleDebug), message, Nothing)
  95.         Else
  96.             SyncLock TextLock
  97.                 Try
  98.                     TxtLog.AppendText(message & vbNewLine)
  99.                 Catch ex As Exception
  100.                     Debug.WriteLine("Doh, max length possible. Very rare!")
  101.                 End Try
  102.             End SyncLock
  103.         End If
  104.     End Sub
  105.     Private XSSSHell As XSSShell
  106.     Private Proxy As Proxy
  107.     ''' <summary>
  108.     ''' Start XSS Tunnel
  109.     ''' </summary>
  110.     ''' <remarks></remarks>
  111.     Private Sub StartXSSTunnel()
  112.         BtnStart.Enabled = False
  113.         BtnStop.Enabled = True
  114.         Stopped = False
  115.         XSSSHell = New XSSShell(TxtServer.Text, TxtPassword.Text)
  116.         'REFACTOR : Move these into ProxyBind structure
  117.         Dim Port As Integer
  118.         Port = CInt(NumPort.Value)
  119.         If Port < 1 OrElse Port > 65535 Then
  120.             Port = 0
  121.             HandleDebug("Supplied port is wrong, Fixed to default.", Nothing)
  122.         End If
  123.         Dim IP As IPAddress
  124.         If Not IPAddress.TryParse(CmbInterface.Text, IP) Then
  125.             HandleDebug("Supplied IP is wrong, Fixed to listen all interfaces.", Nothing)
  126.             IP = IPAddress.Any
  127.         End If
  128.         Dim OptionCarrier As New ProxyBind(Port, IP)
  129.         Dim Thr As New Threading.Thread(AddressOf WaitForVictim)
  130.         Thr.IsBackground = True
  131.         Thr.Start(OptionCarrier)
  132.         LblStatus.Text = "Proxy started."
  133.     End Sub
  134.     ''' <summary>
  135.     ''' Proxy Bind Details
  136.     ''' </summary>
  137.     ''' <remarks></remarks>
  138.     Private Structure ProxyBind
  139.         Public Port As Integer
  140.         Public IP As IPAddress
  141.         Public Sub New(ByVal port As Integer, ByVal IP As IPAddress)
  142.             Me.Port = port
  143.             Me.IP = IP
  144.         End Sub
  145.     End Structure
  146.     ''' <summary>
  147.     ''' Wait for victim
  148.     ''' </summary>
  149.     ''' <remarks></remarks>
  150.     Private Sub WaitForVictim(ByVal proxyBind As Object)
  151.         Dim BindDetails As ProxyBind = DirectCast(proxyBind, ProxyBind)
  152.         If XSSSHell Is Nothing Then
  153.             MessageBox.Show("XSS Shell is Nothing !")
  154.             Exit Sub
  155.         End If
  156.         'Check communication
  157.         Try
  158.             If Not XSSSHell.CheckServer() Then
  159.                 MessageBox.Show("XSS Shell Server is not working!" & vbNewLine & "Modify settings and try again.", "XSS Shell Server Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  160.                 StopServer()
  161.                 Exit Sub
  162.             End If
  163.         Catch ex As Exception
  164.             MessageBox.Show("XSS Shell Server Internal Error. Details :" & vbNewLine & ex.ToString, "XSS Shell Server Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  165.             StopServer()
  166.             Exit Sub
  167.         End Try
  168.         While Not XSSSHell.IsVictimAlive
  169.             If Stopped Then Exit Sub
  170.             ManageProgress(3)
  171.             Threading.Thread.Sleep(500)
  172.         End While
  173.         ManageProgress(2)
  174.         ManageProgress(XSSSHell.VictimId)
  175.         My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)
  176.         StartProxy(BindDetails.Port, BindDetails.IP)
  177.     End Sub
  178.     ''' <summary>
  179.     ''' Proxy
  180.     ''' </summary>
  181.     ''' <remarks></remarks>
  182.     Private Sub StartProxy(ByVal port As Integer, ByVal IP As IPAddress)
  183.         If XSSSHell Is Nothing Then
  184.             MessageBox.Show("XSS Shell is not active", "Proxy Startup Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  185.             Exit Sub
  186.         End If
  187.         Proxy = New Proxy(XSSSHell, port, IP)
  188.         Proxy.CacheEnabled = MnuEnableCache.Checked
  189.         AddHandler Proxy.DebugMessageSent, AddressOf HandleDebug
  190.         AddHandler Proxy.ResponseReceived, AddressOf HandleResponse
  191.         Dim Thr As New Threading.Thread(AddressOf Proxy.Listen)
  192.         Thr.Start()
  193.     End Sub
  194.     Private Stopped As Boolean
  195.     Private Delegate Sub DelStopServer()
  196.     ''' <summary>
  197.     ''' Stop Server
  198.     ''' </summary>
  199.     ''' <remarks></remarks>
  200.     Private Sub StopServer()
  201.         If InvokeRequired Then
  202.             Invoke(New DelStopServer(AddressOf StopServer))
  203.         Else
  204.             Stopped = True
  205.             BtnStart.Enabled = True
  206.             BtnStop.Enabled = False
  207.             PrgVictim.Value = PrgVictim.Minimum
  208.             If Proxy IsNot Nothing Then
  209.                 Proxy.Stop()
  210.                 RemoveHandler Proxy.DebugMessageSent, AddressOf HandleDebug
  211.                 RemoveHandler Proxy.ResponseReceived, AddressOf HandleResponse
  212.             End If
  213.             LblStatus.Text = "Proxy stopped."
  214.         End If
  215.     End Sub
  216.     Private Delegate Sub DelManageProgress(ByVal status As Integer)
  217.     Private Sub ManageProgress(ByVal status As Integer)
  218.         If InvokeRequired Then
  219.             Invoke(New DelManageProgress(AddressOf ManageProgress), status)
  220.         Else
  221.             Select Case status
  222.                 Case 0
  223.                     PrgVictim.Enabled = True
  224.                 Case 1
  225.                     PrgVictim.Enabled = False
  226.                 Case 2
  227.                     PrgVictim.Value = PrgVictim.Maximum
  228.                 Case 3
  229.                     If PrgVictim.Value >= PrgVictim.Maximum Then
  230.                         PrgVictim.Value = PrgVictim.Minimum
  231.                     End If
  232.                     PrgVictim.PerformStep()
  233.                 Case Else
  234.                     LblVictimID.Text = status.ToString
  235.             End Select
  236.         End If
  237.     End Sub
  238.     Private Sub BtnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnStop.Click
  239.         StopServer()
  240.     End Sub
  241.     Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
  242.         Quit()
  243.         Application.Exit()
  244.     End Sub
  245.     ''' <summary>
  246.     ''' Release stuff
  247.     ''' </summary>
  248.     ''' <remarks></remarks>
  249.     Private Sub Quit()
  250.         StopServer()
  251.         My.Settings.Save()
  252.     End Sub
  253.     ''' <summary>
  254.     ''' Stop Proxy and Quit
  255.     ''' </summary>
  256.     ''' <remarks></remarks>
  257.     Protected Overrides Sub Finalize()
  258.         Quit()
  259.         MyBase.Finalize()
  260.     End Sub
  261.     ''' <summary>
  262.     ''' Check XSS Shell Server
  263.     ''' </summary>
  264.     ''' <param name="sender"></param>
  265.     ''' <param name="e"></param>
  266.     ''' <remarks></remarks>
  267.     Private Sub BtnTestServer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTestServer.Click
  268.         Dim CheckShell As New XSSShell(TxtServer.Text, TxtPassword.Text)
  269.         If CheckShell.CheckServer() Then
  270.             MessageBox.Show("Successfully connected to XSS Shell", "XSS Shell Connection is Working", MessageBoxButtons.OK, MessageBoxIcon.Information)
  271.         Else
  272.             MessageBox.Show("Connection couldn't established. Please try again", "XSS Shell connection is not working", MessageBoxButtons.OK, MessageBoxIcon.Error)
  273.         End If
  274.     End Sub
  275.     Private Shadows Sub FormClosing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
  276.         Quit()
  277.     End Sub
  278.     Private Sub ClearLogToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClearLogToolStripMenuItem.Click
  279.         TxtLog.Clear()
  280.     End Sub
  281.     Private Sub AlwaysOnTopToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AlwaysOnTopToolStripMenuItem.Click
  282.         My.Settings.AlwaysOnTop = AlwaysOnTopToolStripMenuItem.Checked
  283.         Me.TopMost = AlwaysOnTopToolStripMenuItem.Checked
  284.     End Sub
  285.     Private Sub TrackTrans_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackTrans.Scroll
  286.         ChangeTransParency()
  287.     End Sub
  288.     Private Sub ChangeTransParency()
  289.         Me.Opacity = (TrackTrans.Value / 100)
  290.         My.Settings.Trans = TrackTrans.Value
  291.     End Sub
  292.     Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click
  293.         Dim Frm As New AboutBox()
  294.         Frm.Show()
  295.     End Sub
  296.     Private Sub PortcullisComputerSecurityWebsiteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PortcullisComputerSecurityWebsiteToolStripMenuItem.Click, GoToXSSShellDownloadPageToolStripMenuItem.Click
  297.         Dim URL As String = "http://www.portcullis-security.com/16.php?XSSSHELL"
  298.         Try
  299.             Diagnostics.Process.Start(URL)
  300.         Catch ex As Exception
  301.             MessageBox.Show("Somehow I failed to launch your bloody browser. Anyway, here is the URL help yourself : " & URL, "Douh!", MessageBoxButtons.OK, MessageBoxIcon.Error)
  302.         End Try
  303.     End Sub
  304.     ''' <summary>
  305.     ''' Clear Cache
  306.     ''' </summary>
  307.     ''' <param name="sender"></param>
  308.     ''' <param name="e"></param>
  309.     ''' <remarks></remarks>
  310.     Private Sub ClearCacheToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClearCacheToolStripMenuItem.Click
  311.         LblStatus.Text = "Clearing."
  312.         Application.DoEvents()
  313.         XSSTunnelLib.Proxy.ClearCache()
  314.         LblStatus.Text = "Cache cleared."
  315.         Application.DoEvents()
  316.     End Sub
  317.     Private Sub ClearItemsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClearItemsToolStripMenuItem.Click
  318.         LstResponses.Items.Clear()
  319.     End Sub
  320.     Private Sub MnuEnableCache_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuEnableCache.Click
  321.         My.Settings.CacheEnabled = MnuEnableCache.Checked
  322.         LblStatus.Text = "Restart proxy to enable new settings."
  323.     End Sub
  324. End Class