【2020-05-30】应急响应学习文档

应急响应分为5个阶段,准备->事件检测->抑制->根除->恢复->报告


0x01 基础命令:

1、tar -cvf  .tar  打包不压缩

  tar -zxvf  .tar.gz

  tar -zcvf  .tar.gz  c创建文件

  tar -jcvf  .tar.bz2

  gzip        .gz

2、uniq

  -c 在输出行前面加上每行在文本中出现的次数

    (结合sort一起使用)此参数只针对连续出现的相同行做统计,

    一旦相同内容行中间有其他内容,则中断统计,然后重新对下面的内容进行统计。

  -d  仅显示重复行

  -u  仅显示不重复的行

3、sort

  -b 忽略每行前面开始出的空格符号。

  -n 依照数值大小排序

  -r 以相反的顺序来排序

  -t 指定栏位分隔字符

4、awk

  #cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'

  #cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'

    显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"。

    awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。

  awk -F: '/root/'  /etc/passwd

  搜索含有root关键字的所有行

  awk -F:

  awk -F: '/root/{print $7}' /etc/passwd

  ‘’ 单引号中可以包含命令(action)

5、sed

  sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法

  替换一行中的某部分

  格式:sed 's/要替换的字符串/新的字符串/g'  (要替换的字符串可以用正则表达式)

    # sed -n '/ruby/p' ab | sed 's/ruby/bird/g'    #替换ruby为bird

   # sed -n '/ruby/p' ab | sed 's/ruby//g'        #删除ruby

6、wc

  -l  统计数量

7、cut

8、scp  利用ssh传输文件

  a) 从服务器下载文件到本地

      scp username@servername:/path/filename  /var/www/local_dir(本地目录)

  b)上传本地文件到服务器

      scp /path/filename username@serverip:/path

9、stat  查看文件基本信息 stat filename

  显示文件的mtime、ctime、atime


----------------------------------------------------------

0x02 预备知识:

1、history -c 清除历史命令

2、如果日志在更新,实时查看 tail -f /var/log/messages

                或者 watch -d -n 1 cat /var/log/messages

        -d 表示高亮不同的地方,-n表示多少秒刷新一次。

该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,

这一特性,对于查看日志是非常有效的。如果想终止输出,按 Ctrl+C 即可

3、linux日志文件说明

/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一

/var/log/secure 与安全相关的日志信息

/var/log/maillog 与邮件相关的日志信息

/var/log/cron 与定时任务相关的日志信息

/var/log/spooler 与UUCP和news设备相关的日志信息

/var/log/boot.log 守护进程启动和停止相关的日志消息

/var/log/wtmp

4、LINUX中的七种文件类型

d  目录文件。

l  符号链接(指向另一个文件,类似于瘟下的快捷方式)。

s  套接字文件。

b  块设备文件,二进制文件。

c  字符设备文件。

p  命名管道文件。

-  普通文件,或更准确地说,不属于以上几种类型的文件

=>>>>

*ubuntu/var/log/下各个日志文件,方便出现错误的时候查询相应的log

/var/log/alternatives.log-更新替代信息都记录在这个文件中

/var/log/apport.log -应用程序崩溃记录

/var/log/apt/  -用apt-get安装卸载软件的信息

/var/log/auth.log  -登录认证log

/var/log/boot.log  -包含系统启动时的日志。

/var/log/btmp    -记录所有失败启动信息

/var/log/Consolekit  - 记录控制台信息

/var/log/cpus    - 涉及所有打印信息的日志

/var/log/dist-upgrade  - dist-upgrade这种更新方式的信息

/var/log/dmesg    -包含内核缓冲信息(kernel ringbuffer)。在系统启动时,显示屏幕上的与硬件有关的信息

/var/log/dpkg.log  - 包括安装或dpkg命令清除软件包的日志。

/var/log/faillog    - 包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。

/var/log/fontconfig.log -与字体配置有关的log。

/var/log/fsck    - 文件系统日志

/var/log/faillog  -包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。

/var/log/hp/

/var/log/install/

/var/log/jokey.log

/var/log/kern.log –包含内核产生的日志,有助于在定制内核时解决问题。

/var/log/lastlog —记录所有用户的最近信息。这不是一个ASCII文件,因此需要用lastlog命令查看内容。

/var/log/faillog –包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。

