Linux下提权常用小命令
有些新手朋友在拿到一个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下提权常用小命令的更多相关文章
- linux 全自动提权 exp perl脚本
linux 全自动提权 exp perl脚本 作者: admin 日期: 2013/01/19发表评论 (0) 查看评论 国外流传过来的 地址 http://dl.packetstormsecur ...
- 浅谈Linux下各种压缩 解压命令和压缩比率对比
Linux下压缩.解压命令五花八门,不像在windows下一个winrar打遍天下无敌手,清一色的.rar .zip格式. 比如,Linux下常用的tar tar.gz tar.bz2 .Z等等不一而 ...
- linux下tomcat服务器的相关命令
一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...
- Linux课程---5、常用文件命令和目录命令(创建文件命令)
Linux课程---5.常用文件命令和目录命令(创建文件命令) 一.总结 一句话总结: touch file1 1.管道符|有什么用? 将前一个命令的结果作为后一个命令的输入:比如查看文件前3行:ca ...
- linux下tomcat服务的相关命令
一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...
- Linux下几种文件传输命令
Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...
- PuTTy linux下tomcat服务的相关命令
一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...
- Linux下几种文件传输命令 sz rz sftp scp
Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...
- [原创] Linux下几种文件传输命令 sz rz sftp scp介绍
Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等 ...
随机推荐
- js中精度问题以及解决方案
js中的数字按照IEEE 754的标准,使用64位双精度浮点型来表示.其中符号位S,指数位E,尾数位M分别占了1,11,52位,并且在ES5规范中指出了指数位E的取值范围是[-1074, 971]. ...
- day 16 - 2 内置函数(二)练习
内置函数(二)练习 1.用 map 来处理字符串列表,把列表中所有人都变成 sb,比方 alex_sbname=['alex','wupeiqi','yuanhao','nezha'] name=[' ...
- CMake set 语法
参考CMake官方文档:https://cmake.org/cmake/help/v3.14/command/set.html 1. 普通变量 set(<variable> <val ...
- sql server的sysobjects表中xtype字段值的含义
xtype字段包含的值的意思如下: AF = Aggregate function (CLR) 聚合函数(CLR) C = CHECK constraint CHECK约束 D = Default ...
- Re-enable extensions not coming from Chrome Web Store on Chrome v35+ (with enhanced security)
1. Add the --enable-easy-off-store-extension-install flag when you start chrome (create shortcut, ed ...
- 【原创】大数据基础之ElasticSearch(2)常用API整理
Fortunately, Elasticsearch provides a very comprehensive and powerful REST API that you can use to i ...
- 【git】将本地项目上传到远程仓库
飞机票 一. 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可: htt ...
- Google Android SDK开发范例大全笔记 二
网络设备管理相关相关 代码地址 1 WifiManager LocationManager分别控制 wifi及GPS WifiManager 判断网络状态 ,LocationManager判断定位状态 ...
- appJSON["window"]["navigationBarTextStyle"] 字段需为 black 或 white
appJSON["window"]["navigationBarTextStyle"] 字段需为 black 或 white 改动成这个就可以了 &qu ...
- Angular路由——子路由
一.子路由语法: 二.实例 在商品详情页面,除了显示商品id信息,还显示了商品描述,和销售员的信息. 通过子路由实现商品描述组件和销售员信息组件展示在商品详情组件内部. 1.新建2个组件修改其内容 n ...