Soft RustScan — современный взгляд на сканер портов

RustScan - это современный взгляд на сканер портов. Изящный и быстрый.
Не говоря уже о том, что RustScan использует Adaptive Learning, чтобы совершенствоваться по мере использования.

Особенности

  • Сканирует все 65k портов за 3 секунды.
  • Полная поддержка скриптов.
  • Адаптивное обучение. Чем больше вы его используете, тем лучше RustScan становится. (Здесь нет раздутого машинного обучения, только базовая математика.)
  • IPv6, CIDR, ввод через файлы.
  • Автоматически направляет порты в Nmap.

Расширяемый

RustScan передает результаты в костомные скрипты Python.
RustScan имеет новый движок для скриптов, который позволяет любому писать скрипты на большинстве языков. Поддерживаются Python, Lua, Shell.
Хотите взять найденные порты и передать их в Nmap для дальнейшего анализа? Это возможно. Хотите запустить smb-enum, если SMB обнаружен открытым? Это тоже возможно.

Адаптивный

RustScan автоматически настраивается в соответствии с ОС хоста.
«Адаптивное обучение» в RustScan - это функции которые «узнают» о среде, которую вы сканируете, и о том, как вы используете RustScan, чтобы со временем улучшить себя.

Руководство по установке

Нужен Nmap. Если у вас установлена ОС Kali Linux или Parrot, значит, у вас уже есть Nmap. Если нет, следуйте руководству по установке nmap.
Самый простой способ установить RustScan - использовать один из пакетов, предоставленных для вашей системы, например HomeBrew или Yay для Arch Linux.
  1. Качаем релиз по ссылке Releases
  2. Запускаем файл командой dpkg -i <имя загруженного файла>
    1.png

Использование

  1. Сканирование сразу нескольких IP, разделаем запятыми:
    Код:
    rustscan -a 127.0.0.1,0.0.0.0
    2.png
  2. RustScan поддерживает CIDR:
    Код:
    rustscan -a 192.168.31.1/30
    3.png
  3. Использование текстового файла с списком IP адресов:
    создаем файл с перечнем адресов(каждый с новой строки).
    Код:
    nano host.txt
    запускаем сканирование
    Код:
    rustscan -a 'host.txt'
    4.png
  4. Отдельное сканирование портов:
    Код:
    rustscan -a 192.168.31.218 -p 445
    5.png
  5. Сканирование списка портов, разделенными запятыми:
    Код:
    rustscan -a 192.168.31.218 -p 445,135,139
    6.png
  6. Также можно указать промежуток :
    Код:
    rustscan -a 127.0.0.1 --range 1-1000
    7.png
 

Вложения

  • rustscan.png
    rustscan.png
    12,9 КБ · Просмотры: 309
При таком заголовке было бы неплохо увидеть сравнения с другими сканерами.
Сканирует все 65k портов за 3 секунды.
это 0.000046 секунды на порт. я думаю объяснять что это физически не возможно, не стоит.
 
При таком заголовке было бы неплохо увидеть сравнения с другими сканерами.

это 0.000046 секунды на порт. я думаю объяснять что это физически не возможно, не стоит.
Все верно, кончено. Есть сравнение с Nmap в документации можете сами убедиться в этом. Автор показывает что скан через RustScan занимает 39 секунд, но под гифкой пишет: "Note This is an older gif. RustScan’s current top speed is 3 seconds for all 65k ports. This gif is 26 seconds." То-есть как я понимаю, это максимально возможная скорость сканирования.
Screenshot_1.png
 
  • Нравится
Реакции: Semen Semenov
Не верьте тому что автор вам там нарассказывал. M4Sc0t правильно отметил - это невозможно. Три секунды может только улыбку вызвать, и 39 секунд тоже не соответствует истине. Скорость будет зависеть от аптайма сервера как минимум, если это будет например 0,05 секунды, умножьте на 65000, получите почти час времени.
 
  • Нравится
