所以,标题基本上说明了一切。我真的很想听听这里一些更有经验的朋友对此的回答。
它是否应该围绕在非技术\技术层面口头解释攻击的能力展开?
是否应该专注于网络、系统和 Web 应用程序攻击?社会工程学?攻击向量?
是否应该围绕攻击对策展开?
我不是在这里要求“整个辣酱玉米饼馅”,而只是在为该领域的工作面试做准备时应该考虑的一种框架。
所以,标题基本上说明了一切。我真的很想听听这里一些更有经验的朋友对此的回答。
它是否应该围绕在非技术\技术层面口头解释攻击的能力展开?
是否应该专注于网络、系统和 Web 应用程序攻击?社会工程学?攻击向量?
是否应该围绕攻击对策展开?
我不是在这里要求“整个辣酱玉米饼馅”,而只是在为该领域的工作面试做准备时应该考虑的一种框架。
根据我的经验,这些是我的以下观察:
它是否应该围绕在非技术\技术层面口头解释攻击的能力展开?
是的。绝对应该涉及到技术层面。非技术性的解释是一种奖励,作为一个渗透测试者,你会与对你在做什么一无所知的人会面,如果你不简单地解释它会生气。然而,通常雇用渗透测试人员的那种人意识到,通常你会得到一个或另一个(人际交往能力与技术技能)。如果你能同时证明两者,那么你就在竞争中遥遥领先。
是否应该专注于网络、系统和 Web 应用程序攻击?社会工程学?攻击向量?
唯一可能不会受到质疑的攻击(主要是因为它很少出现在渗透测试工作中)是社会工程(注意,可能会出现诸如网络钓鱼攻击之类的东西)。一个好的面试官会问你一些技术问题,还会为你提供一个工作站来演示一些攻击,这些可以包括基本的 Web 应用程序利用以及系统/网络利用。SQLi、XSS 等应该从内存中知道。
是否应该围绕攻击对策展开?
不必要。但是,如果您深入了解攻击,那么能够证明这些知识通常应该齐头并进。
下面是来自 pentesterlabs 博客的有用片段解释(至少一名专业测试人员如何进行面试):
在面试之前(或者甚至在你阅读简历之前),最好对某人的技能有一个基本的看法……我写了一个简单的网站,里面有 20 个问题,以便快速了解我在和谁说话。
这些问题很简单,但允许检测没有安全知识的人。以下是 20 个问题中的 2 个,因此您可以看到我在说什么:
unmd5 is the PHP function used to retrieve the clear text of a md5 ? True/False Windows passwords are stored in C:\Windows\System32\drivers\etc\shadow ? True/False如果有人通过了这个测试,就可以开始真正的技术面试了。
与往常一样,您将遇到正常的安全问题(我保证大多数安全公司都会提出这些问题):
explain a tcp handshake how Windows passwords are stored? what is a cookie? opinion on disclosure?根据我的经验,我认为让人们解释事情比问他们是什么要好。你真的可以看到人们对问题的理解程度......
例如,使用跨站点脚本,您可以得到以下响应:
"it's a problem of filtering and it allows an attacker to inject script in the page" "it's a problem of filtering and an attacker can display/run arbitrary code in victims' browser" "it's a problem of output encoding and can be used to inject Javascript or HTML in the page sent back to victims" ...这样,您就可以看到该人是否真的了解正在发生的事情以及他将如何向其他人解释。
你需要有两种类型的问题:
questions based on memory: "what port is used by X", "what nmap options do you used" questions based on reflection: "how will you solve that problem"我也有我最喜欢的一组问题:
"You're going to PentesterLab's website, explain what happens...", that way you can see someone's knowledge of TCP/IP, DNS, HTTP, SSL,...“你学到/读到的最后一件很酷的东西是什么”,这样你就可以看到人们对什么感兴趣以及他们在哪里
在这个测试之后,另一个面试是通过动手测试设置的(只有当这个人显然做得足够好时),它目前是“从 SQL 注入到 shell”练习的 Web 应用程序,它用于查看人们如何思考和行为一台电脑。
你可以看到很多不同的东西:
what people use for desktop how fast someone is with his computer how people solve a problem if people bring a working laptop (yes it happened, someone came to an interview with a broken gentoo...) learn from people: sometime people show you cool tricks you didn't think of ...显然,并不是每个人(实际上到目前为止只有一个人在没有任何帮助的情况下这样做)知道如何手动利用 SQL 注入(你认为我为什么创建 PentesterLab)。但在测试期间,我们帮助人们并展示事物如何运作,以了解他们如何学习新事物并将信息融入他们的思维方式。
来源:pentesterlabs 相关阅读:pentesterlabs 如何获得第一份工作
希望有帮助!
这取决于面试你的人的技能和经验。
对他们做功课,然后根据他们的水平做出回应。