利用已知的漏洞,如脏牛等。
首先需要介绍两个文件 /etc/passwd 和 /etc/shadow
1. /etc/passwd
passwd 文件储存了用户的具体信息,全用户可读,root可写
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
由冒号分割,第一列是用户名(daemon);
第二列是密码,x表示密码的hash值保存在shadow文件中
第三列是UID
第四列是GID
第五列是用户全名或本地账号
第六列是home目录
第七列是登录之后使用的终端命令
passwd文件是可写的,如果将密码X替换成我们自己的hash,就可以改变目标的root密码
2. /etc/shadow
shadow文件只有root可读,可以将这个文件的值取出来后用 hashcat、john爆破
root:$6$JNHsN5GY.jc9CiTg$MjYL9NyNc4GcYS2zNO6PzQNHY2BE/YODBUuqsrpIlpS9LK3xQ6coZs6lonzURBJUDjCRegMHSF5JwCMG1az8k.:18134:0:99999:7:::
同样以分号分割,第一列是用户名称(root)
第二列是加密后的密码($6$JNHsN5GY.jc9CiTg$MjYL9NyNc4GcYS2zNO6PzQNHY2BE/YODBUuqsrpIlpS9LK3xQ6coZs6lonzURBJUDjCRegMHSF5JwCMG1az8k.)
第三列是最近改动密码的日期(18134)
第四列是密码不可被变更的天数:设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是0的话,则表示没有限制
第五列是密码需要重新变更的天数:如果是99999,则表示没有限制
第六列是密码过期预警天数(7)
第七列是密码过期的宽恕时间
第八列是账号失效时间
第九列是保留的
如数据库、后台web密码,可能就是root密码
sudo是平常用来提权的命令,当执行权限不够时,可以用这个命令来提升权限。其配置文件是 /etc/sudoers,这个文件中记录了可以执行sudo的用户、定义应用程序是否可以root访问、是否需要密码验证。
sudo -l
这个命令可以查看有哪些命令可以执行,即不需要知道用户密码,只需验证自身权限的密码即可
如上图所示,可以用cat命令提升为root权限
可以使用pspy64查看系统后台任务执行状况
比如找到下图这个定时任务
根据这个UID1183,结合/etc/passwd
可以找到执行这个脚本的用户(vanshal)
接下来可以在这个脚本中写入反弹shell
在backup.sh中写入反弹shell
在kali监听
成功提权为vanshal
参考链接:【安全科普】Linux提权——利用可执行文件SUID
SUID 是一种特殊的文件属性,允许用户以该文件的拥有者的身份运行
查找SUID文件
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
例如,下图找到了一个 /scripts/find 文件具有s属性
用ls -l /scripts/find
查看find
可以看到这是属于nightfall的
利用suid执行时可以获取文件所有者权限的特性,获得nightfall
/scripts/find . -exec "/bin/sh" -p \;
-exec:将find内容放到后面的指令执行
/bin/sh:执行sh
-p:用文件的所有者权限执行sh
\; :用分号转义
得到了nightfall权限