Butterfly — instant shell?

Butterfly — instant shell?

de4dl0ck͏

Хочу написать про крутой эмулятор терминала в браузере. Их ныне много. Это и hyper.is и куча других. Но мне давно полюбился Butterfly, который написан на Python и term.js.

Список фич следующий:

  • Совместимость с xterm, а это значит, что UX будет похожим
  • Можно делать поиск по Ctrl+F в браузере
  • Поддержка тем (если правильно помню, то меняется по Alt+S)
  • HTML в терминале. Можно чудить, насколько это позволяет разметка.
  • Поддержка сессий (tmux style). Можно в новой сессии запустить сервис в foreground и продолжить работать
  • Безопасная авторизация через X.509 сертификаты
  • Уведомления через Web Notification API
  • Поддержка горячих клавиш
  • Сессия не отображается в wtmp/utmp/btmp (last/who/w)

Что это всё означает?

Прикрутив сертификат авторизации вы получаете а-ля SSH в браузере с авторизацией по ключам. Очень удобно, когда ничего кроме HTTP/HTTPS трафика не ходит по сети.

Однако данный трюк можно провернуть и при пентесте, оставив butterfly работать в фоне на каком-нибудь неприметном порту (если получили рута, то можно на том же nginx повесить location /secret в дебрях nginx.conf). В процессах будет видно что-то вроде python __init__.py. Главное правильно обозвать саму тулзу.

Более того рекомендую прикрутить SSL сертификат хоста :)

В сухом остатке получается что-то вроде:

__init__.py --host=<DOMAIN.COM> --port=57575 --ssl-dir=/etc/nginx/ssl/

Для своего же хоста рекомендую настроить конфиг в /etc/butterfly/butterfly.conf.


М. М.

Report Page