网络安全学习之主机扫描和漏洞扫描

主机扫描

主机扫描一般在信息搜集阶段进行,用于了解目标主机上运行的服务以便进一步进行渗透。

用的工具主要是nmap,详细用法自行百度,我就说一下常用的几种组合
1. nmap -sn ip地址(可以是单个ip地址,也可以是一个范围192.168.1.1-192.168.1.20,也可以是用逗号隔开的几个ip, 192.168.1.1,192.168.1.2,也可以是一个网段192.168.1.0/24),用于判断主机是否是在线的
2. nmap -Ss -A -Pn ip地址(规则同上),-Ss表示使用syn扫描,想知道原理的自行百度tcp的三次握手,-A表示要得到详细信息,比如服务的版本号,主机版本号等,-Pn表示不使用ping命令来判断主机是否在线,有些服务器为了安全是不响应ping请求的,有兴趣的可以试试ping一些学校的网站,如果已经知道主机是在线的也可以使用-P0命令来完全跳过主机发现阶段。这个命令是为了找出主机上的服务及其版本。

如果目标不确定的话,比如要扫描一整个网段,一般是先用-sn找出存活的主机,再用第二个找出服务及其版本号,这样可以节省时间,目标确定直接用第二种就好,可以使用-oX把扫描结果以xml格式导出,导出的xml文件可以被metasploit导入使用


漏洞扫描

漏洞扫描使用专业的漏洞扫描软件进行扫描,kali上建议安装openvas,因为支持性好,是免费的,安装方便(本来想用Nessus的,安了半天没安好,看教程还要破解什么的,好麻烦就放弃了)

  1. 安装比较简单,直接apt-get install openvas,没有更换过更新源的,自行百度kali更新源修改,说的很详细
  2. 下完了之后,直接输入openvas-setup,之后再输入openvas-check-setup,检查安装是否成功,有错误就根据提示去修改,看不懂英文就用翻译软件,安装完之后由于初始密码比较复杂,一般会改个密码,命令为openvasmd –user admin –new-password 123456,需要更新openvas的话输入openvas-feed-update
  3. 输入openvas-start启动openvas,此时可以输入netstat -ntpa|grep 939*查看是否启动成功,如果有9392端口则代表启动成功,在openvas中9390表示openvas-manager服务,9391表示openvas的扫描器,9392表示openvas的web界面。此时在本机打开浏览器输入https://127.0.0.1:9392,就可以出现openvas登录界面。(openvas的web页面默认只能在本机打开,如果相要在其它机器上访问则需要更改/lib/systemd/system/greenbone-security-assistant.service,把–listen=127.0.0.1改成0.0.0.0这样就可以在其它机器上访问openvas的web界面了)
  4. 打开web界面进行登录,现在应该是登录不进去的,因为openvas-manager没有启动,输入service openvas-manager start进行启动,也可以使用update-rc.d openvas-manager enable让这个服务开机自启,不自启的话,每次记得要重启,现在就可以登录进去了
  5. 使用的话就比较简单了,主要分为4部,1.创建扫描模板,指定扫描的端口 2.创建扫描目标,可以是单个地址也可以是多个ip 3.创建扫描任务,把模板和目标结合在一起,并执行任务 4.查看结果,并导出报告,nbe和xml格式可以被metasploit导入使用,html格式方便观看,web上具体怎么操作,网上有很详细的讲解

两种扫描与数据库的结合

这两种扫描严格来说都是要结合数据库来使用的,因为一般情况下扫描出来的数据会很多,除非是自己扫的玩一下,要不然都是要使用数据库的

数据库就使用kali自带的postgresql,首先启动service postgresql start,或者按照上面的方法把它调成自启动。在/usr/share/metasploit-framework/config/database.yml里可以看到数据库的用户名和密码。

不过我建议自己创建一个用户和数据库,方法如下:
su postgres(进入postgresql命令行)
createuser username -P(创建一个带密码的用户)
createdb –owner=msf msf(创建一个数据库msf,数据库的所有者为用户msf)

连接数据库
输入 msfconsole,进入msf命令行,输入db_status查看数据库的状态,正常情况下是未连接的,如果数据库连接密码或者数据库选择错误,状态就会变为已选择未连接,此时就需要先db_disconnect断开连接,然后再进行连接,连接命令为 db_connect db_connect user:password@host:5432/数据库名,连接后db_status就会显示连接成功。(msfdb start/stop可以控制msfconsole数据库服务的开关)

数据库的使用
载入数据库之后可以使用db_import,导入两类扫描的xml文件,或nbe文件,也可以直接在msf里使用db_nmap,这样扫描完之后的数据会直接导入到数据库中,导入之后可以使用hosts查看扫描的主机,使用services查看出来的服务,使用vulns查看扫描发现的漏洞。使用db_autopwn可以根据这些扫描结果自动进行攻击,但是新版的kali里这个工具被移除了,需要自己添加具体操作如下
1. 在msf里随便输入load一个不存在的文件,比如load aaa,由于这个文件不存在,系统会报错,错误信息里有存放被load文件的目录,进入这个目录输入wget https://raw.githubusercontent.com/hahwul/metasploit-db_autopwn/master/db_autopwn.rb将db_autopwn下载下来,然后进入msf,load db_autopwn即可,输入db_autopwn -h,可查看相关参数,一般使用db_autopwn -e(对所有目标攻击) -t(显示所有匹配的模块) -r(反弹shell) -x(根据漏洞选择攻击模块) -p(根据开发端口选择攻击模块)。

msf里使用openvas
我觉得在web界面使用openvas不直观而且看起来比较low,我更喜欢在msf里使用openvas,首先load openvas,然后连接openvas,openvas_connect admin 123456 127.0.0.1 9390 ok,之后就是openvas_target_create,openvas_task_create,openvas_report_list/download,创建后面就跟create,显示后面就跟list。提示比较详细,更多操作输入openvas后一直按tab就可以了

你可能感兴趣的:(ctf,网络安全)