在 CentOS 6 上,我如何知道通过 ssh 以 root 身份登录的人执行了哪些命令?我查看了 /root/.bash_history。我还通过 ssh 登录到我自己并做了历史记录,但我唯一不认识的命令是:
799 kill jetiyeklrb
800 kill 3310
801 top
802 ifconfig -a
803 ifconfig -a | grep 58:91
804 ls -l exe
805 cd /usr/bin
806 ls
807 history
808 ls -l exe
809 exit
背景是,我打开了 CentOS 6 笔记本电脑的远程 SSH。一名黑客暴力破解了我的笔记本电脑的 root 密码并安装了 Unix.Trojan.DDoS_XOR-1 FOUND(这是我从 ClamAV 获得的分类)。我试图弄清楚黑客在我的计算机上做了什么(如果可能的话)。
编辑:我的问题有点不清楚。我问的是,如何知道黑客在我的电脑上做了什么。经过进一步研究,似乎大多数黑客都隐藏了他们的踪迹,所以这可能是不可能的。我放置上述命令的原因是为了显示我查看过的位置和我注意到的内容。我了解每个命令的作用,并且这些命令都不会安装 DDoS_XOR-1 病毒。昨晚我注意到目录 /var/log 中有 2 年的安全日志丢失了。
答案1
我将逐一描述所有命令:
kill jetiyeklrb
尝试终止名为 的进程jetiyeklrb
,但这不是该kill
命令的有效语法。(这可能不是非常熟练的入侵者。)
kill 3310
根据其 PID 推测终止上面提到的进程。
top
检查正在运行的进程,也许是为了确保被终止的进程没有被卡住?
ifconfig -a
打印所有接口的网络接口信息(如 MAC 地址、IP 地址和一些传输统计信息)
ifconfig -a | grep 58:91
仅打印前一个输出中包含的行58:91
,因此可能是 MAC 地址(网络接口硬件地址,用于许多用途,包括局域网唤醒)
ls -l exe
打印名为 的文件(或目录)的详细列表exe
。(也许检查它是否设置了允许执行的权限?)
cd /usr/bin
将目录更改为/usr/bin
,其中存储了所有非必要的可执行二进制文件。
ls
列出当前目录中所有文件的名称(/usr/bin
)。
history
打印最近执行的 1000 个(可配置值)命令。
ls -l exe
再次打印文件(或目录,但给定名称和当前目录,可能是包含您提到的木马的可执行文件)的详细列表exe
,大概是为了检查执行权限。在某些系统上,前面的空格会将其从命令历史记录中排除,但显然不是这个。
exit
退出 SSH。