信息收集
1- 域名信息的收集(收集域名对应的 ip,域名的whois信息、子域名等等一系列与域名相关的信息)
2- 公司敏感信息(查询与该公司有关的任何信息)
3- 网站指纹识别(只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞)
常见的CMS有:WordPress、Dedecms、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS、ECShop、SiteWeaver、AspCMS、帝国、Z-Blog等
4- 服务器类型(Linux/Windows)
5- 网站容器(Apache/Nginx/Tomcat/IIS)
6- 脚本类型(php/jsp/asp/aspx)
7- 数据库类型(Mysql/Oracle/Accees/Mqlserver)
8- 网站敏感目录和文件
9- 旁站和C段扫描
漏洞探测
探测网站是否存在一些常见的Web漏洞,可以使用一些自动化的工具,比如A
WVS,Appscan,Owasp-Zap,Nessus
,也可手动渗透测试
漏洞利用
当我们探测到了该网站存在漏洞之后,我们就要对该漏洞进行利用了。不同的漏洞有不同的利用工具
1- sql注入(sqlmap)
2- xss(Beef-XSS)
3- 文件上传漏洞(一般会上传一句话木马上去,进而再获得webshell)
4- 抓包改包工具(Burpsuite)
撰写渗透测试保告
响应
判断事件类型
大规模沦陷、挖矿病毒、勒Suo病毒、无文件落地、不死(顽固)马、钓鱼应急响应、数据劫持
保持第一现场
不推卸责任,发现的被攻陷的主体,最好是用镜像把系统和流量先扒拉下来。要安服和应急人员做好配合
信息收集
流量、日志、可疑进程的内存、失陷系统镜像、恶意样本、客户资产收集、资产相关漏洞测试报告、防御设备的日志
阻断
1- 关站、关服务、拔部分网线,阻断传播
2- 隔离核心资产/隔离受害主体,保证被保护与沦陷方的隔离
分析
1- 日志:时间、动作、结果;这个行为什么时候开始、什么时候结束,这个动作是登陆、退出、修改等、造成的结果是登陆成功/失败、上传/下载了文件、执行了代码等
2- 流量:状态码、交互过程、数据合理性,每次流量的渲染是否正常
3- 样本:启动方式、伪装方式、作用,根据启动方式去选择沙箱或者分析工具;伪装方式判断是否加壳做免杀和打击方式;根据作用去判断受害范围
4- 还原攻击路径,推演攻击过程
清除
针对性的杀进程、删文件、杀软清除
加固
打补丁、对系统进行限制(网络隔离、行为管理等)、升级防御设备、完善防御流程(防御设备的部署、人员的部署、规则库的升级)
写应急响应报告
1- 渗透测试时,不要影响对方网站业务系统运行的连续性,不要因为渗透测试把对方网站打崩。
2- 一般不会对网站进行提权的操作,因为提权很有可能导致对方服务器死机蓝屏,影响对方业务系统的连续运行
3- 不会进行挂马的操作,比如测试文件上传漏洞的时候,如果是php网站就只会上传phpinfo文件看是否能够解析执行
4- 一些关键的系统账号再去爆破前先去手动测测看看这些账号有没有因为密码输入错误,导致锁定次数的
(1)一般就是通过谷歌骇客语法,比如搜可能存在sql注入的网站:
inurl:php?id=1
(2)还有就是用fofa,搜一下比如想要搜后台类的网站body="后台"
,或者搜一些可能存在默认密码的网站body="默认密码为admin"
等。
找到一个sql注入漏洞,通过
sqlmap
跑出了这个网站的用户名和密码,然后又用dirseach
扫出来了这个网站后台,然后成功进入到这个网站后台,进入网站后台后又发现存在文件上传漏洞。
1、首先我会先和项目经理确定下这个渗透测试的项目需求以及一些注意事项,比如客户有没有要求这个渗透测试的时间段是在晚上还是白天测试,还有网站测试的范围。
2、然后对网站进行渗透测试
3、最后根据挖掘到的漏洞输出渗透测试报告
我会尝试进行爆破,但是爆破前我会输入一个账号看看页面内有没有什么回显,然后根据页面内的回显进行爆破,页面内的回显的话可能有这么几种情况
挖矿木马占用系统资源进行挖矿行为,一般电脑会有以下特征
1- 系统响应缓慢
2- CPU/显卡使用率过高
3- 内存/带宽占用高
入侵排查
1- 查看进程(系统命令ps、ls有可能被替换)
2- 检查日志、检查系统用户
3- 发现异常文件
原因排查
首先查看挖矿进程所属的用户,根据挖矿进程的运行用户去排查该用户下是否还运行着其它进程,确定这些进程是否有上述经常被黑客利用的漏洞
清除木马
1- 及时隔离主机:在不影响业务的前提下应该及时隔离受感染主机,然后进行下一步分析
2- 删除文件、阻断与矿池通讯
3- 清除定时任务
4- 清除启动项:如果有可疑的启动项,也应该进行排查,确认是挖矿进程后,对其进行清除
5- kill 挖矿进程
进程挖矿程序,直接结束挖矿进程即可
如果挖矿进程有守护进程,应先杀死守护进程再杀死挖矿进程,避免清除不彻底
6- 清除公钥文件:在用户 home 目录的 .ssh 目录下放置 authoruzed_keys 文件,从而免密登录该机器也是一种常见的保持服务器控制权的手段
(1)了解项目情况,包括人员组成等
(2)了解项目上的设备:如拓扑图,以及安全布防设备等
(3)确认工作内容,核查各项设备是否能够正常使用
(4)确认紧急联系人以及紧急事件上报流程
日报和周报,报告主要是对现场的安全状况进行总结。报告内容:比如当日的告警数量,每周的告警数量,攻击成功的事件等等
1- 初级监控组:每天的流量告警检测以及初步的流量,可能有时候项目经理让升级设备,还有当日的日报
2- 中级研判组:流量分析+漏洞复测+基线加固+指定资产的渗透测试(偶尔有)+出具处置建议报告/每日流量分析报告+应急响应+溯源分析
3- 处置组:主要对攻击ip进行封禁
4- 应急响应组:主要对被攻击成功的服务器进行应急响应
5- 溯源反制组:主要对攻击者进行溯源以及反制
6- 专家组:指挥全场
运行流程:
一般就是监控组将监控到的恶意攻击流量上报到研判组,研判组对上报上来的流量进行分析以后确定此流量是攻击流量以后,再转给处置组,处置组将此恶意ip进行封禁;如果是有攻击成功的事件,研判组需要同步到溯源反制组和应急响应组,溯源反制组和研判组的人员对该事件进行溯源,应急响应组的对该机器进行应急响应。
1- 检查系统账号安全
查看服务器是否有弱口令,远程管理端口是否对公网开放(使用netstat -ano 命令)
lusrmgr.msc 命令查看服务器是否存在可疑账号、新增账号,如有管理员群组的(Administrators)里的新增账户,立即禁用或删除掉
用 D 盾或者注册表中查看服务器是否存在隐藏账号、克隆账号
结合日志,查看管理员登录时间、用户名是否存在异常
2- 检查异常端口、进程
netstat -ano检查端口连接情况,是否有远程连接、可疑连接
任务管理器-进程
3- 检查启动项、计划任务、服务
4- 检查系统相关信息
统版本以及补丁信息
查找可疑目录及文件
5- 日志分析
查看当前系统状态 top
操作系统信息 uname -a
查看用户错误的登录信息 lastb
查看所有用户最后的登录信息 lastlog
查看用户最近登录信息 last
1- 账号安全
who -- 查看当前登录用户(tty本地登陆 pts远程登录)
w -- 查看系统信息,想知道某一时刻用户的行为
uptime -- 查看登陆多久、多少用户,负载
/etc/passwd -- 用户信息文件
/etc/shadow -- 影子文件,存储用户的密码信息
2- 历史命令
histroy -- root的历史命令
/home/.bash_history -- 查看普通帐号的历史命令
3- 检查异常端口
netstat -antlp|more -- 列出本机所有的连接和监听的端口
lsof -- 查看谁在使用某个端口
4- 检查异常进程
ps -- 查看当前系统进程信息
5- 检查开机启动项
/etc/rc.local -- 开机启动配置文件
/etc/rc.d/rc[0~6].d
6- 检查定时任务
crontab -l -- 列出某个用户cron服务的详细内容
crontab -r -- 删除每个用户cront任务
crontab -e -- 使用编辑器编辑当前的crontab文
7- 检查服务
chkconfig --list -- 查看系统运行的服务
8- 检查异常文件
9- 检查系统日志