/var/log/lightdm/

/var/log/mail/ – 这个子目录包含邮件服务器的额外日志。

/var/log/mail.err    -类似于上面的

/var/log/news/

/var/log/pm-powersave.log

/var/log/samba/ –包含由samba存储的信息。

/var/log/syss.log

/var/log/speech-dispacher/

/var/log/udev

/var/log/ufw.log

/var/log/upstart/

/var/log/uattended-upgrades/

/var/log/wtmp —包含登录信息。使用wtmp可以找出谁正在登陆进入系统,谁使用命令显示这个文件或信息等。

/var/log/xorg.*.log— 来自X的日志信息

----------------------------------------------------------

0x03 linux下apache日志分析

    a) 找到apache日志的位置(locate apache2)

    b) 查看访问次数最多的10个IP

      awk '{print $1}' access.log|sort|uniq -c|sort -nr|head -n 10

    c) 查看访问的时间

    d) 查看访问最多的页面

      awk '/113.5.x.11/{print $6}{print $7}' access.log|sort|uniq -c |sort -nr

  1、查看apache进程:

      ps -aux|grep 'httpd'       

  2、查看80端口的tcp连接:

      netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l

  3、通过日志查看当天ip连接数:

      cat access_log | grep "19/May/2011" | awk '{print $2}' | sort | uniq -c | sort -nr

  4、用tcpdump嗅探80端口的访问看看谁最高

  tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr

  5、当前WEB服务器中联接次数最多的20条ip地址:

  netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -n -r | head -n 20

  6、查看最近访问量最高的文件

  cat access_log |tail -10000|awk '{print $7}'|sort|uniq -c|sort -nr|less

  tail  -f  xxx.log

---------------------------------------------------------

0x04 mysql日志:

  *主要包含:(修改日志设置,需要到mysql的配置文件my.cnf中进行修改

              或者

              在mysql下执行set global slow_query_log=1;)

    错误日志、查询日志、慢查询日志、事物日志、二进制日志;

        错误日志:默认开启,不可禁止。主机名.err

        查询日志:默认关闭。该日志默认情况下会记录用户所有的操作,包括增删改查等信息。general_log

        慢查询日志:记录执行时间超过指定时间的查询语句。可以找到效率低的查询语句。

        事物日志:(InnoDB特有的日志,存储引擎修改表数据时只需要修改其内存拷贝,再把修改行为记录到事物日志当中)


        二进制日志(变更日志):*log_bin。

              记录修改数据或者有可能引起数据改变的mysql语句,并记录语句发生时间、执行时长、操作的数据等。

              ->查看二进制文件

                  mysql>show binary logs;  显示当前服务器使用的二进制文件及大小

                  mysql>show master logs;  显示主服务器使用的二进制文件的大小

                  mysql>show master status; 当前使用的二进制文件及其所处位置

  *日志的输出位置一般有三种方式:file(文件),table(表),none(不保存);

  *查询日志服务是否开启:

        show global variables like '%log%';

        设置变量:

            (使用set session 变量名=value;即表示只在这个session中生效)

              set global 变量名=value;

  *命令行下查看二进制文件 mysqlbinlog mysql-bin.000017


---------------------------------------------------------

1、检测rootkit:使用chkrootki

2、获取系统日志:

  比较重要的二进制日志文件:

utmp,用w工具访问;

wtmp,用last工具访问;

lastlog,用lastlog工具访问;

进程记账日志,用astcomm工具访问

    在这些日志文件中,最有用的是messages,secure这两个,从日志中我们可以看到哪些时候哪些用户从哪些地方登陆进系统,这对我们的响应取证非常有用

3、检查用户情况

    w  查看当前在线用户

    last  查看历史登录用户

4、查看系统、文件异常

  查看/etc/passwd文件

  查找最近5天内更改的文件: find -type f -mtime 5

  bash_history文件

5、系统状态

  系统服务: chkconfig

  进程:ps -ef  以全格式显示当前所有的进程

      ps -aux  显示以用户为主的格式情况下、不以终端机来区分、包括其他用户的进程的所有程序,。

      ps -aux |grep 'httpd' 查看apache进程

  监听端口:netstat -utnpl

  系统所有端口情况:netstat -ano

你可能感兴趣的:(【2020-05-30】应急响应学习文档)