蓝队应急响应:

蓝队学习可以去看b站小迪安全蓝队章节

案例:微信公众号:solar应急响应团队

练习:qsnctf.com

大概流程:

1.前期入场:

1.1外网资产搜集:

​ 互联网资产(fofa,hunter,zoomeye)

​ 小程序(影子小程序)

​ 公众号下存在的跳转页面业务

​ 供应商系统台账

​ 代码平台代码泄露,账号,vpn等

​ 默认密码文档泄露(语雀,飞书,公众号文章,博客)

1.2安全加固:

​ 主机加固

​ edr(特征库是否最新)

​ 基线检查(有无异常项,guest用户是否禁用,远程连接是否可免密登录其他主机)

​ 用户密码是否为弱口令

​ 系统更新,补丁安装情况

​ ssh是否设置allow users,默认端口是否修改

​ 重大业务是否备份,可瞬时恢复

​ 中间件加固

​ 版本是否存在历史漏洞(如iis解析漏洞,shiro550等)

​ web加固

​ 重大业务是否备份,可瞬时恢复

​ 是否有waf(雷池,创宇盾)

​ 是否有蜜罐和反制措施

​ 是否是docker搭建业务

​ 集权设备防护

​ 集权设备是否在安全的网段域内

​ 是否自有少数的运维ip地址可远程集权设备段服务器(访问控制列表acl颗粒度细化)(业务段ip不可达)

​ 集权设备是否专人管控(是否有虚拟机快照,是否有日志审计)

​ sshd是否加固完善(端口,permitrootlogin,allow users,hosts.allow,hosts.deny等等)

​ 集权设备互相之间是否存在管理情况(堡垒机管理其他集权设备)

​ 集权设备主机是否有主机加固软件,基线检查,漏扫是否定期做

​ 集权设备具有文件分发功能的主机(重点关注)

1.3渗透测试

​ 常规外网渗透测试(重点文件上传,ssrf,rce等可以获得权限进内网的漏洞)

​ 常规内网渗透测试(内网大保健有货没,工具落地是否有告警,是否可连通集权域)

2.护网值守

2.1.人员技术摸底

​ 人员情况真实摸底,使用过哪些产品,真实参与过多少次hw,什么位置

​ 溯源强的就溯源,研判强的就研判,研判一般的带监测一起监测

2.2项目设备熟悉

​ 项目有哪些设备,如何操作,尽量放熟悉设备的人,本项目甲方的自有平台如何操作,是否有文档,是否有资产台账确认资产,是否有内部沟通群即使接收总部的信息,同步封禁。

​ 封禁ip确认无误,无如127.0.0.1,私有地址,本集团地址,dns地址等等,再与甲方确认再次封禁(工作留痕)

​ 集权设备地址为重点关注对象(日志每日审计,账号情况,文件分发情况,账户登录ip绑定情况)

​ 做好交接工作,交接留痕

​ 部门多协同,有异常即使反馈甲方,甲方协调是否上机器排查等等

2.3各司其职完美结束

​ 有告警就研判,分析完能溯源就溯源,不能溯源就算了

