有些新手朋友在拿到一个webshell后如果看到服务器是Linux或Unix操作系统的就直接放弃提权,认为Linux或Unix下的提权很难,不是大家能做的,其实Linux下的提权并没有很多人想象的那么难,你真去尝试做了,也许你就会发现Linux下的提权并不难,尤其是一些简单的提权方法是很容易学会的。Linux下的提权我知道的比较简单的方法都是在命令行下完成的,很多新手叉子可能根本没接触过Linux下的一些常用命令,今天危险漫步就给大家介绍一些Linux下提权过程中常用到的Linux命令,由于我也是刚学了几个Linux命令,介绍的不对或不全的还请大家多多指正和谅解。

对大家来说,在Linux下的提权最简单也是最有效的方法就是通过本地溢出漏洞提权。找到合适的漏洞利用程序在命令行下运行一下就完成了提权。

由于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的终端中执行常用的提权中用到的命令来给大家演示。

在反弹回来的权限较低的shell的命令窗口中有权限执行的命令有:

1、uname

输出一组系统信息。如果不跟随选项,则视为只附加-s选项。常跟的参数有-a,在我的Ubuntu

10.10的终端中执行uname-a命令后显示,其中最前面的Linux表示是基于Linux内核的,2.6.35-28是具体的内核版本号。这个内核版本号非常重要,因为如果是采用溢出漏洞提权的话内核版本号是寻找溢出漏洞利用程序最重要的参考信息,根据当前的内核版本号寻找适用于这个版本号的漏洞利用程序。

2、pwd

获得当前目录,在用webshell上传漏洞和用程序前执行一下pwd命令获得当前目录,把漏洞利用程序直接上传到当前目录,在执行漏洞利用程序时就可以免去输入目录的麻烦。执行pwd命令后显示/home/test,说明当前目录为/home/test/。

另外,通过webshell比如PhpSpy的“Back Connect”反弹回来的shell默认的当前目录为webshell所在的目录。

3、ifconfig

显示网络配置信息,比如显示有哪些网卡,每块网卡的配置信息(IP地址、MAC地址、子网掩码)等,常用参数-a执行ifconfig-a命令后显示。从信息可以知道,当前系统共有一块网卡etho,IP地址为192.168.19.138,子网掩码为255.255.255.0。

4、netstat

显示当前的网络连接状态,与Windows系统下的netstat命令写法相同,功能也差不多。

执行netstat后显示了很多网络连接的信息。

5、ps

ps是用来报告程序执行状况的指令,你可以搭配kill指令随时中断,删除不必要的程序。常用的参数有a,u,x

a 显示现行终端机下的所有程序,包括其他用户的程序。

u 以用户为主的格式来显示程序状况。

x 显示所有程序,不以终端机来区分。

执行ps aux命令后显示,显示了程序的进程id,CPU占用率等详细信息,如果要结束某个程

序,只需要用命令kill-9 PID就可以结束,其中PID就是在执行ps aux命令时显示的程序的PID,当然前提是要有相应的权限。

6、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权限后,能执行的命令就多了,很多没提权前没权限执行的命令现在都可以执行了。这时候可以执行一些命令来获取一些敏感信息或进行留后门清理日志等操作,方便更好的控制提权成功的服务器。

1、cat .bash_history

查看该用户曾经执行过的命令,也就是查看root用户执行过的命令。因为Linux下很多管理操作都是在命令行下完成的,而正常情况下用root用户执行命令的是管理员,通过查看管理员输入的命令,可能得到很多敏感信息。

2、cat/etc/passwd cat/etc/shadow

分别执行cat/etc/passwd,cat/etc/shadow命令后得到passwd和shadow的内容,把两个文件的内容保存到本地用john挂字典尝试破解root用户的密码,具体怎么破可以自己查询相关信息。cat/etc/shadow只有root权限才能执行。

3、chmod

在提权成功获得root权限后你如果想下载服务器上的一个文件到本地,我的方法是先执行cp命令把要下载的文件复制到网站的Web目录下,但复制过去的文件只有root用户能访问,直接用浏览器下载会提示没有权限,这时候就需要用到chmod命令了。chmod命令的作用是变更文件或目录的权限。如果要下载的文件是shadow1,执行命令chmod 777./shadow1后就可以直接用浏览器下载了,不会再有权限问题了。

