У меня есть небольшая загадка - я являюсь администратором как на 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.