Реакции: Krang
Не верьте тому что автор вам там нарассказывал. M4Sc0t правильно отметил - это невозможно. Три секунды может только улыбку вызвать, и 39 секунд тоже не соответствует истине. Скорость будет зависеть от аптайма сервера как минимум, если это будет например 0,05 секунды, умножьте на 65000, получите почти час времени.
Я с Вами согласен, большое спасибо за поправку. Я вот только не понимаю тогда откуда у автора взялось 3 секунды, на чем-то он ведь базирует свои выводы.
 
Ну так давайте проведем эксперимент и выложим сюда скриншоты. В чем проблема?
 
  • Нравится
Реакции: Adrian Grum
это 0.000046 секунды на порт. я думаю объяснять что это физически не возможно, не стоит.
Твои вычисления - не выдерживают никакой критики.
Почему ты решил, что сканирование производится в один поток ?
Я едва сдерживаю эмоции !
 
  • Нравится
Реакции: Pernat1y
это 0.000046 секунды на порт. я думаю объяснять что это физически не возможно, не стоит.
M4Sc0t правильно отметил - это невозможно. Три секунды может только улыбку вызвать, и 39 секунд тоже не соответствует истине.
Это если в один поток сканировать. Нормальные сканеры так точно делать не будут :)

У меня все порты по воздуху просканило за 3.7 секунд.
Код:
real    0m3.688s
user    0m1.202s
sys     0m1.812s

Для сравнения, nmap:
Код:
real    0m8.086s
user    0m0.744s
sys     0m1.058s
 
Последнее редактирование:
  • Нравится
Реакции: Fo_nix
Это если в один поток сканировать. Нормальные сканеры так точно делать не будут :)

У меня все порты по воздуху просканило за 3.7 секунд.
Код:
real    0m3.688s
user    0m1.202s
sys     0m1.812s

Для сравнения, nmap:
Код:
real    0m8.086s
user    0m0.744s
sys     0m1.058s
Как конкретно ты его запускал? Если не секрет. сканил внешний ресурс или локалку?
 
У меня все порты по воздуху просканило за 3.7 секунд.
Специально сейчас взял и установил этот чудо софт, но как и следовало ожидать чуда не случилось. Первый же вбитый IP и.... прождал довольно долго, уже хотел кикнуть, и тут работа завершилась. При этом прога мне радостно сообщила, что отсканила за 3.07 секунды : =D
Вот хост, сами проверьте 178.208.83.7
 
В моё случае, он работает вообще через раз. Негодуя на размер бач файла и советуя юзать докер или увеличить этот самый файл. после увеличения опять выдаёт ошибку ака варнинг, мол, поставь таймаут на 2000мс. В итоге задаю ему все что он хочет
time rustscan --batch-size 4500 -a 178.208.83.7 --ulimit 5000 -t 2000

получаю теже самые "подсказки"

