【THM】Become a Hacker-学习

本文相关的TryHackMe实验房间链接:https://tryhackme.com/r/room/becomeahackeroa

本文相关内容:了解 TryHackMe 如何帮助你成为一名Ethical Hacker。

image-20241230221025347

什么是进攻性安全?

image-20241230223808648

简而言之,进攻性安全就是尝试闯入目标计算机系统、利用软件本身的缺陷并找到应用程序中的漏洞以获得对目标的未经授权的访问的过程。

为了击败黑客,你有时候需要像黑客一样行事,你要在网络犯罪分子之前发现漏洞并推荐补丁,就像你在本文中将要完成的简单练习示例的那样。

image-20241230223815629

另一方面,还有防御性安全,这是通过分析和解决任何潜在的数字威胁来保护企业、组织的网络和计算机系统的过程,要求从业人员具备一定的数字取证能力。

在防御性网络安全角色中,你可以调查受感染的计算机或设备以了解其被黑客攻击的方式、追踪网络犯罪分子或者监控网络基础设施是否存在恶意活动。

答题

阅读本小节内容,并回答以下问题。

image-20241230225200061

简单练习-第一部分

这是你的第一次道德黑客练习,你不仅将了解道德黑客攻击(你将在本小节尝试攻击一个测试网站),还将了解TryHackMe平台的工作原理。

要开始并继续操作,请单击此小节右上角的“查看站点”按钮以访问目标 Web 应用程序。

image-20241230231912172

场景模拟:在经过几个月的时间思考他的商业想法之后,迈克终于准备好推出网站了!他花费了大量的时间和精力创造了一个伟大的产品,并相信人们会喜欢它。

image-20241230231647853

然而,迈克也对潜在的网络安全威胁感到担忧。他知道各种规模的企业每天都在遭到黑客攻击,他并不想成为受害者。因此,你接到迈克的电话,要求你评估他的网络应用程序(Web app),看看是否可以发现任何漏洞。他特别担心软件开发团队可能忘记了一些私人页面而把它们暴露在公网上,他希望你能在公开的私人内容被坏人发现并造成严重破坏之前就先找到它们,

你准备好帮助迈克了吗?

image-20241230235029378

在浏览器的右上半部分,你可以看到一个模拟的浏览器窗口,显示http://www.onlineshop.thm ,如上图所示,你可以与地址栏进行交互。

image-20241230235319393

在右下半部分,你可以访问类似于上面的模拟终端,以使用可用的安全工具。

针对目标web应用程序,我们可以运行多种安全测试,但首先,让我们看看是否可以发现目标网站的任何隐藏页面,以下是我们可以尝试访问的一些页面:

  • sitemap:我们可以使用THM为我们提供的嵌入式浏览器来检查http://www.onlineshop.thm/sitemap页面是否存在。
  • mail:我们可以检查http://www.onlineshop.thm/mail页面是否存在。
  • login:……
  • register:……
  • admin:……
  • cgi-bin:……
  • ……

让我们尝试使用上面列表中的单词来发现目标网站是否存在一些隐藏页面,在供测试使用的模拟浏览器中,尝试通过向现有URL添加单词(上面列出的)来更改地址,直到我们找到指向隐藏页面的正确单词为止。

使用自动化工具:Gobuster

如果你想要尝试的页面列表比较简短,则直接在浏览器的地址栏中进行url更改会很有帮助。如果我们有数百或数千个单词需要尝试,那我们该怎么办?此时我们就需要使用自动化工具来完成任务。例如Gobuster就是一个可以自动化搜索隐藏页面的可靠工具,它可以通过终端命令行运行。

在终端界面,我们需要执行以下命令:

user@thm ~> gobuster dir --url http://www.onlineshop.thm/ -w /usr/share/wordlists/dirbuster/directory-list.txt

[output redacted]

上面的命令由以下部分组成:

  • gobuster:这是启动Gobuster的终端命令;
  • dir:表示使用目录和文件枚举模式;
  • --url http://www.onlineshop.thm/ :设置目标网站;
  • -w /usr/share/wordlists/dirbuster/directory-list.txt :指定要使用的单词列表(字典)。

请在给定的终端界面中运行上面所显示的命令,此命令能让你以自动化的方式发现目标网站可能隐藏的页面。

如果你已经完成了这一步,那么恭喜你,你刚刚使用两种不同的方法(手动拼接URL+使用自动化工具)发现了隐藏页面!

答题