​ 集权设备要每日交接都需要操作审计,用户审计(重点关注

​ 业务台账及时完备且准确(及时通知甲方和业务,必要时期断网,关机处理(关机需谨慎))

​ 切记集权不管集权,文件分发操作是大问题(多主机同一名称程序.exe 90%为马子

​ 有落地文件到主机,有横向迹象及时处理,按应急演练操作来,先报告甲方,再上机器处理,再多部门联动解决问题,并形成报告。

​ 干就完了(打穿了跟我监测猴子什么关系,终有人去顶雷的)

3.项目结束打道回府

​ 项目结束统计好工时,交接文档情况,日报情况,封禁ip有无完全版封禁时间是否为多久后自动解封

​ 文件是否有私带(保密协议是否签署)

自我总结常用

windows主机:

1.win+R常用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cmd:              打开命令提示符窗口。
msconfig: 打开系统配置实用程序,用于配置启动项、服务和其他系统设置。
regedit: 打开注册表编辑器,用于编辑 Windows 注册表。
winver: 显示 Windows 版本信息。
taskmgr: 打开任务管理器。
gpedit.msc: 打开组策略(Group Policy)
control: 打开控制面板。
services.msc: 打开服务
devmgmt.msc: 打开设备管理器。
lusrmgr.msc: 打开本地用户和组
services.msc: 打开服务管理器。
diskmgmt.msc: 打开磁盘管理,用于管理硬盘分区和卷。
eventvwr.msc: 打开事件查看器,用于查看系统和应用程序的事件日志。
compmgmt.msc 打开计算机管理

2.查看外联程序

1
2
1.cmd下:netstat -ano | findstr "地址"    //查看pid
2.cmd下:tasklist /svc |findstr "pid号" //查看程序名称

3.查看计划任务

1
cmd下:schtasks

4.查看本机用户

1
2
3
4
5
6
0、win+R:lusrmgr.msc
1、查看用户:net user
2、查看全部用户(含隐藏用户):wmic useraccount get name
3、查看用户情况:net user 用户名
4、不启用用户:net user 用户名 /ACTIVE:NO
5、删除用户:net user 用户名 /DELETE

5.程序在跑,目录却没有

1
2
3
4
5
6
win11:打开任务管理器-》查看-》显示-》隐藏的项目   打开看是否可以看到或者dir /a
如果仍然无法体现,则查看隐藏属性:attrib,如果这个程序存在SH属性则被隐藏了。
去除隐藏:attrib -s -h -r "目录*.*" /s /d
如果无法拷贝出来丢沙箱:可以本地powershell计算后查询沙箱:
计算md5:Get-FileHash -Algorithm MD5 "路径\文件"
计算sha256:Get-FileHash "路径\文件"

6.日志排查

1
2
3
打开日志:win+R eventvwr.msc ,排查工具fulleventlog
1、暴力破解:日志4625很多
2、rdp远程登录:查询关键字为:登录类型为10的securiyt日志

7、内网业务查询内网穿透软件

1
2
1、查看ed或者其他安全软件告警,例如椒图就会有
2、everything查文件,例如frp、rathole、NPS、ngrok、花生壳等等

linux主机:

自我总结命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
查看所有用户登录:lastlog
正在登录的shell:who
查看登录失败情况:lastb
查看用户执行过的历史命令:history 或者cat ~/.bash_history
查看某个用户的历史命令:cat /home/用户名/.bash_history 或者cat ~/.bash_history
如果发现无文件且history可以运行,先运行:echo $SHELL ,输出为:/usr/bin/zsh,则输入:cat ~/.zsh_history

查看计划任务:crontab -l
查看某用户的计划任务:crontab -u name
cat /etc/crontab
查看所有计划任务文件:ll /etc/cron.* 然后感觉可疑的直接cat

流量抓取:tcpdump host 192.168.54.122
例如抓取某程序是否外联请求:
0、netstat -pantu | grep 程序名,看目的地址是否是外联地址
1、netstat -pantu |grep 程序名,然后看下本机上的端口号
2、抓流量,sudo tcpdump -i any -nn port 端口号 >network.txt
3、再查下有没有和那个地址通信,cat network.txt |grep 外联ip


页面修改挂马:(不要关机,保护第一现场)
1.挂马和暗链的代码打包,日志打包
2.对web日志读取,发现对多php等文件通信和执行命令,确认文件
3.文件初步研判和沙箱跑,打包目录webshell扫描,本机全量扫描
4.确认为webshell,确认落地时间,业务地址,主机
5.web日志回推文件落地前通信日志和态势感知时间前告警
6.确定攻击网络数据包,复测漏洞是否存在,旧洞自己修,0day找业务厂家
7.接口临时配置404或者维护页面,等业务修复做复测操作
8.主机做常规蓝队应急全流程要素跑一遍
前期工作对业务网站打包源码:tar -czvf 打包名.tar.gz 目录/
恢复期间对业务网站打包恢复:tar -xvf 打包名.tar.gz -c 目录/

挖矿情况:
查看cpu占比高的进程:top
查看单独的程序的占比:top -p pid号
如果命令被篡改:下载busybox :busybox top
若命令篡改后无法下载busybox:先alias 查看命令是否被修改,如果存在,即使用unalias top修复即可
查看守护进程:pstree -p | grep pid号 或者pstree -s pid号 或者ps -aux |grep pid号,查看tty=?

ssh:
查看sshd配置:cat /etc/ssh/sshd_config
sshd修改后检查是否有问题:sshd -T
修改后需sshd重启:systemctl restart sshd
sshd配置备份:cp sshd_config sshd_config_日期.bak

文件无法删除:(不允许操作)(权限不够就加sudo,或者切换root操作)
1.使用:lsattr 文件名字,发现有i参数,证明操作了。
2.删除权限:chattr -i 文件名
3.再次使用rm 文件名,发现可以删除

文件传输发现无法传输:
1.ls -al 看文件的属性,如果是root:root,可以使用sudo chown 低权限用户:低权限用户 文件名
2.修改后再测试传输,或者再看看lsattr

清理病毒项:
1.计划任务:rm -rf /etc/cron.d/xxx 路径不唯一
2.守护进程:根据计划任务排查出来守护进程路径文件,rm即可
3.运行进程:kill -9 pid号
4.病毒程序:rm -rf 程序,如果无法删除需查询lsattr 程序,看有无i权限
5.恢复默认项:unalias top
6.删除恶意用户:userdel username ,若为root权限,先降权usermod -u 1001 -g 1001 username,仍然无法实现即强制删除:userdel -r -f -z username
7.删除存留的sshkey:nano ~/.ssh/authorized_key

网络搜集相关命令:

创建系统快照:

1
2
3
4
5
6
7
8
9
10
11
12
13
进程类:
ps aux >process_list.txt
ps -ef > process_tree.txt
top -bn 1 |head -20 >top.txt
网络信息类:
netstat -pantu > netstat.txt
ss -tunap > socket.txt
lsof -i >open_file.txt
系统信息类:
uname -a >systeminfo.txt
cat /proc/version >> systeminfo.txt
df -h > disk_usage.txt
free -h >memory_usage.txt

进程分析:

1
2
3
4
5
查看进程详细信息:cat /proc/pid号/cmdline
查看进程打开的文件:lsof -ppid号
查看进程exe程序:ls -la /proc/pid号/exe
查看进程exe程序路径:ls -la /proc/pid号/cwd 或者pwdx pid号

awk命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
暴力破解攻击次数和ip排序:
awk '/Failed password/{for(i=1;i<=NF;i++) if($i ~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) {print $i; break}}' /var/log/auth.log | sort | uniq -c | sort -nr

暴力破解的用户名:
grep "Failed password" /var/log/secure | awk '{print $(NF-5)}' | sort | uniq -c | sort -nr

成功登录的ip和用户名:
grep "Accepted" /var/log/secure | awk '{print "User="$9, "IP="$11}' | sort | uniq

web日志:
apache日志:/var/log/apache2/access.log、nginx日志/var/log/nginx/access.log

问量前10的 IP:
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10

状态码非 200 的请求:
awk '$9 != 200 && $9 != 304' access.log | awk '{print $1, $6, $7, $9}' | head -20

uid=0的用户:
awk -F: '($3==0){print $1}' /etc/passwd

路径为/bin/shell用户:
awk -F: '($NF!="/sbin/nologin" && $NF!="/bin/false"){print $1, $NF}' /etc/passwd

查看无密码用户:
awk -F: '($2==""){print $1}' /etc/shadow

iptables网络隔离阻断:

1
2
3
4
5
挖矿病毒:
查看pid:top
查看外连地址:netstat -pantu |grep pid号
iptables output 链阻断:
iptables -A OUTPUT -p tcp -d 192.168.54.129 --dport 6678 -j DROP

其他高价值参考:

第1篇:windows 入侵排查

0x00 前言

当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为企业挽回或减少经济损失。

常见的应急响应事件分类:

Web 入侵:网页挂马、主页篡改、Webshell

系统入侵:病毒木马、勒索软件、远控后门

网络攻击:DDOS 攻击、DNS 劫持、ARP 欺骗

针对常见的攻击事件,结合工作中应急响应事件分析和解决的方法,总结了一些 Windows 服务器入侵排查的思路。

0x01 入侵排查思路

1.1 检查系统账号安全

1、查看服务器是否有弱口令,远程管理端口是否对公网开放。

  • 检查方法:据实际情况咨询相关服务器管理员。

2、查看服务器是否存在可疑账号、新增账号。

  • 检查方法:打开 cmd 窗口,输入 lusrmgr.msc 命令,查看是否有新增/可疑的账号,如有管理员群组的(Administrators)里的新增账户,如有,请立即禁用或删除掉。

3、查看服务器是否存在隐藏账号、克隆账号。

  • 检查方法:

    a、打开注册表 ,查看管理员对应键值。

    b、使用D盾_web查杀工具,集成了对克隆账号检测的功能。

4、结合日志,查看管理员登录时间、用户名是否存在异常。

  • 检查方法:

    a、Win+R 打开运行,输入”eventvwr.msc”,回车运行,打开“事件查看器”。

    b、导出 Windows 日志 – 安全,利用微软官方工具 Log Parser 进行分析。

1.2 检查异常端口、进程

1、检查端口连接情况,是否有远程连接、可疑连接。

  • 检查方法:

    a、使用netstat -ano 命令查看目前的网络连接,定位可疑的 ESTABLISHED

    b、根据 netstat 命令定位出的 PID 编号,再通过 tasklist 命令进行进程定位 tasklist | findstr "PID"

2、进程

  • 检查方法:

    a、开始 – 运行 – 输入 msinfo32 命令,依次点击 “软件环境 – 正在运行任务” 就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期以及启动时间等。

    b、打开D盾_web查杀工具,进程查看,关注没有签名信息的进程。

    c、通过微软官方提供的 Process Explorer 等工具进行排查 。

    d、查看可疑的进程及其子进程。可以通过观察以下内容:

    没有签名验证信息的进程
    没有描述信息的进程
    进程的属主
    进程的路径是否合法
    CPU 或内存资源占用长时间过高的进程
    

3、小技巧:

​ a、查看端口对应的 PID:netstat -ano | findstr "port"

​ b、查看进程对应的 PID:任务管理器 – 查看 – 选择列 – PID 或者 tasklist | findstr "PID"

​ c、查看进程对应的程序位置:

​ 任务管理器 – 选择对应进程 – 右键打开文件位置

​ 运行输入 wmic,cmd 界面输入 process

​ d、tasklist /svc 进程 – PID – 服务

​ e、查看Windows服务所对应的端口:

​ %systemroot%/system32/drivers/etc/services(一般 %systemroot% 就是 C:\Windows 路径)

1.3 检查启动项、计划任务、服务

1、检查服务器是否有异常的启动项。

  • 检查方法:

    a、登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此目录在是一个空目录,确认是否有非业务程序在该目录下。
    b、单击开始菜单 >【运行】,输入 msconfig,查看是否存在命名异常的启动项目,是则取消勾选命名异常的启动项目,并到命令中显示的路径删除文件。
    c、单击【开始】>【运行】,输入 regedit,打开注册表,查看开机启动项是否正常,特别注意如下三个注册表项:

    1
    2
    3
    HKEY_CURRENT_USER\Software\Microsoft\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.4 检查系统相关信息

1、查看系统版本以及补丁信息

  • 检查方法:单击【开始】>【运行】,输入 systeminfo,查看系统信息。

2、查找可疑目录及文件

  • 检查方法:

    a、 查看用户目录,新建账号会在这个目录生成一个用户目录,查看是否有新建用户目录。

    1
    2
    Window 2003版本 C:\Documents and Settings
    Window 2008R2及以后版本 C:\Users\

    b、单击【开始】>【运行】,输入 %UserProfile%\Recent,分析最近打开分析可疑文件。

    c、在服务器各个目录,可根据文件夹内文件列表时间进行排序,查找可疑文件。

    d、回收站、浏览器下载目录、浏览器历史记录

    e、修改时间在创建时间之前的为可疑文件

3、发现并得到 WebShell、远控木马的创建时间,如何找出同一时间范围内创建的文件?

a、利用 Registry Workshop 注册表编辑器的搜索功能,可以找到最后写入时间区间的文件。
b、利用计算机自带文件搜索功能,指定修改时间进行搜索。

1.5 自动化查杀

  • 病毒查杀

    • 检查方法:下载安全软件,更新最新病毒库,进行全盘扫描。
  • webshell查杀

    • 检查方法:选择具体站点路径进行webshell查杀,建议使用两款 WebShell 查杀工具同时查杀,可相互补充规则库的不足。

1.6 日志分析

系统日志

  • 分析方法:

    a、前提:开启审核策略,若日后系统出现故障、安全事故则可以查看系统的日志文件,排除故障,追查入侵者的信息等。

    b、Win+R 打开运行,输入 “eventvwr.msc”,回车运行,打开”事件查看器”。

    C、导出应用程序日志、安全日志、系统日志,利用 Log Parser 进行分析。

Web 访问日志

  • 分析方法:

    a、找到中间件的web日志,打包到本地方便进行分析。

    b、推荐工具:Windows 下,推荐用 EmEditor 进行日志分析,支持大文本,搜索效率还不错。Linux 下,使用 Shell 命令组合查询分析。

0x02 工具篇

2.1 病毒分析

PCHunter:http://www.xuetr.com

火绒剑:https://www.huorong.cn

Process Explorer:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer

processhacker:https://processhacker.sourceforge.io/downloads.php

autoruns:https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns

OTL:https://www.bleepingcomputer.com/download/otl/

SysInspector:http://download.eset.com.cn/download/detail/?product=sysinspector

2.2 病毒查杀

卡巴斯基:http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe (推荐理由:绿色版、最新病毒库)

大蜘蛛:http://free.drweb.ru/download+cureit+free(推荐理由:扫描快、一次下载只能用1周,更新病毒库)

火绒安全软件:https://www.huorong.cn

360杀毒:http://sd.360.cn/download_center.html

2.3 病毒动态

CVERC-国家计算机病毒应急处理中心:http://www.cverc.org.cn

微步在线威胁情报社区:https://x.threatbook.cn

火绒安全论坛:http://bbs.huorong.cn/forum-59-1.html

爱毒霸社区:http://bbs.duba.net

腾讯电脑管家:http://bbs.guanjia.qq.com/forum-2-1.html

2.4 在线病毒扫描网站

Virustotal:https://www.virustotal.com

Virscan:http://www.virscan.org

腾讯哈勃分析系统:https://habo.qq.com

Jotti 恶意软件扫描系统:https://virusscan.jotti.org

2.5 webshell查杀

D盾_Web查杀:http://www.d99net.net/index.asp

河马 WebShell 查杀:http://www.shellpub.com

第2篇:Linux 入侵排查

0x00 前言

当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为企业挽回或减少经济损失。

针对常见的攻击事件,结合工作中应急响应事件分析和解决的方法,总结了一些 Linux 服务器入侵排查的思路。

0x01 入侵排查思路

1.1 账号安全

基本使用:

1
2
3
4
5
6
7
8
9
1、用户信息文件 /etc/passwd
root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后的 shell
注意:无密码只允许本机登陆,远程不允许登陆

2、影子文件 /etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
1
2
3
who     查看当前登录用户(tty 本地登陆  pts 远程登录)
w 查看系统信息,想知道某一时刻用户的行为
uptime 查看登陆多久、多少用户,负载状态

入侵排查:

1
2
3
4
5
6
7
8
9
10
1、查询特权用户特权用户(uid 为0)
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
2、查询可以远程登录的帐号信息
[root@localhost ~]# awk '/\$1|\$6/{print $1}' /etc/shadow
3、除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限
[root@localhost ~]# more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
4、禁用或删除多余及可疑的帐号
usermod -L user 禁用帐号,帐号无法登录,/etc/shadow 第二栏为 ! 开头
userdel user 删除 user 用户
userdel -r user 将删除 user 用户,并且将 /home 目录下的 user 目录一并删除

1.2 历史命令

基本使用:

通过 .bash_history 文件查看帐号执行过的系统命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1、root 用户的历史命令
histroy
2、打开 /home 各帐号目录下的 .bash_history,查看普通帐号执行的历史命令。
为历史的命令增加登录的 IP 地址、执行命令时间等信息:
1)保存1万条命令
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
2)在/etc/profile的文件尾部添加如下行数配置信息:
######jiagu history xianshi#########
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"
######### jiagu history xianshi ##########
3)source /etc/profile 让配置生效
生成效果: 1 2018-07-10 19:45:39 192.168.204.1 root source /etc/profile
3、历史操作命令的清除:history -c
但此命令并不会清除保存在文件中的记录,因此需要手动删除 .bash_profile 文件中的记录。

