门户网站app杭州网站建设公司
仅作学习记录,如果能帮助到需要的人也很荣幸,如有错误请指正。
新的知识点:
1. Searchsploit会通过本地的exploit-db,查找软件漏洞信息。
2. SUID提权和SUDO提权有什么区别?
通过上图可以看出来,nmap不具备SUID权限,也就是说,SUID是一种权限位,具备这种权限之后,不需要验证,任何用户在执行该可执行文件的时候身份有效id都会被置为身份属主id;但是普通用户jens能够用root的权限执行nmap的命令并且不需要输入密码。
但是为什么能够提权呢?两者在提权上有什么区别?
根据上述SUID的原理,如果一个可执行文件的属主是root,普通用户在执行文件的过程中打开一个shell,因为这时候有效id(euid)是root的id,因此打开的shell用户也就是root,成功提权。而对于sudo命令,其本质上就是一个拥有者为root且拥有s权限的可执行文件,因此其原理也是在euid为0的时候打开一个shell,这时shell的用户就是root。
3. 水平越权,某个用户有不需要密码执行的sudo命令,首先将shell写入到脚本中:echo “/bin/bash” >> backups.sh ,以用户jens运行脚本sudo -u jens ./backups.sh即可水平越权。
4. nmap提权有两种方式,7以下的版本可以进入交互模式提权:nmap --interactive !sh
7以后的版本要通过执行script脚本提权:echo “os.execute(‘/bin/bash’)” > /tmp/shell.nse && sudo nmap --script=/tmp/shell.nse
需要注意的点:
- 查找漏洞的时候不仅仅是对于框架本身,比如wordpress,除了查找框架的漏洞外其组件的漏洞也是可以利用的
- 信息收集的内容贯穿整个渗透过程,不仅仅是漏洞利用的时候需要,在提权的时候也很有可能用到。因此前期信息收集的内容要有体系,后面没思路的时候就多看看。
Linux提权总结:详细|Linux提权总结_https://gtfobins.github.io/-CSDN博客
sudo命令实现原理简析:sudo命令实现原理简析 - 知乎
滥用SUDO提权:Linux提权姿势一:滥用SUDO提权-腾讯云开发者社区-腾讯云
Linux中SUID提权:Linux中suid提权_suid提权原理-CSDN博客
SUDO和SUID详解:SUDO和SUID详解_来日可期x的博客-CSDN博客
过程记录:
1. 信息收集
nmap扫描
22,80端口开放,apache 2.4.25,linux 3.2-4.9
访问了一下,显示wordy,应该是需要编辑一下host文件。
新增一条记录
使用whatweb看一下网站架构信息:
用dirb和dirsearch都扫描了一下,发现了后台页面和注册登录的页面
dirsearch -u http://wordy
老样子,存在用户名枚举
用wpscan枚举用户名:
wpscan http://wordy/ -e u
一开始像DC-2一样,使用crewl工具抓取页面信息作为字典,然后使用wpscan暴力破解,但是失败了
然后在查看靶机描述的时候发现一个小提示,有一个命令:
cat /usr/share/wordlists/rockyou.txt | grep k01 > passwd.txt
这个命令是将rockyou里面包含k01的密码输出保存为一个新的字典文件passwd.txt。使用这个新的字典去爆破用户名密码。
wpscan --url http://wordy -U user.txt -P passwd.txt
发现成功找到了一对用户名和密码
使用这个用户名密码登录
2. 漏洞利用
搜索wordpress5.1.1包含的漏洞,有一个从CSRF到RCE,但是这个需要超级管理员点击相关的评论和链接,因此难以利用。
看了writeup,发现是找到了tools下面的一个组件activity monitor,使用searchsploit搜一下
利用命令注入,根据后面显示的文件名id,将该文件复制到本地目录下:
searchsploit -m 45274
打开文件,将文件两个ip修改为靶机和自己的kali的ip
然后在浏览器中打开文件
点击提交请求,再去看监听的端口,发现收到了信息(这个地方可以尝试用burp抓包实现)
使用python获取一个交互式终端:
python -c ‘import pty;pty.spawn(“/bin/bash”)’
可以看到获得了一个终端
3. 提权
根据之前信息收集到的用户去看用户做了什么
发现添加了一个新用户,使用su切换用户或者使用ssh链接新用户,能够成功登录。
常规操作查看一下sudo权限,发现一个不用密码执行的命令
并且文件的属主是jens,这样就可以水平越权,这里发生了一连串的报错需要在后面注意一下。首先一开始尝试使用命令sudo -u jens ./backups.sh水平越权,执行这个命令的时候报错去掉前缀/,查找后发现需要在脚本里将-lvf改为-lvPf,改的时候发现使用vi时候上下左右的键变成了ABCD,尝试解决:
解决后成功执行命令,但是并没有水平越权成功。于是使用echo “/bin/bash” >> backups.sh将shell写入到脚本中,执行脚本的时候就能够,成功越权。
其实就是相当于将内容写入到文件中。也可以再写入之前使用重定向将其变为空设备文件:cat /dev/null > backups.sh
查看jens的sudo权限,可以看到nmap可以不需要密码执行,同时其具有root权限,因此可以来考虑使用nmap提权。
提示--interactive在新版中已经不能使用
因此使用执行脚本的方式提权到root:
echo “os.execute(‘/bin/sh’)” > /tmp/shell.nse && nmap --script=/tmp/shell.nse
最后依然使用:python -c 'import pty;pty.spawn("/bin/bash")'获取交互式shell。