网络安全知识之渗透测试介绍

渗透测试流(规范) 渗透测试流程1.明确目标2.信息收集(另外详写)3.漏洞探测(另外详写)4.漏洞验证5.信息分析6.获取所需7.信息整理8.形成报告 1.明确目标 1.1 确定范围(渗透目标的范围,ip,域名,内外网) 1.2 确定规则(能渗透到什么程度,时间?能否修改上传?能否提权等) 1.3 确定需求(web应用的漏洞(新上线的程序)?业务逻辑漏洞(针对业务)?人员权限管理漏洞(针对人员,权限等)立体全方位,根据自己需求和能力来确定能不能做,能做多少) 2.信息收集(另外详写) 方式:主动扫描,开放搜索等 开放搜索: 阅读详情

 渗透测试介绍

渗透测试就是模拟攻击者入侵系统,对系统进行一步步地渗透,发现系统地脆弱环节和隐藏风险。最后形成测试报告提供给系统所有者。系统所有者可根据该测试报告对系统进行加固,提升系统的安全性,防止真正的攻击者入侵。

渗透测试的前提一定是得经过系统所有者的授权!
未经过授权的渗透测试,就是违法行为!

渗透测试意义

信息安全评估的重要方法,有利于掌握系统整体安全强度。

模拟黑客攻击和思维,评估计算机潜在风险。

发现系统薄弱环节和可能利用的路径,提前防范。

有授权,不存在入侵风险。

渗透测试方法

--白盒测试
在知道目标整体信息和源码的情况下进行渗透,类似于代码审计。

--黑盒测试
仅知道目标,其余信息均不知道,完全模拟黑客入侵。

--灰盒测试
知道目标部分信息,例如架构和网络拓扑,进行渗透的方式。

(若按照其他方式还可分为人工测试和自动化测试)

渗透测试一般流程

准备阶段—>信息收集—>漏洞检测—>漏洞利用—>内网转发—>内网渗透—>痕迹清除—>撰写报告

--准备阶段

获得授权     制定方案     目标确定     测试环境确定     测试范围和深度     测试时间确定      测试风险管理

--信息收集

信息收集两种方法

主动信息收集:对目标进行访问或扫描。

被动信息收集:通过第三方收集目标信息。

主要收集的信息

1.域名信息,ip,子域名,DNS记录  是否存在CDN。子域名收集可利用工具:Layer子域名挖掘机,findmain等

2.公网信息。目标相关信息。员工信息,邮箱,注册人等;在Github等代码托管平台查找敏感信息。

3.网站指纹识别。服务器类型(Windows\Linux)  网站容器(Apache\Nginx\Tomcat\IIS)

 脚本类型(php\jsp\asp\aspx)  数据库类型(mysql\oracle\access\sqlserver\redis)

4.服务器端口开放情况。可以使用nmap 御剑等工具

  ssh弱口令 22   mysql弱口令  3306   redis未授权 6379

  weblogic反序列化漏洞 7001    web中间件漏洞  80

5.敏感目录。可以使用御剑,wwwscan,dirmap等扫描

后台目录,默认路径。

6.旁站和c段

旁站指同一服务器上的其他网站。可利用旁站进行渗透。

c段指同一网段内的其他服务器。对同目标C段内的服务器进行渗透提权,再对目标进行渗透。

常见扫描工具:Nessus,X-SCAN  NAMP 

--漏洞检测

主要根据PWASP Top10

1.注入    sql注入,XXE注入,LDAP注入,系统命令注入,远程代码执行

2.失效的身份认证和会话管理    弱口令暴力破解,cookie伪造和cookie绕过,逻辑绕过登录,会话劫持

3.跨站脚本攻击XSS

4.失效的访问控制     未授权访问 ,越权访问(水平越权和垂直越权),文件操作(文件上传,文件包含,任意文件下载)

5.安全配置错误      高危端口(22,445,3389,6379),数据库,web中间件,CORS跨域资源共享漏洞,目录漏洞

6.敏感信息泄露     弱文件(phpinfo,备份文件,安装文件),源代码,配置文件,数据库文件

7.攻击检测防范不足   WAF, RASP,虚拟/实际补丁

8.跨站请求伪造CSRF

9.使用包含已知漏洞的组件     Struts2代码执行,Spring代码执行,JAVA反序列化,心脏滴血漏洞

10.未受保护的APIS  Web services,Login API,APP API,DB API ,Pay API

漏洞探测思路

