Vulnlab_LampSecurityCTF4靶机实战
本文最后更新于 2024-07-27,文章内容可能已经过时。
Vulnlab_LampSecurityCTF4靶机实战笔记
实验环境:
免责声明
⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,
决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠
靶机下载地址:
https://www.vulnhub.com/entry/lampsecurity-ctf4,83/
kali(vmware) ip:192.168.91.129(NAT) ip:192.168.228.4(仅主机)
Vikings靶机(virtualBox)
kali配置了两张网卡,其中一张仅主机的网卡和靶机vitualbox相连。
virtualBox开启靶机:
描述:
难度:简单
提示:vlunhub的集合sql注入基础的靶机
主机发现
nmap -sP 192.168.228.0/24
发现目标主机,ip地址为192.168.228.20
信息搜集
nmap进行基本扫描
发现22,25,80,631四个端口,其中631端口被关闭,25端口显示的是smtp是邮件服务,22端口是ssh。
nmap进一步扫描详细信息,获取目标主机系统信息和版本
nmap -sV -O -p22,25,80,631 192.168.228.20
可以确定目标主机是linux操作系统,80端口开启了Apache服务
使用nmap的udp扫描
nmap -sU -p22,25,80,631 192.168.228.20
显示filtered,说明udp端口被过滤掉了,接下来使用nmap自带的漏洞脚本扫描
nmap --script=vuln 192.168.228.20
扫描出来很多漏洞,包括跨站请求伪造csrf、文件遍历、sql注入等 。
浏览器访问80端口,试试看能不能访问到
成功访问,一堆英文,看的头大,查看网页标题可以得知这是一个教授的论文?
翻译一下,随便在网站上点一点,看看有啥发现。
点击Blog模块后,有几条博文可供选择。随便选择一个打开,界面如上图
观察url,可发现有id=2的字样,这有可能是数据库查询语句,修改url的值添加单引号后可以发现这里有SQL注入
漏洞利用
不想手工注入,这里直接上sqlmap
sqlmap -u 'http://192.168.228.20/index.html?page=blog&title=Blog&id=2' --dbs --dump --batch
# --dbs这个选项用于列出目标数据库服务器上所有的数据库。它会扫描并显示出可用的数据库名称。
# --dump:这个选项用于从指定的数据库中提取数据
# --batch 选项表示自动回答所有提示,以便在没有人工干预的情况下运行。
结果有很多,在数据库ehks的表user中发现了几个用户名和密码,sqlmap对密码的md5加密进行了自动破解。
尝试使用获取的用户名密码来登录ssh
ssh dstevens@192.168.228.20
#输入密码ilike2surf
结果发现执行不了,命令应该没错,应该是靶机的问题。可能是由于靶机太老了,ssh的版本有问题,根据报错提示没有匹配的key exchange方法,靶机的方法是diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1。因此我们可以添加一个参数,把Their offer作为参数的值。
我们先输入-o查找额外的参数,然后输入key的首字母k,按下tab键,有许多提示的参数,我们要设置的参数是与key exchange相关的,在这些参数中最有可能的就是KeyAlgorithms(密钥算法),如下图:
添加靶机方法参数在进行ssh连接,命令如下:
ssh -oKexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 dstevens@192.168.228.10
又报错了,提示信息说没有key type,并给出了靶机的参数为ssh-rsa,ssh-dss,添加参数-oHostKeyAlgorithms=ssh-rsa,ssh-dss即可,命令如下:
ssh -oKexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 -oHostKeyAlgorithms=ssh-rsa,ssh-dss dstevens@192.168.228.20
这回连接上了,输入密码ilike2surf成功连接上dstevens用户的shell。
提权Getshell
查看基本信息
进行提权之前先看看自己是啥权限,使用sudo -l查看,输入密码ilike2surf
发现用户权限是ALL,直接使用如下命令进行提权
sudo /bin/bash
提权成功
使用下find命令查看一下有没有flag
find / -type f -name "*.txt"
没有找到flag,应该是靶场太老了,作者没有设置flag
至此打靶完成。
思路总结
基本思路
使用主机发现,nmap扫描基本信息-》在web页面发现sql注入漏洞-》使用sqlmap进行注入,拿到数据库的用户名和密码-》使用用户名和密码进行ssh登录。(其中ssh登录的时候涉及到了key值参数匹配的问题,上文做了解释)
总结
进行渗透测试的过程中,我们不能单纯依赖nmap和sqlmap这种自动化工具,还是要了解漏洞的原理与代码的编写。再说这个靶机是2009年的了,sqlmap可能当时还没出,这里我偷懒使用了这种自动化的工具,实际真实环境中可能不能用到sqlmap这种工具,因为可能被封ip。说到底,工具只是在了解了漏洞原理和代码的基础上,方便我们渗透的流程,并不是渗透的核心所在,不能只做脚本小子,所以学习思路和技术的道路任重而道远。
- 感谢你赐予我前进的力量