SSH 私钥解密 + 系统提权

正文索引 [隐藏]

SSH 私钥解密 + 溢出提权

文章前半部分将怎么解题,后半部分总结一下所用到的工具,私以为后面才是重点~

解题部分

1. 信息收集

首先,咱先装模做样 ifconfig 一下看看网络配置1562558272915

然后用在局域网里面找下靶机,再测下连通性

netdiscover -r ip/mask

1562558351418

1562558404064

然后开始 nmap 大法好

nmap -sV xx.xx.xx.xx

1562558491483

哦豁,有个神奇的 31337 tcp 端口开着,还架着 http,嗯,超大概率是目标,所以嘞,浏览器开开是不是就能搞到 flag 了呢?1562558615770

哦草,我太年轻了,没那么容易,白板网站,用 dirb 探测一下隐藏文件

1562558686008

欸嘿,看到一个好东西,瞅瞅 robots.txt 不让我看啥1562558747678

嗯? taxes 是个啥,奇怪的名字,打开看看

1562558802181

噢噢噢噢,刺激,搞到了,然后仔细一看。。。。flag1,那是不是还有2,3,4,5。。。。想到之前 robots 前面有个 .ssh 鬼鬼祟祟的,想到是不是 ssh 有点东西,不管了,打开瞅下1562558915579

???这是啥,私钥给我摆出来?让我直接进入靶机嘛?先把认证文件和私钥下载下来吧,浏览器地址输入:

192.168.0.115:31337/.ssh/id_rsa
192.168.0.115:31337/.ssh/authorized_keys

2. 私钥、认证文件破解

私钥下下来之后就想通过这个登陆服务器后台啦,不知道用户名欸,打开认证文件看一看1562566732091

emmm,用户名是 simon,直接登陆需要密码,这个比较麻烦,得尝试从私钥中把密码搞到手

试试 john 解密吧,但是得把私钥转化为 john 能识别的格式,用 ssh2john 的 python 脚本(github 上搞到的好东西)

python ssh2john id_rsa > id_rsa_john 

直接把 id_rsa_john 送到 john 里面还是不中,john 只能搞一搞简单的,所以得给 john 加一点料,直接用/user/share/wordlist 里面大名鼎鼎的 rockyou.txt 作为 wordlist 就行啦,不过,新机子,解个压:

1562567131400

然后使用 john

john -wordlist: /usr/share/wordlist/rockyou.txt id_rsa_john

1562567180836

唔呣唔呣,密码 starwars,制作者是个星战迷啊,好了登陆~

1562567265156

啊,忘记该权限了,私钥不能开那么高的权限,私钥文件权限改为 700 再来

1562567362532

看看有没有 flag1562567410289

。。。。没有,那 root 目录呐?

1562567437114

哦草,有是有,但是权限 600 可还行,完了,没完没了,要想办法提权了

3. 提权

提权这我是真的不熟,不过还好有提示,read_message.c 开开看一下 hint 是个啥

1562567624137

爽快,直接给 flag2 啊有木有,但是这段源码是干啥的呢,猜测,有段程序是这么写的,这玩意有明显的溢出漏洞啊,那个 20 char 的数组摆明有问题,不管了试试再说,直接执行 read_message,欸真有,那直接溢出吧,轻松提权1562567798989

现在拿着 root 的权限就是爽,快去看看 flag 吧

1562567843033

挺有意思的题目啊,对菜鸡新手非常友好,适合我这种菜鸡初学者入门,感谢感谢

总结

1. dirb

用途:就是一个扫描网站内容的工具,可以搞到网站的目录,常用于寻找隐藏文件

用法:

# 最简单的用法
dirb http://192.168.1.224

# 使用 wordlist 辅助扫描
dirb http://192.168.1.224/ /usr/share/wordlists/dirb/common.txt 

2. john

用途:主要用于破解弱 Unix 口令,但是也能破解其他常见加密格式的密码

用法(以破解一个 Unix 口令为例):

unshadow passwd shadow > unshadowed.txt
john --wordlist=/usr/share/john/password.lst --rules unshadowed.txt 

彩蛋,john 工具包里的 unique 也很实用,能把两个字典中相同的部分去掉

unique -v -inp=allwords.txt uniques.txt

3. wordlist:rockyou.txt

为啥这个字典这么好用呐,这是有个小彩蛋的,首先,要知道 RockYou 是一家为 MySpace 开发小部件并为各种社交网络和 Facebook 实现应用程序的公司,在 2009 年 12 月,RockYou.com 网站遭到黑客攻击。攻击成功,导致非法泄露了一个包含3260万网站用户密码被盗的文本数据库。这部分数据又被放出来做成了 rockyou.txt,也就是说,使用 rockyou.txt 简直像是在撞库,效率比较高,下图可以看出最容易被搞的密码:

1562570002334

附:本次所用工具合集

ifconfig
netdiscover -r ip/mask
dirb url:port
python ssh2john id_rsa > id_rsa_john 
gzip rockyou.txt.gz
john -wordlist: /usr/share/wordlist/rockyou.txt id_rsa_john
ssh -i username@ip