Darkhole2靶机复现

💡 原文中文,约3600字,阅读约需9分钟。
📝

内容提要

本文介绍了靶机渗透测试的过程,包括信息收集、SQL注入等步骤。首先获取靶机的IP和开放端口,下载源码以获取账号密码。通过SQL注入获取用户表和SSH表的账号密码,最终成功提权为root用户并获取flag文件。

🎯

关键要点

  • 信息搜集阶段,获取靶机的IP地址和开放端口。

  • 使用nmap扫描靶机端口,发现80端口并进行目录扫描。

  • 通过访问/.git目录,使用git-dumper下载源码,获取账号密码。

  • 发现可能存在SQL注入,通过构造SQL语句进行测试。

  • 成功获取users和ssh表的账号密码,但无法直接获取shell。

  • 通过ssh登录获取ssh表的账号密码,尝试提权。

  • 查看bash历史记录,发现9999端口有活动,进行端口转发。

  • 成功反弹losy用户的shell,尝试用losy用户提权。

  • 通过执行python3命令以root身份提权,获取root权限。

  • 最终获取到flag文件,完成渗透测试。

🔎

延伸解读

信息收集的重要性

在渗透测试中,信息收集是成功的关键步骤。通过扫描靶机的IP和开放端口,测试者能够识别潜在的攻击面。本文中提到的nmap和dirsearch工具,能够有效帮助测试者发现靶机的服务和漏洞,进而制定攻击策略。

SQL注入的风险

SQL注入是一种常见的网络攻击方式,能够让攻击者获取数据库中的敏感信息。文章中通过构造SQL语句成功获取用户和SSH表的账号密码,显示了SQL注入的威胁。企业应加强对输入数据的验证和过滤,以防止此类攻击。

提权过程中的挑战

在渗透测试中,提权是一个复杂的过程。尽管成功获取了SSH的账号密码,但仍需通过多种手段进行提权。文章中提到的通过bash历史记录和端口转发的方式,展示了攻击者如何利用系统配置和用户权限进行进一步的攻击。

延伸问答

靶机渗透测试的第一步是什么?

第一步是信息收集,包括获取靶机的IP地址和开放端口。

如何通过SQL注入获取用户表的账号密码?

通过构造SQL语句进行测试,发现users表后,可以使用UNION SELECT语句获取账号密码。

在渗透测试中如何提权为root用户?

通过ssh登录后,查看bash历史记录,发现可以使用python3命令提权为root用户。

使用git-dumper的目的是什么?

使用git-dumper下载靶机的源码,以获取账号密码等敏感信息。

如何进行端口转发以获取shell?

可以通过ssh命令进行端口转发,将本地端口连接到靶机的9999端口,从而执行命令反弹shell。

获取到flag文件的关键步骤是什么?

成功提权为root用户后,访问root用户目录以获取flag文件。

🏷️

标签

➡️

继续阅读