1.注入型漏洞 2.文件型漏洞 3.跨站型漏洞

4.配置型漏洞(SSRF漏洞,CORS漏洞,JSONP,XSS,CSRF)

5.反序列化漏洞(fastjson反序列化漏洞,jboss反序列化漏洞,Apache shiro反序列化漏洞,weblogic反序列化漏洞)

6.逻辑型漏洞(注册,登录密码修改等功能上可能存在逻辑漏洞)

7.服务器型漏洞  如JBoss\Apache\IIS\Weblogic\Tomcat,可根据版本号及服务器类型的敏感文件路径对漏洞进行探测。

8.第三方库漏洞   如fastjson ,struts2,JQuery,OpenSSL

--内网转发

概念,在传统网络中,防火墙是物理边界防御,网络被分为内网和外网。

当我们获取到外网服务器后(如web服务器,FTP服务器,Mail服务器等)的一定权限后,发现此服务器可直接或间接的访问内网。而内网中的主机不允许外网直接访问,此时可通过端口转发(隧道)将外网服务器设置为代理,此过程便是内网转发。

端口转发

内网转发思路

内网转发通常需要判断已经拿到权限的主机是否出网,若目标出网则可使用反向代理,若目标不出网,则考虑使用正向隧道或端口复用。

内网转发思路

1.reGeorg结合proxychains代理链(HTTP隧道)

适用于公网服务器只开放80端口的情况,使用http隧道。

2.EW(EarthWorm)结合proxychains代理链。

EW是便携式网络穿透工具,具有SOCKS5服务架设和端口转发两大核心功能。,此工具可以“正向”,“反向”,“多级级联”等方式打通一条网络隧道,进入内网。

3.LCX(lcx是基于socket套接字实现端口转发的工具)实现端口转发。

--内网渗透

常见攻击方式

非域环境                                                    

MS17-010                                                  

哈希传递攻击                                             

Access Token窃取与利用                           

mimikat获取RDP凭据                                 

........             

域环境             

MS14-068     

票据传递攻击     

AS-REP Roasting攻击      

 Kerberoast攻击

........             

                 

--内网渗透之权限维持

web后门
1.隐藏后门文件     2.不死马   3.404页面隐藏后门,或其他自带文件后门

Windows系统
1.简历隐藏用户,在用户名后加$

2.在开机启动目录下防止木马文件

3.使用工具,用MSF中的persistence模块

4.远程桌面会话维持

Linux系统
1.SSH后门    2.crontab定时任务    3.SSH公钥   4.创建SUID=0的用户

————————————————

  粉丝福利;【渗透测试全套学习资源】

需要的话可以点击**优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享**

👉网安(黑客)全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉网安(黑客红蓝对抗)所有方向的学习路线👈

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

👉黑客必备开发工具👈

工欲善其事必先利其器。学习网络安全常用的开发软件都在这里了,给大家节省了很多时间。

这份完整版的网络安全(黑客)全套学习资料已经上传至优快云官方,朋友们如果需要点击下方链接即可前往获取【保证100%免费】。

需要的话可以点击优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

渗透测试及流程 手动渗透测试是由人类完成的测试。在此类测试中,机器的脆弱性和风险由专家工程师进行测试。通常,测试工程师执行以下方法 -数据收集- 数据收集在测试中起着关键作用。可以手动收集数据,也可以使用在线免费提供的工具服务(如网页源代码分析技术等)。这些工具有助于收集表名、数据库版本、数据库、软件、硬件甚至不同第三方插件等信息漏洞评估- 收集数据后,它可以帮助测试人员识别安全漏洞并采取相应的预防措施。实际利用- 这是专家测试人员用来对目标系统发起攻击的典型方法,同样可以降低攻击风险。报告准备。 阅读详情

相关推荐

手把手教你如何进行内网渗透

0x00 Preface 内网渗透主要是基于前期外围打点getshell的webserver,通过收集webserver上的信息,然后对其他内网主机进行口令上的攻击,当然也有一些基于漏洞的攻击。 内网相关概念这里不再进行介绍,大家可以自行百度,诸如什么是域、域与工作组的区别、什么是DC、什么是AD等。当然,概念是生涩难懂的,结合实际环境会有助于理解。 0x01 信息收集 systeminfo 查看系统详细信息,如OS版本、补丁安装情况,可以根据这些信息筛选可利用的漏洞。 net start 查看启动进

iO快到碗里来 9万+

