Beispiel #1
0
 public Data(socks5.Socks.SocksRequest p, byte[] buffer, int count, DataType dtype)
 {
     Buffer = new byte[count];
     Array.Copy(buffer, Buffer, count);
     Request = p;
     DataType = dtype;
 }
Beispiel #2
0
 public override void OnServerDataReceived(object sender, socks5.TCP.DataEventArgs e)
 {
     if (e.Buffer.FindString("HTTP/1.") != -1 && e.Buffer.FindString("\r\n") != -1)
     {
         e.Buffer = e.Buffer.ReplaceString("\r\n", "\r\nX-Served-By: Socks5Server\r\n");
         e.Count = e.Count + "X-Served-By: Socks5Server\r\n".Length;
     }
 }
Beispiel #3
0
 public override socks5.TCP.Client OnConnectOverride(socks5.Socks.SocksRequest sr)
 {
     //use a socks5client to connect to it and passthru the data.
     //port 9050 is where torsocks is running (linux & windows)
     Socks5Client s = new Socks5Client ("localhost", 9050, sr.Address, sr.Port, "un", "pw");
     if (s.Connect ()) {
         //connect synchronously to block the thread.
         return s.Client;
     } else {
         Console.WriteLine ("Failed!");
         return null;
     }
 }
Beispiel #4
0
 public override void OnClientDataReceived(object sender, socks5.TCP.DataEventArgs e)
 {
     //if data is HTTP, make sure it's not compressed so we can capture it in plaintext.
     if (e.Buffer.FindString(" HTTP/1.1") != -1 && e.Buffer.FindString("Accept-Encoding") != -1)
     {
         int x = e.Buffer.FindString("Accept-Encoding:");
         int y = e.Buffer.FindString("\r\n", x + 1);
         e.Buffer = e.Buffer.ReplaceBetween(x, y, Encoding.ASCII.GetBytes(replaceWith));
         e.Buffer = e.Buffer.ReplaceString("HTTP/1.1", "HTTP/1.0");
         e.Count = e.Count - (y - x) + replaceWith.Length;
     }
     Utils.Add(new DataCapture.Data(e.Request, e.Buffer, e.Count, DataCapture.DataType.Sent));
 }
Beispiel #5
0
        public override socks5.TCP.Client OnConnectOverride(socks5.Socks.SocksRequest sr)
        {
            if (!IsGfwFucked(sr.Address))
                return null;
            var proxysock = new Socket(SocketType.Stream, ProtocolType.Tcp);
            HttpWebRequest httpreq = HttpWebRequest.CreateHttp(sr.Address);
            WebProxy wp = httpreq.Proxy as WebProxy;
            wp.Address=new Uri(proxyurl);
            var response = httpreq.GetResponse();

            var client = new Client(new Socket(SocketType.Stream, ProtocolType.Tcp), 65535);

            return client;
        }
Beispiel #6
0
        public override void OnServerDataReceived(object sender, socks5.TCP.DataEventArgs e)
        {
            Utils.Add(new DataCapture.Data(e.Request, e.Buffer, e.Count, DataCapture.DataType.Received));
            return;
            //If it's an HTTP request, make sure to use chunked. Read until chunked or content-length.
            if (Chunked.IsHTTP(e.Buffer) && Chunked.IsChunked(e.Buffer))
            {
                //Chunked c = new Chunked(e.Client.Sock, e.Buffer, e.Count);
                //e.Buffer = c.ChunkedData;
                //e.Count = c.ChunkedData.Length;
                //Utils.Add(new DataCapture.Data(e.Request, c.ChunkedData, c.ChunkedData.Length, DataCapture.DataType.Received));
                Utils.Add(new DataCapture.Data(e.Request, e.Buffer, e.Count, DataCapture.DataType.Received));
            }
            //Save data into sent data list.
            else
            {

            }
        }
Beispiel #7
0
 public override LoginStatus HandleLogin(socks5.Socks.User user)
 {
     return (user.Username == "test" && user.Password == "1234" ? LoginStatus.Correct : LoginStatus.Denied);
 }
Beispiel #8
0
 //static socks5.Socks.Frame f_OnDataReceivedRemote(object sender, socks5.TCP.FrameEventArgs e)
 static byte[] f_OnDataReceivedRemote(object sender, socks5.TCP.FrameEventArgs e)
 {
     //return e.Frame;
     return e.Data;
 }
Beispiel #9
0
 static socks5.Socks.LoginStatus f_OnAuthentication(object sender, socks5.TCP.SocksAuthenticationEventArgs e)
 {
     if(e.User.Username == "Thr" && e.User.Password == "yoloswag")
         return socks5.Socks.LoginStatus.Correct;
     return socks5.Socks.LoginStatus.Denied;
 }
Beispiel #10
0
 public override bool OnConnect(socks5.Socks.SocksRequest Request)
 {
     Console.WriteLine(Request.Port);
     return true;
 }
 /// <summary>
 /// Handle client connected callback. Useful for IPblocking.
 /// </summary>
 /// <param name="Client"></param>
 /// <returns>Return true to allow the connection, return false to deny it.</returns>
 public abstract bool OnConnect(socks5.TCP.Client Client, IPEndPoint IP);
Beispiel #12
0
 public override void OnClientDataReceived(object sender, socks5.TCP.DataEventArgs e)
 {
 }