Darkhole2靶机复现
内容提要
本文介绍了靶机渗透测试的过程,包括信息收集、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文件。