数据来源
操作系统(windows,linux)应急响应:常见危害:暴力破解,漏洞利用,流量攻击,木马控制(Webshell,PC 木马等),病毒感染(挖矿,蠕虫,勒索等)常见分析:计算机账户,端口,进程,网络,启动,服务,任务,文件等安全问题
常见日志类别及存储:
Windows,Linux
补充资料:
应急响应大合集 - 先知社区 ()值得收藏!史上最全Windows安全工具锦集 - | 安全脉搏系统内部 - 系统内部 |微软学习 ()病毒分析
PCHunter:火绒剑:Process Explorer:/zh-cn/sysinternals/downloads/process-explorerprocesshacker:https://processhacker.sourceforge.io/downloads.phpautoruns:/en-us/sysinternals/downloads/autorunsOTL:/download/otl/SysInspector:/download/detail/?product=sysinspector病毒查杀
卡巴斯基:http://devbuilds.kaspersky-/devbuilds/KVRT/latest/full/KVRT.exe大蜘蛛:http://free.drweb.ru/download+cureit+free火绒安全软件:360 杀毒:/download_center.html病毒动态
CVERC-国家计算机病毒应急处理中心:.cn微步在线威胁情报社区:火绒安全论坛:/forum-59-1.html爱毒霸社区:腾讯电脑管家:http://bbs./forum-2-1.html在线病毒扫描网站
// 多引擎在线病毒扫描网// 腾讯哈勃分析系统 // Jotti 恶意软件扫描系统 // 计算机病毒、手机病毒、可疑文件分析演示案例:
攻击响应-暴力破解(RDP,SSH)-Win,Linux控制响应-后门木马(Webshell,PC)-Win,Linux危害响应-病毒感染(勒索 WannaCry)-Windows自动化响应检测-Gscan 多重功能脚本测试-Linux案例 1-攻击响应-暴力破解(RDP,SSH)-Win,Linux
先演示一下Windows系统的
1)日志文件默认位置:(参考)
应用程序日志、安全日志、系统日志、DNS日志默认位置:%systemroot%\system32\config,默认文件大小512KB,管理员都会改变这个默认大小。安全日志文件:%systemroot%\system32\config\SecEvent.EVT系统日志文件:%systemroot%\system32\config\SysEvent.EVT应用程序日志文件:%systemroot%\system32\config\AppEvent.EVTInternet信息服务FTP日志默认位置:%systemroot%\system32\logfiles\msftpsvc1\,默认每天一个日志Internet信息服务WWW日志默认位置:%systemroot%\system32\logfiles\w3svc1\,默认每天一个日志Scheduler服务日志默认位置:%systemroot%\schedlgu.txt2)windows自带日志工具(查找分析不方便,推荐使用插件LogFusion)
3)Windows-LogFusion 载入查看:(建议在windows10以上的系统安装)
工具下载:/s/1tQS1mUelmEh3I68AL7yXGg 提取码:xiao
工具使用前提
LogFusion载入应用程序、硬件事件、安全、系统等日志
事件归类,事件 ID,事件状态等,参考百度资料
打开本地的日志
日志打开需要点时间(大概2到3分钟)
win10默认好像是不记录远程桌面的访问记录:怎么在Windows10启用远程协助的会话日志记录-百度经验 ()
使用弱口令工具攻击看看
然后回到我们的日志分析软件就能查看到刚才暴力破解的日志,注意这里查看的是安全日志
在安全日志里看到很多账户登录失败的日志,可以判断当前主机遭受了爆破攻击,以及是否成功等
打开远程的日志
Linux系统-grep 筛选:
我这里在电脑开虚拟机,然后在真实机使用xshell连接执行命令
Linux系统日志文件相关介绍:(参考)
Linux系统日志文件存放在/var/log/目录下,该目录是系统日志文件的保存位置;除此之外,采用RPM包方式安装的系统服务也会默认把日志记录在/var/log/目录中。Linux日志文件说明 ①/var/log/messages:该文件记录着服务器系统发生的所有错误信息或重要的信息,所以这个文件相当重要,如果系统发生莫名的错误时,这个文件是必查的日志文件之一。/var/log/secure:该文件记录服务器牵扯到需要输入账号密码的软件,当登入时都会被记录到这个文件中,包括系统的login程序、图形界面登入所使用的gdm程序、su、sudo等程序,还有网络远程的ssh、telnet等程序,登入信息都会被记载。/var/log/maillog:该文件记录服务器邮件的来往信息,其实主要记录SMTP和POP3协议提供者所产生的信息。/var/log/cron:与定时任务相关的日志信息。/var/log/spooler:与UUCP和news设备相关的日志信息。/var/log/boot.log:守护进程启动和停止相关的日志信息。/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
先用工具攻击一下目标主机
参考:Linux应急响应基础 - 我是菜狗2 - 博客园 ()
1、统计了下日志,确认服务器遭受多少次暴力破解
# 因为暴力破解肯定会会有登录失败的情况,所以这里筛选 Failed passwordgrep -o "Failed password" /var/log/secure|uniq -c# Ubuntu系统grep -o "Failed password" /var/log/auth.log|uniq -c
secure文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。
注意,如果这个文件的权限发生了改变,则需要注意是否是恶意攻击。
我开的虚拟机是Ubuntu,运行命令报错“grep: /var/log/secure: 没有那个文件或目录
”查看了一下百度Ubuntu系统记录服务器牵扯到需要输入账号密码的软件的文件名是auth.log改一下就好了(参考)
2、输出登录爆破的第一行和最后一行,确认爆破时间范围:
grep "Failed password" /var/log/secure|head -1grep "Failed password" /var/log/secure|tail -1# Ubuntu系统# 查看日志中第一次出现关键字Failed password的信息,确认攻击者第一次爆破的时间grep "Failed password" /var/log/auth.log|head -1 # 查看日志中第一次出现关键字Failed password的信息,确认攻击者最后一次爆破的时间grep "Failed password" /var/log/auth.log|tail -1
3、进一步定位有哪些 IP 在爆破?
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[0- 4][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][0- 9]?)"|uniq -c | sort -nr# Ubuntu系统grep "Failed password" /var/log/auth.log|grep -E -o "(25[0-5]|2[0-4][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][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
4、爆破用户名字典都有哪些?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort - nr# Ubuntu系统grep "Failed password" /var/log/auth.log|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
5、登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}' grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more# Ubuntu系统grep "Accepted " /var/log/auth.log | awk '{print $1,$2,$3,$9,$11}'
案例 2-控制响应-后门木马(Webshell,PC)-Win,Linux
windows:
默认配置测试
1)首先启动cs(如果你的虚拟机没有下载cs:cobaltstrike的安装与基础使用)
运行服务端程序,192.168.0.104是本机IP,user 是要设置的连接密码(可改)
./teamserver192.168.1.3 user
在 cs4.0目录下新建终端,输入如下命令运行客户端程序
java -Dfile.encoding=UTF-8 -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4 -XX:+AggressiveHeap
最后连接登录进去
2)生成Windows的后门木马
前提是你要创建监听器,不然受害者运行了木马你也不知道
创建一个新的监听器 -> 填写监听器名称(随便写,不重复就行)-> 选择有效载荷/攻击模块/攻击方式
添加HTTP主机
添加要在开启监听的HTTP端口:0-65535在这个取值范围中1023以下的端口已经分配给了常用的一些应用程序,建议往大的填,避免端口被占用(重复)--> 最后保存即可
开始创建木马文件
3)在目标windows虚拟机中运行木马文件
4)回到cs查看
这边就能看到目标上线了
5)回到win分析进程,找出木马
这里使用PCHunter工具进行辅助分析,工具下载:百度网盘
工具的介绍:
TCPView(网络分析)TCPView for Windows - Sysinternals | Microsoft LearnProcess Explorer(进程分析)PCHunter64(综合)UserAssistView(文件启动)命令行netstat -ano(网络分析)Autoruns(启动项排查)MemScanner(进程分析)Sysmon(系统监控)
一般的木马是没有产商信息
但是有些伪装的很好所以这个不能作为我们判断的唯一标准,可以再借助一些其他信息辅助我们进行判断
远程ip
可以在目标主机的命令行查看端口信息
# 查看本机端口开放信息netstat -an
计划任务
系统用户名
还可以借助一些杀毒软件:腾讯、360、火绒这些
linux 借助 CrossC2 项目:
我这里又安装了cs3.14又因为cs的版本要与CrossC2相对应才行,搞了一天才发现这个问题,CS3.14 <——>CrossC2 -v2.1版本,其他版本的对应关系可以自己尝试
1)开启cs3.14服务端与客户端 (使用方式与上面介绍的CS4.0是一样的)
# 启动服务端./teamserver 192.168.1.3 root
# 启动客户端java -Dfile.encoding=UTF-8 -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
2)下载linux插件CrossC2-v2.1
打开Github:GitHub - gloxec/CrossC2: generate CobaltStrike's cross-platform payload
3)生成linux木马
方式一:脚本的方式生成 (genCrossC2.Linux)
# 运行脚本genCrossC2.Linux 系统类型、生成的文件名(这里也可以写文件路径,生成到指定的文件路径如:tmp\c2)./genCrossC2.Linux 监听器ip 监听器端口null null Linux x64 C2
方式二:
按道理来说会有个弹框,弹框内会有个下载链接但是我这里没有反应(我之前用3.1版本的插件就就是这样),应该是cs与插件的版本不是很匹配,不管了有一种方式生成木马辅助我们学习就好,毕竟我们不是要做违法的事,知道有这种方式就好。
4)有了木马之后要创建一个监听器,这个插件只支持https的协议(windows/beacon_https/reverse_https),所以我们要创建https的监听器,注意:监听器的ip与端口要与刚才的木马文件相对应
可以直接在当前的攻击机运行木马测试一下(我这里的cs是安装的kali中的所以可以运行linux的木马文件)
kali成功上线
5)把木马拿到受害者主机运行
# 赋予执行权限chmod +x 木马文件名
6)接下来就是分析日志,查找后门等(通过网络监听工具及 windows 日志分析或执行记录查找后门问题)
手动分析系统日志的方法在上面案例一的有介绍,使用脚本自动化检测会在案例4演示
这里演示一下查看系统开放端口,查找后门
# 可以查看tcp端口netstat -ntl
应该是我的虚拟机的问题,我看别人的可以
然后再通过ps命令找到对应的进程,分析其是否是木马病毒
# 查看进程ps aux
案例 3 -危害响应-病毒感染(勒索 WannaCry)-Windows(一般情况下我们的杀毒软件会直接将病毒程序杀死)
详细说明中毒表现及恢复指南
推荐2个勒索病毒解密网站
安全卫士勒索病毒专题:文件恢复_安全卫士离线救灾版_文档卫士 ()
主页面 | The No More Ransom Project
[下载]永恒之蓝样本(勒索病毒): https:
//bbs
.
/thread-217586-1
.htm
不要在真实机运行病毒
病毒运行效果:打开任何文件都是乱码
1)打开解密网站
解码刑警 | The No More Ransom Project
换360的解密网站看看:安全卫士勒索病毒专题:文件恢复_安全卫士离线救灾版_文档卫士 ()
不过在页面后面他推荐360解密大师,下载试试
2)使用360看看能不能解决
注意:要先使用杀毒软件把病毒干掉,不然文件恢复了以后也会被加密
案例 4-自动化响应检测-Gscan 多重功能脚本测试-Linux
自动化响应检测工具:GScan(这个是python语言的脚本)、chkrootkit(c语言的脚本)、rkhunter、lynis
工具对比:(都下载一下,应急响应时全都跑一遍
)
GScan程序定位为安全人员提供的一项入侵检测工具,旨在尽可能的发现入侵痕迹,溯源出黑客攻击的整个路径。chkrootkit 程序定位为安全人员提供的一项入侵检测工具,旨在发现被植入的后门或者rootkit。rkhunter 程序定位为安全人员提供的一项入侵检测工具,旨在发现被植入的后门或者rootkit。lynis程序定位为安全人员日常使用的一款用于主机基线和审计的工具,可辅助漏洞扫描和配置管理,也可部分用于入侵检测。
Gscan 工具下载:GitHub - grayddq/GScan: 本程序旨在为安全应急响应人员对Linux主机排查时提供便利,实现主机侧Checklist的自动全面化检测,根据检测结果自动数据聚合,进行黑客攻击路径溯源。
1)下载Gscan
命令行执行运行命令即可
# 如果没有安装git:yum -y install gitgit clone /grayddq/GScan.git
2)运行脚本进行检测
执行时间:默认安全扫描大概执行时间为4~6分钟,完全扫描在1~2小时之间,程序执行时间的长度由检测文件的多少决定,有可能会存在较长的时间,请耐心等待
# 切换管理员模式sudo su# 查看脚本参数python3 GScan.py -h# 运行脚本python3 GScan.py
漫长的等待,最后可以检测出可能存在风险的地方(直接将木马文件复制粘贴到目标主机中的是检测不出来的,如果是命令执行的方式下载并运行的就可以检测的出来)
涉及资源:
应急响应大合集 - 先知社区 ()安全卫士勒索病毒专题:文件恢复_安全卫士离线救灾版_文档卫士 ()GitHub - gloxec/CrossC2: generate CobaltStrike's cross-platform payloadGitHub - darkr4y/geacon:练习Go编程并在Go中实现CobaltStrike的BeaconGitHub - grayddq/GScan: 本程序旨在为安全应急响应人员对Linux主机排查时提供便利,实现主机侧Checklist的自动全面化检测,根据检测结果自动数据聚合,进行黑客攻击路径溯源。[下载]永恒之蓝样本(勒索病毒)-软件逆向-看雪论坛-安全社区|安全招聘| ()主页面 | The No More Ransom ProjectSysinternals - Sysinternals | Microsoft Learn值得收藏!史上最全Windows安全工具锦集 - | 安全脉搏/s/1tQS1mUelmEh3I68AL7yXGg 提取码:xiao如果觉得《p74 应急响应-winlinux 分析后门勒索病毒攻击》对你有帮助,请点赞、收藏,并留下你的观点哦!