阅读本小节内容,并回答以下问题。

你发现的隐藏网页的名称是什么?

gobuster dir --url http://www.onlineshop.thm/ -w /usr/share/wordlists/dirbuster/directory-list.txt

image-20241231002614874

image-20241231002646599

login

image-20241231002835531

简单练习-第二部分

在示例练习的第一部分,我们发现了一个允许已注册的用户登录网站的隐藏页面。如果我们现在能找出现成的用户名和密码,那么我们就可以访问目标Web应用程序的某些私人部分。

image-20241230235823398

最常见的用户名之一是admin,我们接下来将使用admin作为用户名开始攻击,并尝试猜测与之对应的密码。

我们可以尝试使用用户名admin以及下面列出的常用密码之一进行登录测试:

  • abc123
  • 123456
  • qwerty
  • password
  • 654321

你是否能够找到正确的密码并成功完成登录?上述密码之一应该与用户名admin组合使用,正确的"用户名+密码"组合能够允许我们访问对应的秘密页面。

使用自动化工具:Hydra

有时候,我们可以手动完成这个暴力登录任务,因为我们可能只需要验证性地输入几个密码;但是,如果我们必须检查数千或数万个密码应该怎么办呢?在这种情况下,我们就可以尝试使用Hydra等自动化工具。

我们可以在给定终端界面中运行以下命令:

user@thm ~> hydra -l admin -P passlist.txt www.onlineshop.thm http-post-form "/login:username=^USER^&password=^PASS^:F=incorrect" -V

[output redacted]

上面的命令由以下几个部分组成:

  • hydra是启动Hydra的终端命令;
  • -l admin尝试使用用户名admin进行登录;
  • -P passlist.txt指定要尝试的密码列表;
  • www.onlineshop.thm设置目标网站;
  • http-post-form表示这是一个HTTP POST 请求表单;
  • "/login:username=^USER^&password=^PASS^:F=incorrect" 指定HTTP POST 请求的形式以及在登录凭据不正确时如何进行检查;
  • -V用于指定输出详细信息。

你不必担心不理解上面的所有命令参数,它比看起来更简单;现在,我们需要将上面的命令复制并粘贴到给定的终端中进行执行,然后观察Hydra能否为我们找到有效的密码即可。

如果你尚未完成登录操作,请使用你所发现的有效密码并结合用户名admin进行登录。

如果你已经完成了登录这一步,那么恭喜你,你刚刚成功攻破了一个不安全的Web应用程序!

答题

阅读本小节内容,并回答以下问题。

你发现的秘密信息是什么?

hydra -l admin -P passlist.txt www.onlineshop.thm http-post-form "/login:username=^USER^&password=^PASS^:F=incorrect" -V

image-20241231003009189

image-20241231002951678

login: admin

password: qwerty

image-20241231003110189

image-20241231003139782

秘密信息是:born_to_be_a_hacker

image-20241231003220182

网络安全职业

我怎样才能开始学习?

人们常常想知道其他人如何成为黑客(安全顾问) 或 安全防御者(打击网络犯罪的安全分析师),答案很简单,你可以将复杂的事物或概念分解成更简单的部分以便理解或解决,你可以学习你感兴趣的网络安全领域,并定期进行实践练习。养成每天在TryHackMe上完成一点学习任务的习惯,你将获得在该行业找到第一份工作所需的知识。

相信自己,你能做到的!看看一些使用TryHackMe并获得了第一份网络安全领域工作的人:

  • Paul(保罗)从一名建筑工人变成了一名安全工程师,点击了解更多
  • Kassandra(卡珊德拉)从一名音乐老师变成了一名安全专家,点击了解更多
  • Brandon(布兰登)在学校时使用TryHackMe学习并找到了他的第一份网络安全工作,点击了解更多

网络安全领域有哪些职业?

Careers in Cyber(网络安全职业介绍)一文中更加深入地介绍了网络安全领域的一些不同职业,而我们在这里只是简短地描述一些进攻性安全角色:

  • Penetration Tester(渗透测试人员):负责测试技术性的产品以找到可供恶意利用的安全漏洞。
  • Red Teamer(红队人员):扮演网络攻击者的角色,尝试攻击目标组织并从攻击者的角度提供反馈。
  • Security Engineer(安全工程师):设计、监控和维护安全控制、网络和系统,以帮助预防网络攻击。
posted @ 2024-12-31 00:45  Hekeatsll  阅读(147)  评论(0)    收藏  举报