1.渗透测试的分类:
A:黑盒测试
完全模拟攻击者的流程和方法,在对目标站点一无所知的情形下完成渗透测试流程
B:白盒测试
攻击者可以了解到目标环境的一些相关信息,减少了信息与情报收集的工作量,因此比较节省时间和成本,但相较黑盒测试而言,无法测试目标的应急响应程序以及安全防护计划效率。
C:灰盒测试
攻击者采用白盒和灰盒测试相结合的方法,相对前两种提高了效率,是最优势的方法。
2.渗透测试过程环节
A:前期交互:与客户确定好测试目标、注意事项等。
B:信息收集:收集关于测试目标的相关信息等。
C:威胁建模:确定渗透测试目标可能存在的攻击通道等。
D:漏洞分析:确定并分析目标存在的漏洞
E:渗透攻击:对漏洞进行利用以及攻击
F:后渗透攻击:需要安全团队根据渗透测试目标的安全体系、资产形式自主设计攻击目标,识别出目标关键资产和攻击通道,进一步保护目标资产。
G:报告阶段:撰写渗透测试报告以及提出相应的修复措施。、
3.安全漏洞全生命周期:
这里悄悄插一个full-disclosure mail list.......
几个常用的渗透测试利用代码共享站点:
4.metasploit体系结构
metasploit体系的结构图如下所示:
A:基础库文件分为REX,framework-core,framework-base
REX:Ruby extention,组装着整个框架的最基础的一些组件,包括网络套接字,日记子系统,数据库支持等
framework-core:负责所有与上层模块以及插件交互的接口。
framework-base:负责为处理框架各方面功能提供一些功能类。
B:模块
主要有渗透测试模块(Exploits),辅助模块(Aux),后渗透测试模块(Post),攻击负荷模块(payloads),空指令模块(Nops),编码模块(encodes).
C:插件
可以集成一些插件如nessus,openvas等。
D:接口
包括命令行终端(msfconsole), API接口调用(msfapi),图形化界面,命令行(msfcli)等
E: 功能程序
包括一系列可直接运行的功能程序,比如msfencode,msfpayload,msfvenom等。
5.metasploit的使用接口
A.metasploit图形化接口
举个实例,拿metasploitable2当靶机试试。
先启动postgersql服务,再开启kali中的armitage,建立工作区然后添加主机如下:
选择exploit->multi->samba->usermap_script
双击可以查看options,直接执行.
成公以后target会变成红色,其实也就是自动化了一些命令行而已。。。。
这时候右键选interact可以直接拿下shell,后面就嘿嘿嘿了。
B:命令行终端
据说每次打开msfconsole启动界面图案都不太一样,无聊的可以数数到底有多少个图案。。。
小技巧是要善用help命令,一个命令不会用就用help,像下面一样
实例验证一下同上的漏洞。。。。。
先search samba,然后再找到上面用的那个模块,直接use
直接show payloads可以查看该攻击模块相兼容的负载。
记得是payloads......
然后直接set payload cmd/unix/bind_netcat
show options
可以看到直接set RHOST就行了。。。。
可以看到成功了。。。就是这么简单粗暴一万种方法日进metasploitable2.........
C:msfcli命令
关于这东西,新版的框架已经不再支持了,但是可以用msfconsole代替,重复上面的过程用一条命令解决。
结果就是开启了命令行终端然后执行了。。。速度比较快而已,还不如直接用msfconsole。。。不过有用的地方在于他可以集成脚本批量处理大量主机,这是个用途。。。。
5.metasploit的重要模块
主要有辅助模块,编码器模块,攻击负载模块,渗透攻击模块,后渗透攻击模块,空指令模块。