黑客入侵该如何应急排查(2)
一、 后门排查
除以上文件、进程、系统 分析外,推荐工具:
chkrootkit rkhunter(www.chkrootkit.org rkhunter.sourceforge.net)
A. chkrootkit
(迭代更新了20年)主要功能:
\1. 检测是否被植入后门、木马、rootkit
\2. 检测系统命令是否正常
\3. 检测登录日志
\4. 详细参考README
B. rkhunter主要功能:
\1. 系统命令(Binary)检测,包括Md5 校验
\2. Rootkit检测
\3. 本机敏感目录、系统配置、服务及套间异常检测
\4. 三方应用版本检测
C. RPM check检查
系统完整性也可以通过rpm自带的-Va来校验检查所有的rpm软件包,有哪些被篡改了,防止rpm也被替换,上传一个安全干净稳定版本rpm二进制到服务器上进行检查
./rpm -Va > rpm.log
如果一切均校验正常将不会产生任何输出。如果有不一致的地方,就会显示出来。输出格式是8位长字符串,c 用以指配置文件, 接着是文件名. 8位字符的每一个 用以表示文件与RPM数据库中一种属性的比较结果, .(点) 表示测试通过。.下面的字符表示对RPM软件包进行的某种测试失败:
5 MD5 校验码
S 文件尺寸
L 符号连接
T 文件修改日期
D 设备
U 用户
G 用户组
M 模式e (包括权限和文件类型)
借用sobug文章案例:如下图可知ps, pstree, netstat, sshd等等系统关键进程被篡改了
D. Webshell查找
Webshell的排查可以通过文件、流量、日志三种方式进行分析,基于文件的命名特征和内容特征,相对操作性较高,在入侵后应急过程中频率也比较高。
可根据webshell特征进行命令查找,简单的可使用(当然会存在漏报和误报)
find /var/www/ -name “.php” |xargs egrep ‘assert|phpspy|c99sh|milw0rm|eval|(gunerpress|(base64_decoolcode|spider_bc|shell_exec|passthru|($_POST[|eval (str_rot13|.chr(|${“_P|eval($_R|file_put_contents(.$_|base64_decode’
Webshell的排查可以通过
Github上存在各种版本的webshell查杀脚本,当然都有自己的特点,可使用河马shell查杀(shellpub.com)
综上所述,通过chkrootkit 、rkhunter、RPM check、Webshell Check 等手段得出以下应对措施:
(1) 根据进程、连接等信息关联的程序,查看木马活动信息。
(2) 假如系统的命令(例如netstat ls 等)被替换,为了进一步排查,需要下载一新的或者从其他未感染的主机拷贝新的命令。
(3) 发现可疑可执行的木马文件,不要急于删除,先打包备份一份。
(4) 发现可疑的文本木马文件,使用文本工具对其内容进行分析,包括回连IP地址、加密方式、关键字(以便扩大整个目录的文件特征提取)等。
二、日志分析
日志文件 /var/log/message 包括整体系统信息 /var/log/auth.log 包含系统授权信息,包括用户登录和使用的权限机制等 /var/log/userlog 记录所有等级用户信息的日志。/var/log/cron 记录crontab命令是否被正确的执行 /var/log/xferlog(vsftpd.log)记录Linux FTP日志 /var/log/lastlog 记录登录的用户,可以使用命令lastlog查看 /var/log/secure 记录大多数应用输入的账号与密码,登录成功与否 var/log/wtmp 记录登录系统成功的账户信息,等同于命令last var/log/faillog 记录登录系统不成功的账号信息,一般会被黑客删除
日志查看分析,grep,sed,sort,awk综合运用
基于时间的日志管理:
/var/log/wtmp
/var/run/utmp
/var/log/lastlog(lastlog)
/var/log/btmp(lastb)
登录日志可以关注Accepted、Failed password 、invalid特殊关键字
登录相关命令
lastlog 记录最近几次成功登录的事件和最后一次不成功的登录 who 命令查询utmp文件并报告当前登录的每个用户。
Who的缺省输出包括用户名、终端类型、登录日期及远程主机 w 命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息 users 用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。
如果一个用户有不止一个登录会话,那他的用户名把显示相同的次数last 命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户 finger 命令用来查找并显示用户信息,系统管理员通过使用该命令可以知道某个时候到底有多少用户在使用这台Linux主机。
- 几个语句:
#定位有多少IP在爆破主机的root帐号 grep “Failed password for root” /var/log/auth.log | awk ‘{print $11}’ | sort | uniq -c | sort -nr | more
#登录成功的IP有哪些 grep “Accepted “ /var/log/auth.log | awk ‘{print $11}’ | sort | uniq -c | sort -nr | more tail -400f demo.log
#监控最后400行日志文件的变化 等价与 tail -n 400 -f (-f参数是实时) less demo.log
#查看日志文件,支持上下滚屏,查找功能 uniq -c demo.log
#标记该行重复的数量,不重复值为1 grep -c ‘ERROR’ demo.log
#输出文件demo.log中查找所有包行ERROR的行的数量
三、相关处置
kill -9
chattr –i
rm
setfacl
ssh
Chmod
3.2 Windows系列分析排查
3.2.1 文件分析
开机启动有无异常文件
各个盘下的temp(tmp)相关目录下查看有无异常文件
浏览器浏览痕迹、浏览器下载文件、浏览器cookie信息
查看文件时间,创建时间、修改时间、访问时间。对应linux的ctime mtime atime,通过对文件右键属性即可看到详细的时间(也可以通过dir /tc 1.aspx 来查看创建时间),黑客通过菜刀类工具改变的是修改时间。所以如果修改时间在创建时间之前明显是可疑文件。
查看用户recent相关文件,通过分析最近打开分析可疑文件
a) C:Documents and SettingsAdministratorRecent
b) C:Documents and SettingsDefault UserRecent
c) 开始,运行 %UserProfile%Recent
- 根据文件夹内文件列表时间进行排序,查找可疑文件。
当然也可以搜索指定日期范围的文件及文件大小
Server2008 R2系列
Win10 系列
关键字匹配,通过确定后的入侵时间,以及webshell或js文件的关键字(比如博彩类),可以在IIS 日志中进行过滤匹配,比如经常使用:
- 知道是上传目录,在web log 中查看指定时间范围包括上传文件夹的访问请求 findstr /s /m /I “UploadFiles” *.log 某次博彩事件中的六合彩信息是six.js findstr /s /m /I “six.js” *.aspx 根据shell名关键字去搜索D盘spy相关的文件有哪些 for /r d: %i in (spy.aspx) do @echo %i ```
参考来源:网络安全渗透hack