新手学习渗透从哪里开始

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手学习渗透从哪里开始相关的知识,希望对你有一定的参考价值。

新手学习渗透从哪里开始新手渗透

首先要根据自己的实际情况、确定学习的路线和方向的。就像建大楼,从顶端最华丽的那个地方开始,不可能成功。学渗透测试也一样,没选对入手的地方,导致学习过程中由于欠缺很多的知识点、很多概念理解不了、学习举步维艰、很容易半途而废。
现在我来分析下:
渗透测试属于信息安全行业,准确的说是网络计算机/IT行业
知道它行业属性,你大概就能清楚需要些什么样的基础知识了;下面是我从非计算机网络相关专业的同学想要学习渗透测试必须掌握的知识。
1)了解基本的网络知识、什么是IP地址(63.626.11.23)、IP地址的基本概念、IP段划分、什么是A段、B段、C段等
广域网、局域网、相关概念和IP地址划分范围。
2)端口的基本概念?端口的分类?
3)域名的基本概念、什么是URL、了解TCP/IP协议、
5)了解开放式通信系统互联参考模型(OSI)
6)了解http(超文本传输协议)协议概念、工作原理
7)了解WEB的静态页面和WEB动态页面,B/S和C/S结构
8)了解常见的服务器、例如、Windows server2003、Linux、UNIX等
9)了解常见的数据库、mysql、Mssql、、Access、Oracle、db2等
10)了解基本的网络架构、例如:Linux + Apache + MySQL + php
11)了解基本的html语言,就是打开网页后,在查看源码里面的Html语言
12)了解一种基本的脚本语言、例如PHP或者asp,jsp,cgi等
然后你想学习入门,需要学习以下最基础的知识:
1、开始入门学习路线
1)深入学习一种数据库语言,建议从MySQL数据库或者SQL Server数据库、简单易学且学会了。
其他数据库都差不多会了。
2)开始学习网络安全漏洞知识、SQL注入、XSS跨站脚本漏洞、CSRF、解析漏洞、上传漏洞、命令执行、弱口令、万能密码、文件包含漏洞、本地溢出、远程溢出漏洞等等
3)工具使用的学习、御剑、明小子、啊D、穿山甲(Pangolin)、Sqlmap、burpsuite抓包工具等等
2、Google hacker 语法学习
3、漏洞利用学习、SQL注入、XSS、上传、解析漏洞等
4、漏洞挖掘学习
5、想成为大牛的话、以上都是皮毛中的皮毛,但前提是以上的皮毛都是最基础的。
6、Linux系统命令学习、kali Linux 里面的工具学习、Metesploit学习
7、没事多逛逛安全论坛、看看技术大牛的文章、漏洞分析文章等
8、深入学习一门语言、Java或者Python等等,建议学习从Python开始学习、简单易学,容易上手。我就是从IP地址(63.626.11.23)学起的,IP去掉点就是扣扣学习群,视频资料非常全面、里面各类渗透工具都有。注入的、扫描的、爆破的、等等。
9、如果你很懒的话,不想去找这些资料、还不想花大把钱去报培训班,给你推荐个扣扣群IP去点就是。里面有很多入门视频资料和很全面各种技术大牛笔记资料、分析文章、后期内网渗透资料等等。
10、提升自己的专业能力、把自己练成一个技术大牛、能给你带来一份稳定的高薪水工作,同时你还可利用自己的技术,额外的接些单子,做做副业,这个行业里是有很多单子可以接的。
如果你在提升自己上面连5块钱都舍不得投资,那我真的不知道你的未来在哪里。
参考技术A 当然是先从潜伏开始。。。打入敌人内部。执行任务。。。 参考技术B 综合了几家用人单位的需求后, 总结如下四点:
(1) 基本素质
对这个行业还是有较高的热情,有一定的自学能力,有团队意识,能够服从领导安排;
(2) 基本技术要求
对Web常见十余种漏洞的原理、利用、防御等要求熟练掌握;
熟悉内网渗透的技术,能够做横向移动渗透;
熟练运用常见的工具,如AWVS,Appscan,Burp等;
熟悉至少一门语言,可以写POC或者EXP;
(3) 实战要求
一般要求有1-3年的经验要求;
有提交过SRC或者真实网站渗透经验优先;
有绕过WAF经验要求;
有些要求有逆向和二进制分析经验;
(4) 技术亮点
有参加CTF得奖者优先,有考取相关证书者优先,提交SRC者优先;
从以上用人单位需求来看,需要掌握常见web漏洞的原理、利用和防御、内网渗透,能够利用语言写POC、EXP;能够掌握常见WAF的绕过方法,最好有真实站点渗透测试的经验,考取行业内的相关证书,所有都是围绕要求有实战经验;
所以根据自身要求,可以先打好基础,多练习靶场,然后去SRC平台进行真实演练,同时也考取行业内相关证书,如果有机会可以去一家安全公司实习;后续进入大点的安全公司应聘安全岗位都基本没什么问题。

新手:给定一个预测未来成功与否的问题,从哪里开始

【中文标题】新手:给定一个预测未来成功与否的问题,从哪里开始【英文标题】:Newbie: where to start given a problem to predict future success or not 【发布时间】:2011-04-16 22:24:33 【问题描述】:

