有些新手朋友在拿到一个webshell后若是看到服务器是Linux或Unix操做系统的就直接放弃提权,认为Linux或Unix下的提权很难,不是你们能作的,其实Linux下的提权并无不少人想象的那么难,你真去尝试作了,也许你就会发现Linux下的提权并不难,尤为是一些简单的提权方法是很容易学会的。Linux下的提权我知道的比较简单的方法都是在命令行下完成的,不少新手叉子可能根本没接触过Linux下的一些经常使用命令,今天危险漫步就给你们介绍一些Linux下提权过程当中经常使用到的Linux命令,因为我也是刚学了几个Linux命令,介绍的不对或不全的还请你们多多指正和谅解。web
对你们来讲,在Linux下的提权最简单也是最有效的方法就是经过本地溢出漏洞提权。找到合适的漏洞利用程序在命令行下运行一下就完成了提权。shell
因为Linux下的提权大可能是在命令行下进行的,所以要提权首先要获得一个执行命令的地方。咱们最早获得的是一个webshell,好比PhpSpy。尽管不少Webshell提供了在Linux下执行命令的功能,但每每只能执行一些不须要交互的命令,所以咱们首先要获得一个可执行交互命令的窗口,用到的方法是反弹shell到本地。PhpSpy自带了这个功能,名为“Back Connect”。编程
要想反弹回shell,你须要一台有公网lP的电脑(固然了,只有内网IP的电脑作了端口映射也能够),而后在你要反弹回来的电脑上首先用nc来监听要反弹回来的端口,若是要反弹回来的端口为12345,就执行nc -vv -|-p 12345来监听12345端口。浏览器
而后回到PhpSpy中的”Back Connec”,在“Your IP”后面自动识别除了你当前电脑的公网IP,若是要反弹到别的电脑上请输入要反弹电脑的IP,我这里要反弹到本机,就不须要修改了,“You Port”是你要反弹电脑上正在监听的端口,默认为12345,知道我上面为何在本机监听12345端口了吧,就是在这里不须要修改“Your Port”了,固然,你也能够在本地监听123456端口,而后把“Your Port”也修改为对应的123456端口就好了。点“Start”按钮进行反弹,过一下子本机的监听窗口看到相似信息就说明反弹成功了,获得了一个可执行交互命令的窗口。接下来执行命令的效果和在Ubuntu的终端中执行命令的效果几乎彻底相同,因此我在Ubuntu 10.10的终端中执行经常使用的提权中用到的命令来给你们演示。bash
在反弹回来的权限较低的shell的命令窗口中有权限执行的命令有: 服务器
一、uname网络
输出一组系统信息。若是不跟随选项,则视为只附加-s选项。常跟的参数有-a,在个人Ubuntu编程语言
10.10的终端中执行uname-a命令后显示,其中最前面的Linux表示是基于Linux内核的,2.6.35-28是具体的内核版本号。这个内核版本号很是重要,由于若是是采用溢出漏洞提权的话内核版本号是寻找溢出漏洞利用程序最重要的参考信息,根据当前的内核版本号寻找适用于这个版本号的漏洞利用程序。网站
二、pwd操作系统
得到当前目录,在用webshell上传漏洞和用程序前执行一下pwd命令得到当前目录,把漏洞利用程序直接上传到当前目录,在执行漏洞利用程序时就能够免去输入目录的麻烦。执行pwd命令后显示/home/test,说明当前目录为/home/test/。
另外,经过webshell好比PhpSpy的“Back Connect”反弹回来的shell默认的当前目录为webshell所在的目录。
三、ifconfig
显示网络配置信息,好比显示有哪些网卡,每块网卡的配置信息(IP地址、MAC地址、子网掩码)等,经常使用参数-a执行ifconfig-a命令后显示。从信息能够知道,当前系统共有一块网卡etho,IP地址为192.168.19.138,子网掩码为255.255.255.0。
四、netstat
显示当前的网络链接状态,与Windows系统下的netstat命令写法相同,功能也差很少。
执行netstat后显示了不少网络链接的信息。
五、ps
ps是用来报告程序执行情况的指令,你能够搭配kill指令随时中断,删除没必要要的程序。经常使用的参数有a,u,x
a 显示现行终端机下的全部程序,包括其余用户的程序。
u 以用户为主的格式来显示程序情况。
x 显示全部程序,不以终端机来区分。
执行ps aux命令后显示,显示了程序的进程id,CPU占用率等详细信息,若是要结束某个程
序,只须要用命令kill-9 PID就能够结束,其中PID就是在执行ps aux命令时显示的程序的PID,固然前提是要有相应的权限。
六、gcc
不少Linux下的漏洞利用程序都是用C语言写的,咱们获得的不少时候是漏洞利用程序的C语言的源代码,要想获得可执行程序,须要对源代码进行编辑,这时候就用到大名鼎鼎的gcc了。个别状况下可能由于兼容性的缘由必须须要在要提权的Linux主机上编译漏洞利用程序,这时候也须要用到gcc。GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。它是一套以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部分,亦是自由的类Unix及苹果电脑Mac OS X操做系统的标准编译器。GCC原
名为GNUC语言编译器,由于它本来只能处理C语言,GCC很快地扩展,变得可处理C++,以后也变得可处理Fortran、Pascal、Objective-C、Java,以及Ada与其余语言。
在大多数状况下,你在本地的Linux系统中编译好的溢出漏洞利用程序直接上传到要提权的Linux主机上也能正常使用,不是必需要在要提权的主机上编译溢出漏洞的利用程序。由于gcc特别强大,功能特别多,用法也特别多,要讲全的话估计要一本厚书的篇幅,这里不可能一一介绍,只介绍Linux提权中经常使用到的两个方面:
(1)gcc-v
查看安装的gcc的版本,咱们的目的是经过执行gcc-v命令确认系统是否安装了gcc,若是安装了会显示安装的gcc的版本号若是提示找不到命令等说明gcc没有安装。Ubuntu 10.10默认安装了gcc。
(2)另外一个用到的重要功能就是把漏洞利用程序的源代码编译成可执行程序了。假设溢出漏洞利用程序源代码文件是exp.c,经过websbell把exp.c上传到了要提权的Linux主机的当前目录下,在反弹回来的命令窗口中执行gcc-o exp exp.c,就会把exp.c编程成可执行程序exp,其中-o参数后面跟着的是编译生成的可执行程序的名字,这里为exp,另外一个参数exp.c是要编译的溢出漏洞利用程序源代码的文件名,这里为exp.c。执行命令后若是没有错误提示就说明编译成功了。执行一下命令ls,发现可执行文件exp已经生成了。
接下来输入./exp就能够运行漏洞利用程序exp了,若是溢出成功会显示,注意下面的那个#,对Linux有点了解的都知道#对应的是root权限,看到#就说明提权成功了,接下来你就能够以root权限运行各类命令了。
在经过溢出漏洞得到root权限后,能执行的命令就多了,不少没提权前没权限执行的命令如今均可以执行了。这时候能够执行一些命令来获取一些敏感信息或进行留后门清理日志等操做,方便更好的控制提权成功的服务器。
一、cat .bash_history
查看该用户曾经执行过的命令,也就是查看root用户执行过的命令。由于Linux下不少管理操做都是在命令行下完成的,而正常状况下用root用户执行命令的是管理员,经过查看管理员输入的命令,可能获得不少敏感信息。
二、cat/etc/passwd cat/etc/shadow
分别执行cat/etc/passwd,cat/etc/shadow命令后获得passwd和shadow的内容,把两个文件的内容保存到本地用john挂字典尝试破解root用户的密码,具体怎么破能够本身查询相关信息。cat/etc/shadow只有root权限才能执行。
三、chmod
在提权成功得到root权限后你若是想下载服务器上的一个文件到本地,个人方法是先执行cp命令把要下载的文件复制到网站的Web目录下,但复制过去的文件只有root用户能访问,直接用浏览器下载会提示没有权限,这时候就须要用到chmod命令了。chmod命令的做用是变动文件或目录的权限。若是要下载的文件是shadow1,执行命令chmod 777./shadow1后就能够直接用浏览器下载了,不会再有权限问题了。
固然,在得到root权限后还能够作不少事,好比安装后门,想办法搞到root用户的密码等,惋惜我不会,也和本文的题目“Linux下提权经常使用小命令”关系不大,这里就不介绍了。在实际提权过程当中用到的命令可能远不止这么多,我介绍的都是大路边的最经常使用的。因为我对Linux几乎也是一窍不通,有介绍的不对的地方还请你们谅解。
之后你们们遇到Linux主机,不要不敢去尝试提权,大胆尝试,每每会有惊喜和收获。