Hacker基础之Linux篇:基础Linux命令九

PS

这个命令用于查询当前运行进程的信息,如果是非root用户最好加上sudo来执行~


查询所有正在运行的进程

ps -ef

或者精确一点,查询运行着nginx的进程

ps -ef | grep nginx

以完整的格式显示进程

ps -ajx

top

top命令显示各进程的信息,包括占内存和占CPU的情况


这个命令直接执行就行了

top

lsof

lsof(list open files)是一个列出当前系统打开文件的工具


Linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件


所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口


因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的

lsof命令使用介绍:
命令格式:lsof [options] filename
命令功能:列出当前系统打开文件的工具
命令的常用参数选项说明
<filename> 显示开启文件<filename>的进程
-c <name> 显示<name>进程现在打开的文件
-c -p PID 列出进程号为PID的进程所打开的文件
lsof -g GID 显示归属GID的进程情况
+d PATH  显示目录下被进程开启的文件
+D PATH  同上,但是会搜索目录下的目录,时间较长
-d NUM 显示使用fd为NUM的进程
-i 用以显示符合条件的进程情况
-i [4/6] [protocol][@hostname|hostaddr][:service|port]
4/6  IPv4 or IPv6
protocol   TCP or UDP
hostname  Internet host name
hostaddr    IP地址
service   /etc/service中的service name (可以不止一个)
port    端口号 (可以不止一个)

常用的情景如下

1、恢复删除的文件,当你的计算机被黑客攻击之后,黑客离开之前清除了所有的日志,怎么办


例如文件/var/log/messages


我们可以这样做


首先使用lsof来查看当前是否有进程打开/var/logmessages文件

# lsof | grep /var/log/messages 
syslogd 1283 root 2 REG 3,3 5381017 1773647 /var/log/messages (deleted)

从上面的信息可以看到PID 1283(syslogd)打开了文件,而且文件描述符为2


同时还可以看到/var/log/messages已经标记被删除了


因此我们可以在/proc/1283/fd/2fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下

# head -n 10 /proc/1283/fd/2 
Aug 4 13:50:15 holmes86 syslogd 1.4.1: restart. 
Aug 4 13:50:15 holmes86 kernel: klogd 1.4.1, log source = /proc/kmsg started. 
Aug 4 13:50:15 holmes86 kernel: Linux version 2.6.22.1-8 (root@everestbuilder.linux-ren.org) (gcc version 4.2.0) #1 SMP Wed Jul 18 11:18:32 EDT 2007 Aug 4 13:50:15 holmes86 kernel: BIOS-provided physical RAM map: Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 0000000000000000 - 000000000009f000 (usable) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 0000000000100000 - 000000001f7d3800 (usable) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 000000001f7d3800 - 0000000020000000 (reserved) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 00000000e0000000 - 00000000f0007000 (reserved) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 00000000f0008000 - 00000000f000c000 (reserved)

可以看出文件还在


然后我们可以这样恢复

cat /proc/1283/fd/2 > /var/log/messages

2、显示当前进程打开了哪些文件,比如我们服务器被黑客植入了一个挖矿的木马,假设这个木马的进程号是30297我们怎么去找到这个木马的源文件在哪里,可以这样

lsof -p 30297

3、之后,我们分析这个文件发现了一个恶意域名,为了确定系统中是否还有隐藏木马,我们可以这样查看有哪些进程链接到了这个域名

lsof -i UDP@213162837.yyt.com:1230

或者是TCP

lsof -i TCP@213162837.yyt.com:1230 -r
-r  表示不断的查看
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值