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.
—
М. М.