RustScan — это современный сканер портов с открытым исходным кодом, который может быстро найти порты всего за 3 секунды.
Docker — это платформа-контейнер приложений с открытым исходным кодом, на которой можно запускать приложения и сервисы. Docker позволяет упаковывать приложения и зависимости в контейнер и запускать их где угодно, что делает приложения кроссплатформенными и переносимыми. Это достигается путем создания облегченных контейнеров, которые могут работать в любой среде без изменений или дополнительной настройки. Docker широко популярен благодаря своей скорости, портативности и простоте использования и широко используется для разработки, тестирования и развертывания приложений. Он также интегрируется с различными инструментами и технологиями, что делает его одним из лучших инструментов для разработки и эксплуатации.
Эта практика представляет собой личную тестовую среду, а версия операционной системы — centos7.6.
hostname | IP-адрес | Версия операционной системы | Докер-версия |
---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | 20.10.17 |
1. Средой развертывания для этой практики является персональная тестовая среда. Используйте рабочую среду с осторожностью.
2. Разверните RustScan и его базовое использование в среде Docker.
Проверьте, нормально ли работает служба Docker, и убедитесь, что Docker работает нормально.
[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2023-07-11 20:05:39 CST; 2 weeks 0 days ago
Docs: https://docs.docker.com
Main PID: 9572 (dockerd)
Tasks: 51
Memory: 2.8G
CGroup: /system.slice/docker.service
исследовать Докер-версия,в настоящее время используется Версиядля
20.10.17
。
[root@jeven ~]# docker version
Client: Docker Engine - Community
Version: 20.10.17
API version: 1.41
Go version: go1.17.11
Git commit: 100c701
Built: Mon Jun 6 23:05:12 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.17
API version: 1.41 (minimum version 1.12)
Go version: go1.17.11
Git commit: a89b842
Built: Mon Jun 6 23:03:33 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.6
GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
runc:
Version: 1.1.2
GitCommit: v1.1.2-0-ga916309
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Проверьте версию Docker Compose, чтобы убедиться, что она выше 2.0.
[[root@jeven ~]# docker compose version
Docker Compose version v2.19.1
Загрузите образ RustScan из Docker Hub, версия 2.1.1.
[root@jeven RustScan]# docker pull rustscan/rustscan:2.1.1
2.1.1: Pulling from rustscan/rustscan
1b7ca6aea1dd: Pull complete
4c6d22701329: Pull complete
74847823a394: Pull complete
Digest: sha256:1ef645b90001c560923c2150d20e5509ced243122225dbb9daf7c1c0ac3d21b2
Status: Downloaded newer image for rustscan/rustscan:2.1.1
docker.io/rustscan/rustscan:2.1.1
Мы можем использовать псевдонимы для использования контейнеров RustScan, что может сэкономить время и ввод данных, а также повысить эффективность. Кроме того, при использовании псевдонимов вы можете легко использовать один и тот же псевдоним в разных средах без необходимости многократного ввода одной и той же команды.
alias rustscan="docker run -it --rm --name rustscan rustscan/rustscan:2.1.1"
использовать
help
Параметры,Просмотрите справочную информацию по Russcan.
[root@jeven RustScan]# rustscan --help
rustscan 2.1.1
Fast Port Scanner built in Rust. WARNING Do not use this program against sensitive infrastructure since the specified
server may not be able to handle this many socket connections at once. - Discord https://discord.gg/GFrQsGy - GitHub
https://github.com/RustScan/RustScan
USAGE:
rustscan [FLAGS] [OPTIONS] [-- <command>...]
FLAGS:
--accessible Accessible mode. Turns off features which negatively affect screen readers
-g, --greppable Greppable mode. Only output the ports. No Nmap. Useful for grep or outputting to a file
-h, --help Prints help information
-n, --no-config Whether to ignore the configuration file or not
--top Use the top 1000 ports
-V, --version Prints version information
OPTIONS:
-a, --addresses <addresses>... A comma-delimited list or newline-delimited file of separated CIDRs, IPs, or
hosts to be scanned
-b, --batch-size <batch-size> The batch size for port scanning, it increases or slows the speed of scanning.
Depends on the open file limit of your OS. If you do 65535 it will do every port
at the same time. Although, your OS may not support this [default: 4500]
-c, --config-path <config-path> Custom path to config file
-p, --ports <ports>... A list of comma separed ports to be scanned. Example: 80,443,8080
-r, --range <range> A range of ports with format start-end. Example: 1-1000
--scan-order <scan-order> The order of scanning to be performed. The "serial" option will scan ports in
ascending order while the "random" option will scan ports randomly [default:
serial] [possible values: Serial, Random]
--scripts <scripts> Level of scripting required for the run [default: default] [possible values:
None, Default, Custom]
-t, --timeout <timeout> The timeout in milliseconds before a port is assumed to be closed [default: 1500]
--tries <tries> The number of tries before a port is assumed to be closed. If set to 0, rustscan
will correct it to 1 [default: 1]
-u, --ulimit <ulimit> Automatically ups the ULIMIT with the value you provided
ARGS:
<command>... The Script arguments to run. To use the argument -A, end RustScan's args with '-- -A'. Example:
'rustscan -T 1500 -a 127.0.0.1 -- -A -sC'. This command adds -Pn -vvv -p $PORTS automatically to
nmap. For things like --script '(safe and vuln)' enclose it in quotations marks \"'(safe and
vuln)'\"")
russcan — быстрый сканер портов, написанный на Rust.
Эту программу не рекомендуется использовать в чувствительной инфраструктуре, поскольку указанный сервер может быть не в состоянии обрабатывать такое количество сокет-соединений одновременно.
Ссылку на проект можно найти в Discord: https://discord.gg/GFrQsGy
Ссылку на проект можно найти на GitHub: https://github.com/RustScan/RustScan.
Эту программу можно запустить с помощью команды Russcan.
Доступные флаги:
--accessible: включить режим специальных возможностей и отключить влияние на программы чтения с экрана.
-g или --greppable: включить режим grep,Выводить только информацию о порте,НетиспользоватьNmap。Применимо кgrepдействоватьиливывод в файл。
-h или --help: вывести справочную информацию.
-n или --no-config: игнорировать ли файлы конфигурации.
--top: использовать первые 1000 часто используемых портов.
-V или --version: Распечатать информацию о версии.
Доступные варианты:
-a или --addresses <addresses>...:быть отсканированнымCIDR、IPилисписок хостов, разделенных запятымиили Файл с разделителями-новой строкой。
-b или --batch-size <batch-size>:размер партии,Увеличиватьили Замедлить сканирование。в зависимости отдействовать Системные ограничения на количество открытых файлов。Если установленодля65535,затем просканируйте все порты одновременно.,твойдействовать系统可能Нет支持这一点。значение по умолчаниюдля4500。
-c или --config-path <config-path>:Пользовательский путь к файлу конфигурации。
-p или --ports <ports>...:быть отсканированнымсписок портов,Запятая разделена. Например: 80 443 8080.
-r или --range <range>:диапазон портов,Форматдляstart-end。Например:1-1000。
--scan-order <scan-order>:Порядок сканирования Параметры。"serial"Параметры Порты будут сканироваться в порядке возрастания.,и"random"Параметрыбудет сканировать случайным образомпорт.значение по умолчаниюдляserial。
--scripts <scripts>:Запустите необходимый уровень сценария。значение по умолчаниюдляdefault。Необязательное значение:None、Default、Custom。
-t или --timeout <timeout>:существовать Порт признандля Тайм-аут перед выключением(в миллисекундахдляединица)。значение по умолчаниюдля1500。
--tries <tries>:существовать Порт признандля Количество попыток до закрытия。Если установленодля0,rustscanисправлю этодля1。значение по умолчаниюдля1。
-u или --ulimit <ulimit>:автоматический УвеличиватьULIMITценить。
параметр:<command>...:скрипт для запускапараметр。хотетьиспользоватьпараметр-A,существоватьRustScanизпараметрдобавить после'-- -А'. Например: 'rustscan -T 1500 -a 127.0.0.1 -- -A -СС'. Эта команда автоматически добавит -Pn в nmap. -vvv -p Параметр $PORTS. Что-то вроде --script '(safe and vuln)', заключите его в кавычки, например "'(safe and vuln)'"。
Проверьте версию инструмента RustScan. Текущая версия — 2.1.1.
[root@jeven RustScan]# rustscan -V
rustscan 2.1.1
Используйте следующую команду для сканирования состояния порта устройства в локальной сети. После завершения сканирования отобразится информация отчета о сканировании.
rustscan -a 192.168.3.243 -t 500 -b 1500 -- -A
Используйте следующие способы сканирования сегмент сети
192.168.3.0/24
,Это может занять больше времени.
rustscan -a 192.168.3.0/24 -t 500 -b 1500 -- -A
RustScan — это мощный и простой в использовании инструмент сканирования портов, особенно подходящий для сценариев, когда необходимо быстро найти открытые порты на целевом хосте. Очень удобно использовать в среде Docker. Вам нужно только настроить псевдоним для запуска контейнера, и нет необходимости устанавливать RustScan на сервер. RustScan можно использовать как для личного использования, так и для групп корпоративной безопасности, чтобы быстро и эффективно найти открытые порты на целевом хосте и провести последующий анализ и тестирование безопасности.