当前位置: 首页 > news >正文

VulnHub靶机入门篇--Kioptrix4

1.环境配置

下载地址: https://download.vulnhub.com/kioptrix/Kioptrix4_vmware.rar

下载完解压之后是一个vdmk文件,我们需要先创建一个新的虚拟机,将vdmk文件导入就行了

先移除原先硬盘,然后再进行添加,网络连接为Nat模式,靶机就是这个了

攻击机:kali(192.168.26.128)-Nat模式

2.渗透测试

信息收集
主机收集
​​​​​​​nmap -sP 192.168.26.0/24

可以得知:靶机ip地址:192.168.26.134

扫描端口
nmap -sV -p- 192.168.26.134

得知开放了22、80、139、445端口,分别查询一下它们的服务

22端口:  ssh 服务,传统的网络服务程序​​​​​​​

80端口:  HTTP(HyperText Transport Protocol,超文本传输协议)

139、445端口:提供Windows文件和打印机共享以及Unix中的Samba服务

查看更详细的信息: 

nmap -nvv -Pn -sSV -p- --version-intensity 9 -A 192.168.26.134
 漏洞收集

由于靶机开放了80端口,因此我们可以在网站上直接进行访问,出现一个登录框

登录框出现的漏洞一般都是sql注入或者弱口令或者爆破

弱口令爆破不出来,我们用工具扫描看看出现什么漏洞

nikto -h 192.168.26.134

漏洞利用

成功查找到sql注入漏洞,抓包查看,直接用sqlmap一把梭

先把数据包放到1.txt文件中,再进行post注入

payload:

python sqlmap.py -r 1.txt --level 3 --risk 3 --dbs --batch

扫描结束,从结果看,并没有可以注入的地方,但是前面有一条可疑信息:

这边有一个提示,参数mypassword可能存在注入,数据库类型为MySQL。

接下来就对这个参数进行一些注入测试:

sqlmap -u "http://192.168.26.134/checklogin.php" --data="mypassword=root"
sqlmap -u "http://192.168.26.134/checklogin.php" --data="mypassword=' or '1'='1"

这边用第二条命令检测出了存在注入:

可以看到注入类型为布尔盲注。

接下来在sqlmap命令中加上 --dbs 跑出数据库名:我自己跑不出来【汗流】,看了下别人的库名为members

sqlmap -u "http://192.168.26.134/checklogin.php" --data="mypassword=1" --dbs --batch

看到有个members的数据库,接下来-D members --dump 跑出数据库中的内容:

sqlmap -u "http://192.168.26.134/checklogin.php" --data="mypassword=1" -D members -dump --batch

可以看见有两个用户,这边用第一个用户进行登录

尝试进行登录,登录成功

 可以看见就是一个成员控制面板,也不像之前的靶场有命令执行的输入框。但是我们这边已经拿到了用户名和密码

获得webshell

通过--os-shell选项直接获得webshell

这里获取失败了

这是成功获取shell的图片

 获得普通用户shell

外尝试使用获得的用户名和密码通过ssh进行登录也成功获得普通用户shell,如图:

哎,这里又又又失败了,连接不上

找到解决办法了,细看此文:ssh 报错 no matching host key type found — 春之禾苗 (sysant.github.io) 

ssh -o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa username@xx.xx.xx.xx

突破SHELL限制并提权

给大家介绍一个突破shell限制的命令:echo os.system('/bin/bash')

echo是一个把字符串输出到终端上的命令。 本来是被限制了的shell,如果运行别的命令,就会不予执行。本来你关在牢房里,活动空间不过几平米。然而运行这条命令,就相当于把锁打开。echo相当于我们的中间人,它返回了bash shell。当然这条命令能够逃逸限制,也得益于该Lshell是由python所写,且可用调用python中os模块的system方法来执行系统命令导致的。

然后sudo su 输入john用户的密码MyNameIsJohn:未能获取到root权限,换个方法

查看内核版本,如图

 显然可以使用脏牛提权,尝试上传文件发现无法外连80端口,但是可以外连443端口,且该shell无法执行二进制文件,不存在gcc,因此无法通过内核提权。查看/etc/passwd文件发现john和robert用户默认使用kshell,如图:

cat /etc/passwd

另外还存在一个普通用户loneferret用户。查看开启的端口发现有3306,如图:

netstat -anl

很自然想到的MySQL UDF提权,从前面SQL注入中获取到的信息发现数据库版本是5.0.12,但是在上传动态链接库后导出时出错。然而,在查看mysql数据库时很幸运发现已经存在func表,且表中含有执行命令的函数,如图:

尝试执行id命令,但返回信息为NULL,如图:

开启443端口监听,尝试使用函数执行命令访问443端口,如图:

                    

说明命令执行成功。然后使用msfvenom生成反弹shell 的程序,上传到目标主机并执行,成功获取root权限。

总结

前面的知识点都跟之前题目差不多,后面出现了sql注入的利用,sqlmap工具的使用,以及获得webshell,在获得webshell之后的提权(数据库提权),以及一些linux的常用命令

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • scrapy爬取城市天气数据
  • 【Golang 面试 - 进阶题】每日 3 题(一)
  • WordPress原创插件:启用关闭经典编辑器和小工具
  • 力扣刷题----42. 接雨水
  • 【图像处理】不智能的目标识别
  • C语言 | Leetcode C语言题解之第279题完全平方数
  • 大型语言模型LLM的核心概念
  • 【数据结构】线性表与顺序表
  • Ubuntu22.04使用NVM安装多版本Node.js和版本切换
  • RedisTemplate、StringRedisTemplate、序列化器配置
  • Django REST Framework(十四)路由Routes
  • 二十四、【机器学习】【非监督学习】- 高斯混合模型 (Gaussian Mixture Models, GMM)
  • 深入理解 Redis 的使用与监控
  • 移动UI:排行榜单页面如何设计,从这五点入手,附示例。
  • 【DP】01背包
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Cookie 在前端中的实践
  • Create React App 使用
  • ES6系统学习----从Apollo Client看解构赋值
  • github指令
  • JavaScript服务器推送技术之 WebSocket
  • JS实现简单的MVC模式开发小游戏
  • k8s如何管理Pod
  • linux学习笔记
  • Python学习之路13-记分
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 编写高质量JavaScript代码之并发
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 对象管理器(defineProperty)学习笔记
  • 聚簇索引和非聚簇索引
  • 码农张的Bug人生 - 初来乍到
  • 普通函数和构造函数的区别
  • 前端性能优化——回流与重绘
  • 深度学习入门:10门免费线上课程推荐
  • 通过几道题目学习二叉搜索树
  • 一起参Ember.js讨论、问答社区。
  • 移动端唤起键盘时取消position:fixed定位
  • 以太坊客户端Geth命令参数详解
  • 因为阿里,他们成了“杭漂”
  • kubernetes资源对象--ingress
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • ( 10 )MySQL中的外键
  • (python)数据结构---字典
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (力扣)循环队列的实现与详解(C语言)
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (学习日记)2024.01.09
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)nsfocus-绿盟科技笔试题目
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全