应急响应笔记

最近遇到的安全事件很多,但排查出原因的很少,在这个过程也学到了很多东西,记录一下,以便下次在遇到安全事件的时候,能够快速的分析。

溯源思路

最近遇到的安全事件,被入侵原因主要两种

  • ssh登录入侵:ssh密码爆破入侵,ssh密钥登录入侵,查secure日志
  • web漏洞入侵:如 showdoc漏洞,gitlab 漏洞,查web access.log

排查思路

查进程

在排查过程中有时会忽略进程,因为觉得入侵者会隐藏进程,但经过多次事件后,发现进程是隐藏不了的,是自己看的不够仔细。
以下两个命令,都可以查看所有进程,区别在于:
如果想查看进程的CPU占用率和内存占用率,可以使用aux
如果想查看进程的父进程ID和完整的COMMAND命令,可以使用ef

ps -ef
ps -aux

为了更好的判断是否有异常进程,还可以查看所有进程的可执行文件,加入有tmp文件什么的就很可疑。

ls -al /proc/*/exe

或者查某个可疑进程的可执行文件

ls -al /proc/pid/exe

查到可以文件,可计算一下md5值,去威胁情报平台进行查询

md5sum /tmp/.tmp

遇到无文件攻击的情况,
可使用 lsof :列出当前系统打开文件的工具。
常见用法

通过某个进程号显示该进行打开的文件
 
lsof -p 1
 
列出多个进程号对应的文件信息
 
lsof -p 123,456,789
 
 列出除了某个进程号,其他进程号所打开的文件信息
 
lsof -p ^1
 
列出所有的网络连接
 
lsof -i

列出所有tcp 网络连接信息
 
lsof  -i tcp/udp
 
列出谁在使用某个端口
 
lsof -i :3306
 
列出谁在使用某个特定的udp端口
 
lsof -i udp:55
 
特定的tcp端口
 
lsof -i tcp:80
 
列出某个用户的所有活跃的网络端口
 
lsof  -a -u test -i
 

查看谁正在使用某个文件
 
lsof   /filepath/file
 
递归查看某个目录的文件信息
 
lsof +D /filepath/filepath2/
 
备注: 使用了+D,对应目录下的所有子目录和文件都会被列出
 
比使用+D选项,遍历查看某个目录的所有文件信息 的方法
 
lsof | grep ‘/filepath/filepath2/’
 
列出某个用户打开的文件信息
 
lsof  -u username
 列出某个程序所打开的文件信息
lsof -c mysql 
备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成lsof | grep mysql,但是第一种方法明显比第二种方法要少打几个字符了
 
 列出多个程序多打开的文件信息
 lsof -c mysql -c apache
  列出某个用户以及某个程序所打开的文件信息
lsof -u test -c mysql
 列出除了某个用户外的被打开的文件信息
 
lsof   -u ^root
 
备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示
 

列出所有网络文件系统
 
lsof -N
 
域名socket文件
 
lsof -u
 
某个用户组所打开的文件信息
 
lsof -g 5555
 
根据文件描述列出对应的文件信息
 
lsof -d description(like 2)
 
根据文件描述范围列出文件信息
 
lsof -d 2-3

当通过查看进程或 lsof发现可疑文件时,假如磁盘中能找到该文件,应使用stat命令,查看文件创建相关信息,为溯源提供线索。

stat aa.tmp

如果不是无文件攻击,可用find 去找通过进程定位出的恶意文件,并计算md5值
xargs:捕获前一个命令的输出,作为后一个名令的输入。

find /tmp -name ".*" | grep ".tmp_" | xargs -i md5sum {}

假如磁盘中使用ls -a找不到进程对应的文件,则可先使用df 查看文件系统

df

假如查文件系统为 /dev/vda1 然后利用debugfs 查看对应文件的信息

debugfs /dev/vda1 -R "stat /tmp/.tmp_hIyaG4WFgIX8uP4cVjjbu"

查加载到内核的进程:

**lsmod 显示已经加载到内核中的模块的状态信息。**
遍历/proc目录中所有正在运行的进程,
ls -alR /proc/*/exe 2> /dev/null | grep memfd:.*(deleted)

/dev/null是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。
2>/dev/null的意思就是将标准错误stderr删掉。

查登录日志

查secure 日志

less /var/log/secure | grep Accept | grep "Jul 16" 

查看secure日志中的ip并
sort -n 纯数字排序输出
sort -u去重输出
uniq -c 计算每行连续出现的次数

cat /var/log/secure  | grep 'Failed password' | grep -oE "\d+\.\d+\.\d+\.\d+" | sort -n | uniq -c 
less /var/log/secure | grep Accept | less

如果发现异常登录,还要查.ssh文件看攻击者是否写入公钥

cd .ssh
cat authorized_keys

除了查日志,还可使用命令查最近登录记录。
last:用于显示用户最近登录信息。
单独执行 last 指令,它会读取位于 /var/log/目录下,名称为 wtmp 的文件,并把该文件记录登录的用户名,全部显示出来。
显示前5行,最后一列显示主机ip地址。

 last -n 5 -a -i

lastb列出登入系统失败的用户相关信息。
单独执行 lastb 指令,它会读取位于 /var/log 目录下,名称为 btmp 的文件,并把该文件记录登入失败的用户名,全部显示出来。

查历史命令

history
cat /root/.bash_history
cat /home/kxl/.bash_history

还可以查 messages日志。

查计划任务

sudo crontab -l
ls /etc/crontab
ls /var/spool/cron

查网络连接

netstat -atlp

-a或--all 显示所有连线中的Socket。
-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
-c或--continuous 持续列出网络状态。
-C或--cache 显示路由器配置的快取信息。
-e或--extend 显示网络其他相关信息。
-F或--fib 显示路由缓存。
-g或--groups 显示多重广播功能群组组员名单。
-h或--help 在线帮助。
-i或--interfaces 显示网络界面信息表单。
-l或--listening 显示监控中的服务器的Socket。
-M或--masquerade 显示伪装的网络连线。
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
-o或--timers 显示计时器。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。
-r或--route 显示Routing Table。
-s或--statistics 显示网络工作信息统计表。
-t或--tcp 显示TCP传输协议的连线状况。
-u或--udp 显示UDP传输协议的连线状况。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
-w或--raw 显示RAW传输协议的连线状况。
-x或--unix 此参数的效果和指定"-A unix"参数相同。
--ip或--inet 此参数的效果和指定"-A inet"参数相同。

关闭可疑网络连接对应的进程:

lsof -i:port

找到对应进程

kill -9 pid

常见工具

busybox

wget  https://busybox.net/downloads/binaries/1.30.0-i686/busybox
chmod 755 busybox

hm
https://www.shellpub.com/doc/hm_linux_usage.html

wget -O /opt/hm-linux.tgz http://dl.shellpub.com/hm/latest/hm-linux-amd64.tgz?version=1.7.0

深信服 webshell查杀

https://edr.sangfor.com.cn/#/introduction/wehshell
chmod u+x wscan
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
./wscan -hrf /www/wwwroot/app_805ds_com


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值