Код:
macbook-pro ~ % time rustscan --batch-size 4500 -a 178.208.83.7 --ulimit 5000 -t 2000
.----. .-. .-. .----..---.  .----. .---.   .--.  .-. .-.
| {}  }| { } |{ {__ {_   _}{ {__  /  ___} / {} \ |  `| |
| .-. \| {_} |.-._} } | |  .-._} }\     }/  /\  \| |\  |
`-' `-'`-----'`----'  `-'  `----'  `---' `-'  `-'`-' `-'
The Modern Day Port Scanner.
________________________________________
: https://discord.gg/GFrQsGy           :
: https://github.com/RustScan/RustScan :
 --------------------------------------
🌍HACK THE PLANET🌍

[~] The config file is expected to be at "/Users/user/.rustscan.toml"
[~] Automatically increasing ulimit value to 5000.
[!] Looks like I didn't find any open ports for 178.208.83.7. This is usually caused by a high batch size.

*I used 4500 batch size, consider lowering it with 'rustscan -b <batch_size> <ip address>' or a comfortable number for your system.

 Alternatively, increase the timeout if your ping is high. Rustscan -t 2000 for 2000 milliseconds (2s) timeout.

rustscan --batch-size 4500 -a 178.208.83.7 --ulimit 5000 -t 2000  1.38s user 7.62s system 28% cpu 31.402 total

И такие свистопляски продолжаются. Возможно причина в то что тестирую на маке(хотя его поддержка заявлена). Завтра проверю на машине с кали.

@KaPToHHbIu_EHoT интересно во сколько бы потоков ты запускал сканер на прод при пентесте?
 
Запустил на локалхос. Оно заработало
time rustscan -a 127.0.0.1 --ulimit 5000
Код:
@macbook-pro ~ % time rustscan -a 127.0.0.1 --ulimit 5000
.----. .-. .-. .----..---.  .----. .---.   .--.  .-. .-.
| {}  }| { } |{ {__ {_   _}{ {__  /  ___} / {} \ |  `| |
| .-. \| {_} |.-._} } | |  .-._} }\     }/  /\  \| |\  |
`-' `-'`-----'`----'  `-'  `----'  `---' `-'  `-'`-' `-'
The Modern Day Port Scanner.
________________________________________
: https://discord.gg/GFrQsGy           :
: https://github.com/RustScan/RustScan :
 --------------------------------------
😵 https://admin.tryhackme.com

[~] The config file is expected to be at "/Users/user/.rustscan.toml"
[~] Automatically increasing ulimit value to 5000.
Open 127.0.0.1:5939
Open 127.0.0.1:49162
[~] Starting Script(s)
[>] Script to be run Some("nmap -vvv -p {{port}} {{ip}}")

[~] Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-01 02:08 CET
Initiating Ping Scan at 02:08
Scanning 127.0.0.1 [2 ports]
Completed Ping Scan at 02:08, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 02:08
Scanning localhost (127.0.0.1) [2 ports]
Discovered open port 49162/tcp on 127.0.0.1
Discovered open port 5939/tcp on 127.0.0.1
Completed Connect Scan at 02:08, 0.00s elapsed (2 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up, received conn-refused (0.00022s latency).
Scanned at 2020-12-01 02:08:57 CET for 0s

PORT      STATE SERVICE REASON
5939/tcp  open  unknown syn-ack
49162/tcp open  unknown syn-ack

Read data files from: /usr/local/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

rustscan -a 127.0.0.1 --ulimit 5000  0.92s user 2.38s system 88% cpu 3.738 total

Круто конечно, что локалку он сканит за 2.38с только вот какой в этом толк? В таких лабораторных условиях пропадает много переменных таких как расстояние до сервера, скорость его ответа и прочее.

Если уж теснить в таких условиях то нмап оказался шустрее

Код:
macbook-pro ~ % nmap -p0-65535 127.0.0.1 -T5
Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-01 02:15 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000081s latency).
Not shown: 65531 closed ports
PORT      STATE    SERVICE
0/tcp     filtered unknown
5939/tcp  open     unknown
49162/tcp open     unknown
53124/tcp filtered unknown
57000/tcp filtered unknown

Nmap done: 1 IP address (1 host up) scanned in 2.19 seconds

Только вот вряд ли кто-то будет сканить ресурсы на таких скоростях.
 
Как конкретно ты его запускал? Если не секрет. сканил внешний ресурс или локалку?
В локалке, но не локалхост. ./rustscan -a $host -r 1-65535 и nmap -p- $host
Так, ИМХО, справедливо - любой сканер не может повлиять на задержки, потери и количество хопов до хоста. Так что не вижу смысл искать самый удалённый сервер для тестирования.

И, опять-же ИМХО, не стоит чмырить проект, который разрабатывали меньше года (nmap'y 23 года уже, если что :) ) и у которого, в принципе, неплохой потенциал.
Ну и про "невозможно просканить все порты за 3 секунды" тоже подумайте. ;)
 
  • Нравится
Реакции: Fo_nix
В локалке, но не локалхост. ./rustscan -a $host -r 1-65535 и nmap -p- $host
Так, ИМХО, справедливо - любой сканер не может повлиять на задержки, потери и количество хопов до хоста. Так что не вижу смысл искать самый удалённый сервер для тестирования.

И, опять-же ИМХО, не стоит чмырить проект, который разрабатывали меньше года (nmap'y 23 года уже, если что :) ) и у которого, в принципе, неплохой потенциал.
Ну и про "невозможно просканить все порты за 3 секунды" тоже подумайте. ;)
да я буду только рад если будет такой сканер. ))) ну у той же нмап есть турбо режим.
 
Как установить его на KALI?
...
А все нашел
 
Последнее редактирование модератором:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!