Lame-Writeup

前言

Author: 0x584A

82429145.png

信息收集

这是一台已经退休的机器,HTB有一个 Tracks 系列,里面将一系列靶机分成一个个盒子,通过这种方式循环渐进的学习。

82642665.png

我打算先把 Beginner Track 这个标记为 EASY 的靶机盒子打掉。

82699797.png

里面有11个,够我玩一段时间顺便吸收知识。那么先从Lame开始,黑喂狗…

82838497.png

前几天在阅读别人的文章时发现一个好用nmap集合脚本,nmapAutomator.sh 这个可以在GitHub上找到。

82973055.png

从扫描结果上看到 ftp 是允许匿名登录的。

83107535.png

目前看来没什收货,搜索看有没有exploit可以用。

83491393.png

有MSF的命令执行脚本,在GITHUB上也有一个,我打算优先试试GITHUB上的,毕竟已学习为主。

83598703.png

搜搜 smbd 3.0.20-debian exploit 也能找到利用的脚本:

83985021.png

获取 root flag

先试试这个:

84274392.png

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

直接就是root… 尼玛真简单…

尝试攻击vsftpd,网上说这个版本是存在后门的,当连接存在特定的字符后会开启一个6200的端口。但这个靶机好像没触发。

其他

smb

在公开的解题文档中,学习到了使用 smbclient 加 enum4linux 来做信息收集的技巧。

86380428.png

当枚举smb失败时,protocol negotiation failed: NT_STATUS_CONNECTION_DISCONNECTED,尝试在 /etc/samba/smb.conf 内的 [global] 标签下添加 client min protocol = NT1,输入任意密码成功查看匿名下的共享服务。

比如要看共享目录下的内容,smbclient //10.10.10.3/tmp

550389.png

enum4linux 则是直接扫
502544.png

distcc get flag

文档里还看到一个 3632 的端口,可我这没有啊,我就用nmap又扫了一遍。

961939.png

尼玛,那个脚本扫描的是默认端口。看来要改改他的脚本防止这种遗漏的情况出现。

PORT     STATE SERVICE VERSION
3632/tcp open  distccd distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))

1108590.png

Distcc是一个程序,旨在通过网络将编译任务分发到参与主机。它由服务器、distccd 和客户端程序distcc 组成。Distcc 可以透明地处理 ccache、Portage和自动使,并具有少量的设置。

1809972.png

nmap自带这个服务的利用脚本,查看了下脚本的说明,只用用它可以命令执行:

76344020.png

76616586.png

反个 shell 继续

77131357.png

/home 下有 几个用户其中 user 用户下有 .ssh 文件夹,却没有权限进入查看。 但是在查看 /root 目录下 .ssh 是可读的:

77598704.png

但是只有 authorized_keysknown_hosts 两个文件,没有公私钥。

78488077.png

一般来说,有一个公钥并没有什么作用,但这里有两件事很有意思。

* 为什么用户msfadmin@metasploitable?
* 这个密钥会不会是CVE-2008-0166的漏洞,OpenSSL中的随机数生成器在一段时间内坏掉了,导致很多东西,包括一些SSH密钥,都可以从公钥中被蛮横地强行获取。

查看 openssl 版本为:openssl version OpenSSL 0.9.8g 19 Oct 2007, 下载 https://github.com/g0tmi1k/debian-ssh.git 到本地,进入 common_keys 目录, 并解压缩常见的 RSA 密钥:

$ cd debian-ssh/common_keys                                                                                                                                                            
$ tar jxf debian_ssh_rsa_2048_x86.tar.bz2

通过搜索公钥找到对应的私钥

79144779.png

成功已root身份登录… 尼玛还能这么玩,牛皮。

79200169.png

suid get flag

通过在 LinEnum 及 LinPEAS 搜索 SUID 文件来进行权限提升

$ find / -type f -user root \( -perm -4000 -o -perm -2000 \) 2>/dev/null -ls

发现存在 nmap,那就直接拿它提权好了

79802913.png

Backdoored UnrealIRCd

我特么都裂开了,这靶机这么骚的吗?通过查看 $ netstat -tnlp 查看到有一个6697端口,

同时已root身份运行着一个 /usr/bin/unrealircd

81072762.png

尝试连这个端口会得到一个带有 Metasploitable 的标识返回

daemon@lame:/tmp$ nc 127.0.0.1 6697
:irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your hostname...
:irc.Metasploitable.LAN NOTICE AUTH :*** Couldn't resolve your hostname; using your IP address instead
ERROR :Closing Link: [127.0.0.1] (Ping timeout)

通过搜索 UnrealIRCd 可以得到RCE的脚本,

root@kali# searchsploit UnrealIRCd
-------------------------------------------------------------------- ----------------------------------------
 Exploit Title                                                      |  Path
                                                                    | (/usr/share/exploitdb/)
-------------------------------------------------------------------- ----------------------------------------
UnrealIRCd 3.2.8.1 - Backdoor Command Execution (Metasploit)        | exploits/linux/remote/16922.rb
UnrealIRCd 3.2.8.1 - Local Configuration Stack Overflow             | exploits/windows/dos/18011.txt
UnrealIRCd 3.2.8.1 - Remote Downloader/Execute                      | exploits/linux/remote/13853.pl
UnrealIRCd 3.x - Remote Denial of Service                           | exploits/windows/dos/27407.pl
-------------------------------------------------------------------- ----------------------------------------
Shellcodes: No Result

查看 13853.pl 这个脚本的内容,可以看到利用 payload

81558377.png

81745504.png

你跟我说这是一个“简单”的靶机??? 我信你个鬼 HTB…