zoukankan      html  css  js  c++  java
  • Vulnhub-靶机-Node: 1

    本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

    靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现

    地址:https://www.vulnhub.com/entry/node-1,252/ 

    发现目标靶机IP地址是192.168.5.133,开始使用nmap对其进行扫描

    通过-p-参数直接全端口扫描,发现扫描不出来,具体如下

     那么就根据提示加一个参数-Pn

    nmap -p- -Pn 192.168.5.133

     也可以使用如下参数进行探测目标 

    sudo nmap -sS -sV --open 192.168.5.133

     弹出目标靶机详细的版本信息

    sudo nmap -sS -A -p 22,3000 192.168.5.133

     根据上述扫描到的信息,3000端口是目前唯一能利用尝试的方向,下面访问看看

     有登录窗口试了下弱口令和万能密码无果,此时再回到上面扫描的信息查看,发现是node.js编写的,然后按照正常渗透套路来,在访问网页的界面上右键查看下源码,此时通过查看js源码发现未授权访问,可以获取敏感信息,访问的位置是/api/users/latest/ ,具体发现的过程如下:

     

     尝试访问http://192.168.5.133:3000/api/users/latest

    [{"_id":"59a7368398aa325cc03ee51d","username":"tom","password":"f0e2e750791171b0391b682ec35835bd6a5c3f7c8d1d0191451ec77b4d75f240","is_admin":false},{"_id":"59a7368e98aa325cc03ee51e","username":"mark","password":"de5a1adf4fedcce1533915edc60177547f1057b61b7119fd130e1f7428705f73","is_admin":false},{"_id":"59aa9781cced6f1d1490fce9","username":"rastating","password":"5065db2df0d4ee53562c650c29bacf55b97e231e3fe88570abc9edd8b78ac2f0","is_admin":false}]

     虽然发现了账户名和密码,但是密码是加密的,那么此时就只能试试运气看能不能破解,但是不知道加密的方式,那么可以使用hash-identifier工具来识别是什么加密方式,如下:

    知道了加密方式,那么就通过在线破解网站破解试试,选择网站对于的加密方式进行破解,地址:https://md5decrypt.net/Sha256/#answer 破解结果如下:

    f0e2e750791171b0391b682ec35835bd6a5c3f7c8d1d0191451ec77b4d75f240 : spongebob 

     也可以通过其他在线破解网站进行破解,例如:

    https://www.somd5.com/ 

     https://cmd5.com/

     上述显示的3个账号和对应的hash进行破解并尝试登陆,发现有一个hash是破解不了,另两个hash是可以破解,并登陆发现如下信息:

     Only admin users have access to the control panel currently, but check back soon to test the standard user functionality!

    根据反馈的这个信息,然后再看 http://192.168.5.133:3000/api/users/latest 的结果,发现给出的账户确实都不是管理员,显示的账户都是"is_admin":"false" 那么尝试访问上一级目录看看 http://192.168.5.133:3000/api/users

    访问结果如下:

     发现多了个账户,并且显示是管理员账户,那么我开始破解这个hash看看

    [{"_id":"59a7365b98aa325cc03ee51c","username":"myP14ceAdm1nAcc0uNT","password":"dffc504aa55359b9265cbebe1e4032fe600b64475ae3fd29c07d23223334d0af","is_admin":true},{"_id":"59a7368398aa325cc03ee51d","username":"tom","password":"f0e2e750791171b0391b682ec35835bd6a5c3f7c8d1d0191451ec77b4d75f240","is_admin":false},{"_id":"59a7368e98aa325cc03ee51e","username":"mark","password":"de5a1adf4fedcce1533915edc60177547f1057b61b7119fd130e1f7428705f73","is_admin":false},{"_id":"59aa9781cced6f1d1490fce9","username":"rastating","password":"5065db2df0d4ee53562c650c29bacf55b97e231e3fe88570abc9edd8b78ac2f0","is_admin":false}]
    dffc504aa55359b9265cbebe1e4032fe600b64475ae3fd29c07d23223334d0af 破解出来的密码是:manchester

     那么此时就知道了用户名:myP14ceAdm1nAcc0uNT 密码是:manchester

    成功登陆,显示有个备份文件,可以下载

     文件下载下来了之后,刚开始我是在Windows环境下尝试打开,但是未成功,于是我将文件传至kali下, 使用命令file查看是什么类型的文件,然后再做判断

     根据上图的一序列操作,可以猜测此文件是一个经过base64编码的文件,且只有一行,那么我们尝试使用base64编码进行解码看看

     坑,发现是个加密的压缩文件,随笔输入错误的密码,最后生成的是空文件,那看来只能破解zip的密码试试

    这里就使用破解工具fcrackzip进行破解,默认情况下最新版的kali是没有安装此工具,需要自己安装下

    sudo apt-get update

    sudo apt-get install fcrackzip

     

     开始尝试使用字典破解此压缩文件

     fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt myplace.zip

     破解出来的密码是:magicword

    参数说明下:

    -D 指定破解方式是字典模式

    -p 指定使用字典模式下对应的字典路径

    -u 表示只显示破解出来的密码,错误的密码不显示

     知道压缩包的密码后进行解压得出如下文件:

     这里得到了源码,我说下常规操作思路:

    • 使用grep -ir password 命令指定源码的目录进行过滤查看是否有明文密码,同样的方式查看用户名等
    • 没有结果的话就将源码拷贝到Windows下,使用比较好的编辑器工具打开,首先查看配置文件,看看有没有敏感信息
    • 如果上述都不行,那么一个一个文件看吧,审计源码或许有很多漏洞可以挖掘
    • 本次靶机是直接硬编码的方式写入明文用户名和密码,内容在app.js文件里面,不过内容显示的是为了连接mongodb,所以实际场景中看到账户密码就没个登录的入口试试,总会有结果
    • 那么本地在文件中app.js发现能够登录ssh的账户名mark和密码5AYRft73VtFpc84k
    • 使用ssh登录目标靶机

     根据上述信息查看内核版本是否有本地提权漏洞

    使用命令:searchsploit linux 4.4.0 ubuntu

     根据上面的结果选择符合范围内的payload全部使用scp命令拷贝至目标靶机,并逐一尝试利用,结果如下:

     可以成功提权获取root权限并读取flag值

    这里也尝试了另一个exp 45010.c发现也是可以提权的,具体如下:

     所以总结出来本靶机有两个可以提权的exp,分别是44298.c和45010.c这两个payload

     

  • 相关阅读:
    Objective-C学习笔记2013(Category 扩展(类目)/分类)(4)
    Objective-C学习笔记(static,self,super)
    Objective-C学习笔记2013(3)[NSArray]数组[在可变数组中,加用add减用remove]
    Objective-C学习笔记2013(2)[NSNumber]
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    C语言学期总结
    第一次作业
  • 原文地址:https://www.cnblogs.com/autopwn/p/13489720.html
Copyright © 2011-2022 走看看