目录

  • 查看当前登录用户
  • 查看进程
    • top
    • 查看所有进程 ps
    • 如果top和ps都找不到异常进程
    • 查看进程树 pstree
    • 系统进程管理器 top
    • 查看后台进程 jobs
    • 把进程放入后台的方法
  • 终止进程
    • 杀死单一进程 kill
    • 杀死一类进程 killall
  • 列出进程打开或使用的文件
  • 系统定时任务
    • at
      • 如何查看全部用户的at手动编辑的任务?
    • crontab
    • 身份绑定
    • 手工编辑定时任务
      • 如何查看全部用户的cronatab手动编辑的任务?
    • 系统配置文件编辑定时任务
  • 开启启动任务

未完待续……
把一些有用的命令记录下来,后期需要用到的时候就过来查询吧。这篇文章没啥营养,就当个字典用吧。

查看当前登录用户

w

查看登录用户数、IP、运行命令

查看进程top

最常用的方法

查看所有进程 ps

两个命令功能一样的,写法不一样而已;

ps aux# BSD操作系统格式

参数:

  • a
  • u
  • x

ps -le# linux标准命令格式

参数:

  • l
  • e

如果top和ps都找不到异常进程

可以试试unhide命令,这个需要安装一下,有时候网络问题会安装失败,需要更换源或者代理试试。

Unhide 通过下述三项技术来发现隐藏的进程。

  1. 进程相关的技术,包括将 /proc 目录与 /bin/ps 命令的输出进行比较,发现有不一致的就输出,查看是否是隐藏进程。
  2. 系统相关的技术,包括将 /bin/ps 命令的输出结果同从系统调用方面得到的信息进行比较。
  3. 穷举法相关的技术,包括对所有的进程 ID 进行暴力求解。(该技术仅限于在基于 Linux2.6 内核的系统中使用)
$ sudo unhide -hUnhide 20130526Copyright © 2013 Yago Jesus & Patrick GouinLicense GPLv3+: GNU GPL version 3 or laterhttp://www.unhide-forensics.infoNOTE : This version of unhide is for systems using Linux >= 2.6Usage: unhide [options] test_listOption :   -V          Show version and exit   -v          verbose   -h          display this help   -m          more checks (available only with procfs, checkopendir & checkchdir commands)   -r          use alternate sysinfo test in meta-test   -f          log result into unhide-linux.log file   -o          same as '-f'   -d          do a double check in brute testTest_list :   Test_list is one or more of the following   Standard tests :      brute      proc      procall      procfs      quick      reverse      sys   Elementary tests :      checkbrute      checkchdir      checkgetaffinity      checkgetparam      checkgetpgid      checkgetprio      checkRRgetinterval      checkgetsched      checkgetsid      checkkill      checknoprocps      checkopendir      checkproc      checkquick      checkreaddir      checkreverse      checksysinfo      checksysinfo2      checksysinfo3

查看进程树 pstree

查看进程的父子关系

pstree

参数:

  • p
  • u

查看是否有别人连接
查看sshd远程连接进程是否有别人连接

pstree | grep sshd

系统进程管理器 top

linux的系统进程管理器

top

默认刷新是每3秒刷新一次,
木马在大量发包时肯定会造成资源的消耗,通过排序可以发现了顶部进程有大量的嫌疑,

和ps 的区别是,top能做命令交互。

-d-b-n?/hPMNq

查看后台进程 jobs

放入后台的进程都是长时间运行的进程,且不需要在和用户交互。

jobs
  • l

/+ 刚进入后台的进程
/- 倒数第二个进入后台的进程
Stopped 表示该进程暂停了
Running 表示该进程在运行
Done 表示该进程执行结束

把进程放入后台的方法

方法1:

  • python a.py &
  • 运行起来之后按下 ctrl+z,放在后台暂停。
    这种关闭了当前的shell窗口,后台的任务也会结束。

方法2:crontab -e
写定时任务

方法3:nohup 命令

终止进程杀死单一进程 kill

kill

杀死一类进程 killall

杀死一类进程,比如apache每连接一个用户就是一条线程,同类进程太多时,单一操作效率就很慢了,需要一类(批)操作

killall & pkill

列出进程打开或使用的文件

lsof

系统定时任务

查看系统定时任务,有没有可疑进程。定时任务的命令都需要确认是否安装,是否有权限(访问控制文件)。

at

一次性定时任务

atq
查看当前一次性的定时任务列表

at -c 【任务编号】
at任务的具体执行内容

atrm [工作号]
删除指定的at任务

如何查看全部用户的at手动编辑的任务?

如果atq是由root执行,则将列出系统中所有没有执行的Unix at命令。然后可以使用atrm命令根据atq输出Job号来删除at作业。

crontab

循环定时任务,游戏服务器,需要每个月固定重启让服务器状态回归良好;

身份绑定

crontab是需要绑定当前用户的身份。
root能编辑root的,hack能编辑hack的,不能串 低权限用户也不能执行高权限命令。

手工编辑定时任务

crontab -e
编辑定时任务

如何查看全部用户的cronatab手动编辑的任务?

root权限
cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}

系统配置文件编辑定时任务

root可以编辑/etc/crontab 这个配置文件,

或者用系统定义好的时,天,周,月配置文件来加定时任务
/etc/cron.hourly
/etc/cron.daily
/etc/corn.weekly
/etc/cron.monthly

/var/spool/anacron 是新版的 centOS6.0后启用,添加的功能是,如果一些故障(关机了),anacron的主机在恢复正常后,会立即恢复工作
这4个文件的定时任务就能在规定时间点重新执行起来 补回机制不知道:
/etc/cron.hourly
/etc/cron.daily
/etc/corn.weekly
/etc/cron.monthly

crontab -l
查看当前用户的定时任务

crontab -r
删除当前用户的全部定时任务,想删除单个用 -e编辑,一行一行删。

开启启动任务

cd /etc/init.d# 这个目录存放的是一些脚本,一般是linux以rpm包安装时设定的一些服务的启动脚本vim /etc/rc.local# 这个是个配置文件,作为一个shell脚本来编辑,将自己的启动命令编辑到脚本中,无论如何都会被加载/etc/init.d/samba start

因为Linux可以按照不同的场景来选择是否加载,甚至是加载不同的启动脚本,这时就要用rc(0-6)按场景来分:

  • rc0.d
  • rc1.d
  • rc2.d
  • rc3.d
  • rc4.d
  • rc5.d
  • rc6.d

以上也是在应急的时候需要排查的启动项。

另外一个添加启动项的地方在/etc/profile里面,还有 /etc/profile.d/目录下以sh结尾的文件

信息安全从业人员,记录虚与实。 Mysticbinary

Github:https://github.com/Mysticbinary