蓝队笔记
通篇摘录,尚待学习= =
应急响应
https://bypass007.github.io/Emergency-Response-Notes/Summary/
流程
应急前沟通
现场现象是什么?如何发现的?(依据是什么) ?
什么时候发现的?
目前是否有做物理隔离(断网) ?
受害机器是哪个?
受害服务有几台?(1 台/N 台)
最先发现是哪台 ?
这台服务器对外有哪些服务?
这台服务器于其他机器是否处于同一个内网?
操作系统类型?
是否有公网映射业务?
远程管理方式?
网络边界有没有流量监控设备?
主机侧是否有 EDR 等安全设备
问题处置
事件判断:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DDoS等等。以及安全事件的危害程度
临时处置:给出客户临时处置建议,断网隔离,保护现场环境,切断供给链
深入分析:收集客户信息和中毒主机信息,包括样本,日志分析、进程分析、启动项分析、样本分析。
清理处置:直接杀掉进程,删除文件,打补丁,抑或是修复文件。 产出报告:整理并输出完整的安全事件报告
事件分析
Web 攻击
相关表现: 页面被篡改、恶意推广、黑词黑页、webshell
相关危害: 导致搜索引擎告警、微信等 app 分享告警、首页敏感内容、拖库、内网沦陷等排查
要点: 能否多个环境下复现异常现象;确定相关资产是否存在;恶意文件是否确实存在于服务器上
操作要点: 备份文件;webshell 后门查杀;web 日志分析;web 中间件缓存处理;web 中间件配置检查;重启 web 中间件;服务器后门检查;
防护措施: 加固相关 web 应用,修改相关系统的所有用户密码
链路劫持
相关表现: 区域性服务不可用或返回异常内容
相关危害: 导致搜索引擎告警、微信等 app 分享告警、首页敏感内容等
排查要点: 能否多个环境下复现异常现象;确定相关资产是否存在;恶意文件是否确实存在于服务器上
操作要点: 跨地区、运营商进行测试,确定受影响范围:在能复现的环境中判断是 DNS 劫持还是 HTTP 劫持
防护措施: 重要业务部署 https
代理隧道
相关表现: 持续性或间断性外连行为,通常为 tcp 协议,对内网多个主机有访问行为
相关危害: 作为跳板机攻击其他内网资产
排查要点: 确定存在代理隧道的跳板机,通常为某时间段内集中访问内网多种资源的机器,判断隧道类型
防护措施: 完善内网 acl,服务器按业务需要通过白名单策略访问外网
替换系统命令
相关表现: 无明显表现
相关危害: 将后门、木马持久化在系统中:窃取账号、密码等重要凭证
排查要点: 使用包管理自带的包校验功能验证文件完整性,分析恶意文件行为,确定影响面
操作要点: 使用静态链接的 busybox;重新安装被替换的包
命令:
1 |
|
ld.so.preload 动态链接库劫持
相关表现: 无明显表现
相关危害: 将后门、木马持久化在系统中:窃取账号、密码等重要凭证
排查要点: 检查/etc/ld.so.preload,ld.so(如/lib/x86_64-linux-gnu/ld-2.27.so)
操作要点: 使用静态链接的 busybox; 重启被注入恶意模块的进程,必要时直接重启系统
内核态 rootkit
相关表现: 无明显表现
相关危害: 将后门、木马持久化在系统中:隐藏文件、进程等信息
排查要点: 确定是否存在无法使用常规命令查看的文件、进程;
操作要点: 使用 tyton 内核态 rootkit 检测工具检测:检查/etc/modules 是否有未知的内核模块
计划任务
相关表现: 特定时间间隔触发木马、后门、网络链接、DNS 请求、篡改页面等行为
相关危害: 将后门、木马持久化在系统中:周期性篡改页面、拉取数据等
排查要点: 判断是否存在周期性出现的异常现象,检查/var/spool/cron/crontabs/,/etc/cron.*等常用计划任务配置文件
操作要点: 停止计划任务服务后再操作;注意辨别利用\r 回车符的障眼法小技巧
远控木马
相关表现: 有持续或间断性的对外网络链接或 DNS 请求等通信行为
相关危害: 窃取系统资料、作为跳板进一步攻击内网其他机器
排查要点: 关注 tcp、udp、icmp 等一切网络行为,检查注册表、服务、开机目录、计划任务等一系列常见的持久化点
操作要点: 检查网络连接,以及 IDS 设备上的异常远控告警
Windows
账号安全
1.弱口令,远程端口
2.可疑账号 lusrmgr.msc
3.隐藏账号,克隆账号
a.打开注册表
b.D 盾查杀
4.日志
a、Win+R 打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”。
b、导出 Windows 日志–安全,利用 Log Parser 进行分析。
异常端口,进程
1、检查端口连接情况,是否有远程连接、可疑连接。
- 检查方法:
- a、netstat -ano 查看目前的网络连接,定位可疑的 ESTABLISHED
- b、根据 netstat 定位出的 pid,再通过 tasklist 命令进行进程定位 tasklist | findstr “PID”
2、进程
- 检查方法:
- a、开始–运行–输入 msinfo32,依次点击“软件环境 → 正在运行任务”就可以查看到进程的详细信息,比如进程路径、进程 ID、文件创建日期、启动时间等。
- b、打开 D 盾_web 查杀工具,进程查看,关注没有签名信息的进程。
- c、通过微软官方提供的 Process Explorer 等工具进行排查 。
- d、查看可疑的进程及其子进程。可以通过观察以下内容:
1 |
|
3、小技巧:
a、查看端口对应的 PID: netstat -ano | findstr “port”
b、查看进程对应的 PID:任务管理器–查看–选择列–PID 或者 tasklist | findstr “PID”
c、查看进程对应的程序位置:
任务管理器–选择对应进程–右键打开文件位置
运行输入 wmic,cmd 界面 输入 process
d、tasklist /svc 进程–PID–服务
e、查看 Windows 服务所对应的端口: %system%/system32/drivers/etc/services
(一般 %system% 就是 C:\Windows)
启动项,计划任务,服务
1、检查服务器是否有异常的启动项。
- 检查方法:
- a、登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此目录在是一个空目录,确认是否有非业务程序在该目录下。
- b、单击开始菜单 >【运行】,输入 msconfig,查看是否存在命名异常的启动项目,是则取消勾选命名异常的启动项目,并到命令中显示的路径删除文件。
- c、单击【开始】>【运行】,输入 regedit,打开注册表,查看开机启动项是否正常,特别注意如下三个注册表项:
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
检查右侧是否有启动异常的项目,如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马。 - d、利用安全软件查看启动项、开机时间管理等。
- e、组策略,运行 gpedit.msc。
2、检查计划任务
- 检查方法:
- a、单击【开始】>【设置】>【控制面板】>【任务计划】,查看计划任务属性,便可以发现木马文件的路径。
- b、单击【开始】>【运行】;输入 cmd,然后输入 at,检查计算机与网络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。
3、服务自启动
- 检查方法:单击【开始】>【运行】,输入 services.msc,注意服务状态和启动类型,检查是否有异常服务。
系统信息
1、查看系统版本以及补丁信息
- 检查方法:单击【开始】>【运行】,输入 systeminfo,查看系统信息
2、查找可疑目录及文件
- 检查方法:
- a、 查看用户目录,新建账号会在这个目录生成一个用户目录,查看是否有新建用户目录。
Window 2003 C:\Documents and Settings
Window 2008R2 C:\Users\
3、得到发现 WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?
日志
系统日志
- 分析方法:
- a、前提:开启审核策略,若日后系统出现故障、安全事故则可以查看系统的日志文件,排除故障,追查入侵者的信息等。
- b、Win+R 打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”。
- C、导出应用程序日志、安全日志、系统日志,利用 Log Parser 进行分析。
WEB 访问日志
- 分析方法:
- a、找到中间件的 web 日志,打包到本地方便进行分析。
- b、推荐工具:Window 下,推荐用 EmEditor 进行日志分析,支持大文本,搜索效率还不错。
- Linux 下,使用 Shell 命令组合查询分析
常用命令
1 |
|
工具
病毒分析
病毒查杀
病毒动态
在线扫描
webshell 查杀
PChunter
系统信息监控工具,主要拿来看数字签名
黑色是微软认证的
粉红色是未认证的
红色是可疑进程
Autoruns
启动项、计划任务等动态监测工具
Process Explorer
应用程序监测工具
数据量很大,需要过滤
TCPView
其实就是 netstat -ano
的输出,但是可视化方便处理
Microsoft Network Monitor
很小的一个流量监控软件
安装完需要重启,可以监测单个程序进程
D 盾
查杀 webshell
Everything
快速查找文件和目录
sysmon
微软开发的系统监控工具,常用来判断挖矿后门等等
火绒剑
威胁分析平台
BeaconEye
监测 CS 木马后门特征
DumpIt
内存取证工具,需要 dump 整个系统,取证空间占用太大,不建议使用
替代工具:FTK Imager
和 WinPMem
Volatility
内存取证工具
Linux
账号安全,历史命令,异常端口,开机启动、服务,异常文件,/tmp/user/bin 目录、进程
基本命令
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
账号安全
基本使用:
1 |
|
1 |
|
入侵排查:
1 |
|
历史命令
基本使用:
1 |
|
入侵排查:
1 |
|
异常端口
使用 netstat 网络连接命令,分析可疑端口、IP、PID
1 |
|
异常进程
使用 ps 命令,分析进程
1 |
|
开机启动
基本使用:
系统运行级别示意图:
查看运行级别命令 runlevel
系统默认允许级别
1 |
|
开机启动配置文件
1 |
|
例子:当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d 目录下,然后在/etc/rc.d/rc*.d 中建立软链接即可
1 |
|
此处 sshd 是具体服务的脚本文件,S100ssh 是其软链接,S 开头代表加载时自启动;如果是 K 开头的脚本文件,代表运行级别加载时需要关闭的。
入侵排查:
启动项文件:
1 |
|
定时任务
基本使用
1、利用 crontab 创建计划任务
- 基本命令
crontab -l 列出某个用户 cron 服务的详细内容
Tips:默认编写的 crontab 文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root
crontab -r 删除每个用户 cront 任务(谨慎:删除所有的计划任务)
crontab -e 使用编辑器编辑当前的 crontab 文件
如:_/1 _* echo “hello world” >> /tmp/test.txt 每分钟写入文件
2、利用 anacron 实现异步定时任务调度
- 使用案例
每天运行 /home/backup.sh 脚本: vi /etc/anacrontab @daily 10 example.daily /bin/bash /home/backup.sh
当机器在 backup.sh 期望被运行时是关机的,anacron 会在机器开机十分钟之后运行它,而不用再等待 7 天。
入侵排查
重点关注以下目录中是否存在恶意脚本
1 |
|
小技巧:
1 |
|
服务
服务自启动
第一种修改方法:
1 |
|
第二种修改方法:
1 |
|
第三种修改方法:
使用 ntsysv 命令管理自启动,可以管理独立服务和 xinetd 服务。
入侵排查
1、查询已安装的服务:
RPM 包安装的服务
1 |
|
源码包安装的服务
1 |
|
异常文件
1、查看敏感目录,如/tmp 目录下的文件,同时注意隐藏文件夹,以“.*”为名的文件夹具有隐藏属性
2、得到发现 WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?
可以使用 find 命令来查找,如 find /opt -iname "*" -atime 1 -type f
找出 /opt 下一天前访问过的文件
3、针对可疑文件可以使用 stat 进行创建修改时间。
日志
日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf
1 |
|
应急工具
BusyBox
静态链接库的 BusyBox
当命令被替换时使用
赋予可执行权限后.\即可
chkrootkit
监测 RootKit 的脚本
Rkhunter
同上
unhide
查找隐藏的 UDP/TCP 进程
ClamAV
检测各种恶意木马,病毒,进程
注意是否存在 so 文件的注入
河马 Webshell
RPM 包
查找文件中的恶意/危险函数
1 |
|
从日志记录中查找
查看每个 IP 地址访问次数:
cat access.log |awk ‘{print $1}’ |sort|uniq - c
访问 URL 排序:
cat access.log |awk ‘{print $1}’ |sort|uniq - c |sort -rn|head
访问指定资源日志:
cat access.log |awk ‘{print $7}’ |grep /%25Domain |sort|uniq - c |sort -rn|more
等保测评
windwos
lusrmgr.msc:用户账号与组设置,密码过期
secpol.msc:用户权限,登陆限制,密码设置策略,审计功能开启
netplwiz:设置“必须输入密码”
eventvwr.msc:审计日志
dconcnfg:组件
firewall.cpl:waf
appwiz.cpl:程序功能,补丁
services.msc:服务
linux
用户身份/etc/shadow
登录控制
- linux /etc/login.defs
- ubuntu /etc/pam.d/common-password
- centos /etc/pam.d/system-auth
文件权限分配
r-4 w-2 x-1 配置文件不超过644 可执行不超过755
远程登录
/etc/ssh/sshd_config
用户权限
/etc/sudoers
安全审计
systemctl status rsyslog(auditd)
日志工具
/var/log/syslog
/vatr/log/audit/audit.log
入侵防范
uanme -a
apt-get update
Webshell
检查
首先,通过浏览器以 HTTP 协议访问 Web Server 上的一个 CGI 文件,是一个合法的 TCP 连接,TCP/IP 的应用层之下没有任何特征,只能在应用层进行检测。
黑客不管是传文件还是改文件,必然有一个文件会包含 webshell 代码,很容易想到从文件代码入手,这是静态特征检测。
webshell 运行后,B/S 数据通过 HTTP 交互,HTTP 请求/响应中可以找到蛛丝马迹,这是动态特征检测。
【静态检测】
静态检测通过匹配特征码,特征值,危险函数函数来查找 webshell 的方法。
优点是快速方便,对已知的 webshell 查找准确率高,部署方便。
缺点漏报率、误报率高,无法查找 0day 型 webshell,而且容易被绕过。
【静态检测配合人工】
一个检查工具 https://github.com/he1m4n6a/findWebshell
【动态检测】
Linux 下就是 nobody 用户起了 bash,Win 下就是 IIS User 启动 cmd,这些都是动态特征。
如果黑客反向连接的话,那很更容易检测了,Agent 和 IDS 都可以抓现行。
Webshell 总有一个 HTTP 请求,如果我在网络层监控 HTTP,并且检测到有人访问了一个从没反问过得文件,而且返回了 200,则很容易定位到 webshell,这便是 http 异常模型检测,就和检测文件变化一样,如果非管理员新增文件,则说明被人入侵了。
缺点也很明显,黑客只要利用原文件就很轻易绕过了,并且部署代价高,网站时常更新的话规则也要不断添加。
【日志检测】
使用 Webshell 一般不会在系统日志中留下记录,但是会在网站的 web 日志中留下 Webshell 页
面的访问数据和数据提交记录。
日志分析检测技术通过大量的日志文件建立请求模型从而检测出异常文件,称之为:HTTP 异常请求模型检测
【寻找 webshell】
1.自动化查找:D 盾 河马 fotify
2.手动查找:windows sublime 全文件夹查找 IDE PHPSTORM 全局查找
Linux 命令查找 grep -rn "eval(" *
webshell 特征 PHP 的危险函数
还有 phar <?php XXXXX
防护
1.限制上传的文件夹解析方式
2.匹配文件夹里的脚本类型文件,将其设置为无法读取及操作。
3.给予上传的文件夹二级域名并且不给予解析权限
4.只能局域网访问
问题处置
文件无法删除
进程占用
1 |
|
隐藏属性
1 |
|
上层文件存在 SBIT 权限
这种情况只存在于非 root 权限去删除其他用户创建的目录的情况,即使文件权限是 777 也无法进行删除。
当目录被设置了粘滞位权限以后,即便用户对该目录有写入权限,也不能删除该目录中其他用户的文件数据,而是只有该文件的所有者和 root 用户才有权将其删除。
这种办法可以保持一种动态的平衡:允许各用户在目录中任意写入、删除数据,但是禁止随意删除其他用户的数据。
需要注意的是,粘滞位权限只能针对目录设置,对于文件无效。
设置了粘滞位权限的目录,使用 ls 命令查看其属性时,其他用户权限处的“x”将变为“t”。
粘滞位权限都是针对其他用户设置,使用 chmod 命令设置目录权限时,“o+t”、“o-t”权限模式可分别用于添加、移除粘滞位权限。
netstat -pantu 不显示 pid 而显示 -
可能是使用了 mkdir .hidden 或者 mount -o bind .hidden /proc/PID
来隐藏
1 |
|
ps 和 top 看不到恶意进程
- 挂载被隐藏(看上一个的操作)
- 命令被替换(使用 busybox 进行检修)
- LD_PRELOAD 等方法共享库劫持(使用 busybox 进行检修)
快速查找文件
【which】
从环境变量查找系统命令的具体文件位置
【whereis】
从/usr 目录快速查找文件
【locate】
从 locatedb 数据库查找文件路径
【find】
强大的搜索命令find <检索路径> <选项> <搜索内容>
具体使用方法
确定系统信息
1 |
|
系统完整性检测
1 |
|
系统文件监控工具
1 |
|
查看 glibc 版本
1 |
|
误删文件恢复
1 |
|
批量检索文件并打印信息
1 |
|
拷贝取证
- 使用虚拟化平台存储快照
- 打包整个系统
- 全盘拷贝(推荐 clonezilla)
- 进程拷贝(推荐 CRIU)
- 组合运用(冻结进程 + 全盘拷贝 + 恢复进程)
远控后门
获取事件告警信息
监控 EDR、态势感知、防火墙等平台查看威胁告警以及日志。
定位后门文件
1 |
|
查看外连事件详情
1 |
|
查找进程信息
1 |
|
根据 pid 查看对应线程
1 |
|
确定进程运行时间
1 |
|
比对恶意文件的创建时间
1 |
|
样本采集分析
使用 SCP/Xshell 等将样本移出主机,计算哈希值后到威胁情报平台中去搜索
certutil -hashfile 文件 MD5
进程查杀
1 |
|
删除文件
1 |
|
威胁情报
威胁情报的获取源
Virustotal:www.virustotal.com
微步在线:x.threatbook.cn
腾讯哈勃:habo.qq.com
Virscan:virusscan.jotti.org
Freebuf:www.freebuf.com
Jotti:virusscan.jotti.org
Scandir:www.scandir.com
Alexa排名:www.alexa.com
备案查询:beian.cndns.com
深信服安全中心:sec.sangfor.com.cn
深信服威胁分析平台:wiki.sec.sangfor.com.cn
深信服EDR安全软件中心:edr.sangfor.com.cn
黑客通过随机域名,动态域名,近期域名,顶级域名,暗网代理域名攻击
病毒
- 蠕虫:自动复制自身的副本到其它主机的病毒。
- 木马:隐蔽性强,多用于监控用户行为或盗取用户数据的病毒。
- 感染型病毒:能将自身恶意代码插入正常文件的病毒。
- 脚本病毒:使用脚本编写的病毒。
- 宏病毒:宏是微软公司为其Office软件包设计的一个特殊功能,由于其功能强大,使得黑客可以通过精心构造的宏代码来实现恶意操作,这些代码就叫做宏病毒。宏病毒常以垃圾邮件的方式对用户进行攻击,因为伪造的Office文档不容易引起用户的怀疑,所以当用户毫无防备的打开Office文档并启用宏之后,宏病毒便开始了运行,对用户主机进行恶意操作。
- 僵尸网络病毒:能形成大型的一对多,多对多控制的远程控制病毒。
- 后门:在主机上开放端口允许远程非授权访问。
- 挖矿病毒:消耗用户CPU、GPU资源,进行大量运算,获取加密货币的病毒。
- 勒索病毒:能对用户文件进行加密的病毒。
挖矿排查
获取信息
- 下线服务器之后从 DNS 服务器、防火墙、态势感知平台等地方获取到攻击事件详细信息
- 根据上传来源的 IP/域名,在威胁情报平台查询确定木马类型
- 获取异常进程的 pid
1 |
|
- 根据 pid 查询详细信息(当查询不到时有可能是/proc/pid 隐藏了)
1 |
|
- 根据 pid 查看对应线程
1 |
|
- 确定进程运行时间
1 |
|
- 比对恶意文件的创建时间
1 |
|
- 样本采集分析
1 |
|
- 进程查杀
1 |
|
- 删除文件
1 |
|
- 网页挖矿排查
1 |
|
暴力破解
介绍
暴力破解一般针对
ssh、mysql、ftp、redis、mongodb、smtp
SSH 暴力破解
- 使用
netstat -pantu
查看网络状态,重点是 PID(当被破解时会有大量的 ESTABLISHED) - 使用
awk -F: '{if($3==0) print $1}' /etc/passwd
查找特殊权限账号(默认 root) - 查找可以使用 ssh 登录的账号
1 |
|
- 查看正在连接的 ssh-session
1 |
|
- 查看所有的账号信息
1 |
|
- 查看登录日志
查看日志 cd /var/log
成功登录 cat /var/log/auth.log | grep “Accept”
正常退出 cat /var/log/auth.log | grep “pam_unix(sshd:session): session closed”
密码错误 cat /var/log/auth.log | grep “authentication failure”
连续错误 cat /var/log/auth.log | grep “message repeated 2 times”
- 统计数据
登录失败的用户名及其次数
grep “Failed password” /var/log/auth.log|perl -e ‘while($_=<>){ /for(.*?)from/; print”$1\n”;}’|sort|uniq -c|sort -nr登录失败的 IP 及其次数
cat /var/log/auth.log | grep “Failed password for” | grep “root” | grep -Po ‘(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])(.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)){3}’ |sort|uniq -c|sort -nr
- 加固防护
升级 SSH 版本至少为 7.7 版本以上,7.7 及以下版本存在 SSH 用户名枚举
加强口令复杂程度
禁止 root 用户登录,可以通过其他用户 su 到 root
安装fail2ban
来进行防御
Mysql 暴力破解
Mysql 默认安装会保留登录日志,在 Ubuntu 上默认位置为 /var/og/mysql/error.log
- 查看登录失败的用户名
1 |
|
- 查看登录失败的 IP 及次数
1 |
|
FTP 暴力破解
- 查看网络连接(如果有爆破会有大量的 ESTABLISHED 状态和 TIME WAIT 状态的网络连接)
1 |
|
- 查看最近的一个 ftp 会话(也可以用 ftpwho 查找)
1 |
|
- 查找日志
1 |
|
- 查找登录失败的账号
1 |
|
- 查找登录失败的 IP
1 |
|
- FTP 服务加固
禁用 anonymous 和 ftp 两个账号
使用 SSL 加密 FTP
安装 fail2ban 来进行防御
Redis 未授权暴力破解
将 redis.conf 中的 requirepass 前的注释打开,并且设置一个复杂密码
缩减开放端口,建议仅在本机 127.0.0.1 使用
配置完成后需要重启来生效
- 只有手动设置 logfile 才能保存日志,默认不设置默认的日志级别 notice 是不会记录登录、执行指令、退出的。
- loglevel 设置为 verbose 或者 debug 才会记录登录主机
- 执行的指令
info,set
等即使 loglevel 是 debug 级别也不会记录,但是会记录我们设置了多少个 key, 具体 key 名称以及内容不会记录
虽然如此,但是失败成功的登录日志都是一样的……
没办法区分是不是攻击行为,只能问有没有人那个时候登过了
MongoDB 暴力破解
默认配置文件位置为 /etc/mongodb.conf
默认的的日志位置为 /var/og/mongodb/mongodb.log
打开 verbose 后能看到大量的 failed 事件
在/var/log/mongodb/mongodb.log 查看
- 登录失败的账户
1 |
|
- 登录所有账户失败的 IP 及次数
1 |
|
- 不存在账户的爆破事件
1 |
|
SMTP 暴力破解
SMTP 负责发,POP3、IMAP 负责收,POP3 协议客户端收到邮件,服务器端就会将其删除,除非有特殊的配置。
IMAP 则弥补了这一缺陷,客户端该收收,服务端还给你保存着,同时你在客户端的各种配置操作都会在服务器上进行同步
1 |
|
善后处理
杀死进程
1 |
|
查看账号
1 |
|
锁定目录
1 |
|
检查异常文件
1 |
|
删除计划任务等
1 |
|
rootkit 查杀
rootkit 主要有两种类型:文件级别和内核级别。
文件级别的 rootkit: 一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。
内核级 rootkit: 是比文件级 rootkit 更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序。内核级 rootkit 主要依附在内核上,它并不对系统文件做任何修改。以防范为主。
查杀工具:
chkrootkit 、 rkhunter 、 ClamAV
其它检查方面
- BASH 内置命令
1 |
|
- BASH 函数
1 |
|
- 环境变量
1 |
|
- SSH key
- SSH config 文件
1 |
|
- alias 命令替换
1 |
|
- DNS 配置文件
1 |
|
- 禁止 ptrace_scope 操作
1 |
|
- ASLR
1 |
|
- capabilities
1 |
|
- iptables 端口复用
1 |
|
- 密码填充检查
1 |
|
- 服务检查
1 |
|
- MOTD
1 |
|
- 进程启动文件
1 |
|
- 检查系统及应用程序配置文件
- sudo 配置文件检查
1 |
|
1 |
|
gpg –quiet –show-keys /etc/pki/rpm-gpg/*
具体存储⽬录为 /etc/pki/rpm-gpg/
溯源
方法
溯源思路:
首先通过系统日志、安全设备截获攻击包等从中分析出攻击者的 ip 和攻击方式,通过 webshell 或者木马去微步分析,
或者去安恒威胁情报中心进行 ip 检测分析,是不是云服务器,基站等,如果是云服务器的话可以直接反渗透,看看开放端口,域名,whois 等进行判断,
获取姓名电话等丢社工库看看能不能找到更多信息然后收工
针对国外 IP 的溯源方法:
- 使用网络安全工具进行溯源:可以使用网络安全工具,如 traceroute、ping 等命令,对目标 IP 进行探测和跟踪。这些工具可以显示出攻击流量经过的路由器、网关和 ISP 等信息,帮助我们了解攻击流量的来源地点。
- 查找域名信息:通过 WHOIS 查询工具查询目标域名的注册信息,包括注册人、注册机构、联系方式等信息,可以从中了解到攻击来源的大致位置。
- 联系当地 ISP:如果攻击者使用的是公共网络,如酒店、咖啡厅、机场等,可以联系当地 ISP,寻求协助获取攻击来源的信息。
溯源反制
主要是通过混淆和伪装攻击流量,防止攻击者获取真实的攻击来源和行为信息。具体操作包括:
1.使用代理服务器:通过使用代理服务器,可以改变攻击流量的来源 IP 地址,使得攻击者无法追踪真实的攻击来源。
2.使用 VPN 技术:VPN 技术可以在公网上建立一个私有网络,加密传输数据流量,从而防止攻击者获取敏感信息。
3.使用匿名浏览器:匿名浏览器可以隐藏用户真实的 IP 地址和浏览痕迹,使得攻击者无法追踪用户的真实身份和行为。
4.使用虚假数据:在攻击流量中混入虚假的数据,如虚假的 IP 地址、协议和端口等信息,可以混淆攻击者的追踪。
内存马
分类
注入型内存马:通过利用漏洞将恶意代码注入到正常进程中,从而在内存中运行。
自执行型内存马:将恶意代码写入自启动项,启动后自动运行。
进程注入型内存马:利用进程注入技术,在受感染进程的内存中运行恶意代码。
Hook 型内存马:利用 Windows API 的 Hook 机制,修改进程中的关键函数,从而运行恶意代码。
要判断内存马的类型,可以使用反病毒软件或专门的安全工具对受感染主机进行扫描和分析。一般来说,不同类型的内存马会留下不同的痕迹和特征,比如某些进程的不正常行为、异常的网络连接等等。
防护
注入型内存马:修复漏洞、升级软件,加强网络安全防护等方法来预防类似攻击;对已经感染的主机,可以通过杀掉受感染进程或卸载恶意程序等方式来清除内存马。
自执行型内存马:可以通过清理自启动项、卸载恶意程序等方式来清除内存马。
进程注入型内存马:可以通过杀掉受感染进程或卸载恶意程序等方式来清除内存马。
Hook 型内存马:可以通过还原 Hook、修复关键函数、杀掉受感染进程或卸载恶意程序等方式来清除内存马。
基线检查
linux
账号管理和授权
- 检查特殊账号,是否存在空密码的账户和root权限账户
- 禁用或删除无用账号
- 添加口令策略:
/etc/login.defs
修改配置文件,设置过期时间、连续认证失败次数 - 禁止root远程登录,限制root用户直接登录。
- 检查su权限。
vi /etc/pam.d/su
添加auth required pam_wheel.so group=test
服务
- 关闭不必要的服务
- SSH服务安全
- 不允许root账号直接登录系统,
PermitRootLogin=no
- 修改SSH使用的协议版本为2
- 修改允许密码错误次数(默认6次),
MaxAuthTries=3
- 不允许root账号直接登录系统,
文件系统
- 设置umask值
vi /etc/profile
添加行umask 027
- 设置登录超时
vi /etc/profile
修改配置文件,将以TMOUT=
开头的行注释,设置为TMOUT=180
日志
- 启用syslogd日志,配置日志目录权限,或者设置日志服务器
- 记录所有用户的登录和操作日志,通过脚本代码实现记录所有用户的登录操作日志,防止出现安全事件后无据可查。https://www.alibabacloud.com/help/zh/faq-detail/49809.htm
IP协议安全要求
- 远程登录取消telnet采用ssh
- 设置/etc/hosts.allow和deny
- 禁止ICMP重定向
- 禁止源路由转发
- 防ssh破解,iptables(对已经建立的所有链接都放行,限制每分钟连接ssh的次数)+denyhost(添加ip拒绝访问)
中间件基线规范(APACHE)
配置
- 账号
- 授权
- 日志
- session过期时间(防ddos
- 绑定监听地址
禁止
- 目录权限
- 访问外部文件
- CGI
- 非法HTTP方法(PUT DELETE)
隐藏
- 服务版本号
- 重定向错误页面
删除
- 配置文件
- 默认安装的无用文件
补充
守护进程
守护进程是什么? 其他进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程(守护进程)不受用户登录注销的影响,它们一直在运行着。
1 |
|
1 |
|
1 |
|
1 |
|
screen 的原理
- 当用户启动 Screen 时,它会创建一个守护进程作为后台进程,并与用户终端会话(称为控制终端)分离。
- 控制终端不再直接处理用户输入和输出,而是由 Screen 守护进程负责接收和处理。
- 守护进程通过与 Unix 域套接字进行通信,与控制终端保持连接。
- 用户在控制终端中输入的命令会被发送到守护进程,并由守护进程解析和执行。
- 守护进程还负责从虚拟终端读取输出内容,并将其发送回控制终端进行显示。
通过这种方式,Screen 实现了在控制终端与守护进程之间的交互,并通过守护进程来管理多个虚拟终端、处理窗口切换、保存会话状态等功能。
需要注意的是,虽然 Screen 的守护进程在后台运行,但用户仍然可以通过重新连接到控制终端来恢复与之前会话的交互,即使之前的 SSH 连接断开或终端关闭。这是 Screen 的一个重要特性,允许用户在断开连接后恢复他们的工作环境。
恢复守护进程会话的交互
可以使用 nohup
命令启动一个守护进程,并将输出重定向到文件中,例如:
1 |
|
通过这种方式启动的守护进程不会因为用户退出终端而停止运行。
当用户重新连接到控制终端时,可以使用 jobs
命令查看守护进程的状态,并使用 fg
命令将其调至前台,恢复与之前会话的交互。例如:
1 |
|
其中,job_id
是守护进程的作业号,可以在 jobs
命令的输出中找到
IDS/IPS
IDS(Intrusion Detection System)入侵检测系统
IPS (Intrusion Prevention System) 入侵防御系统
与防火墙相似,IPS 内嵌部署到流量中。IPS 是一个主动的网络组件,会检查每个通过的数据包,并根据其配置和策略采取正确的补救措施。相反,IDS 是一个被动组件,通常不会内嵌部署,而是通过 SPAN 或 TAP 技术监控流量,然后发出通知