入侵排查:

1
2
进入用户目录下,导出历史命令。
cat .bash_history >> history.txt

1.3 检查异常端口

使用 netstat 网络连接命令,分析可疑端口、IP、PID

1
2
3
4
netstat -antlp | more

查看下 pid 所对应的进程文件路径,
运行 ls -l /proc/$PID/exe 或 file /proc/$PID/exe($PID 为对应的 pid 号)

1.4 检查异常进程

使用 ps 命令,分析进程

1
ps aux | grep pid 

1.5 检查开机启动项

基本使用:

系统运行级别示意图:

运行级别 含义
0 关机
1 单用户模式,可以想象为windows的安全模式,主要用于系统修复
2 不完全的命令行模式,不含NFS服务
3 完全的命令行模式,就是标准字符界面
4 系统保留
5 图形模式
6 重启动

查看运行级别命令 runlevel

系统默认允许级别

vi  /etc/inittab
id=3:initdefault  #系统开机后直接进入哪个运行级别

开机启动配置文件

/etc/rc.local
/etc/rc.d/rc[0~6].d

例子:当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在 /etc/init.d 目录下,然后在 /etc/rc.d/rc*.d 文件中建立软链接即可。

注:此中的 * 代表 0,1,2,3,4,5,6 这七个等级

root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh

