所以最近我发现有人在未经同意的情况下使用了我的电脑,浏览文件夹等......
我可以立即更改所有密码,但我很好奇入侵者正在寻找什么。所以我想设置一个陷阱(邪恶的笑容)。
什么软件可以监控我的计算机上的任何活动?虽然我知道捕获我的屏幕在这里可以工作。我宁愿使用日志文件。
例如:
/var/log/activity.log
[2010年8月1日20:23] /usr/bin/thunar 访问/multimedia/cctv-records/
[2010年8月1日20:25] /usr/bin/mplayer 访问/multimedia/cctv-records/00232.avi
[8月3日2010 02:34] /usr/bin/thunderbird 运行
[3 Aug 2010 03:33] 来自 12.32.132.123 的传入 ssh 会话
我想记录的活动是:
- 访问文件系统上的文件和文件夹
- 命令运行(从控制台或其他方式)
- 用户会话(登录、ssh 会话和失败的尝试)
答案1
您可以使用内核机制inotify
来监视访问的文件。
首先你应该检查是否inotify
在内核中打开:
pbm@tauri ~ $ zcat /proc/config.gz | grep CONFIG_INOTIFY
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
接下来要做的就是安装inotify-tools
。您可以在以下位置找到各种发行版的说明:项目页面- 它应该位于所有主要发行版的存储库中。
之后 inotify 就可以开始工作了:
inotifywait /dirs/to/watch -mrq
(m
= 发生一个事件后不退出,r
= 递归,q
= 安静)
例如 - 之后输出ls /home/pbm
pbm@tauri ~ $ inotifywait /bin /home/pbm -mq
/bin/ OPEN ls
/bin/ ACCESS ls
/bin/ ACCESS ls
/home/pbm/ OPEN,ISDIR
/home/pbm/ CLOSE_NOWRITE,CLOSE,ISDIR
/bin/ CLOSE_NOWRITE,CLOSE ls
重要的是正确设置监视目录:
- 不要
/
递归地观看 - 有很多读/写/dev
和/proc
- 不要递归地查看您的主目录 - 当您使用应用程序时,会对应用程序配置目录和浏览器配置文件目录进行大量读/写操作
其中/proc/sys/fs/inotify/max_user_watches
有一个配置选项,显示可以同时观看多少个文件。默认值(对于 Gentoo)大约不是那么高,所以如果你将 watcher 设置为/home/
你可能会超出限制。您可以通过使用echo
(需要 root 访问权限)来增加限制。
echo 524288 > /proc/sys/fs/inotify/max_user_watches
但在此之前你应该阅读该变化的后果。
您可能感兴趣的选项:
-d
= 守护进程模式-o file
= 输出到文件--format
= 用户指定的格式,更多信息见man inotifywait
-e EVENT
= 应监视什么事件(例如access
、modify
等,更多信息见man
)
答案2
另一个人对你有兴趣吗?如果他有物理访问权限或 root 访问权限,他就可以删除所有痕迹,甚至植入一个 bug 来监视你。另一方面,有些痕迹抹去是很痛苦的,而且很难把一切都想起来。
系统日志中已经记录了各种内容,通常位于/var/log
(某些系统使用不同的位置,例如/var/logs
或/var/adm
)。在正常配置下,所有登录和安装都会被记录。如果您担心日志被删除,您可以设置远程日志记录(如何执行此操作取决于系统日志实现,但通常只需在发送方和接收方的配置文件中更改一两行)。
如果您或您的发行版尚未禁用此功能,则每个文件都有一个存取时间(“atime”) 每当读取文件时都会更新。 (如果使用noatime
或选项挂载文件系统relatime
,则 atime 不会更新。)可以使用 伪造 atime touch -a
,但这会更新 ctime,因此会留下痕迹。 (即使是 root 也无法直接删除此痕迹,您需要绕过文件系统代码。)
各种程序都有一个会话历史记录。如果入侵者记得这样做,那么很容易删除或伪造。 Bash 保留~/.bash_history
,浏览器倾向于在其配置文件目录中写入大量内容,等等。您还可能在~/.xsession-errors
或/var/log/Xorg.0.log
或其他与系统相关的位置发现明显的错误或警告。
许多大学都有一个流程会计¹ 功能。例如,参见GNU 会计实用程序手册, 中的条目FreeBSD手册或者Linux 指南或者Solaris 指南。一旦启用,它会记录用户何时启动什么进程(它记录execve
调用),甚至可能更多。它没有记录很多有趣的信息,例如进程访问的文件。
如果你想监控对文件系统的所有访问,你可以通过记录文件系统。如果这个人想看的话,很容易被注意到。
有更全面的日志记录程序,但它们可能需要额外的内核支持。在 Solaris、FreeBSD、NetBSD 和 Mac OS X 上,有跟踪(有一个 Linux 移植正在进行中,但我不知道它是否已达到可用阶段)。您还可以通过系统调用接口跟踪特定进程ptrace
,例如strace
在 Linux 上;它可能会导致明显的减速。
¹维基百科中没有的内容?不,那是疯狂的言论。
答案3
答案4
假设攻击者足够天真,您可以简单地放入script -qft $USER-$$ 2> $USER-$$-time
他/您适当的登录脚本来监视他或她的终端交互并使用适当的 scriptreplay 命令重放。
要监视文件级访问,我建议将strace -fe open
适当的日志记录附加到 sshd 并过滤登录会话(或者最好从 进行此操作。警告:巨大的输出,因为在现代系统上执行任何操作都会涉及到很多文件数量。如果您只想监视特定文件,请查看审计及其支持基础设施。
可以根据其他答案从系统日志中收集会话和登录尝试。