网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
21端口(FTP)
auxiliary/scanner/ftp/ftp_login
一个FTP服务的凭证爆破工具。
80 端口- HTTP
CVE-2015-1635 MS15-034
漏洞在于Windows的HTTP协议栈(HTTP.sys)中,可导致远程执行代码或拒绝服务(DoS)攻击。
auxiliary/dos/http/ms15_034_ulonglongadd
注意,这是一个非典型的Dos.一个range的异常参数执行导致的拒绝服务,会使靶机重启。
m
以下poc可以直接验证它的存在
curl -v 192.168.1.210 -H “Host:irrelevant” -H “Range:bytes=0-18446744073709551615”
416的回显可以用于直接验证该漏洞的存在。
445 端口(共享SMB)
目的, 就是在获取账号和HASH密码的情况下利用哈希传递 使用445渗透
exploit/windows/smb/psexec_psh
账号必须是管理员组的,Remote UAC必须是关闭的。(靶场符合该条件,我使用的vagrant的账号,官方文档的其他账号我并没有使用)
模块中的SMBpasswd允许你填写从第三方获取的HASH值,而不需要明文密码(也可使用明文密码,但似乎和这个试验的初衷不一致)。(也就是说,当你知道一个账号和它的HASH密码,如果对方开了445你就可以命令执行,而不需要破解密码)
注意,如果使用hash值输入smbpass 密码的格式时LM_hash:NTLM_hash 在本靶场中你需要输入{ aad3b435b51404eeaad3b435b51404ee:你获取的NTLM-hash}(没有大括号,我只是为了表示他们是一起的).而不是只输入NTLM-hash!
ntml-hash是我使用mimikazt在靶机上直接运行获取的。(感觉逻辑有点问题,但本试验的目的, 就是在获取账号和HASH密码的情况下进行登录)(LM-HASH值是实际是一个约定俗成的空值,详细原因自行百度)
NTLM(New Technology LAN Manager)哈希是Windows操作系统用于存储用户密码的一种方式。在正常情况下,获取NTLM哈希可能发生在以下几个环节:
- 本地安全账户管理器(SAM)数据库:在Windows系统中,用户密码的哈希值存储在本地SAM数据库中。这些哈希值可以通过特定的工具(如Mimikatz)和技术在具有相应权限的情况下提取出来。
Mimikatz 可能能获取明文密码,但这取决于特定的系统配置和版本。
• Mimikatz 几乎总是能获取 NTLM 哈希值,只要拥有适当的权限。 - 活动目录数据库:在使用活动目录(AD)的网络环境中,用户的NTLM哈希存储在AD数据库中。这些哈希值可以通过对域控制器的攻击或在具有域管理员权限的账户下访问获得。
- 内存转储:在某些情况下,NTLM哈希可能会暂时存储在系统内存中。通过对内存进行转储和分析,可以提取出这些哈希值。
- 网络流量嗅探和中间人攻击:在网络认证过程中,尤其是在旧的或不安全的协议中,NTLM哈希有时可能会在网络上传输。通过嗅探或进行中间人攻击(MITM),攻击者可能能够截获这些哈希值。
- 第三方软件缓存:某些应用程序或服务可能会缓存用户的凭据,包括NTLM哈希。如果这些软件存在安全漏洞或配置不当,它们可能会成为获取哈希值的途径。
- 密码复用和泄露数据库:如果用户在不同的服务上重复使用相同的密码,攻击者可能从一个泄露的数据库中获取密码,并计算出相应的NTLM哈希。
exploit/windows/smb/psexec_psh
msf6没有此模块。
更多相关的涉及Pass to Hash 请多看其他文章,我就不赘述了。
22 端口(SSH)
弱密码的爆破,我真没觉得是弱密码。-_-!
文档没有说使用那个模块,应该很多,我使用的
auxiliary/scanner/ssh/ssh_login
5985 端口(winrm)
官方文档可能有些问题,写的5985-https.但去靶机查看( 运行winrm get winrm/config)
5985是http.5986才是https
各模拟只是模拟了winrm,需要通过其他方式知道账号密码。
auxiliary/scanner/winrm/winrm_cmd 命令执行
使用5985 SSL 为默认false.
auxiliary/scanner/winrm/winrm_wql 命令执行
使用5985 SSL 为默认false.
auxiliary/scanner/winrm/winrm_login 看名就是各爆破工具,不测了
auxiliary/scanner/winrm/winrm_auth_methods 验证winrm服务的模块
auxiliary/scanner/winrm/winrm_script_exec 下载木马并执行建立sessions
默认的除了账号密码,SRVHOST设置为攻击机IP,需要修改payload为x64的
原理MSF生成木马,通过命令执行将木马下载到攻击机,并监听回联,建立连接。
使用默认配置的时候,生成的是powweshell的文件 (xxx.ps1的木马)提示失败,连接秒断。 排错,新建一个监听,手动靶机上XXX.PS1,可建立连接但是秒断,可能木马有问题。
按照info -d说明,除可见的参数外,添加一个扩展的参数,set FORCE_VBS ture 模块自动的行为是通过命令执行在靶机下载一个BASE64文件,并使用VBS解码并创建的.exe文件,运行并自动将木马迁移到service.exe同进程中。成功并稳定。
80端口(中国菜刀)
这个测试应该和端口没有太大关系,只是对中国菜刀木马的探活,而且前提是知道连接密码。
目前看来这个模块的意义只是在于测试是否存在菜刀的木马,并爆破这个木马的连接密码?(连别人的木马?这个没款只扫描不建立连接)可能只是为了推广这种webshell工具吧,在靶机上打开这个caiodao.asp可以看到是一句话木马,而且连接密码是password,并且你还需要在msf6中set它的文件名。用菜刀可以直接连接。
auxiliary/scanner/http/caidao_bruteforce_login
需要你设置密码或者密码字典,而且需要你修改它的TARGETURI。模块默认的是php的。
8020端口(卓豪ManageEngine软件漏洞)
卓豪ManageEngine软件的漏洞
CVE-2015-8249
上传 7z 文件时, FileUploadServlet 类不检查用户控制的 FileUploadServlet 类中的 ConnectionId 参数。这允许攻击者在使用任意文件创建恶意文件的值键入,然后将其放在允许的目录下运行的服务器端脚本,这会导致远程代码 在 SYSTEM 的上下文下执行。
靶场可能配置有问题,本着排错不如重建,我重新下载了manage desoktop 9.安装后,折腾了半天,发现再去里面的bin目录运行install。bat就好了
https://3026312730.qnqcdn.net:22443/qn-9J0H2x0AlKDZWIBAkVCUkI1EnGmQUMT4.qn1.runjiapp.com/manageengine.exe
模块:exploit/windows/http/manageengine_connectionid_write
9200端口 (ElasticSearch软件漏洞)
CVE-2014-3120
RCE漏洞,在 REST 中发现 API,它不需要身份验证,其中搜索函数允许动态脚本执行,让远程攻击者执行任意 Java 代码。
模块exploit/multi/elasticsearch/script_mvel_rce
8282端口 Apache Axis2
exploit/multi/http/axis2_deployer
此模块使用特定用户/通道登录到 Axis2 Web 管理模块实例,并通过使用 SOAP 部署恶意 Web 服务上传和执行命令。
模块利用的是 Apache Axis2 应用程序的默认部署器服务,该服务通常没有身份验证或者使用默认凭据(靶场和模块自带的都是admin/axis2)访问
这是一种配置错误而不是应用程序漏洞.
http://XXX:8282/axis2/axis2-admin/的后台页面其实是需要账号密码的。
8585端口 WebDAV
WebDAV主要用于应用和服务器之间文档的传输访问,网盘和有类似同步功能的app大都支持这个协议。利用了缺乏验证的webdav和PUT协议。
官方文档操作
先说官方文档 https://github.com/rapid7/metasploitable3/pull/16
介绍先使用nc测试。看是否支持PUT。
使用msfvenom生成木马。
注意IP和端口和你未来MSF监听配置一致
使用模块上传文件(注意这个模块只上传,不会执行文件并监听)
auxiliary/scanner/http/http_put 作用,利用put上传文件。
实际上这个模块也可以完成第一步的工作,只要把RHOSTS RPORT 和 PATH改为相关内容,run就可以看到文件上传成功。
下一步将FILEDATA和FILENAME 改为你的木马所在文件夹及文件路劲再RUN即可完成文件上传。
set FILEDATA你可以直接粘贴木马里的内容,也可以 set FILEDATA file://xxx/xxx使用file协议直接打开文件内容,它会自动把内容粘贴进去。
启动监听模块(这是单独重新起一个监听)exploit/multi/handler
注意修改payload和生成木马一致。run后去浏览器访问你的木马http://xxx:8585/uploads/test666.php
其他方式
使用BP,还可以使用davetest也可以实现(但相当于把软件上传上去,会残留很多文件,相关文件可自行查找)。
使用BP
首先查看是否支持PUT。
访问xxxxx:8585
抓包到repeater在路径上添加个/123,但明显这个路径不支持put(注意最后那个随便起名文件名必须有或者必须是/以表明检查当前目录的OPTIONS,不然无法检测),
修改为/uploads/test.txt 再run,可见这个uploads目录(上帝视角)是支持PUT的。
中间这个环节就是加/但是没有指定文件,就可以看到这是DAV。但是ALLOW里面并没有显示PUT.
再去把OPTIONS改成PUT(测试完成,因为是个空文件,就不需要把GET转为POST,所以后续传有内容的木马需要改)
木马还是使用msfvenom生成的木马
先将request改为POST体(用菜单,不是只改名字)
然后重新构建
修改POST为PUT,加入文件名
再在包体内容上把木马粘贴进去
启用监听并浏览器访问.php即可。
当然只要你能把木马PUT上去,木马的生成和连接都有很多方式。
161UDP端口 SNMP默认配置
当设备的SNMP是打开而且是团体名使用默认值"public"时,当然你知道修改的团体名一样可以用
auxiliary/scanner/snmp/snmp_enum
模块会显示目标主机或者设备的硬件、软件信息、进程及相关文件目录、网络当前端口状态及所有用户名等信息。
3306端口 MySQL
windows/mysql/mysql_payload MSF6无此模块。弱口令的MYSQL(空密码)。
1617TCP端口 JMX配置错误
CVE-2015-2342
JMX的一个通用漏洞,靶场具备以下的前提:
无验证(-Dcom.sun.management.jmxremote.authenticate=false),支持JMX服务允许远程(靶场均具备,但这并非JMX默认配置)。
这个漏洞的本质是由于配置错误造成的安全弱点,而后续的恶意操作则是通过利用 JMX 本身的合法功能来实现的
使用模块multi/misc/java_jmx_server
利用过程如下:
将目标主机作为Mbeanserver
- 模块与远程 JMX 服务的交互:
模块首先通过连接到靶机的 JMX 服务,并发现 JMX/RMI 端点。 - 利用 MBean 的加载过程:
接下来,模块利用 JMX 服务的一个特性,即能够远程加载和执行 MBean(管理Bean)。这通常是为了管理和监控目的。 - 恶意代码的角色:
模块在攻击者控制的 HTTP 服务器上托管了恶意代码。这通常是一个特制的 Java 类或 JAR 文件。 - 远程加载和执行:
模块通过 JMX 服务的远程连接指示靶机下载并执行这个恶意代码。这通常通过创建一个 MLet(一个特殊类型的 MBean,用于从远程 URL 加载类)并告诉它从 HTTP 服务器下载并实例化恶意 Java 类来实现。 - 执行恶意代码:
一旦恶意代码被加载,它就会在靶机上执行,允许攻击者执行各种恶意活动,如本例的启动反向 shell。
所以,总的来说,模块通过 RMI 连接到 JMX 服务,利用 JMX 的能力远程加载一个 MBean(通常是 MLet),然后使用 MLet 从攻击者控制的 HTTP 服务器上下载并执行恶意代码。
详细的手动内容可能需要相当的JAVA知识。
8585端口(WordPress插件漏洞)
WordPress 插件 Ninja Forms(版本 2.9.42 及之前版本)的软件漏洞
漏洞是利用FORMS创建的表,在被访问提交时无需验证,导致的恶意文件上传。
unix/webapp/wp_ninja_forms_unauthenticated_file_upload(官网是这个模块,MSF6没有)
我自己找了下可能是这个 exploit/multi/http/wp_ninja_forms_unauthenticated_file_upload
CVE-2016-1209
这个模块有个吐血的配置,导致我重新搭建了环境(搞了两天),还是错误,最后发现,wordpress后面必须有/,后面那个form_path是从wordpress后台的page页面获得的。(这个地方可能搭建有些问题,正常应该是把Ninja Forms里建的表,加载到这个创建的页面里。但我看后台 Forms没有任何表,页面的配置里面也没有有加载Forms的任何表)
3389端口(Remote Desktop)
不涉及MSF模块,只是介绍远程端口是3389.
8585端口 (PHPMyAdmin特定版本漏洞)
模块 multi/http/phpmyadmin_preg_replace
漏洞源于 preg_replace() 函数与 /e 修饰符的不当使用,允许执行任意 PHP 代码。攻击者可以通过向请求中注入 PHP 代码来利用这个漏洞,目标是被 preg_replace() 操作的特定参数
靶场是3.4.10的,但是模块提示的info提示需要 3.5-3.5.8.1,我下了一个3.5.5的。
建议放在一个目录下面,免得有其他权限问题。
靶场除了版本问题还有访问权限问题。
需要去运行wamp
需要如图示去把ALLOW FROM 改为ALL,把路径改成你下载并解压后的文件夹即可,不需要其他配置。修改后记得重启wampapache服务
另外,需要root空密码能登录(因为靶机的数据库是root+空,默认不能登录),需要phpmyadmin355下的 libraries\config.default.php 中的
c
f
g
[
S
e
r
v
e
r
s
]
[
cfg[Servers][
cfg[Servers][i][AllowNoPassword] = false改为true
(因为我是先改的才试的,不确定这一步是不是必须的)
3000端口 (Ruby on Rails)
靶场搭建有问题无法复现
CVE-2015-3224
在低于 2.1.3 的 Web-console中,与 Ruby on Rails 3.x 和 4.x 一起使用时,request.rb 未正确限制在确定客户端 IP 地址时使用 X-Forwarded-For 标头,这允许远程攻击者通过构建的请求绕过whitelisted_ips保护机制。
相关版本软件和WEB console可以在https://github.com/rails找到。
它的计划任务里的rudy on rais启动报错。实际是没有启动的,bundler版本不对,排错后还是报其他错。因为构建这个环境太麻烦了。放弃。
模块
exploit/multi/http/rails_web_console_v2_code_exec
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网络安全面试题
绿盟护网行动
还有大家最喜欢的黑客技术
网络安全源码合集+工具包
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!