渗透测试概述与流程

渗透测试概述 渗透测试是一种通过模拟攻击的技术与方法,挫败目标系统的安全控制措施并获得控制访问权的安全测试方法。 网络渗透测试主要依据CVE已经发现的安全漏洞,模拟入侵者的攻击方法对网站应用、服务器系统和网络设备进行非破坏性质的攻击性测试。 CVE CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。 渗透测试的目的 侵入系统获取机密信息,并将入侵的过程和细节产生报告提供给用户,由此确定用户系统存在的安全威胁,并能提醒安全管理员完善安全策略,降低安全风

weixin_59872639的博客 1万+

LTspice导入德州仪器SPICE模型的实用指南与常见问题解析

本文详细介绍了如何在LTspice中导入德州仪器的SPICE模型,包括模型文件获取、路径管理、导入步骤及常见问题解析。通过实用指南帮助工程师精确仿真电路性能,提升设计效率,重点涵盖了第三方模型的导入教程和最佳实践。

kk1234的博客 314

『渗透测试基础』| 什么是渗透测试?有哪些常用方法?如何开展?测试工具有哪些?优势在哪里?

渗透测试是指由专业的安全人员模拟黑客,从系统可能存在的漏洞位置进行攻击测试,找到隐藏的安全漏洞,从而达到保护系统安全的目的;书中有一个例子说的非常不错:把软件系统比喻一座房子,房子建好后会配备一些安全措施,比如防盗门、安全警报等。一般情况,我们认为这已经足够安全,但我们不能十分确认入侵者会使用怎样的方式找到漏洞,从而攻击我们的安全防线。为了保护房子足够安全,我们会聘请外部的安全专家进行一系列的检测,比如检测防盗门是否牢固,窗户是否容易被侵入等等,发现这个房子是否存在漏洞,确保房子的安全性。

虫无涯的博客 8316

数理统计四大分布---正态分布、卡方分布、学生t分布和F分布

在统计学上,我们会遇到一些常见的分布,除了正态分布外,,如t检验对应的t分布,检验对应的分布,方差分析对应的F分布等。这些分布是统计学的基础,在假设检验、方差分析等领域都起着至关重要的作用。在此,我们对这四种分布做详细的介绍,并附上MATLAB代码。 四种分布的讲解摘自MATLAB 2016的统计学和机器学习工具箱,有兴趣的可以去查看英文原版。 另外,为了方便,上传文档为图片格式,可能有些模糊...

suncangan的博客 5万+

Delphi中使用FireDAC与uniDAC高效连接PostgreSQL的实战指南

本文为Delphi开发者提供了使用FireDAC与uniDAC组件高效连接PostgreSQL数据库的实战指南。文章详细对比了两款组件的选择策略,重点解析了驱动依赖(libpq.dll)的配置、连接参数设置、常见错误排查及性能优化技巧,旨在帮助开发者快速构建稳定可靠的数据库连接。

tomato的博客 806

网络安全-渗透测试前置知识

一些行业术语的扫盲,黑话集合~

a732072213的博客 4万+

vue3+ts项目里如何使用状态管理pinia以及数据持久化

vue3 pinia 数据持久化

ICUiseeyou的博客 8794

网络安全攻防之Web渗透测试知识点总结

1.简述OSI的七层结构 2.简述TCP三次握手的过程 3.简要说明TCP和UDP区别以及用途 4.TCP的半连接状态是什么 5.IP的报头是怎么样的 6.nat转换的原理是什么?和iptables的关系? 7.DHCP协议的功能?报文结构? 8.DHCP动态分配IP的过程是什么?它的原理是什么? 9.讲一讲什么是ARP协议? 10.ARP投毒过程和原理?该怎么防御ARP投毒? 11.MAC泛洪攻击的原理和过程?它的防御方式是什么? 12.Web服务器被攻击后应该怎么排查 13.渗透

weixin_42792652的博客 857

Excel VBA | 一键批量生成对账单

根据对账单总表一键批量生成N家独立的客户对账单。

Microgoblins的博客 6985

【实战】基于 Inner-IoU 的 YOLOv8 优化指南:显著提升检测精度

Inner-IoU 凭借辅助边框的创新设计,成功解决了传统 IoU 损失在小目标、遮挡场景下的收敛难题,为 YOLOv8 注入了更强的定位能力。从原理剖析到代码集成,本教程已为你铺就了一条“精度提升”的实战路径。现在,不妨亲自上手尝试,让你的目标检测模型在各类数据集上都能交出一份“精度优异”的答卷——相信我,当你看到检测框精准贴合目标的那一刻,你会明白这份尝试的价值。