当然,在获得root权限后还可以做很多事,比如安装后门,想办法搞到root用户的密码等,可惜我不会,也和本文的题目“Linux下提权常用小命令”关系不大,这里就不介绍了。在实际提权过程中用到的命令可能远不止这么多,我介绍的都是大路边的最常用的。由于我对Linux几乎也是一窍不通,有介绍的不对的地方还请大家谅解。

以后大家们遇到Linux主机,不要不敢去尝试提权,大胆尝试,往往会有惊喜和收获。

Linux下提权常用小命令的更多相关文章

  1. linux 全自动提权 exp perl脚本

    linux 全自动提权 exp perl脚本 作者: admin 日期: 2013/01/19发表评论 (0) 查看评论   国外流传过来的 地址 http://dl.packetstormsecur ...

  2. 浅谈Linux下各种压缩 解压命令和压缩比率对比

    Linux下压缩.解压命令五花八门,不像在windows下一个winrar打遍天下无敌手,清一色的.rar .zip格式. 比如,Linux下常用的tar tar.gz tar.bz2 .Z等等不一而 ...

  3. linux下tomcat服务器的相关命令

    一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...

  4. Linux课程---5、常用文件命令和目录命令(创建文件命令)

    Linux课程---5.常用文件命令和目录命令(创建文件命令) 一.总结 一句话总结: touch file1 1.管道符|有什么用? 将前一个命令的结果作为后一个命令的输入:比如查看文件前3行:ca ...

  5. linux下tomcat服务的相关命令

    一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...

  6. Linux下几种文件传输命令

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  7. PuTTy linux下tomcat服务的相关命令

    一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...

  8. Linux下几种文件传输命令 sz rz sftp scp

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  9. [原创] Linux下几种文件传输命令 sz rz sftp scp介绍

    Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等 ...

随机推荐

  1. 设计模式五: 原型模式(Prototype)

    简介 原型模式是属于创建型模式的一种,是通过拷贝原型对象来创建新的对象. 万能的Java超类Object提供了clone()方法来实现对象的拷贝. 可以在以下场景中使用原型模式: 构造函数创建对象成本 ...

  2. 【洛谷P1706全排列问题】

    题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 代码如下: #include<iostream>#include<cstd ...

  3. mysl 常用函数 union all if ifnull exists case when

    1.union all UNION 操作符用于合并两个或多个 SELECT 语句的结果集.请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 S ...

  4. Django部署方法

    Windows方案: Apache2.4 + Django2.0 网上的方法乱七八糟: 那么接下来:最好的方法,不行吃屎. 当前环境是Django2.0+ python35(64bit) 部署原因: ...

  5. jquery前端倒计时

    function FreshTime(){ // var endtime=new Date("2019/04/15,12:20:12");//结束时间 var endtime = ...

  6. $Django 支付宝支付,微信服务号推送消息 (测试需要把应用程序部署到服务器上)

    一 支付宝支付 大概 支付宝支付 正式环境:需要用营业执照去申请商户号,appid 测试环境:沙箱环境:https://openhome.alipay.com/platform/appDaily.ht ...

  7. Mockito框架入门教程(一)

    官网: http://mockito.org API文档:http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html 项目源码:htt ...

  8. js中setTimeout() 时间参数为0

    当看到下面 这种setTimeout 设置为0 写法的时候一脸懵逼,完全没用过. var fuc = [1,2,3]; for(var i in fuc){ setTimeout(function() ...

  9. 如何给PDF设置全屏动画

    PPT文件可以播放全屏,并且可以实现飞入.分割.闪烁等动画模式播放.那么PDF文件可以吗?我们想要给PDF文件加入动画效果应该怎么做呢,也有很多的小伙伴不知道该怎么把PDF文件切换为全屏动画模式想要知 ...

  10. Git使用七:修改最后一次提交、删除文件和重命名文件

    修改最后一次提交: 在实际开发中,可能会遇到以下两种情景:情景一:版本刚一提交(commit)到仓库,突然想起漏掉两个文件还没有添加(add).情景二:版本刚一提交(commit)到仓库,突然想起版本 ...