• HW防守 | Linux应急响应基础


    最近也是拿到了启明星辰的暑期实习offer,虽然投的是安服,但主要工作是护网,昨天在公众号Timeline Sec上看到有一篇关于护网的文章,所以在这里照着人家写的在总结一下,为将来的工作打点基础。

    0x01 技能树

    Linux常用命令

    常见日志的位置以及分析方法

    熟悉常规黑客的攻击手法

    常规安全事件的处置思路

    0x02 Linux常用命令

    查找与文本操作

    1、find

    根目录下所有.jsp后缀文件

    find / -name *.jsp

    最近3天修改过的文件

    find -type f -mtime -3

    最近3天创建的文件

    find -type f -ctime -3


    2、grep、strings、more、head、tail

    过滤出不带有某个关键词的行并输出行号

    grep -nv 'root' /etc/passwd

    -v是对匹配的结果进行反转

    -n是匹配字符串所在文件的行号


    查看根目录下 含有root信息的文件,并标注行号

    grep -nr root /


    查看根目录下后缀为.jsp .jspx文件,并从大到小排列

    grep -nr -v "404" ./ | grep -E ".jsp | .jspx" | more


    显示文件前十行

    head /etc/passwd

    实时展示文件内容

    tail -f 文件名

    3、awk、sort、uniq

    awk的F参数是指定分隔符,print $1意思是打印第一列,sort命令是用来排序的,uniq命令是用来把相邻的重复数据聚合到一起,加个c参数意思就是把重复次数统计出来,为什么先要用sort聚合一次呢,就是因为uniq命令只会聚合相邻的重复数据,最后那个sort命令刚才说了是用于排序的,他的n参数是以数字排序,r参数是倒叙排序

    awk -F " " '{print $1}' access.log| sort|uniq -c|sort -nr

    案例:
    我们以空格为分界线 ($1为第一行)对access.log日志进行分析,筛查提取访问IP 从大到小排序,并提示访问次数。

    系统状态命令

    1、lsof

    查看某个用户启动了什么进程

    lsof -u root

    某个端口是哪个进程打开的

    lsof -i:8080

    2、last、lastb、lastlog

    登录失败记录:/var/log/btmp

    lastb


    最后一次登录:/var/log/lastlog

    lastlog

    登录成功记录: /var/log/wtmp

    last

    3、crontab

    查看计划任务是否有恶意脚本或者恶意命令

    crontab -l

    4、netstat

    a参数是列出所有连接,n是不要解析机器名,p列出进程名

    netstat -anp


    5、ps

    查看进程信息

    ps -ef
    ps -aux


    6、top

    查看进程cpu占比(动态任务,可实时查看最高cpu占有率)

    top


    7、stat

    查看某个文件是否被修改过

    stat


    8、last和lastb(对应日志wtmp/btmp)

    last查看成功登陆的IP(用于查看登陆成功信息)

    登陆用户---连接方式---时间

    lastb查看连接失败的IP(可用于查看爆破信息)

    登陆用户---登陆方式---登陆IP---时间

    0x03 日志分析

    1、安全日志 /var/log/secure
    作用:安全日志secure包含验证和授权方面信息
    分析:是否有IP爆破成功

    2、用户信息 /etc/passwd
    内容含义:注册名、口令、用户标识号、组标识号、用户名、用户主目录、命令解释程序
    分析:是否存在攻击者创建的恶意用户

    3、命令执行记录 ~/.bash_history
    作用:命令执行记录 ~/.bash_history
    分析:是否有账户执行过恶意操作系统命令

    4、root邮箱 /var/spool/mail/root
    作用:root邮箱 /var/spool/mail/root
    分析:root邮箱的一个文件,在该文件中包含大量信息,当日志被删除可查询本文件

    5、中间件日志(Web日志access_log)

    nginx、apache、tomcat、jboss、weblogic、websphere


    作用:记录访问信息
    分析:请求次数过大,访问敏感路径的IP
    位置:/var/log下 access.log文件(apache默认位置)
    位置:/var/log/nginx下 access名称日志(nginx日志位置)
    位置:tomcat、weblogic等日志均存放在安装路径下logs文件下
    访问日志结构:访问IP---时间---请求方式---请求路径---请求协议----请求状态---字节数

    6.登陆日志(可直接使用命令调取该信息,对应命令last/lastb)
    位置:/var/log/wtmp #成功连接的IP信息
    位置:/var/log/btmp #连接失败的IP信息

    7.cron(定制任务日志)日志
    位置:/var/log/cron
    作用:查看历史计划任务(对该文件进行分析调取恶意病毒执行的计划任务,获取准确时间)

    8、history日志
    位置:~/.bash_history
    作用:操作命令记录,可筛查攻击者执行命令信息

    也可用history命令

    history 10(显示最近使用过的10个命令)

    9、其他日志
    redis、sql server、mysql、oracle等
    作用:记录访问信息
    分析:敏感操作

    web日志分析思路:

    寻找Webshell的方法:

    1、文件内容中的恶意函数

    PHP:eval(、system(、assert(
    JSP:getRunTime(、 FileOutputStream(
    ASP:eval(、execute(、 ExecuteGlobal(

    2、Web日志中的webshell特征

    Darkblade:goaction=login
    JspSpy:o=login
    PhpSpy:action=phpinfo
    Regeorg:cmd=connect
    Other:cmd=

    3、贴合Web业务中的url来分析Web日志
    4、每天新增的动态脚本文件
    5、低频访问的脚本文件

    文章来源于Timeline Sec ,作者璠淳

     

  • 相关阅读:
    JVM 内存布局
    线程池总结
    Redis持久化
    Java编程基础
    toString()、String.valueOf、(String)强转
    4 种主流的 API 架构风格对比
    kubernetes 节点设置不可调度
    Linux下如何查看哪些进程占用的CPU内存资源最多
    Linux openssl1.0.2k升级openssl1.1.1e版本教程
    对一些权限题密码的说明
  • 原文地址:https://www.cnblogs.com/zzjdbk/p/13109768.html
Copyright © 2020-2023  润新知