| 关键词: 文件 靶机 口令 加密 天数 密码 shell 目录 用户 |
所谓靶机,即模拟的真实网络环境,我们要做的就是利用黑客技术攻破这台机器。引言一直想写个系列文章来着,不过奈何水平有限再加上最近手头杂事有点多就搁置了。今天把这个靶机的wp整理一下,如果有不恰当的地方,请各位师傅斧正。 信息搜集
![]() 使用nmap扫描该网段,找到运行web服务的靶机ip 通过nmap扫描结果得到192.168.26.137为靶机IP,访问80端口 ![]()
寻找漏洞点习惯性的一个单引号丢进去 ![]() 报错就说明post注入有戏,上burp ![]() 注意这里使用的是burp中的插件CO2,链接了sqlmap,如果你没有装这个插件,可以在BApp Store中安装,或者直接使用sqlmap ![]() 得到数据库aiweb1 ![]() ![]() 上传shell里面还是有些演示数据,但是并没有什么用,所以我们直接尝试shell ![]() custom location参数为网站的绝对路径,得到os-shell ![]() 成功后得到sqlmap生成的文件上传脚本URL ![]() 使用这个文件上传一个反弹shell到目标服务器 ![]() 上传之前修改shell的参数和端口 上传成功 ![]() 访问shell的URL地址,同时使用nc -lvvp 4444监听4444端口,shell反弹成功 如果你的电脑中没有nc这个命令,说明你可能没有安装**netcat** ![]() 提权whoami显示我们目前的登录账号为www-data,同时www-data用户对/etc/passwd具有写权限 ![]() 那么我们可以通过修改/etc/passwd文件实现添加一个root权限的新用户来实现提权操作,另外因为我们后面需要用到的su,命令必须是在终端环境中才能运行,所以需要使用python的pty库实现一个伪终端操作。命令为python -c 'import pty; pty.spawn("/bin/bash")' Linux中用户的密码实际是保存在/etc/shadow文件内,但是一般情况下提权之前没办法读取到文件内容,且密码经过加密,所以我们现在需要向/etc/passwd文件中写入一个含有已加密密码的具有root权限的用户信息,然后Linux会将这个用户信息更新到/etc/shadow文件内,即完成了提权操作。/etc/shadow文件格式:{用户名}:{加密后的口令密码}:{口令最后修改时间距原点(1970-1-1)的天数}:{口令最小修改间隔(防止修改口令,如果时限未到,将恢复至旧口令):{口令最大修改间隔}:{口令失效前的警告天数}:{账户不活动天数}:{账号失效天数}:{保留}crypt()函数原型char *crypt(const char *key, const char *salt);其中salt加密参数为某个固定长度的字符串 这样我们就得到了一个加密后的密码,组合写入/etc/passwd文件中,su提权为root 得到flag ![]() 注:本文首发自SECIN社区 公众号:长点芝士 |
| 本文出处: https://www.toutiao.com/a6824739586200044039/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|