主机探测
ip为192.168.148.189
端口扫描
ftp匿名登录
匿名登录,发现有三个txt,下载到本地进行查看
在1337有个游戏,页面一闪而过
telnet连接,发现这个游戏需要进行1000次,应该需要写个脚本来完成,先放放
7331页面漏洞探测
使用whatweb
命令进行探测,发现是Werkzeug
Werkzeug是一个Python库,用于开发Web应用程序。 它是一个WSGI(Web Server Gateway Interface)工具包,提供了一系列实用功能来帮助开发者处理HTTP请求、响应、URLs等等。Werkzeug的设计非常灵活,可以用作构建各种Web框架的基础。
使用searchsploit
命令搜索漏洞,进行尝试,但这个系统没有开启debug功能
命令执行反弹shell
目录扫描发现存在/wish
和/genie
命令
访问,发现可以执行命令,不过能执行的命令有限
尝试编码,尝试了URL编码和base64编码,发现base64能够成功
|
|
查看系统的用户
PwnKit提权
查找suid文件
感觉非预期了,因为还有个提示没用上hh
补充提权思路
敲门打开22端口
看了别人的wp,提权还有其他思路,在nitish
的家目录下发现密码
nitish:p4ssw0rdStr3r0n9
不过22端口被过滤了,查看/etc/knockd.conf
,看是配置的怎样的规则
敲门顺序是1356 6784 3409
nitish用户ssh登录
用账号密码成功登录
获取sam用户的shell
sudo -l
查看的时候,发现可以以sam
的身份无密码使用/usr/bin/genie
但是无法使用给出的参数
使用man
命令查看使用帮助,还发现了一个参数-cmd
成功获取sam
的shell
反编译.pyc文件分析源码
sudo -l
查看的时候,发现可以以root
的身份无密码使用/root/lago
执行/root/lago
,发现是个小游戏,看上去没有利用点
之前是www-data
用户的shell时,sam
家目录是无法进入的,现在是sam
身份,进入其家目录下查看,发现.pyc
文件
[!note] pyc文件是从Python源代码生成的编译输出文件,当py文件使用Python解释器运行时,它被转换为字节码以执行。 同时,编译后的字节码也保存为. pyc文件,以便以后在适用时从缓存中重用。
使用strings
命令进行查看,和前面的小游戏很相似
[!note]
strings
命令是用于从二进制文件中提取可打印字符串的工具。它特别有用在分析不明结构的文件、调试或逆向工程过程中查找有用的信息。
使用uncompyle2
工具对.pyc
文件进行反编译,阅读源码,发现当输入的内容等于num
的时候,会调用/bin/sh
Python2的input漏洞
Python中,接收用户输入可以通过input
和raw_input
的方式:
- input:将用户输入的值和类型原样获取,而不修改任何类型
- raw_input:将用户输入转换为字符串类型
input
的漏洞在于,任何人都可以仅通过使用变量或方法的名称来访问访问输入值的变量。以下是input
中的一些漏洞:
- 变量名称作为输入参数:具有输入变量值的变量能够直接访问输入变量的值
- 函数名称作为参数
靶机的情况就是第一种,通过变量名。这里输入num
,即可成功提权
总结
1、ftp端口开放,一般会想到匿名登录
2、22端口filtered,想到可能需要knock,去/etc/knockd.conf
查看规则
3、命令执行页面无法执行命令,可以考虑编码,比如base64、URL等
4、看到.pyc文件要想到反编译
5、了解了Python2的input()漏洞