专栏首页安全泰式柑汁应急响应笔记之Linux篇

应急响应笔记之Linux篇

整理下自己之前做的应急响应相关的碎片笔记,太多了,没办法全部列出来,先整理一些常用的。

1. 系统日志

/var/log/cron :crontab命令日志

/var/log/lastlog:登录用户日志

/var/log/secure:记录登录成功与否(有次在这个文件里面找到了一些关键性的web访问日志。。。)

/var/log/wtmp:记录登录系统成功的账户信息,等同于last

/var/log/utmp:查看当前登录系统的情况,等同于who

/var/log/faillog:记录登录系统不成功的账号信息

history:查看所有历史命令记录

~/.bash_history:黑客可能会使用history -c清除日志,使用cat ~/.bash_history仍可查看相关的记录

/var/log/cups:记录打印信息的日志

/var/log/dmesg:记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息

/var/log/mailog:记录邮件信息

2. 访问日志

web服务器的种类很多,比如apache、tomcat、Nginx等。web访问日志需要根据配置获取,大部分在默认存储位置,比如nginx的在/var/log/nginx目录下。

主要关注两个文件,即access_logerror_log,一般在确定了可疑点之后通过find、grep、xargs、awk等组合命令进一步获取日志信息。

3. 进程

ps -ef:查看可疑进程

top -c:查看资源占有情况,并显示文件路径

lsof -g $GID:通常能找到恶意文件进程关联的lib文件

lsof -p $PID:查看进程详细信息

netstat -anltp | grep $PID:查看进程端口情况

ls -la /proc/$PID/exe:查看进程可执行文件

strace -tt -T -e trace=all -p $PID:跟踪异常进程运行情况

lsof -c $PID:查看进程关联文件

4. 用户

Linux所有用户都会在/etc/passwd/etc/shadow/etc/group文件中记录

cat /etc/passwd :查看是否有其他uid,gid为0的情况

less /etc/passwd:查看是否有新增用户

grep :0 /etc/passwd:查看是否有特权用户

ls -l /etc/passwd:查看passwd最后修改时间

awk -F: 'length($2)==0 {print $1}' /etc/shadow:查看是否存在空口令用户

5. 系统命令

查看系统命令是否存在异常,比如文件大小、创建时间、修改时间等,比如:

ls -alt /bin/ | head -n 10
ls -alt /usr/sbin/ | head -n 10
ls -alt /usr/bin/ | head -n 10

find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ /var/spool/cron/ -type f -mtime -3 | xargs ls -al

rpm -Va:查看系统命令是否被替换

显示S.5…T.表示是被修改过的,可以选择yum重新还原回去,也可以使用系统命令工具包busybox

6. 计划任务

常见计划任务位置:

