靶机地址:https://www.vulnhub.com/entry/pinkys-palace-v1,225/
靶机难度:中级(CTF)
靶机发布日期:2018年3月6日
靶机描述:Box信息:使用仅DHCP主机和桥接适配器类型在VirtualBox上进行了测试。
难以获得用户:简单/中级
扎根困难:容易/中级
目标:得到root权限&找到flag.txt
作者:DXR嗯嗯呐
nmap扫描IP
nmap扫描端口
8080 http nginx 1.10.3
31337 http-proxy squid 3.5.23
64666 openssh7.4
直接访问8080端口返回403
403forbidden :一个HTTP协议的状态码,简单理解为没有权限访问此站。该状态表示服务器理解了本次请求但是拒绝执行该任务,通常由于服务器上文件或目录的权限设置导致的WEB访问错误。
配置192.168.56.11:31337,访问8080端口
curl -i --proxy http://192.168.56.11:31337http://127.0.0.1:8080/
可以访问
这里将url的IP配置为127.0.0.1,是因为通过 *** 传递http求情时,127.0.0.1指向 *** 服务器的地址(192.168.56.11)也就是靶机的地址。
使用gobuster爆破目录
gobuster dir -p http://192.168.56.11:31337-u http://127.0.0.1:8080-t 30 -w /usr/share/wordlists/dirbuster/directory-list-2.3- *** all.txt -s 200,301,302
Gobuster这款工具基于Go编程语言开发,可使用该工具来对目录、文件、DNS和VHost等对象进行暴力破解攻击。
dir:传统的目录爆破模式;
dns:DNS子域名爆破模式;
vhost:虚拟主机爆破模式;
-p: *** 配置
-u:URL连接
-t:线程数(默认是10)
-w:字典,本次使用的是用的DirBuster的字典。
-s:只显示200,301,302状态的网页
找到了一个/littlesecrets-main目录
测试一下显示:账号或密码错误,这样也没办法依次爆破账号密码
使用burpsuite抓包,sqlmap跑一下看看,
因为需要 *** ,首先在user options模块设置 ***
在proxy模块设置浏览器访问的 ***
浏览器 *** 设置为127.0.0.1:8080,就可以抓到包了
使用sqlmap测试,发现http消息头user-agent参数存在基于时间的盲注
sqlmap --proxy="http://192.168.56.11:31337"? -r sqlmap.txt --level 3 --batch
使用sqlmap找到登陆的账号密码
sqlmap --proxy="http://192.168.56.11:31337"? -r sqlmap.txt --level 3 --batch -D pinky_sec_db -T users -C user,pass --dump
密码是MD5加密,解密获得
pinkymanage\3pinkysaf33pinkysaf3
pinky\f543dbfeaf238729831a321c7a68bee4 (破解失败)
登陆一下,web界面不能登陆,ssh可以登陆
进去看了一圈都不能提权,现在home目录下也发现了pinky但是密码破解不了
在/var/www/html/littlesecrets-main/ultrasecretadminf1l35目录获得提示,将他将rsa秘钥放在这里,不知道是不是pinky秘钥测试一下
将key写到kail中,之一次因为权限太大,修改权限,显示格式错误
将秘钥通过base64解码,将解码获得数据接入一个文件
修改600权限,连接pinky用户
在家目录下获得提示
没懂什么意思,同时但看adminhelper文件具备root用户的SID权限,执行以下是个打印程序
靶机自带gdb调试工具,使用gdb打开程序
查看main函数,发现程序使用了strcpy函数,看来是个缓冲区溢出的问题,也同时发现了spawn函数
info functions :列出可执行文件的所有函数名称,在内存中的symbol table查找,结果中的地址是内存里的地址,所以得到结果后,直接b(break,添加断点)这个地址,即可正确加断点。
jump:当调试程序时,你可能不小心走过了出错的地方,可jump回去
break : 给程序设置断点
i b : 查看断点
delect 编号 : 删除断点
disas $pc:反汇编当前函数。
spawn()则会创建一个新的进程来执行,生成一个子进程。返回代码将表明的状态创建进程。
直接打印1024个字符,发现报错但是不返回报错的位置
只能慢慢测试找到他溢出的位置了,找到了溢出的位置,第72个字符
使用jump调用spawn函数时获得shell
这样的话我们将EIP中的返回地址修改为spawn函数的内存地址,让程序溢出时,通过EIP跳转到spawn函数执行获得shell,获得ROOT权限
查看程序运行之后spawn函数的内存位置
0x00005555555547d0 需要调整顺序\xd0\x47\x55\x55\x55\x55,前两位00不要,是因为\x00代表空格,在运行中\x00自动终止程序运行。
最后拼接的字符串如下,测试一下
run? $(python -c "print 'a' * 72 + '\xd0\x47\x55\x55\x55\x55'")
成功执行了spawn函数,spawn函数获得交换shell。
接下来执行程序
命令:https://www.freebuf.com/articles/web/adminhelper $(python -c "print 'a' * 72 + '\xd0\x47\x55\x55\x55\x55'")
成功利用缓冲区溢出,获得root权限
完成!!!
此靶机不难,都是之前用过的知识,这次有拿起来感觉自己知识一点都不牢固,感觉自己真废。
1、使用nmap扫描靶机端口,发现系统需要配置31337 *** 才可以访问8080端口,使用gobuster爆破目录,获得一个登陆界面。
2、使用sql对登陆界面测试,发现http消息头中user-agent参数存在基于时间的盲注。通过sqlmap找到pinkymanage用户账号密码。
3、ssh登陆pinkymanage用户,在var的目录下获得base加密的pinky的秘钥,解密使用秘钥登陆pinky用户。
4、在pinky用户家目录下,发现一个存在SID权限的root拥有者的程序,gdb调试使用info functions命令查看发现程序存在strcpy函数,可能存在缓冲区溢出漏洞,spawn函数可以获得一个交互的shell。
5、测试发现72个字符可临程序溢出,gdb调用程序,run运行程序,disas spawn查看spawn函数的程序运行后内存的地址,将72个字符与spawn内存地址拼接,spawn内存地址将会覆盖EIP的返回地址,调用spawn函数。
6、https://www.freebuf.com/articles/web/adminhelper $(python -c "print 'a' * 72 + '\xd0\x47\x55\x55\x55\x55'")成功将spawn内存地址覆盖EIP的返回地址,调用spawn函数获得一个root权限的shell。
第一种:做服务,比喻seo培训,为企业提供seo服务,给大型站点做seo顾问 第二种:卖产品,可以是自己的产品,也可以是别人的产品,比喻架设商城,优化关键词卖产品,也可以帮企业卖产品拿提成。 第三...
编辑导读:2016年,美团快驴上线,是一款B2B生鲜配送平台,主要为B端举办食材采购进货处事,还可以对入驻美团外卖的商户提供商品打点与财政核算等业务。想买通餐饮B2B,海外的Sysco和nfomart...
记者从内蒙古自治区巴彦淖尔市中级人民法院获悉,该院日前依法一审判决内蒙古广播电视台原党委书记、台长赵春涛犯受贿罪、单位受贿罪、巨额财产来源不明罪、故意伤害罪以及包庇、纵容黑社会性质组织罪,数罪并罚,决...
花生现在的价格(2021花生价格会大涨吗)花生是我国重要的油料作物,种植面积仅次于大豆和菜籽,同样的,我国还是花生产销大国,可以说花生市场与我们的生活息息相关。而去年以来,花生价格一直处于市场高位,而...
宝妈妈们挑选婴儿奶粉离不了進口原装奶粉排名榜,在排名榜的参照下,就能迅速地为小宝宝挑选到心爱的婴儿奶粉,而下列这3款婴儿奶粉最受宝妈妈们亲睐,知名品牌更可信赖。 1.伊利牛奶金领冠睿护草饲奶粉...
我的一个非常优秀的黑客朋友。初三现在。他初二就是一名非常优秀的黑客了,精通很多门编程语言,对系统非常熟悉。我是在银河网盾学的网络安全,他是自学的。 永远不可能完全掌握,如果你是一个疯狂般的痴迷网络技术...