DTrace key logger - PullRequest
       16

DTrace key logger

1 голос
/ 09 сентября 2011

Я пытался узнать, смогу ли я заставить sshkeysnoop.d Брендана Грегга работать на Mac OS X, но у меня возникли проблемы. Возможно ли заставить это работать? Если да, то как?

Я получаю ошибку:

dtrace: failed to compile script ./sshkeysnoop.d: line 40: probe description syscall::exec:return does not match any probes

Можно ли выполнять другие виды регистрации ключей в Mac OS X с использованием DTrace?

Ответы [ 3 ]

1 голос
/ 17 сентября 2011

Пара вещей, которые вы можете сделать, чтобы адаптировать скрипты, подобные этой.Во-первых, вы можете спросить dtrace, какие у него точки проверки:

$ sudo dtrace -l -f 'syscall::exec*'
   ID   PROVIDER            MODULE                          FUNCTION NAME
18442    syscall                                              execve entry
18443    syscall                                              execve return

Во-вторых, вы можете отследить все системные вызовы в одном процессе, чтобы увидеть, что происходит.

$ sudo dtruss ssh somewhere 2>dtrussout
Password: (type something here)

ЕслиВы просматриваете dtrussout Вы можете видеть

read_nocancel(0x5, "a\0", 0x1)       = 1 0
read_nocancel(0x5, "s\0", 0x1)       = 1 0
read_nocancel(0x5, "d\0", 0x1)       = 1 0
read_nocancel(0x5, "f\0", 0x1)       = 1 0
read_nocancel(0x5, "\n\0", 0x1)      = 1 0

С этим знанием очень легко адаптировать скрипт.

$ diff sshkeysnoop.d{.orig,}
40c40
< syscall::exec:return, syscall::exece:return
---
> syscall::execve:return
51c51
< syscall::open:entry, syscall::open64:entry
---
> syscall::open:entry
58c58
< syscall::open:return, syscall::open64:return
---
> syscall::open:return
68c68
< syscall::read:entry
---
> syscall::read_nocancel:entry
75c75
< syscall::read:return
---
> syscall::read_nocancel:return
1 голос
/ 09 сентября 2011

OS X не имеет тест DTrace syscall :: exec.У него действительно есть системный вызов :: execve.Точно так же он не имеет syscall :: open64, который также используется в этом скрипте.Однако даже при замене exec на execve и удалении open64 скрипт работает неправильно.

0 голосов
/ 11 апреля 2014

Также убедитесь, что вы загружаете с опцией all

kldload dtraceall

, а не просто

kldload dtrace

, иначе системные вызовы не будут загружаться.

...