/var/spool/cron/*
/var/spool/anacron/*
/etc/crontab
/etc/anacrontab
/etc/cron.*
/etc/anacrontab
/etc/rc.d/init.d/

7. 开机启动项

ls /etc/rc.d
systemctl list-unit-files
chkconfig --list [service_name]

8. 文件

文件的范围就比较大了,但是无非就是基于文件的创建时间、修改时间、所属组、所属用户、权限、文件大小、文件名称、md5信息、文件内容、suid等。

以查找具有SUID的文件为例

find / -perm +4000 -ls
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;

9. 端口

netstat -anltp | grep $PID:查看进程端口情况

lsof -i:5000:查看5000端口的占用情况

netstat -alntp:查看端口

netstat -an | grep tcp | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more #查看所有tcp连接

netstat -antlp| grep ESTABLISHED:查看所有建立连接的详细记录

netstat -antlp | grep LISTEN:检查监听的端口

netstat -antlp | grep 80 | awk '{print $7}' | cut -d/ -f1:根据端口列进程

10. 技巧

10.1 日志如果被软链接到/dev/null

1.删除log2.重启rsyslog

10.2 如果文件/目录无法删除,可使用lsattr查看文件/目录属性,如果有-i属性可使用chattr -i去除

10.3 查找777的权限的文件:find / *.php -perm 777,因为大部分黑客普遍喜欢直接赋于文件/目录777的权限

10.4 搜集SSH爆破字典:grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr

10.5 查看恶意文件里面的IP:strings /usr/bin/.sshd | egrep '[1-9]{1,3}\.[1-9]{1,3}\.'

10.6 根据特征删除指定进程:ps aux|grep -v grep|grep "mysqlc"|awk '{print $2}'|xargs kill -9

10.7 获取进程id数组,并循环杀死所有进程

ps -ef|grep "java" | grep -v grep|awk '{print $2}'
kill -9 `ps -ef|grep "java" | grep -v grep|awk '{print $2}'`
for pid in $(ps -ef|grep "java" | grep -v grep|awk '{print $2}'); do
  echo $pid
  kill -9 $pid
done

10.8 隐藏进程查找:

进程都存在于内存中,而内存中的数据又都是写入到/proc/目录下,基于此可查找隐藏文件
ps -ef | awk '{print}' | sort -n | uniq >1
ls /proc | sort -n |uniq >2
diff 1 2
另外,针对挖矿命令被劫持的情况下可以使用perf top -s pid,comm,dso,symbol来看到挖矿进程

10.9 SEO文件搜索:grep -ri baiduspider web_root_master

10.10 netstat被替换,可使用ss、lsof来替换

10.11 arp -a:查看arp记录是否正常

10.12 关注Content-Length值:awk '{if($10>5000000){print $0}}' /var/log/httpd/access_log

10.13 查看动态库是否被修改

echo $LD_PRELOAD
busybox cat /etc/ld.so.preload
也可使用strace、ldd、readefl等命令

10.14 利用iptables阻断通讯

iptables -A INPUT -s xmr.crypto-pool.fr -j DROP
iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP

10.15 文件监控

创建文件监控规则
auditctl -w /etc/passwd -p war -k password_monitor
监听日志
tail -f /var/log/audit/audit.log|grep password_monitor

10.16 网页挖矿多数都是加载conhive.min.js,script标签里有miner.start关键字,全局查找即可

10.17 检查SSH后门

•对比ssh版本:ssh -V•查看ssh配置文件和/usr/sbin/sshd的时间:stat /usr/sbin/sshd•strings检查/usr/sbin/sshd,看是否有邮箱、IP等信息:strings /usr/bin/.sshd | egrep '[1-9]{1,3}\.[1-9]{1,3}\.'•通过strace监控sshd进程读写文件的操作,一般的sshd后门都会将账户密码记录到文件,可以通过strace进程跟踪到ssh登录密码文件。

10.18 清除僵尸进程

父进程调用fork创建子进程后,子进程运行直至其终止,它立即从内存中移除,但进程描述符仍然保留在内存中。

ps -e -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9

10.19 扫描是否存在恶意驱动

10.20 黑帽seo关键词匹配

sogou,so.com,google,youdao,yahoo,bing,118114,biso,gougou,ifeng,ivc,sooule,niuhu,biso,360,sm,uc

老虎机、澳门银行、万博亚洲官网、狗万app、新万博官网、ylg9999、九州娱乐、澳门威尼斯人、威尼斯人、大红鹰葡京会、振动盘、澳门银河、永利娱乐场、太阳城集团、金沙娱乐、Bet365、钱柜娱乐、永利娱乐、百家乐、博必发、商务模特、会所推荐、洗浴休闲、找鸡上门、外围女、按摩服务、大保健

本文分享自微信公众号 - 安全泰式柑汁(ts_sec),作者:瓦都尅

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于PhantomJS的动态爬虫引擎

    之前学习爬虫的时候一直了解、学习的是基于PhantomJS的,虽然Chrome的headless更加优秀、比PhantomJS更快、占用内存更少,而且还有个强大...

    瓦都剋
  • 渗透测试 | 突破前端JS加密限制

    现在前端开发为了提高爬虫的难度及加强安全性,都会在数据包提交前进行加密,最典型的就是传参加密,相信大家在测试的时候都遇到过,那么我们在抓取数据包并修改之后,修改...

    瓦都剋
  • 关于MySQL LOAD DATA特性的利用与思考

    该特性适用于:MySQL Client、PHP with mysqli、PHP with PDO(默认未开启MYSQL_ATTR_LOCAL_INFILE属性,...

    瓦都剋
  • 多次grep 没有看到输出

    tail -f xxx.log | grep aaaa | grep bbbb 发现没有日志输出 但log中的那条记录包含aaaa 和 bbbb,就是说tail...

    千往
  • 从一段挖矿病毒代码看Linux命令的实际应用

    最近做易生信培训时新购了一块阿里云,用于演示分析流程搭建和配置。短期使用,上面没有数据,也没做什么防范,结果不曾想,被挖矿病毒盯上了,给了一个近距离接触病毒的机...

    生信宝典
  • rsyncd配置

    domain0
  • 我为能准时下班而做的准备,以及由此的收获,同时总结下不足

    可能有人会说,做IT的想准时下班很难,尤其是在互联网公司。有些外企或国企倒能准时下班,原因是公司更像养老院。

    用户1153489
  • Design Pattern: Not Just Mixin Pattern

    Brief                                 从Mix-In模式到Mixin模式,中文常用翻译为“混入/织入模式”。单纯从名字上看...

    ^_^肥仔John
  • 使用 Gitea 快速搭建私有 Git 版本控制服务

    分布式版本控制工具 Git 已经是现代软件源代码版本控制首选方案之一。公有 Git 服务提供商 国外知名如 GitHub 国内网络延迟高,Gitlab 涉嫌对中...

    码农小胖哥
  • CentOS7下Tomcat启动慢的原因及解决方案

      在一次CentOS 7系统中安装Tomcat,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的。Tocmat的...

    拓荒者

扫码关注云+社区

领取腾讯云代金券