m0_64661770的博客 108

2024年最全网络安全渗透测试的八个步骤_网络安全渗透测试的流程和方法,软件测试知识体系

4.应用信息:各端口号的应用。比如web应用、电子邮件运用、这些。5.系统数据:操作系统版本6.版本信息:这所有的一切探测到的东西了版本。​7.服务信息:消息中间件的各种信息内容,软件信息内容。​8.人员信息:注册域名人员信息,web应用中发帖人的cd,管理人员名字等。​9.安全防护信息内容:尝试看能不能探测到防护装备。1.系统漏洞:系统软件未能及时修复漏洞​2.WebSever漏洞:WebSever配备难题3.Web应用漏洞:Web应用开发设计难题。

2301_82242351的博客 1126

道路施工检测 (construction) - 基于Mapillary Vistas数据集的YOLOv11目标检测及UI界面实现

目标检测是计算机视觉的重要任务,目标是识别图像中的目标物体类别及其位置(用边界框表示)。两阶段检测器:如Faster R-CNN,准确度高但速度较慢单阶段检测器:如YOLO系列、SSD,速度快且精度相对较好,适合实时场景数据量:约25,000张高分辨率街景图标注类型:语义分割、实例分割、多类别检测类别示例:construction, road, car, person, traffic sign等格式:COCO风格JSON标注。

YOLO 497

网络安全初级课程重点知识汇总(一)-网络安全导论与渗透测试基础

本文系统介绍了网络安全与渗透测试的核心知识体系。主要内容包括:一、网络安全基础概念,涵盖社会工程学、口令破解、网络监听等攻击手段;二、渗透测试方法论,详细解析黑盒/白盒/灰盒测试分类及7个标准流程阶段;三、实战工具与技术,重点讲解Metasploit框架、Nmap扫描及永恒之蓝等经典漏洞利用;四、后渗透操作与Cobalt Strike平台使用。文档强调所有技术仅限合法授权测试使用,严禁非法入侵,旨在帮助安全从业者构建系统化的渗透测试知识框架,提升企业安全防护能力。

2501_91976946的博客 1265

基于WebRTC的现代在线视频会议系统设计与实现

本文详细介绍了如何使用Java和WebRTC技术构建一个完整的在线视频会议系统。我们将从WebRTC的基础原理讲起,逐步深入到信令服务器设计、媒体服务器配置、前后端实现以及高级功能的开发。文章包含大量代码示例和架构图,旨在为开发者提供一套完整的视频会议解决方案。关键词:WebRTC、视频会议、Java、Spring Boot、信令服务器、STUN/TURN、媒体服务器:获取摄像头和麦克风访问权限:处理点对点连接和流传输:实现浏览器之间的任意数据交换。

2201_76125393的博客 189

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

网络安全知识渗透测试

渗透测试是一种模拟网络攻击,用于识别漏洞并制定规避防御措施的策略。笔测试还有助于评估组织的合规性、提高员工对安全协议的认识、评估事件响应计划的有效性并确保业务连续性。渗透测试的第一步是收集有关目标网络的信息,了解网络拓扑、主机信息、服务信息、用户账户等,以便制定针对性的攻击策略。成功攻破目标系统后,需要进行后渗透测试,巩固攻击成果,并获取更多信息。根据信息收集和漏洞扫描的结果,选择合适的攻击方法,对目标网络进行渗透测试。完成渗透测试后,需要对测试结果进行分析,评估内网的整体安全状况。

m0_66268916的博客 1126

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

CISP-PTE渗透测试工程师知识体系大纲详解:开启网络安全新篇章

CISP-PTE渗透测试工程师知识体系大纲详解:开启网络安全新篇章 【下载地址】CISP-PTE渗透测试工程师知识体系大纲详解 《CISP-PTE渗透测试工程师知识体系大纲详解》是一份全面、实用且具指导性的学习资源,专为渗透测试领域设计。该大纲系统梳理了渗透测试的核心知识点,涵盖基本原理、方法论及常用工具的使用,所有内容...

gitblog_06705的博客 363

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 红蓝对抗-HW红蓝队基本知识(含网安学习的全部路线)
下一篇: 为什么这么多运维转行到了网络安全?
程序媛西米
博客等级 码龄5年 4030粉丝 1569原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值