此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动;如果是K开头的脚本文件,代表运行级别加载时需要关闭的。

入侵排查:

启动项文件:

1
2
3
more /etc/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/

1.6 检查定时任务

基本使用

1、利用 crontab 创建计划任务

  • 基本命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    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 命令实现异步定时任务调度

  • 使用案例

    1
    2
    3
    4
    每天运行 /home/backup.sh 脚本:
    vi /etc/anacrontab
    @daily 10 example.daily /bin/bash /home/backup.sh
    当机器在 backup.sh 期望被运行时是关机的,anacron会在机器开机十分钟之后运行它,而不用再等待 7天。

入侵排查

重点关注以下目录中是否存在恶意脚本

/var/spool/cron/* 
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/* 
/etc/cron.hourly/* 
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*

小技巧:

more /etc/cron.daily/*  查看目录下所有文件

1.7 检查服务

服务自启动

第一种修改方法:

chkconfig [--level 运行级别] [独立服务名] [on|off]
chkconfig –level  2345 httpd on  开启自启动
chkconfig httpd on (默认level是2345)

第二种修改方法:

修改 /etc/re.d/rc.local 文件  
加入 /etc/init.d/httpd start

第三种修改方法:

使用 ntsysv 命令管理自启动,可以管理独立服务和 xinetd 服务。

入侵排查

1、查询已安装的服务:

RPM 包安装的服务

chkconfig  --list  查看服务自启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond 查看当前服务

系统在3与5级别下的启动项 
中文环境
chkconfig --list | grep "3:启用\|5:启用"
英文环境
chkconfig --list | grep "3:on\|5:on"

源码包安装的服务

查看服务安装位置 ,一般是在/user/local/
service httpd start
搜索/etc/rc.d/init.d/  查看是否存在

1.8 检查异常文件

1、查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性

2、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?

​ 可以使用find命令来查找,如 find /opt -iname “*” -atime 1 -type f 找出 /opt 下一天前访问过的文件

3、针对可疑文件可以使用 stat 进行创建修改时间。

1.9 检查系统日志

日志默认存放位置:/var/log/

查看日志配置情况:more /etc/rsyslog.conf

日志文件 说明
/var/log/cron 记录了系统定时任务相关的日志
/var/log/cups 记录打印信息的日志
/var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/mailog 记录邮件信息
/var/log/message 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
/var/log/btmp 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
/var/log/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询
/var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

日志分析技巧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
1、定位有多少IP在爆破主机的root帐号:    
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

定位有哪些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

爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

2、登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'

3、增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure

4、删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
# grep "userdel" /var/log/secure

5、su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)

sudo授权执行:
sudo -l
Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now

0x02 工具篇

2.1 Rootkit查杀

  • chkrootkit

    网址:http://www.chkrootkit.org

    1
    2
    3
    4
    5
    6
    7
    使用方法:
    wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
    tar zxvf chkrootkit.tar.gz
    cd chkrootkit-0.52
    make sense
    #编译完成没有报错的话执行检查
    ./chkrootkit
  • rkhunter

    网址:http://rkhunter.sourceforge.net

    1
    2
    3
    4
    5
    6
    使用方法:
    Wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz
    tar -zxvf rkhunter-1.4.4.tar.gz
    cd rkhunter-1.4.4
    ./installer.sh --install
    rkhunter -c

2.2 病毒查杀

  • Clamav

    网址:http://www.clamav.net/download.html

    安装方式一:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    1、安装 zlib:
    wget http://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.7/zlib-1.2.7.tar.gz
    tar -zxvf zlib-1.2.7.tar.gz
    cd zlib-1.2.7
    #安装一下gcc编译环境: yum install gcc
    CFLAGS="-O3 -fPIC" ./configure --prefix= /usr/local/zlib/
    make && make install

    2、添加用户组 clamav 和组成员 clamav:
    groupadd clamav
    useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav

    3、安装 Clamav
    tar –zxvf clamav-0.97.6.tar.gz
    cd clamav-0.97.6
    ./configure --prefix=/opt/clamav --disable-clamav -with-zlib=/usr/local/zlib
    make
    make install

    4、配置 Clamav
    mkdir /opt/clamav/logs
    mkdir /opt/clamav/updata
    touch /opt/clamav/logs/freshclam.log
    touch /opt/clamav/logs/clamd.log
    cd /opt/clamav/logs
    chown clamav:clamav clamd.log
    chown clamav:clamav freshclam.log

    5、ClamAV 使用:
    /opt/clamav/bin/freshclam 升级病毒库
    ./clamscan –h 查看相应的帮助信息
    ./clamscan -r /home 扫描所有用户的主目录就使用
    ./clamscan -r --bell -i /bin 扫描bin目录并且显示有问题的文件的扫描结果

    安装方式二:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #安装
    yum install -y clamav
    #更新病毒库
    freshclam
    #扫描方法
    clamscan -r /etc --max-dir-recursion=5 -l /root/etcclamav.log
    clamscan -r /bin --max-dir-recursion=5 -l /root/binclamav.log
    clamscan -r /usr --max-dir-recursion=5 -l /root/usrclamav.log
    #扫描并杀毒
    clamscan -r --remove /usr/bin/bsd-port
    clamscan -r --remove /usr/bin/
    clamscan -r --remove /usr/local/zabbix/sbin
    #查看日志发现
    cat /root/usrclamav.log |grep FOUND

2.3 webshell查杀

Linux 版:

1
河马 WebShell 查杀:http://www.shellpub.com

2.4 RPM check 检查

系统完整性可以通过rpm自带的-Va来校验检查所有的rpm软件包,查看哪些命令是否被替换了:

1
./rpm -Va > rpm.log

如果一切均校验正常将不会产生任何输出,如果有不一致的地方,就会显示出来,输出格式是8位长字符串,每个字符都用以表示文件与RPM数据库中一种属性的比较结果 ,如果是. (点) 则表示测试通过。

1
2
3
4
5
6
7
8
9
验证内容中的8个信息的具体内容如下:
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否被改变
5 文件MD5校验是否改变(可以看成文件内容是否改变)
D 设备中,从代码是否改变
L 文件路径是否改变
U 文件的属主(所有者)是否改变
G 文件的属组是否改变
T 文件的修改时间是否改变

如果命令被替换了,如果还原回来:

1
2
3
4
5
文件提取还原案例:
rpm -qf /bin/ls 查询 ls 命令属于哪个软件包
mv /bin/ls /tmp 先把 ls 转移到 tmp 目录下,造成 ls 命令丢失的假象
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls 提取 rpm 包中 ls 命令到当前目录的 /bin/ls 下
cp /root/bin/ls /bin/ 把 ls 命令复制到 /bin/ 目录 修复文件丢失

2.5 Linux安全检查脚本

Github 项目地址:

https://github.com/grayddq/GScan

https://github.com/ppabc/security_check

https://github.com/T0xst/linux

护网备战28条:

一、确认组织、分工、计划

1.根据用户现场实际情况编制工作方案,包括组织架构、工作分工与职责、工作计划、工作任务等;

  1. 制定 HW 工作方案,包含工作组织架构、工作分工和计划、准备工作、安全自查和整改、预演习、正式演习、总结等阶段工作内容,含 HW 期间防守方案,专项应急预案;

  2. 初步确定好监测、研判、封禁、配合整改、应急处置分组和具体责任人;

  3. 约定项目文档的传递方式,以及加密口令等;

  4. 网络环境准备,办公环境准备,应建议 HW 的厂商在同一办公室办公,利于沟通;建立 HW 即时通讯工作群、标识好各方的名称;

  5. 会议结束后生成会议纪要,发送相关方;HW 准备阶段应形成项目周会的机制, 及时回顾及推进工作进展;

  6. 提示:所有与 HW 有关的计划、漏洞、工作要求、风险提示,应以可留痕的方式与客户沟通,并确保抄送到相关负责人,避免纯口头沟通。

二、召开启动会议

  1. 邀请安全设备厂商、服务台、相关软件开发商、安全服务厂商、运维厂商等参与会议;由 HW 主管领导明确工作计划及责任分工等;特别是强调各厂商做漏洞整改的责任;

  2. 编制会议纪要; 客户方应下发 HW 的相关通知/公文;

  3. 参考分工:

系统/平台组:配合对疑似或确认已受到攻击的主机进行检查,进行异常代码清除操作,进行漏洞排查及修复操作。

网络部门:配合对来自分行的攻击行为在防火墙上进行封禁操作,配合对其他攻击行为在相应防火墙进行封禁操作。

软开部门:配合协调人员对受到攻击的主机进行检查,配合进行异常代码清除操作,配合进行漏洞修复;

厂商人员:协助对系统做加固,对告警、事件日志进行分析,提供技术支持。

三、内网资产梳理

  1. 向客户方收集原始资产表,包括 IP、系统归属、责任人;可从已有的资产管理类平台导出做补充;

  2. 基于前期对网络及网段的了解,同时参考原始资产表范围,使用扫描工具对防守边界范围内的所有在线 IP 做扫描;扫描前应要求针对扫描器 IP 放通全部访问策略或直接该网段做扫描;

  3. 工具建议:

  4. 操作建议:

​ 4.1 NMAP、goby等类似资产扫描工具

表),在资产表中可标注出集权类系统(DC、4A 类、堡垒机、VPN)、敏感系统、重要资产并给予高赋值,标注出无主资产;

​ 4.2 以 NMAP 或 扫描网络上资产开放的端口及服务,扫描时对于普通网段可用 NMAP 只对 TOP3000 端口做扫描以提高速度,对于目标系统及暴露面应做全网段、全量端口扫描;

  1. 提示:全面的资产梳理工作属风险评估工作范畴,相当耗时;PM 应根据项目范围、项目预算、实际风险,抓住重点,把握好资产梳理优先级和颗粒度;以自动化工具为抓手,以发现技术风险为导向,不细究资产业务属性细节。
  2. 本项工作应上传交付物附件!

四、互联网暴露面梳理

1.做互联网资产扫描;发现子域名、端口服务、管理后台、外网可访问的所有IP、微信小程序、github、gitlab、网盘、云端资产;

  1. 从负责公网发布的 NAT、负载均衡设备中提取;

  2. 公网资产梳理工具:FOFA 类、云眼、子域名挖掘机、企查查、天眼查、Sublist3r、、SIP、NMAP、Routerscan;TIPS:当采用扫描方式时应对互联网暴露面资产应做全网段(相关C段)、全端口扫描;

  3. 公网资产梳理的结果,将为漏洞扫描、渗透测试、口令爆破、系统关停提供输入;

  4. 本项工作应上传交付物附件!

  5. 常 见 突 破 外 网 手 段              TIPS:

a、Struts、Weblogic、shiro 等中间件漏洞 getshell

b 、 fastjson         等 组 件 漏 洞   getshell

c 、 弱 口 令 + 后 台 漏 洞            getshell

d、邮件系统弱口令与社工钓鱼

e、注入、任意文件下载、中间件解析漏洞、代码/命令执行 f、第三方获得源代码进行代码审计

g、通用系统 0day,通常集中在:OA 系统、邮件系统等h、VPN 弱口令与 0day

五、攻击路径预判

  1. 攻击路径预判的目的是:为访问控制设备、SIP 设备及安全策略的部署提供依据;对路径上资产漏洞的重点排查及加固;收敛关闭不必要的路径;

  2. 操作建议:获取最新的、完整的网络拓扑图,包括安全设备部署位置,与网络管理人员、安全管理人员讨论确认所有可能的攻击路径;

  3. 提示:典型攻击路径包括:

互联网-DMZ-生产服务器区; 互联网-办公区-生产服务器区; 外联网-生产服务器区; 互联网-测试区-生产服务器区; 互联网-供应商-办公区/生产区;互联网-分支机构-办公区-生产区; 其他

  1. 如有目标系统,应针对目标系统相关资产,分析梳理所有可能的攻击路径;

  2. 本项工作应上传交付物附件!包括攻击路径列表、说明攻击路径上是否有全面部署 AF、SIP 类设备。是否已提交设备采购及部署建议。

六、漏洞扫描

  1. 对主机、设备、数据库、中间件、WEB 应用的安全漏洞扫描;

  2. 扫描应以资产梳理及攻击路径预判为基础,优先检查互联网暴露面系统、核心系统、与防护目标相连接的系统、攻击路径上系统;参考次序:互联网暴露面资产>DMZ 区资产>目标系统>集权系统>敏感系统>云端系统>其他系统>终端;

  3. 在全量漏洞扫描的基础上,可用 扫描工具大范围快速排查漏洞如 struts2、weblogic、RCE 类漏洞等;

  4. 操作建议:务必要求客户在网络直连或防火墙策略全通的条件下进行扫描,以最大化扫描效果;重要!

  5. 参考工具:

  6. 本项工作应上传交付物附件!包括各工具的扫描结果、漏洞汇总结果及人工处理后的结果。如做了多次扫描及多次整改验证应再次提交同时提醒PM或组长再次评审。

七、渗透测试

  1. 通过对应用的远程渗透测试,发现安全漏洞,出具渗透报告;提出整改建议;

  2. 检查次序:互联网暴露面资产>DMZ 区资产>目标系统>集权系统>敏感系统;

  3. 对高价值高风险系统应以两只以上团队做交叉渗透测试;

  4. 提示:(渗透为重交付,具体范围取决于预算及双方约定,PM 应提前按系统重要性及暴露面评估风险选定渗透范围,售前也应考虑到,此阶段的工作 PM 应有预判有提醒销售及客户的义务);

  5. 本项工作应上传交付物附件!包括渗透目标的清单、渗透的结果报告。

八、基线核查

  1. 对 OS、设备、中间件、数据库的安全基线检查; 检查对象可参照资产梳理导出的资产清单(含数据库、中间件、重要服端口);

  2. 范围及优先级:目标系统及互联网暴露面建议全量做,其他系统根据风险情况选做,整体优先级非高;

  3. 提示:

​ a. 当主机数量很多时,基线核查及整改的工作量会比较大; 因此本项工作 PM 一定要范围、人力、预算、必要性方面综合考虑;

​ b. 基线的项很多,应从以下几个重点考虑主机安全基线:关闭没用的服务;修改主机弱口令;高危漏洞;安装主机和服务器安全软件;开启日志审计;

  1. 参考工具:

  2. 检查范围及结果应上传附件。

九、查毒杀毒

  1. 有条件的主机/高风险主机应安装防病毒/EDR 软件,并确保升级到最新的引擎和特征库版本;

  2. 安装排查范围:互联网暴露面资产、DMZ 区资产、目标系统、其他系统、终端

(终端应要求 100%安装);

  1. 重点查杀范围:互联网暴露面资产、目标系统、DMZ 区资产应做全面的病毒及WEBSHELL 查杀、入侵日志分析;范围也包括 NGAF、SIP 有报警的主机;

  2. 建议工具:服务器版本的防病毒软件、D 盾、SIP 等。

十、口令帐号排查

  1. 本项工作非常重要!实际攻防中,通过弱口令获得权限的情况占据80% 以上;

  2. 高风险系统(互联网暴露面资产、DMZ 区系统、互联网接入设备、目标系统等),应要求在本阶段更改一次口令,此口令应为之前未用过的新的复杂口令;

  3. 管理员在不同服务器上的用户口令不能为同一个口令,也不宜有明显的规律;

  4. WEB 应用应启用登录验证码或多因素认证;

  5. 操作系统、应用、网络设备、安全设备应启用复杂口令策略及登录次数锁定;

  6. 目标系统、暴露面重要系统应登录系统查看(或要求导出帐号配置文件),查看是否存在测试帐号和无用帐号,并对有效帐号做口令爆破测试;

  7. 排查范围:应基于资产梳理的结果进行。优先级参考:互联网暴露面资产>DMZ 区资产>目标系统>集权系统>敏感系统(含邮件)>其他系统>WIFI>终端;目标包括系统、数据库、中间件、登录后台、网络设备、VPN 等;端口包括数据库、tomcat、weblogic、RDP、Telnet 等;

  8. 操作建议:

​ a. 按防守范围做全网爆破;对大量的常规系统或终端,可用小字典对常用端口做快速爆破;对重要系统及暴露面系统,应用大字典或定制字典做深度爆破;

​ b. 应根据客户单位的情况(如单位名称+年份、运维或开发常用口令、历史弱口令、用户名+数字、工号、同类业务系统、我司或友商设备常用口令)定制口令字典;

​ c. 爆破应覆盖常见高危端口(参见重要端口列表);

​ d.操作流程:确定 IP 范围->确定服务对应的用户名列表->确定密码字典列表-> 端口范围扫描+服务识别->进行爆破->结果输出和整改

​ e.爆破应控制并发线程不要太高,以免丢包或漏报

  1. 建议工具:超级弱口令、Hydra、口令生成工具、WIFI 爆破工具、SIP;字典可包括中国人名、TOP100、TOP1000 用户名口令等

  2. 本项工作应上传交付物附件!

十一、目标系统重点排查

  1. 目标系统和哪些资产有联系?目标系统的哪些服务或接口是开放的?梳理得越细越好;

  2. 对所有关联系统按联系的紧密程度做安全排查和加固,排查深度小于等于目标系统自身;

  3. 针对重点目标系统做一次交叉漏洞扫描;

  4. 对核心目标系统的出入流量、中间件日志进行安全监控和分析;可部署主机层面的安全监测手段;

  5. 对目标系统进行日志分析和失陷检测,是否存在 Webshell;

  6. 必要时对目标系统应做源代码审计(代码审计成本较高,为可选项,应在有预算和约定的前提下);

  7. 目标系统的管理员帐号应在正式演练前改一个之前从未用过的复杂口令;

  8. 本项工作应上传交付物附件!包括对目标系统的所有检查结果;如本项目无目标系统选“不适用“,但本项相关工作要求可参考。

十二、集权系统排查

  1. 集权系包括 DC、堡垒机、统一认证、单点登录系统、互联网边界防火墙、DMZ 防火墙等;

  2. 在常规检查和加固的基础上,还应做管理主机限制; 管理帐户排查; 限制特定 ip 访问后台,后台地址外网禁止访问;

  3. 系统的管理员帐号应在正式演练前改一个之前从未用过的复杂口令;

  4. 应上传集权系统清单,或在全量的资产总表中标识出集权系统、重要系统,以做重点的漏洞排查。

十三、重点、敏感系统排查

  1. 包括中间件;数据库、金蝶-U9、用友-K/3、神舟数码-易助、SAP ERP、Infor M3 等;

  2. OA 系统: 包括泛微、致远,金蝶,蓝凌、万户,金和;

  3. 敏感数据集中地:邮件系统; gitlab/SVN; 文件共享服务器; 运维系统、开发环境系统;

  4. 敏感系统、重要系统梳理出来后,应对其做重点的漏洞扫描、口令爆破,必要时加上渗透测试;同时结合所有可能的加固手段加强防护;

  5. 本阶段应上传敏感系统清单,或对敏感系统做标识后的资产总表。

  6. 提示:

​ a. 国产的 OA 类、邮件系统存在部分 0DAY,易受攻击; 应打齐补丁,应严格限制在互联网的访问; 当必需对外提供服务时应严格做好网络隔离(如部署在 DMZ 区);

​ c.留意 Struts、Weblogic、shiro 等中间件漏洞 getshell 风险;

​ d 上述系统一旦被攻破,其上面存储的大量用户信息、敏感信息将会被攻击方利用做后续攻击,正式攻防阶段可对敏感系统重点监测。

​ e. 对本类系统可用多扫描器交做交叉漏洞扫描。

十四、补丁及加固

  1. 针对发现的安全漏洞,组织运维部门、安全部门及厂商做安全加固; 在资产数量较多时,漏洞加固的工作量通常很大,我方的责任是提供加固建议、推进加固计 划、验证加固效果,原则上不负责加固操作(除非人力允许或合同中有承诺);

  2. 当漏洞数量众多时,应合理安排漏洞加固的优先级次序,以保障加固的效率和效果,参考下面三点统筹考虑优先级:

​ 2.1 优先级(按资产位置及类型):公网资产>DMZ>目标系统>重要系统(含集权类)>其他

​ 2.2 优先级(按漏洞的风险等级):极高>高>中

​ 2.3 优先级(按漏洞类型):RCE 类、WINDOWS 类、应用类、中间件类、数据库类、UNIX 类;

  1. 临时风险规避办法:a.官方提供的办法,如微软的;b.严格的端口访问控制策略。c.关停

  2. 安全产品的专项排查,对 AF、SIP 报告的高风险主机、失陷主机、安全事件、漏洞,应做专项排查及处置;

  3. 加固后须进行有效性测试,确保漏洞修复闭环;存在安全问题的而无法加固的系统下线或 HW 期间临时关停

  4. 加固验证工具建议:

  5. Tips: Windows 的高危漏洞应要求 100%打上补丁,否则一旦攻击队进入内网, 就要做好失陷和丢分的打算。

  6. 本项工作应上传交付物附件!

十五、资产暴露面收敛

  1. 应加强互联网接入与出口管理,梳理业务机房、办公网、承载网等网络的互联网出口,对重复性的互联网出口进行梳理和归并,集中控制与防护;

  2. 应排查暴露面资产,采取有效安全防护措施,对漏洞、非必要端口与服务与API 接口、访问控制不严格等风险形成隐患清单并逐条落实整改;

  3. 禁止未经审批开通内部系统的互联网出口;系统无业务必要需求不允许对互联网开放。严禁私设互联网出口;

  4. 关停未使用的站点及 WEB 端口、API 接口;

  5. 对于存在安全问题的系统,如无法整改,应予下线或 HW 期间临时关停;或从时间、可访问IP上做最小化访问控制;

  6. 要梳理外部单位的网络接入情况(供应商、下级单位、业务合作单位等),做严格访问控制。

  7. 应关闭所有不必要的 VPN 设备和 VPN 接入,关闭所有不必要开放的 VPN 资源;

十六、互联网边界防护

  1. 应对互联网出口的基础设施包括路由器、防火墙、VPN 等系统做好安全配置和加固工作,包括补丁安装、网络路由设备身份鉴别、加密传输等安全措施;

  2. 在互联网出口部署安全防护设备与系统,需依据“最小化原则”严格落实访问控制,部署入侵检测/防护、网站动态应用防护、内容审计与过滤、恶意代码过滤、网页防篡改等技术措施;

  3. 对互联网、DMZ 边界防火墙、DMZ 防火墙的访问策略应做逐条审查,确认其符合仅针对白名放通、默认拒绝的安全原则;严格控制任何由外至内的访问策略;

  4. 确认防火墙与 web 安全相关的功能模块是否可用、更新;

  5. 提示:大部分企业都会搭建 VPN 设备,对 VPN 设备的漏洞的攻击包括(如 SQL 注入、添加账号、远程命令执行等),也可以采取钓鱼、爆破、弱口令等方式来获取账号权限,对 VPN 特别是我司 VPN 设备应做重点梳理与加固。

十七、内网边界防护

  1. 在各级网络边界、出入口必须安装部署访问控制设备并启用安全策略,确保南北向流量可控;

  2. 在不同区域边界和区域内部,部署安全防护设备,确保东西向流量可控可审计;

  3. 访问控制策略原则:明细允许,时间策略,默认拒绝;梳理并完善网络安全策略,按最小化原则配给网络权限;对于高风险端口应明确使用黑名单拒绝访问同时开启策略日志方便审计;

  4. 提示:绝大部分企业的下属子公司之间,以及下属公司与集团总部之间的内部网络均未进行有效隔离,导致下属公司一旦被突破,即可通过内网横向渗透直接攻击到集团总部,漫游企业整个内网,攻击任意系统。

十八、上网安全

  1. 办公终端:应在 AC 上对上网策略做限制,没必要的协议及服务应予关闭(包括 teamview、telnet、VNC 等);能上网的终端不应同时能联接生产网;

  2. 办公服务器:特殊访问需求开通,默认拒绝;

  3. 生产网:生产网、DMZ 区禁止上互联网,服务器特殊访问需求审批才可开通, 默认拒绝;

  4. 互联网访问内网:对互联网提供服务的服务器必须部署在 DMZ,和内网隔离, 严禁在内网直接做公网发布。

十九、无线网安全

  1. 无线网络与开发网段、生产网段应严格隔离;

  2. 访客无线网段应限制只能上外网,禁止访问内部任何网段;个人工作终端严禁接入 guest 类开放 wifi(包括营业厅环境等);

  3. 要求所有无线网接入采用强认证和强加密;

  4. 应要求客户严禁私设 WIFI 热点,在意识宣导中提醒用户不可接入任何外部开放的 WIFI 热点;(可用 AC 协助发现私设热点);

  5. 禁止用户在手机上安装 WIFI 万能钥匙类可导致 WIFI 密码外泄的 APP。

二十、邮件与防钓鱼

  1. 应要求禁止在邮件标题、正文、附件中携带账号、口令等敏感信息,所有涉及到敏感信息的文件必须加密;

  2. 邮箱客户端(如 Foxmail、Outlook)开启本地账号访问口令密码策略;邮箱密码定期强制更换,且密码复杂度达到规定要求;

  3. 各单位需全面排查邮件类业务,对冗余邮箱、冗余账号、弱口令等检查清理。

  4. 部署邮件安全网关,加强邮件安全检测能力、动态异常检测能力和审计能力。监测邮箱账号的异常登录访问行为,如防范撞库攻击、暴力破解,识别和阻断针对邮件服务器的攻击。

  5. 加强员工安全意识培训,禁止点击来路不明邮件中的链接或打开附件;设置防病毒软件自动查毒;

  6. 将邮件服务器 Web 登录界面移至内网,外网仅开放 pop3、smtp 端口

  7. 提示:

​ a. 要做好员工被钓鱼后的心理准备和深层防御准备(信息泄露与横向攻击)。

(难免有些员工将系统地址与账户密码以明文形式存储在文档中,或习惯性地使用浏览器的记住密码功能。)

​ b. 定向钓鱼概念:针对安全意识不强的员工,发送特制的钓鱼邮件,如给法务人员发律师函、给人力资源人员发简历、给销售人员发采购需求等。

二十一、移动应用APP防护

  1. 控制内外部移动应用 APP 数量,对应用业务逻辑进行自查,消除安全隐患。

  2. 强化对移动应用 APP 后台系统的防护,加强访问权限控制,同时也应限制 APP 后台系统对其他资产的访问权限,做适当隔离。

  3. 开展移动应用 APP 后台业务逻辑和中间件的安全风险及漏洞的梳理排查;包括在用的旧版本;

  4. 移动应用 APP 启动和更新时,进行真实性和完整性校验。

  5. 对客户端程序增加加壳、混淆等措施,加强抗逆向分析、抗反汇编等防护能力。

  6. 客户端必要时需使用安全键盘。

  7. 提示:本项工作涉及的 APP 数量及范围,PM 应提前估算成本并与销售及客户沟通。当防守范围内无 APP 或 APP 接入路径时,可略过。

二十二、办公/营业终端防护

  1. 加强终端管理,包括办公 PC、客服终端、营业终端、开发终端等。对办公终端进行统一安全管控,消除典型高危 WINDOWS 漏洞及弱口令;

  2. 营业厅终端、无人值守终端等,应安装防病毒软件、限制 USB 口使用、限定只能访问特定站点;

  3. 办公网络应做好准入控制策略,严格审核外部终端接入情况,做好第三方运维人员终端的安全管控;

  4. 办公终端应统一安装网络版的防病毒软件,并在本阶段做一次全盘病毒查杀;

  5. 禁止重要系统的维护终端设备出现外连行为,或禁止访问互联网;

  6. 提示:由于终端并非全时在线,对终端的在线检查工作应分几次持续进行,避免遗漏。

二十三、敏感信息清理

  1. 个人电脑、个人管理的服务器、个人网盘、个人的公网邮箱及办公邮箱、个人GITHUB、个人即时通讯工具上存储的、个人手机上任何敏感信息应在离线备份后彻底清除;(特别是IT人员)

  2. 系统及文件服务器上存储的任何敏感信息包括帐号信息、网络拓扑信息、代 码、系统文档、密码文件、漏洞信息等,应彻底清除;特别对重要系统,应防止删除后被恢复;

  3. 有必要和有条件时应对本单位/管理员帐号信息泄露历史情况做排查;

  4. 本项要求应在安全意识宣导中强调,并可要求终端用户、系统用户做承诺;

  5. 提示:钓鱼+弱口令+邮件及敏感信息翻查是攻击队常用的攻击突破手段!

二十四、供应链安全风险排查

  1. 梳理、审查 IT 供应商名单;

  2. 明确并落实供应商安全责任; 排查供应商访问权限、能接触的敏感信息;

  3. 排查供应商建设/维护的信息系统,确认是否要做漏洞扫描和渗透测试;

  4. 要求应用系统的供应商对自身的网络和系统安全进行自查,确保源码不会泄露;

  5. 提示:

​ a. 供应商的安全评估一般不属于项目范围,PM 应评估风险、判断需求应提前提交商机和预算;如防守单位为小型的、分支机构单位,本项为可选项,做好攻击路径排查和访问控制即可。

​ b. 一般来说,攻击队搞不了总公司,就会搞分公司,搞不了分公司,就会搞供应商。

二十五、部署安全运营、态势感知、蜜罐

  1. 流量采集是否完善(覆盖核心网络、DMZ 及攻击路径);

  2. 安全设备、网络设备、主机日志采集情况;协调网络管理员、系统管理员配合安全厂商对网络流量采集和各种日志传输情况进行检查;验证安全运营运行的有效性;

  3. 安全事件、风险主机的处置情况应予闭环。

二十六、统一日志管理

  1. 应对重要系统日志设置情况做梳理并开启日志,有条件时应建立一套独立的日志分析和存储机制,正式攻防时可派专人对目标系统日志和中间件日志每日进行恶意行为监控分析。

  2. 提示:日志信息是帮助分析攻击行为的一种有效手段,攻击者攻击成功后,打扫战场的首要任务就是删除日志,或者切断主机日志的外发,以防止防守者追踪;

二十七、安全设备策略检查

  1. 防火墙、VPN、堡垒机等安全设备安全策略:自身安全策略开启、规则库更新、授权是否到期、设备的安全补丁是否打齐、帐号安全;建议限定对设备的可管理地 址;可要求设备厂商进行协查;

  2. 如有厂家安全设备,确认 AF、SIP 是否升级到 HW 版本;并开户相关的功能特性;

  3. 报警策略是否开启;有无指定合适的接收人员;

  4. 检查自动阻断策略、联动封锁策略是否开启; 评估对可用性有无影响;

  5. 在扫描、渗透、演习阶段可验证设备策略是否有效。

二十八、预演习、备战工作闭环

  1. HW 安全意识宣导,包括通知、培训、海报张贴、屏保宣传等;

  2. 现场模拟预演习,按照工作内容和职责,使用相应工作模板开展相关工作; 由攻击队进行攻击,现场防守方进行监测、分析、处置;

  3. 使用漏洞扫描工具,对防守范围(公网、DMZ、服务器)做全网段漏洞扫描,确认漏洞整改有无遗漏;无法及时整改的系统应关停;

  4. 根据预演习过程暴露的问题,进行改进,依照前 27 条,重新闭环;

  5. 本项工作的人力投入较重,具体开展方式、范围、深度取决于项目预算及双方约定,PM 应做评估合理安排;

  6. 本项工作应上传交付物附件!包括所有高危漏洞、高风险项的关闭结果;最后一次暴露面梳理及漏洞扫描的结果等;同时说明 HW 准备工作是否已全部完成,如未完成在 HW 中阶段应继续。

尽信书不如无书,工具只是辅助,别太过于依赖,关键在于你如何解决问题的思路。