云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

linux被入侵如何溯源

在Linux系统中,lsof(list open files)是一个非常实用的命令,它可以帮助我们在Linux系统中,lsof(list open files)是一个非常实用的命令,它可以帮助我们查看系统中打开的文件、目录、设备等信息,当系统被入侵后,日志文件可能会被删除或篡改,这时候我们可以使用lsof命令来恢复被删除的日志,本文将详细介绍如何使用lsof命令恢复被删除的日志。

lsof命令简介

lsof(list open files)是一个列出当前系统打开文件的工具,在Linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件,所以如同其名字一样,lsof 全称 list open files,即:列出当前系统打开的文件。

lsof命令的基本用法

lsof命令的基本用法如下:

lsof [选项] [文件名]

选项可以是以下之一:

-a:表示同时搜索所有文件系统。

-d:表示搜索指定文件描述符。

-g:表示搜索指定进程组ID。

-i:表示搜索指定网络接口。

-n:表示不解析主机名,以数字形式显示IP地址。

-p:表示搜索指定进程ID。

-t:表示搜索指定类型的文件。

-u:表示搜索指定用户。

-x:表示搜索指定程序。

-c:表示搜索指定字符设备。

-b:表示搜索指定块设备。

-e:表示搜索指定套接字。

-f:表示搜索指定文件类型。

-l:表示搜索指定符号链接。

-L:表示搜索指定符号链接的目标。

-m:表示搜索指定内存映射。

-o:表示搜索指定文件系统对象类型。

-s:表示搜索指定文件大小。

-S:表示搜索指定文件状态。

-D:表示搜索指定挂载点。

-P:表示搜索指定命名空间。

-N:表示不解析主机名,以数字形式显示IP地址和端口号。

-q:表示静默模式,只输出匹配的文件描述符。

-Q:表示严格模式,只输出匹配的文件描述符。

-h:表示显示帮助信息。

-v:表示显示详细输出信息。

-z:表示关闭安全检查,用于调试。

-Z:表示关闭SELinux安全策略,用于调试。

-F:表示根据指定的条件过滤输出结果。

-r:表示递归搜索子目录。

-R:表示递归搜索子目录并显示详细信息。

-L1:表示只显示一个匹配结果。

-L2:表示只显示两个匹配结果。

-L3:表示只显示三个匹配结果。

-L4:表示只显示四个匹配结果。

-L5:表示只显示五个匹配结果。

-L6:表示只显示六个匹配结果。

-L7:表示只显示七个匹配结果。

-L8:表示只显示八个匹配结果。

-L9:表示只显示九个匹配结果。

-L0:表示不限制匹配结果的数量。

-T<类型>:表示设置输出结果的格式为指定的类型,如txt、csv等。

-O<输出格式>:表示设置输出结果的格式为指定的格式,如csv、json等。

-W<宽度>:表示设置输出结果的宽度为指定的值,如10、20等。

-X<扩展>:表示设置输出结果的扩展为指定的值,如comma、tab等。

-Y<分隔符>:表示设置输出结果的分隔符为指定的值,如逗号、制表符等。

-H<标题行>:表示设置输出结果的标题行为指定的值,如yes、no等。

-I<列索引>:表示设置输出结果的列索引为指定的值,如1、2等。

-J<JSON格式>:表示设置输出结果的JSON格式为指定的值,如pretty、compact等。

-K<键值对>:表示设置输出结果的键值对为指定的值,如key=value等。

-M<最大行数>:表示设置输出结果的最大行数为指定的值,如10、20等。

-C<颜色>:表示设置输出结果的颜色为指定的值,如red、green等。

-A<别名>:表示设置输出结果的别名为指定的值,如alias1、alias2等。

-B<过滤器>:表示设置输出结果的过滤器为指定的值,如filter1、filter2等。

-G<分组>:表示设置输出结果的分组为指定的值,如group1、group2等。

-N<名称>:表示设置输出结果的名称为指定的值,如name1、name2等。

-S<排序方式>:表示设置输出结果的排序方式为指定的值,如asc、desc等。

-U<用户名>:表示设置输出结果的用户名为指定的值,如user1、user2等。

-V<版本号>:表示设置输出结果的版本号为指定的值,如v1.0、v2.0等。

-W<警告级别>:表示设置输出结果的警告级别为指定的值,如warning、error等。

-Z<压缩方式>:表示设置输出结果的压缩方式为指定的值,如gzip、bzip2等。

-a<附加参数>:表示设置附加参数为指定的值,如param1、param2等。

使用lsof命令恢复被删除日志的方法

当系统被入侵后,日志文件可能会被删除或篡改,这时候我们可以使用lsof命令来恢复被删除的日志,具体方法如下:

1、我们需要找到被删除日志文件所在的目录,可以使用find命令来查找被删除的文件,例如查找/var/log目录下被删除的文件,可以使用以下命令:

find /var/log -type f -deleted -print | xargs lsof -n | grep deleted > deleted_logs.txt

2、我们可以使用grep命令来过滤出被删除日志文件的信息,例如查找被删除的syslog日志文件,可以使用以下命令:

grep 'syslog' deleted_logs.txt > syslog_deleted.txt

3、接下来,我们可以使用ls命令来查看被删除日志文件的inode号,例如查看syslog_deleted.txt文件中被删除日志文件的inode号,可以使用以下命令:

cat syslog_deleted.txt | grep inode | awk '{print $9}' > inode_list.txt

4、我们可以使用inotifywait命令来监控被删除日志文件所在的目录,当有新的日志文件创建时,我们可以将其恢复到原来的位置,例如监控/var/log目录并恢复被删除的syslog日志文件,可以使用以下命令:

while true; do inotifywait -e create /var/log; done | while read path action file; do if [ -e /var/log/syslog_deleted.txt ] && grep -q "${file}" /var/log/syslog_deleted.txt; then mv "${path}" /var/log/syslog; fi; done & disown %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %1; wait %1; kill %
打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《linux被入侵如何溯源》
文章链接:https://www.yunzhuji.net/jishujiaocheng/6974.html

评论

  • 验证码