По поводу утилит для Linux (в основном консольных) стоит упомянуть. Я имею ввиду, что многие люди не пользуются мощностью консоли на 100%. В большинстве своем, они ограничиваются только созданием файлов, а затем их переключением между каталогами, работая с консоли. Так же мне кажется,что это следствие того факта,что на просторах Рунета мало источников,где можно было бы чаще говорить об утилитах,о том,как с ними работать и чем они полезны. И сегодня мы рассмотрим утилиты для работы с командной строкой Linux.
Утилита Pueue — интересная вещь для выполнения длинных задач и, конечно же, для работы с очередью задач, созданной в системе. Это необходимо тем, кому для таких случаев вполне очевидны jobs / fg / bg / screen / tmux почему-то не хватает.
Демо из репозитория
Как пишет разработчик проекта Pueue нужен, когда задачи очень длинные либо их нужно выполнять в параллельном режиме, имея полный контроль над ними. Лично мне она показалась более дружелюбной, чем штатный bg/fg.
Еще одна попытка создать удобный инструмент cron — это Crongo. Она также выполняет ту же работу, что и Pueue, но в некоторых отношениях ее можно считать альтернативой.
Nq – это еще одна простая утилита, которая может запускать очереди из заданий в системе. . Не то чтобы без нее невозможно было жить, но иногда это очень помогает. На вид она более невзрачная по сравнению с Pueue, но зато с ним гораздо проще.
Это настолько просто, что вам просто нужно увидеть пример, чтобы использовать его:
%
%
%
window1% qget http://mymirror/big1.iso
window2% qget http://mymirror/big2.iso
window3% qget http://mymirror/big3.iso
%
… wait for all downloads to finish …
Если вы работали в терминале больше недели, то наверняка знаете, что такое df и его сухой вывод. Vizex и vizexdf – это обновления df, которые делают свою работу гораздо четче и приятнее для глаз.
Как выглядит vizex
Если вам приходится думать об хакерах или программистах, то вы представляете себе огромные сводные таблицы с системной информации и диаграммами, но вы пока этим не пользуетесь? Без проблем! Bashtop Capture — это как раз такая приборная панель. При наличии бесплатного монитора, вы можете увеличить свой уровень в глазах посетителей.
Работает
Помимо общей информации о каждом процессе Bashtop может отображать и подробную информацию о каждом процессе. Благодаря этому, он может быть настроен на сортировку этих процессов по различным параметрам и легко настраивается.
В качестве примера можно привести bpytop, который является реализацией Python этой утилиты. Не уступает в возможностях, но выглядит более эффектно.
Очень интересная консольная утилита, которая позволяет анализировать логи nginx. Знакомьтесь, Rhit: Это, конечно, не GoAccess, но тоже звучит интересно.
Также он может создавать диаграммы частот запроса, которые можно увидеть в консоли.
Скрины с сайта программы
Есть анализ трендов в запросах и удобный графический вывод этого в консоль.
Конечно же, все можно фильтровать, чтобы отслеживать только необходимое.
Lnav — это анализатор логов, который умеет работать не только с nginx, в отличи от Rhit. Это список его достоинств:
lnav разбирает логи sshd
Там же на сайте можно найти готовые бинарники для Linux или macOS: видимо, для того, чтобы вы могли работать если у вас на сервере старый MacBook.
А еще есть такая интересная оболочка вокруг rsync.
, как Butterfly Backup, которая позволяет создавать и восстанавливать резервные копии данных. Этот список навыков просто впечатляет:
Установить Butterfly Backup можно всего в три команды
git
clone https://github.com/MatteoGuadrini/Butterfly-Backup.git
cd Butterfly-Backup
sudo python3 setup.py
Пример использования от автора утилиты:
# Полная копия
bb backup --computer pc1 --destination /nas/mybackup --data User Config --type MacOS --mode Full
# Инкрементальная копия
bb backup --computer pc1 --destination /nas/mybackup --data User Config --type MacOS
Если просмотреть список копий командой bb
, то можно увидеть краткое описание каждого снятого бэкапа
BUTTERFLY BACKUP CATALOG
Backup id: f65e5afe-9734-11e8-b0bb-005056a664e0
Hostname or ip: pc1
Timestamp: 2018-08-03 17:50:36
Backup id: 4f2b5f6e-9939-11e8-9ab6-005056a664e0
Hostname or ip: pc1
Timestamp: 2018-08-06 07:26:46
Backup id: cc6e2744-9944-11e8-b82a-005056a664e0
Hostname or ip: pc1
Timestamp: 2018-08-06 08:49:00
Тут отсутствуют некоторые важные детали, так что давай посмотрим на один из них поближе.
bb list --catalog /nas/mybackup --backup-id f65e5afe-9734-11e8-b0bb-005056a664e0
Backup id: f65e5afe-9734-11e8-b0bb-005056a664e0
Hostname or ip: pc1
Type: Full
Timestamp: 2018-08-03 17:50:36
Start: 2018-08-03 17:50:36
Finish: 2018-08-03 18:02:32
OS: MacOS
ExitCode: 0
Path: /nas/mybackup/pc1/2018_08_03__17_50
List: etc
Users
И наконец, восстановление:
bb restore --computer pc1 --catalog /nas/mybackup --backup-id f65e5afe-9734-11e8-b0bb-005056a664e0
Если вы являетесь новичком или продвинутым пользователем консоли — то вам будет доступен сервис Bash (и его родственник sh bible): есть примеры реализации различных заданий в скриптах, написанных исключительно с использованием Bash (или sh).
Чтобы далеко не ходить — вот тебе парочка примеров обхода всех файлов и папок в директории на чистом Bash без использования ls
.
# Greedy example.
for file in *; do
printf '%s\n' "$file"
done
# PNG files in dir.
for file in ~/Pictures/*.png; do
printf '%s\n' "$file"
done
# Iterate over directories.
for dir in ~/Downloads/*/; do
printf '%s\n' "$dir"
done
# Brace Expansion.
for file in /path/to/parentdir/{file1,file2,subdir/file3}; do
printf '%s\n' "$file"
done
# Iterate recursively.
shopt -s globstar
for file in ~/Pictures/**/*; do
printf '%s\n' "$file"
done
shopt -u globstar
Было бы неправильно не упомянуть священный zsh с плагином oh-my-zsh и кастомными темами. Ничего удобнее для терминала так и не придумали/
Очень интересный и полезный ресурс с разными однострочниками – это библиотека команд на все случаи жизни.
Вот, например, как смонтировать NTFS раздел из виртуального диска VirtualBox (VDI):
$ mount -t ntfs-3g -o ro,loop,uid=user,gid=group,umask=0007,fmask=0117,offset=0x$(hd -n 1000000 IMAGE.vdi | grep "eb 52 90 4e 54 46 53" | cut -c 1-8) IMAGE.vdi /mnt/vdi-ntfs
А если ты работаешь в терминале, то тебе часто нужны излированные песочниц. Некоторые используют Docker, создавая контейнер операционной системе и копируя программные файлы туда-сюда; другие же создают и работают в изолированной среде. Оба метода требуют от пользователя больших усилий и рута, поэтому пользоваться ими не очень удобно.
Инструмент Conty позволяет быстро и легко запустить песочницу. Для запуска контейнера не требуется root, и файлы сохраняются после выхода из песочницы.
Преимуществ можно выделить несколько:
Для работы необходимо всего ничего: tar
, fuse2
, coreutils
и bash
.
Пример запуска от автора:
./conty.sh steam
./conty.sh lutris
./conty.sh playonlinux
./conty.sh wine app.exe
По заверениям разработчиков, SX Scanner — это чуть ли не на голову лучшая альтернатива Nmap. Вот список предлагаемых фич:
Sx работает с терминала (как и большинство рассмотренных сегодня программ) и полностью написан на Go, что объясняет, как это работает.
Еще один красивый инструмент в твою копилку «псевдографических свистоперделок» — ping с визуализацией прямо в окне терминала.
Демо из репозитория
Утилита для тех, кто устал писать регулярки для поиска IP-адресов с помощью grep. Он работает немного быстрее, чем grep, но вам действительно придется много работать с IP-адресами, чтобы иметь отдельную утилиту.
Когда вам нужно перенаправить какой-либо сервис в Интернете, не имея честного «белого» IP, вы можете использовать такие сервисы, как Ngrok или Serveo. В общем, альтернатив не так много: простой SSH или самостоятельные решения для самостоятельного размещения.
Вы, конечно, знаете о возможности проброса портов через SSH. А как насчет полноценного VPN? На Хабре и на Robotmoon есть отличный материал по этой теме, если вы знаете английский. Однако текст сдобрен картинками со схемами команд, и вы можете безболезненно запустить все примеры дома и опробовать их в действии.
К таким самоделкам можно отнести и sish — красивую и удобную альтернативу Ngrok, построенную на обычном SSH.
Sish — это не просто набор скриптов для запуска SSH-пересылки. Это полноценная реализация SSH-сервера, который знает только пересылку, но делает это намного лучше, чем официально распространяемая версия. В частности, sish может прослушивать и мультиплексировать HTTP и HTTPS-трафик с поддержкой WebSocket (включая зашифрованный), если вы укажете удаленный порт 80 или 443 при запуске пересылки. В противном случае TCP-порт будет перенаправлен, если он не занят на сервере.
Официальная инструкция по установке состоит всего из двух команд:
docker pull antoniomika/sish:latest
docker run -itd --name sish \
-v ~/sish/ssl:/ssl \
-v ~/sish/keys:/keys \
-v ~/sish/pubkeys:/pubkeys \
--net=host antoniomika/sish:latest \
--ssh-address=:22 \
--http-address=:80 \
--https-address=:443 \
--https=true \
--https-certificate-directory=/ssl \
--authentication-keys-directory=/pubkeys \
--private-key-location=/keys/ssh_key \
--bind-random-ports=false
После этого вы можете просто перенаправить порты как через обычный SSH. Но это можно было сделать и так, но лучше посмотреть, что произойдет, если вы сделаете некоторые настройки в соответствии с инструкциями в репозитории:
ssh -R xakep_ru:80:localhost:8080 your_domain.com
Оп — и http://
будет прозрачно перенаправлен на твой локальный порт 8080! Само собой, одновременно может жить сколько угодно сессий.
Termshark — это консольный интерфейс для tshark. Может, например, читать pcap или захватывать трафик в реальном времени, как «взрослый» Wireshark.
Демо из репозитория
Есть поддержка фильтров, можно автоматически собирать TCP-потоки из отдельных пакетов, просматривать содержимое пакетов в соответствии с протоколом.
Termshark написан на Go и собран для любой платформы — готовые версии уже доступны для Linux, Windows, BSD, Android (поверх Termux) и даже для macOS!
Для SSH мы собрали сразу несколько полезных, да и просто интересных инструментов.
Для начала — уведомления в Telegram при SSH-авторизации.
Установка проста как два рубля: загрузите скрипт в /usr/local/bin/ssh2tg.sh (или любую другую подходящую папку), измените настройки в скрипте (токен API бота и ID чата на Отправка уведомлений), установите его атрибут выполнения и напишите следующую строку в конце /etc/pam.d/sshd:
session optional pam_exec.so type=open_session seteuid /usr/local/bin/ssh2tg.sh
Второе — покажем вам небольшой агент SSH Attack Stats, который показывает оперативную сводку атак на ваш сервер.
Скрин из репозитория с программой
После установки вы можете немного настроить вывод. Например, следующая команда покажет не более пяти записей из журналов SSH:
/usr/local/bin/log-stats ssh -c 5
Все пояснения есть в репозитории с программой.
Если вы инженер какого-то оператора связи, вам придется регулярно возиться с большими трассировками, пингами и роутерами. Для вас они написали asroute, утилиту, которая позволяет вам добавлять информацию о ASN транзитных маршрутизаторов к выходным данным traceroute. Например, это выглядит так:
$
traceroute
traceroute to bhutan.gov.bt (202.144.128.217), 64 hops max, 52 byte packets
-> AS0 (Reserved)
-> *
-> BRESNAN-33588, US
-> LIGHTOWER, US
-> BRESNAN-33588, US
-> CHARTER-20115, US
-> TELIANET Telia Carrier, EU
-> *
-> NTT-COMMUNICATIONS-2914, US
-> DRUKNET-AS DrukNet ISP, BT
-> BTTELECOM-AS-AP Bhutan Telecom Ltd, BT
Установка пока доступна только для macOS, но зато делается одной командой.
$ brew install asroute
Asroute написан на Rust, поэтому теоретически его можно без проблем скомпилировать для любой другой платформы, но на момент написания этой статьи у меня с собой был только один компьютер с Windows, который испытывал трудности с компиляцией нетрадиционного кода.
Изюминкой программы является сценарий outrun, который позволяет легко переносить вычисления за пределы слабого тонкого клиента на мощный удаленный сервер, а наличие необходимой утилиты на удаленном хосте вовсе не обязательно. Единственное, что нужно для работы, — это установить outrun на обоих хостах (как локальном, так и удаленном) и с присутствующими правами root (используется chroot).
Демо от авторов программы
В качестве наиболее очевидного примера (даже приведенного авторами outrun) вы можете запустить локальный видео конвертер, такой как FFmpeg, используя ресурсы сервера. GIF показывает очень существенную разницу во времени выполнения.
Установить можно прямо из pip
pip3 install outrun
Потом можно запустить требуемую команду на удаленной машине:
outrun srv4.local neofetch
Файловая система будет доступна, будто локальная, и результаты работы команды (если есть) тоже будут записаны в текущую папку на локальном компе.
С помощью Webify вы можете переводить вывод практически любой команды, например веб-службы. Хорошее решение для простого совместного использования консоли: вы запускаете Webify со своей службой, а другой человек обнаруживает браузер (или curl) и взаимодействует с вашим приложением.
Официальное демо Webify
Этот скрипт- отличный способ получить временный почтовый ящик прямо из терминала. Если вы интеесуетесь ИБ — мне, очевидно, не нужно объяснять, что это такое и зачем он вам нужен, так что приступим сразу к установке.
$ sudo dnf install jq curl w3m
$ wget https://raw.githubusercontent.com/sdushantha/tmpmail/master/tmpmail
$ chmod +x tmpmail
Генерируем ящик:
$ ./tmpmail --generate
qpasixkauet@1secmail.net
Проверяем почту:
./tmpmail --recent
Вы тоже думали, что бесплатные SSL-сертификаты можно получить только в Let’s Encrypt?. Ребята из ZeroSSL представили альтернативный сервис, где вы можете получить те же сертификаты в течение тех же 90 дней. Вы можете использовать старый добрый ACME. Если я по каким-то причинам искал замену старичке Let’s Encrypt — вот она.
Процедура выпуска довольно проста: просто введите свой адрес электронной почты и пароль и подтвердите право собственности на домен через DNS или загрузив указанный файл. Через несколько минут сайт сгенерирует ваш сертификат и предложит его скачать, а что делать дальше — не мне вас учить
testtls.com — это очередной сервис для проверки SSL/TLS, аналог SSLLabs.
Результат проверки
С его помощью можно легко проверить, правильно ли настроен HTTPS на твоем (или чужом) сайте.
Вот еще несколько ссылок, которые не входят в категорию утилит командной строки, но могут оказаться полезными.
Public API — сайт, на котором собрана информация о публичных интерфейсах самых разных сервисов и ссылки на документацию. Может пригодиться в самых разных случаях — от маркетинга до OSINT.
GitExplorer — хорошая интерактивная шпаргалка по Git.
Пример
Теперь вы можете связать нужную нам запись на GitHub прямо из браузера. Это полезно, например, для поиска секретов во время тестов на проникновение (или в программе bug bounty) или флагов CTF.
Если вы используете двухфакторную аутентификацию, вам явно будет приятно иметь ключи для ввода под рукой, а не в телефоне, который еще нужно найти. Плагин Authenticator для Chrome, Firefox и Microsoft Edge может генерировать коды для 2FA прямо в браузере. Также делает зашифрованную резервную копию на Google Диск, Dropbox или OneDrive. Поддерживает классические TOTP и HOTP, а также Steam Guard и Blizzard Authenticator, если вы используете эти сайты.
Free for Dev — это набор бесплатных сервисов, которые могут быть полезны разработчикам. Конечно, не все бесплатные, но везде есть период бесплатного использования или лимит, которого почти всегда более чем достаточно для личного использования или тестирования.
Конечно, вы можете сказать, что легко отказаться от всего этого и автоматизировать рутинные задачи с помощью сценариев, которые вы написали сами. Но зачем, когда есть готовые инструменты для отладки, которые бесплатно улучшают вашу работу и экономят время и нервы? Хакер — это хакер, потому что он может делать свою работу лучше других.
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…