STARTING POINT TIER 0

STARTING POINT TIER 0

Meow

主要是了解一下telnet

这一关用nmap扫一下指定的23端口

nmap -sS [ip-address] -p 23

扫出结果是telnet

telnet命令 用于登录远程主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的。

然后根据提示使用root用户名可以免密登录

telnet 10.129.45.68 -l root

cat一下就了

命令手册请看这里telnet

Fawn

这一关介绍了FTP

简短的话看这个File Transfer Protocol (FTP) in Application

需要重点强调的是FTP是一个 协议

FTP是一个传输文件的应用层协议,在传输一个文件时会开启2个TCP连接:控制连接、数据连接。

之所以分成2种连接是一个古老的故事Why does FTP use two TCP connections?

因为FTP会开启2个TCP连接而被称为out-of-band,而其他使用1个TCP连接来发送requestrespond的协议则被称为in-band

控制连接传输一些用于control的东西,例如用户凭证、密码、改变远程目录的命令、检索和保存文件的命令。这个连接通常使用20端口

数据连接传输数据,也就是文件了。这个连接通常占用21端口

最后关于TCP需要讲到的一点就是匿名登录

匿名登录一般有3种:

1 2 3
用户名 anonymous FTP USER
密码 Email或者为空 FTP或者为空 PASS

通过nmap对靶机的扫描发现靶机开启了ftp并且发现允许匿名登录。使用了第一种方式登录后

ftp [ip-address]
Connected to [ip-address]
220 (vsFTPd 3.0.3)
Name (10.129.194.140:highway): anonymous
331 Please specify the password.
Password: 
230 Login successful.

接下来没啥可说的了,查看文件发现flag.txt

>ftp ls

然后下载就了

>ftp get flag.txt

对于命令不熟悉的看这个就好了ftp

Dancing

这一关则介绍了SMB协议,关于SMB的前世有兴趣就看一看,而现在常见的是由Microsoft添砖加瓦的SMB3.0协议。在MSD里着重看一下Feature description就好了。

简单来说SMB是一个文件分享协议,看清楚是分享协议,侧重点是分享share与上面的FTP侧重于传输transform不同。

SMB协议可以运行在TCP/IP协议上也可以运行在其他的网络层协议上。通常使用139445端口。通过nmap端口扫描发现在445运行了microsoft-ds服务。通过Google得知其实Microsoft-ds其实就是445的一个别名。

通过新学习的工具smbclient连接

smbclient -L [ip-address]
Enter WORKGROUP\highway's password: 

        Sharename       Type      Comment
        ---------       ----      -------
        ADMIN$          Disk      Remote Admin
        C$              Disk      Default share
        IPC$            IPC       Remote IPC
        WorkShares      Disk  

-l显示服务器端所分享出来的所有资源

  • ADMIN$:管理共享是由Windows NT系列操作系统创建的隐藏网络共享,允许系统管理员远程访问网络连接系统上的每个磁盘卷。这些共享可能不会被永久删除,但可能被禁用。
  • C$:C盘的管理共享,这是操作系统托管的地方。
  • IPC$:进程间通信共享。用于通过命名管道进行进程间通信,它不是文件系统的一部分
  • WorkShares :普通分享

因为我们不知道该主机上允许的用户密码,在这种情况下有2种方向可以尝试

  • 游客认证
  • 匿名登录

尝试每个目录用空密码发现能成功登录,只是ADMIN$C$不具有查看的权限NT_STATUS_ACCESS_DENIED,而WorkShares可以。

smbclient \\\\[ip-address]\\WorkShares

进入后就像Linux shell一样ls查看目录,然后用get下载到本地cat一下就了。

Explosion

这一关了解了RDP协议。RDP协议是一个由Microsoft开发的私有协议,用户使用一个图形交互程序(GUI)通过网络连接到另一台主机上。

想进一步了解RDP协议请阅读Microsoft文档Understanding the Remote Desktop Protocol (RDP)通常使用3389端口。

通过nmap扫一下

└─$ nmap -sV [ip-address] -p 3389
Nmap scan report for aioCloud
Host is up (0.28s latency).

PORT     STATE SERVICE       VERSION
3389/tcp open  ms-wbt-server Microsoft Terminal Services
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

发现3389端口运行着ms-wbt-server服务,可以说明就是RDP

ms-wbt-server is a common name for a protocol that is used by Windows Remote Desktop and uses the well known TCP port 3389. This is similar to the http protocol that is commonly used by web browsers.

通过学习可以使用xfreedp来连接使用RDP协议的端口。xfreedp是一个RDP客户端

手册在这里xfreerdp - Man Page

通过查阅手册后尝试连接一下

└─$ xfreerdp /v:[ip-address]
[INFO][com.freerdp.client.x11] - No user name set. - Using login name: highway
[WARN][com.freerdp.crypto] - Certificate verification failure 'self signed certificate (18)' at stack position 0
[[WARN][com.freerdp.crypto] - CN = Explosion
Domain:   
Password: 
[ERROR][com.freerdp.core] - transport_ssl_cb:freerdp_set_last_error_ex ERRCONNECT_PASSWORD_CERTAINLY_EXPIRED [0x0002000F]
[ERROR][com.freerdp.core.transport] - BIO_read returned an error: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error

通过返回信息看到我们没有设置用户名,默认选择用本机用户名后,又因为没有密码而登录失败。

[INFO][com.freerdp.client.x11] - No user name set. - Using login name: highway

[ERROR][com.freerdp.core] - transport_ssl_cb:freerdp_set_last_error_ex ERRCONNECT_PASSWORD_CERTAINLY_EXPIRED [0x0002000F]

然而该协议没有匿名登录游客认证,所以思路只能转到猜解用户名密码了。例如常用用户名Administratorrootuser等。

└─$ xfreerdp /v:[ip-address] /u:administrator /cert:ignore

连接成功

/cert:ignore : Specifies to the scrips that all security certificate usage should be
ignored.
/u:Administrator : Specifies the login username to be "Administrator".
/v:{target_IP} : Specifies the target IP of the host we would like to connect to.

Preignition

这一关介绍了目录爆破工具gobuster

在渗透测试中是非常重要的一环,获得的目录越多意味着越高的可利用性,越多可挖掘的潜在信息。

通过nmap扫描发现80端口运行着一个http服务,这意味着这个端口上可能存在可探索的web内容

└─$ nmap -sV [ip-address] -p 80   
Nmap scan report for aioCloud
Host is up (0.28s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    nginx 1.14.2

我们通过浏览器访问这个ip地址看到一个nginx提示页面。说明这是一个web服务器,所以用本关教学的gobuster进行爆破,我认为比较好的手册

└─$ gobuster dir --url [ip-address] -w /usr/share/wordlists/dirb/common.txt
===============================================================
Gobuster v3.1.0
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://[ip-address]
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.1.0
[+] Timeout:                 10s
===============================================================
2022/05/10 12:48:18 Starting gobuster in directory enumeration mode
===============================================================
/admin.php            (Status: 200) [Size: 999]

进入damin.php界面看一下要用户名和密码,通常情况下需要通过爆破或者利用漏洞绕过验证亦或者利用漏洞获得数据库里的账号密码

然而这是一个教学关卡毫无提示直接看WriteUp拿到flag

你可能感兴趣的:(HTB,网络,linux,服务器)