应急响应


应急响应

我们应急响应,要从渗透测试的角度来思考,因为自我接触信息安全以来,攻防之中,大部分是攻击,俗话说得好,兵法之,未知攻,焉知防。

信息收集,第一步,最常见的必然是开放的端口,端口呢等同于服务,那么还有什么呢,账号,密码

为了捋清楚,做一个归纳

虽然windows和Linux系统不为相同,但其攻击的流程或手段都以端口服务、账号、web、系统或应用的版本缺陷为缺口,只要能找到这个缺口,那么这个系统就防守不住了。

作为Linux,Linux有着更强的安全性。

防守方

Ax 应急响应W+L防守共性

一、账号安全

排查账号信息 /etc/passwd /etc/group /etc/shadow net user

shadow影子文件解释

用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留

弱口令问题

未授权访问

入侵排查

1、查询特权用户特权用户(uid 为 0)

awk -F: '$3==0{print $1}' /etc/passwd

2、查询可以远程登录的帐号信息

awk '/$1|$6/{print $1}' /etc/shadow

3、除 root 帐号外,其他帐号是否存在 sudo 权限。如非管理需要,普通帐号应删除 sudo 权限

more /etc/sudoers | grep -v "^#|^$" | grep "ALL=(ALL)"

4、禁用或删除多余及可疑的帐号

usermod -L user 禁用帐号,帐号无法登录,/etc/shadow 第二栏为 ! 开头

userdel user 删除 user 用户

userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除

二、监视系统

1.进程 netstat -an

2.端口 ps

3.服务 etc/init.d

4.远程登入 whoamifuck2 /var/log/auth.log lastb last

5.计划任务 crontab

6.日志文件 /var/log/ more /etc/rsyslog.conf 可按需所查 eventvwr.msc 中间件的日志

7.历史命令

8.系统状态


2.1 进程

lsof

查看用户启动什么进程

lsof -u root

fgrep

查看命令所在进程

fgrep ls

ps

查看进程信息

ps -ef or ps -aux

根据进程名查找端口信息

ps -ef | grep tomcat

根据进程id查看进程信息

ps -ef | grep 1095

根据进程id杀死进程

kill -9 1095

netstat

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

netstat -anp

根据进程id查找端口

netstat -nap | grep 1095

2.2 端口

查看端口信息

netstate -a

查看端口是那个进程打开的

lsof -i:8080

还有一种方法查看根据端口查看进程信息

netstat -tunlp | grep 8080

2.3 服务

查看服务或进程是否存在

ps -aux | grep xxx 

利用services命令

service 服务名 status  # 查看服务状态
service -–status-all  # 查看所有服务

利用chkconfig配置工具:注意,ubuntu或debian没有这个命令

​ 1.查看单个服务的运行状态:

​ chkconfig 服务名 status

​ 2.查看所有服务的运行状态

​ chkconfig –list

​ 3.关闭或开启服务状态:

​ chkconfig –level 345 nscd off/on

​ 3.关闭或开启服务状态:

​ chkconfig –level 345 nscd off/on

​ 4.增加服务:

​ chkconfig –add xxx ( 注意:服务脚本必须存放在 /etc/init.d/目录下)

​ 如mysqld

​ [root@www mysql-5.1.59]#cp support-files/mysql.server etc/init.d/mysqld

​ chkconfig mysqld on (各等级为ON,各等级为2345等级)

​ 这样就会以系统服务的形式启动了
​ 5.删除服务:
​ chkconfig –del XXX
​ runlevel 查看当前等级。

查看服务文件

/etc/init.d目录下

2.4 用户登入

last、lastb、lastlog

分别为用户登入成功最后一次、失败、成功的用户

whoamifuck2

github开源shell脚本,用户入侵检测排查工具

2.5 计划任务

crontab

查看计划调度表

crontab -l or crontab -e # -e 为edit编辑状态

2.6 日志分析

安全日志 /var/log/secure 安全日志secure包含验证和授权方面信息
用户信息 /etc/passwd
命令执行记录 ~/.bash_history
root邮箱 /var/spool/mail/root
中间件日志(Web日志access_log)
登陆日志(可直接使用命令调取该信息,对应命令last/lastb)
cron(定制任务日志)日志 /var/log/cron
其他日志 redis、sql server、mysql、oracle等

