Linux | DIFR Command Cheat Sheet
2023-2-16 20:31:37 Author: TahirSec(查看原文) 阅读量:7 收藏

防御者需要了解数以千计的方式来入侵系统,而攻击者只需要攻击成功一次。

攻击者需要了解数以千计的方法来掩盖踪迹,而防御者只需要发现痕迹一次。

计算机不是自发的,首先需要关注那些引起你注意的事情。

1.Command Cheat Sheet

1.1 进程

  • 伪装为合法进程名或奇怪的进程名

  • 运行陌生的网络连接的进程

  • CPU/RAM高占比的进程

  • 已删除的二进制文件但仍在运行的进程

  • 以上的组合

CPU/RAM

 top

进程树

 ps -auxwf

网络连接情况

 netstat -nalp
 netstat -plant | grep ESTABLISHED
 netstat -plant | grep -v TIME
 ss -a -e -i
 lsof -i
 lsof -nPi | grep -v "127.0.0.1" | grep -v "::1"$

被删除二进制文件的正在运行的进程

 ls -alR /proc/*/exe 2> /dev/null | grep deleted

进程命令行参数

 strings /proc/<PID>/comm
 strings /proc/<PID>/cmdline

进程的执行路径

 ls -al /proc/<PID>/exe

进程中环境变量

 strings /proc/<PID>/environ

进程的工作目录

 ls -alR /proc/*/cwd

进程的工作目录为tmp或dev

 ls -alR /proc/*/cwd 2> /dev/null | grep tmp
 ls -alR /proc/*/cwd 2> /dev/null | grep dev

1.2 目录

  • 用于隐藏恶意二进制文件

  • 用于隐藏被盗数据

  • 用于保存暂存数据以备进一步入侵

  • 用于持久化

需要关注的目录

 /tmp
 /var/tmp
 /dev
 /dev/shm
 /bin
 /sbin
 /usr/bin
 /usr/sbin
 /lib
 /lib64
 /lib32
 /usr/lib
 /usr/lib64
 /usr/lib32
 /var
 /var/log
 /var/spool/cron
 /etc/rc.local
 /etc/initd
 /etc/rc*.d
 /etc/modules
 /etc/cron*
 Web服务器目录
 用户目录

列出并分隔名称中的空格等:

 ls -lap

列出以.为开头的隐藏目录

 find / -type d -name ".*"

1.3 文件

  • 猎捕攻击留下的痕迹。

  • 被修改或位于奇怪位置的二进制文件

列出以.为开头的隐藏文件或目录名称

 ls -ar |grep "^\."

不可变文件和目录:

 lsattr / -R 2> /dev/null | grep "\----i"

查找具备 SUID/SGID 权限的文件

 find / -type f \( -perm -04000 -o -perm -02000 \) -exec ls -lg {} \;
 find / -perm -007 -exec ls -l {} \;

查找没有用户或组的文件或目录

 find / \( -nouser -o -nogroup \) -exec ls -lg {} \;

列出当前目录下文件的类型

 file * -p

查找某目录下可执行文件

 find / -type f -exec file -p '{}' \; | grep ELF
 find /tmp -type f -exec file -p '{}' \; | grep ELF

查找一天前修改或创建的文件

 find / -mtime -1

查找被篡改的命令文件

 rpm -Va | grep ^..5.
 debsums -c

查找全部authorized_keys文件

 find / -name authorized_keys
 awk '{print $1,$3}' /root/.ssh/authorized_keys

查找历史用户命令文件,检查可疑内容

 find / -name .*history
 history | grep -e wget -e curl
 history | grep -e wget -e curl -e bash
 history | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort | uniq -c

重定向到/dev/null的历史命令

 ls -alR / 2> /dev/null | grep .*history | grep null

1.4 用户

查找UID为0或GID为0的用户

 grep ":0:" /etc/passwd

查找UID为0或大于500的用户

 awk -F : '{if($3==0||$3>=500){print}}' /etc/passwd

检查sudoers文件

 cat /etc/sudoers
 cat /etc/group

1.5 日志

查找所有用户的计划任务

 for user in `cat /etc/passwd |awk -F: '{print $1}'`; do  crontab -l -u $user; done
 atq
 systemctl list-timers --all
 systemctl list-unit-files | grep enabled

检查大小为0的日志

  ls -al /var/log/*

导出审计日志

 utmpdump /var/log/wtmp
 utmpdump /var/run/utmp
 utmpdump /var/log/btmp

查找其中包含二进制文件的日志

 grep [[:cntrl:]] /var/log/*.log

统计ssh登录成功的IP

 cat /var/log/auth.log | grep 'Accepted' | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort | uniq -c
 cat /var/log/secure | grep 'Accepted' | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort | uniq -c

统计用户IP的登录次数

 last | awk '{print $3}' | grep -E "\." | grep -v "-" | sort | uniq -c
 lastb | awk '{print $3}' | grep -E "\." | grep -v "-" | sort | uniq -c

查询审计守护进程日志

 ausearch -i | grep curl

reference

https://sandflysecurity.com/blog/compromised-linux-cheat-sheet/


文章来源: http://mp.weixin.qq.com/s?__biz=MzkzNjIwMzM5Nw==&mid=2247485397&idx=1&sn=1f27908e24416eddad33874bb47b3d0f&chksm=c2a3023ff5d48b29df23507fb78030be2a6c9db8eea0a5badcf7ab2d1f9e269260b7f14fa95d#rd
如有侵权请联系:admin#unsafe.sh