Назад | Перейти на главную страницу

Запись команд SSH, отправленных на Mac из Windows

У меня есть небольшая загадка - я являюсь администратором как на Windows 10, так и на Mac Catalina.

На компьютере с Windows в настоящее время работает программное обеспечение с известной ошибкой - команды SSH отправляются на Mac большой частью программного обеспечения .NET, которое трудно выполнить RE (больше из-за его размера, чем сложности) через SSH. 2 компьютера находятся в одной сети.

Команды SSH не работают, но я не знаю, что это такое. Я хотел бы записать эти действия или, по крайней мере, просмотреть их каким-либо образом, чтобы я мог изменить поведение принимающей стороны (Mac), чтобы выполнить правильное действие (обходной путь).

Вот что я пытался просмотреть с помощью команд SSH:

Что мне не хватает? Есть ли какой-нибудь очевидный способ сделать это, что я упустил из виду?

Я относительно хорошо разбираюсь в том, как все работает, поэтому, если у меня есть представление о лучшем пути вперед, я сосредоточу на нем свое внимание. Просто кажется, что в большом пространстве слишком много вариантов, чтобы знать, как действовать.

Я читал, что, возможно, есть способы сделать это через sshd_config на хосте SSH (Mac), но я понятия не имею, какие настройки действительно будут работать, и, очевидно, Mac делает что-то особым образом.

[Не стесняйтесь перемещать соответствующий сайт StackExchange, не уверены, какой из них лучше всего подходит для этого]

Это похоже на типичный случай аудита. У меня нет опыта настройки в Mac OS, поэтому ссылки на некоторую документацию и примеры:

https://opensource.apple.com/source/OpenBSM/OpenBSM-21/openbsm/man/

https://krypted.com/mac-os-x/quick-dirty-openbsm-auditing-macos/

Похоже на тип auditd также доступны:

https://opensource.apple.com/source/system_cmds/system_cmds-336.10/auditd.tproj/auditd.8.auto.html

Включение аудита и анализа журналов должно работать и содержать все команды, которые были выполнены в целевой системе.

Например, зная пользователя ssh, вы можете начать с audit_user и настроить ex системные вызовы, которые будут регистрироваться для этого конкретного пользователя. В случае смены пользователя во время сеанса он может захватить не все, но, по крайней мере, до команды переключения пользователя.

/ и т.д. / безопасность / audit_user yoursshuser:ad,ex:no

Для быстрого начала попробуйте что-нибудь вроде auditreduce -u <userid> -c ex /dev/auditpipe | praudit

Это должно предоставить живые журналы от пользователей exec системные вызовы.

Предложите забыть любые подходы через истории оболочки и тому подобное, поскольку вы не знаете, используется ли оболочка. Например. сценарий копируется, а оболочка просто переключается. Интересны ex системные вызовы, они содержат все выполнения, независимо от того, как они запускаются.


РЕДАКТИРОВАТЬ ДЛЯ MAC: Специально для Mac (с включенной защитой целостности системы [SIP], например, Catalina / El Capitan и т. Д.) OpenBSM не будет записывать команды bash, которые не приводят к фактическому выполнению программы.

Если вы хотите записать неправильные команды (например, ASDFASDFASDF), то лучшим вариантом будет использование dtruss - dtrace также может работать, но сложность его правильной работы выше.

Сначала отключите SIP, а затем запустите следующее, чтобы записывать все системные вызовы для процессов bash:

sudo dtruss -n bash

Неправильные команды будут «искать» в различных местах окружения в вызовах stat64. Например. stat64("/usr/bin/ASDFASDFASDF",...)

Если у вас есть доступ к оболочке, в которой выполняются команды, вы можете попытаться перенаправить дескрипторы файлов в профиле оболочки в файл журнала. Или включите историю. Или используйте sysdig.