我们有一个基于网络的生产产品,允许用户对商品的未来价值(或需求)进行预测,历史数据包含大约 100k 个示例,每个示例大约有 5 个参数;

考虑一类称为预测的数据:

prediction 
    id: int
    predictor: int    
    predictionDate: date
    predictedProductId: int
    predictedDirection: byte  (0 for decrease, 1 for increase)
    valueAtPrediciton: float

以及衡量预测结果的配对结果类:

predictionResult 
    id: int
    valueTenDaysAfterPrediction: float
    valueTwentyDaysAfterPrediction: float
    valueThirtyDaysAfterPrediction: float

我们可以定义一个测试用例,比如成功,在预测时考虑方向和价值时,如果任意两个未来值检查点是有利的。

success(p: prediction, r: predictionResult): bool = 
    count: int 
    count = 0

    // value is predicted to fall
    if p.predictedDirection = 0 then
       if p.valueAtPrediciton > r.valueTenDaysAfterPrediction then count = count + 1
       if p.valueAtPrediciton > r.valueTwentyDaysAfterPrediction then count = count + 1
       if p.valueAtPrediciton > r.valueThirtyDaysAfterPrediction then count = count + 1

    // value is predicted to increase
    else
       if p.valueAtPrediciton < r.valueTenDaysAfterPrediction then count = count + 1
       if p.valueAtPrediciton < r.valueTwentyDaysAfterPrediction then count = count + 1
       if p.valueAtPrediciton < r.valueThirtyDaysAfterPrediction then count = count + 1

    // success if count = 2 or count = 3
    return (count > 1)

在用户提交表单的那一刻,预测类中的所有内容都是已知的,而预测结果中的信息要到以后才知道;理想情况下,模型或算法可以从我们将算法应用于新预测的三年历史中推导出来,我们可以获得关于它是否会成功的概率(我会很高兴有一个布尔 Y/N 标志不管这是否有趣)。

我对机器学习知之甚少,我正在尝试通过材料来学习。但是,如果我能得到一些指导,那就太好了,这样我就可以研究和实践解决此类问题所需的确切方法。

谢谢

【问题讨论】:

【参考方案1】:

特点

您需要做的第一件事是确定您将使用哪些信息作为证据来将用户的预测分类为准确与否。例如,您可以从简单的内容开始,例如做出预测的用户的身份,以及他们在对相同或相似商品进行预测时的历史准确性。此信息将作为特征提供给下游机器学习工具,用于对用户的预测进行分类。

训练、开发和测试数据

您需要将 10 万个历史示例分成三个部分:训练、开发和测试。您应该将大部分数据(例如 80%)放入您的 训练 集中。这将是您用来训练预测准确度分类器的数据集。一般来说,用于训练分类器的数据越多,生成的模型就越准确。

另外两个数据集(开发和测试)将用于评估分类器的性能。您将使用开发集来评估分类器的不同配置或特征表示变化的准确性。它被称为开发集,因为您在开发模型或系统时使用它来不断评估分类性能。

稍后,在您构建了一个在开发数据上取得良好性能的模型后,您可能需要对分类器在新数据上的性能进行公正的估计。为此,您将使用测试集来评估分类器在除您用于开发它的数据之外的数据上的表现。

分类器/ML 包

准备好初步功能集并将数据拆分为训练、开发和测试后,您就可以选择机器学习包和分类器了。一些支持多种分类器的好包包括:

Weka (Java) Rapid Miner (Java) Orange (Python)

您应该使用哪种分类器取决于许多因素,包括您想要做出什么样的预测(例如二元、多类)、您想要使用什么样的特征以及您想要的训练数据量使用。

例如,如果您只是对用户的预测是否准确进行二元分类,您可能想尝试support-vector-machines (SVMs)。他们的基本公式仅限于进行二元预测。但是,如果这就是您所需要的,它们通常是一个不错的选择,因为它们可以生成非常准确的模型。

但是,训练 SVM 所需的时间与训练数据量的比例关系不大。要对大量数据进行训练,您可能会决定使用 random forests 之类的东西。当随机森林和 SVM 在相同大小的数据集上进行训练时,随机森林通常会生成一个与 SVM 模型一样准确或几乎一样准确的模型。但是,随机森林可以让你使用更多的训练数据,使用更多的训练数据会typically increase the accuracy of your model。

深入挖掘

这里有一些关于机器学习入门的好地方的提示

Video Lectures from Andrew Ng's machine learning course at Stanford Andrew Moore's machine learning tutorials Hastie's The Elements of Statistical Learning - Hastie 发布了本书的 PDF here。

【讨论】:

谢谢我一直在关注andrew ng的讲座,一点一点的理解。但是 Anrews 的教程提供了非常丰富的信息。谢谢...

以上是关于新手学习渗透从哪里开始的主要内容,如果未能解决你的问题,请参考以下文章

清华大学教授撰写web网站漏洞扫描与渗透攻击工具揭秘,强烈建议新手小白领取学习,手慢无!

新手从零开始学习微信小程序开发01

新手如何从零开始学习unity?

mac 开发新手 - 我应该从哪里开始?

新手:给定一个预测未来成功与否的问题,从哪里开始

零基础学java应该从哪里开始?