2.7 历史命令

~/.bash_history

保存十万条命令

sed -i 's/^HISTSIZE=1000/HISTSIZE=100000/g' /etc/profile

清除历史命令

history -c

入侵排查

进入用户目录下

cat .bash_history >> history.txt

2.8 系统状态

top

stat

这个太多了,可以参考系统信息收集一文

三、加固

总的思路

账号的管理

禁用root用户

权限的管理

禁止sudo

系统的管理

禁止写入

服务的管理

禁止远程

Bx Windows应急响应

Windows 系统的缺陷较大,所以将应急响应事件分为四类

  • 病毒、木马、蠕虫事件
  • Web 服务器入侵事件 或 安装的第三方服务入侵事件。
  • 系统入侵事件,如利用 Windows 的漏洞攻击入侵系统、利用RDP服务弱口令入侵,跟 Web 入侵有所区别,Web 入侵需要对 Web 日志进行分析,系统入侵只能查看 Windows 的事件日志。
  • 网络攻击事件(DDoS、ARP、DNS 劫持等)

入侵排查思路
web入侵:对中间价日志进行分析
系统入侵:计划任务,系统爆破痕迹(系统日志),进程进行分析
网络攻击:流量分析

攻击方视觉

未授权访问或弱口令:Redis未授权访问、Docker API未授权访问,Hadoop Yarn 未授权访问、NFS未授权访问、Rsync弱口令、PostgreSQL弱口令、Tomcat弱口令、SSH弱口令、Telnet弱口令、Windows远程桌面弱口令,mysql弱口令;

远程命令执行漏洞:WebLogic XML 反序列化漏洞、Jenkins反序列化、Jboss远程代码执行、Spring远程代码执行、ElasticSearch命令执行、永恒之蓝、Struts2系列漏洞、常见CMS的远程命令执行漏洞;

ssh爆破:Linux主机常常由ssh爆破攻入挖矿所以一定要避免弱口令以及规律性的密码。

Cx Linux应急响应

Linux 常用命令

  • find / -name *.jsp #根目录下所有.jsp后缀文件
  • find -type f -mtime -3 #最近3天修改过的文件
  • find -type f -ctime -3 #最近3天创建的文件
  • grep -nv ‘root’ /etc/passwd # 过滤出不带有某个关键词的行并输出行号
  • grep -nr root / # 查看根目录下 含有root信息的文件,并标注行号
  • grep -nr -v “404” ./ | grep -E “.jsp | .jspx” | more #查看根目录下后缀为.jsp .jspx文件,并从大到小排列
  • head /etc/passwd #显示文件前十行
  • tail -f 文件名 # 实时展示文件内容
  • awk -F “ “ ‘{print $1}’ access.log| sort|uniq -c|sort -nr #对access.log日志进行分析,筛查提取访问IP 从大到小排序,并提示访问次数
  • lsof -u root #查看某个用户启动了什么进程
  • lsof -i:8080 # 某个端口是哪个进程打开的
  • lastb #登录失败记录:/var/log/btmp
  • lastlog #最后一次登录:/var/log/lastlog
  • last #登录成功记录: /var/log/wtmp
  • crontab -l #查看计划任务是否有恶意脚本或者恶意命令
  • netstat -anp #a参数是列出所有连接,n是不要解析机器名,p列出进程名
  • ps -ef / ps -aux #查看进程信息
  • top # 查看进程cpu占比(动态任务,可实时查看最高cpu占有率)
  • stat # 查看某个文件是否被修改过

Dx 参考

[1] https://blog.csdn.net/zycdn/article/details/106532794

[2] https://mp.weixin.qq.com/s/f38CmhZCXPvz5P-c17z-Bw

[3] https://www.cnblogs.com/moy25/p/8668432.html

[4] https://www.cnblogs.com/zyh0430/p/11877674.html

[5] https://enomothem.cn/posts/5fe1.html

[6] https://enomothem.cn/posts/f7f.html

[7] https://blog.csdn.net/jihaichen/article/details/86756008?


文章作者: Enomothem
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Enomothem !
  目录