-
-
[原创]Vulnhub靶机school的walkthrough (linux下wine运行windows服务的缓冲区溢出)
-
发表于: 2020-12-15 20:02 910
-
这是vulnhub里一个非常有意思的靶机,下载地址是https://www.vulnhub.com/entry/school-1,613/。
这个靶机是Linux系统的,取得用户shell的难度是初级,但是取得root shell需要对wine运行的windows程序进行溢出攻击。
首先,加载靶机到VirtualBox,运行后取得IP地址,并用nmap进行扫描。
经过一番测试,除了80端口,其它端口目前都没有发现什么。用浏览器打开靶机,发现直接跳转到http://192.168.56.12/student_attendance/login.php。
测试了几个弱口令,无法登录。开始爆破网站目录,发现了一些文件和文件夹。
gobuster dir -u http://192.168.56.12/student_attendance/ -t 50 -x .php,.html,.txt -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -b 403,404
经过一番浏览,在database文件夹里发现一个student_attendance_db.sql文件。
下载下来以后,查看其中的内容,发现了2个用户名和密码。
在线解出admin的密码为admin123。随后用这个用户名和密码登录刚才的界面,进入一个控制面板。
在这个控制面板进行查找后发现,并没有可以利用的地方。这里,查看一下页面源代码,发现有一处很特别的注释。
这说明后台很有可能有一个site_settings页面,但是被注释隐藏了。我们直接在地址栏里输入http://192.168.56.12/student_attendance/index.php?page=site_settings尝试访问,果然来到一个新的界面。最重要的是,有上传文件按钮。
我们选择上传一个php的反弹shell,同时监听相关端口,随后得到了用户shell。
发现靶机有两个用户,fox和ppp。在fox的home目录下,找到了用户flag。又经过一番探索,包括查找SUID、可写文件、getcap等操作,没有发现可以利用来提权的地方。但是发现一个有意思的地方,就是www-data用户可以进入 /root目录,虽然目前无法读取root的flag,但是发现一个有意思的文件。
查看win文件的内容,发现这一个可执行脚本,用处就是不断地用wine执行access.exe程序。
那么这个程序肯定是在运行的,ps aux|grep access.exe无法查看PID,且netstat -tlnup也无法显示相关端口对应的PID,估计是权限太低的原因。
我们把access.exe下载到本地的windows上运行后,发现该程序运行在23端口。因此,可以判断靶机里的23端口正是wine运行的access。(其实,后期在反汇编中可以很清楚地看到access.exe的端口号。)
我们在本地的windows上运行access.exe程序,并尝试用nc连接。连接后输入字符串。当字符串长度较小时,程序运行正常,当字符串长度较大时,access.exe程序就会退出。初步猜测,这应该是一个缓冲区溢出漏洞。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)