1. 系统信息查询
lscpu --- 查看cpu信息
uname -a --- 查看OS信息
lsmod --- 查看模块信息
2.用户信息查询
cat /etc/passwd 显示 bin/bash 表示账号状态可登录
显示sbin/nologin 表面账户不可登录
配合grep 可以查看可以登录的用户
cat /etc/passwd |grep -E "/bin/bash$"
----------------------------------------------------------------------------------
awk -F: '{if($3==0)print $1}' /etc/passwd
查询可登录账户UID为0的账户,也就是root用户。
注: awk是用于处理文本文件相关数据,F指定分隔符, $N代表第N列。
以:为分隔符,如果第3列为0 ,则打印第1列的信息
$0 代表整个文本行;
$N 代表文本行中的第 N 个数据字段;
-----------------------------------------------------------------------------------
lastb 查看用户错误的登录信息
lastlog 查看所有用户最后的登录信息
last 查看用户最近登录信息
who 查看当前用户登录系统信息
awk -F: 'length($2)==0 {print $1}' /etc/shadow
查看空口令账户:第2列长度为0,则密码为空
-----------------------------------------------
3.启动项排查
cat /etc/init.d/rc.local 查看init.d文件夹下的rc.local文件内容
cat /etc/rc.local
ls -alt /etc/init.d
4.检查任务计划
crontab -l 查看当前的任务计划
crontab -u root -l 查看root 用户的任务计划
ls /etc/cron* 使用正则的*筛选出cron开头的文件
1. 分析可疑端口及进程
netstat -antlp |more 查看监听的服务
ls -alt /proc/PID 查看指定PID的可执行文件
lsof -p PID 查看进程打开的文件
ps aux 检查进程
-------------------------------------------------------
如果是恶意代码,需要处置
kill -9 PID 结束恶意进程
rm -rf filename 删除恶意文件
注解:如果root无法删除文件,则可能该文件被加了i属性,使用
lsattr filename 查看文件属性
chattr -i filename 移除文件的i属性
2. 对于隐藏进程的排查
ps -ef| awk '{print}' |sort -n|uniq >1
ls /proc |sort -n|uniq >2
diff 1 2
chkconfig --list 查看系统中运行的服务
1 --- 表示单用户模式
2--- 表示无网络连接的多用户命令行模式
3--- 表示有网络连接的多用户命令行模式
4--- 表示不可用
5 --- 表示带图形界面的多用户模式
6 --- 表示重新启动
service --status-all 查看所有服务的状态。
1. 敏感目录
/tmp目录和命令目录 /usr/bin/ /user/sbin
~/.ssh 和 /etc/ssh经常作为一些后门配置的路径
2. 时间点查询
通过列出攻击日期内变动的文件,发现相关的恶意文件。
find命令
find / -ctime 0 -name "*sh"
查找一天内新增的sh文件
在查看指定目录时,也可以对文件时间进行排序,比如:
ls命令
ls -alt | head -n 10 --- 查看排序后前10行的内容 【对于时间点的查找】
stat命令
stat commandi.php --- 查询文件的时间信息
3. 特殊文件
恶意文件存在特定的设置、特定的关键字信息。
查找隐藏的恶意文件
ls -ar |grep "^\." .代表当前目录, ..代表上一级目录
特殊权限文件排查:查找777权限的文件。
find /tmp -perm 777
find . *.txt -perm 777
Webshell查找:通过分析文件、流量、日志,基于文件的命名特征和内容特征。
find /var/www/ -name "*.php"| xargs egrep
系统文件排查:
ls -alt /bin 查看命令目录下相关系统命令的修改时间
rpm -Va 查看发生过变化的软件包
ls -alh /bin 查看相关文件的大小,如果明显偏大,则文件可能被替换
Linux后门检测:(chkrootkit和rkhunter均需要下载安装)
chkrootkit 用来检测rootkit是否被安装到当前系统中
chkrootkit -q |grep INFECTED --- 检测并筛选出存在infected内容
rkhunter进行命令Binary检测,包括MD5校验、rootkit检测、本机敏感目录检测、系统配置检测、服务及套件异常检测、第三方应用版本检测等。
rkhunter --check
排查SUID程序:
对于一些设置了SUID权限的程序进行排查,可以使用find命令
find / -type f -perm -04000 -ls -uid 0 2>/dev/null
日志一般放在目录 /var/log/ 下面,具备包括:
/var/log/wtmp --- 记录登录进入、退出、数据交换、关机及重启。
/var/log/cron --- 记录有定时任务相关的日志
/var/log/messsages --- 记录系统启动后的信息和错误日志
/var/log/apache2/access.log --- 记录Apache的访问日志
/var/log/auth.log --- 记录系统授权信息,包括用户登录和使用的权限机制等。
/var/log/userlog --- 记录所有等级用户信息的日志
/var/log/xferlog(vsftpd.log) --- 记录Linux FTP日志
/var/log/lastlog --- 记录登录的用户,可使用命令 lastlog
/var/log/secure --- 记录大多数应用输入的账号和密码,以及登录是否成功信息
/var/log/faillog --- 记录登录系统不成功的账号信息
使用cat可以查看相关日志
ls -alt /var/spool/mail 查看邮件相关日志记录文件
cat /var/spool/mail/root 可以发现相关的攻击行为
日志分析命令
grep sed sort awk
常用的日志命令及功能如下:
tail -n 10 test.log --- 查询最后10行的日志
tail -n +10 test.log --- 查询10行之后的所有日志
head -n 10 test.log --- 查询头10行的日志
head -n -10 test.log --- 查询除了最后10行的其他所有日志
在*.log日志文件中统计独立IP地址的个数的命令
awk '{print $1}' test.log |sort |uniq |wc -l
awk '{print $1}' /access.log |sort |uniq -c |sort -nr|head -10
查找指定时间段的日志
sed -n'/2014-12-17 16:22:31/,/2014-12-18 23:10:12/p' test.log
grep '2014-12-17 16:22:32' test.log
定位有多少IP地址暴力破解主机root账号的命令
cat /var/log/secure |awk '/Accepted/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'
(CentOS)
查看登录成功的IP地址的命令
cat /var/log/auto.log |awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"='$1;}'
(ubuntu)
查看登录成功日期、用户名、IP地址的命令
grep “Accetped” /var/log/secure |awk '{print $1,$2,$3,$9,$11}'
其他系统的日志:
Apache 日志:
/var/log/httpd/access.log
/var/log/apache/access.log
/var/log/apache2/access.log
/var/log/httpd-access.log
Ngnix日志:
/usr/local/nginx/logs
access.log ---访问日志 error.log ---错误日志
Tomcat日志
默认在TOMCAT_HOME/logs/目录下
数据库日志
Oracle : 查询日志路径 select * from v$logfile
查询之前使用过的的sql select * from v$sql
Mysql: show variables like 'log_%' --- 查看是否启用日志
默认路径在 /var/log/mysql
show variables like 'general'
Volatility 开源内存取证工具
一般工具: PCHunter、 Process Monitor
数据包过滤分析: Wireshark
威胁情报金字塔:David J. Bianco
包括文件Hash值、IP地址、域名、网络或者主机特征、攻击工具和TTPs(Tactics、Techniques and Procedures)
相对来说,工具、技术层面的威胁情报成本相对较高。
IOC(Indicator of Compromise)通常指在检测或者取证中,具有高置信度的威胁对象或特征信息。在应急响应中,威胁情报
平台查询到的信息一般都属于 IOC.
无C2服务器加密技术:
在加密前先随机生成新的加密密钥对(非对称公,私钥)
使用新生成的公钥对文件进行加密
采用攻击者预埋的公钥把新生成的私钥进行加密,保存于一个ID文件中或嵌入加密文件
无C2服务器解密技术: ·
通过邮件和在线提交的方法,提交ID串或加密文件中的加密私钥(一般攻击者会提取该私钥)
·攻击者使用保留的与预埋公钥对应的私钥 解密受害者提交过来的私钥
·把解密私钥或解密工具交付给受害者进行解密
netstat -anpt 查看进程
ls -alh /proc/PID
kill -9 PID
rm -rf filename