/advanced-windows-taskscheduler-playbook/@[toc]
【重要】拜读的文章链接都在标题上。
一、linux应急响应
快速。系统的处理linux环境下的病毒。
有四个环节:
识别现象->清理病毒->闭环兜底->系统加固
识别现象
需要通过系统运行状态、安全设备告警去发现主机的异常现象,以及确认病毒的可疑行为。
排查alias异常别名
在linux系统中,执行某些命令时,需要输入很长很长的一串命令和参数,而linux系统提供的alias
别名方式解决了这个问题,把很长的一串命令和参数,使用很短的,容易记忆的词代替
,执行该词就相当远执行那一段命令和参数。
别名作用:
把复杂的字符串或者命令变成一个简单的字符串或者命令。通过给危险命令加一些保护参数,防止人为误操作
Alias命令的语法:
alias [name[=value] ... ]
别名删除
unalias 删除别名删除所有的unalias -a
永久生效的方式写入文件:
/home/用户名/.bashrcRoot用户:/root/.bashrc所有用户:/etc/.bashrc或者/etc/profiles然后执行:source /etc/profile使之生效。
记得查看别名是否被修改,然后查看永久生效文件
系统、进程是否异常
使用命令top
枚举进程,CPU降序排序(查看服务器cpu使用率发现 cpu使用率没有特别高的,接近或者超过100%的进程)
如果看到了可疑进程,可以使用lsof -p pid
查看进程打开的文件,或查看/proc/pid/exe
指向的文件。
使用pa -aux
枚举进程命令行(病毒一般都携带可疑的命令行,当你发现命令行中带有url等奇怪的字符串时,就要注意了,它很可能是个病毒)
使用nvidia -smi
查看服务器gpu使用率,查看gpu使用率有没有特别高的。(该命令只能在真实服务器使用,虚拟机中不可使用)
安全网关有无告警,从安全网关报警识别出威胁是最直接的!!
病毒清理
恶意病毒定位
查看一下服务器上的定时任务:sudo crontab -l
发现可疑域名,可以用微步查看情报
使用命令stat 文件名
查看文件的创建时间
,进行时间范围定位
;
清理病毒和定时任务
删除病毒文件rm -rf 文件名sudo rm -rf 用户名
闭环兜底
检查定时任务是否清理干净
使用命令reboot
重启服务检查病毒是否清理干净,因为有的病毒会更改启动项
,进行后门自启
。重启服务器之后,检查/var/spool/cron/crontab
目录正常,没有病毒的痕迹
是否存在SSH后门
使用命令:netstat -anpt
排查是否存在ssh软链接后门,探测有无可疑端口和用户
是否有后门账号
使用命令:awk -F: '$3==0 {print$1}' /etc/passwd
(有无超级账号)使用命令:awk '/\$1|\$6/{print $1}' /etc/shadow
(有无可远程登录的账号)删除后门账号sudo userdel -rf 用户名
#强制删除该账户以及/home/用户名
加上-r可以删除/home/路径下的用户文件夹,否则不能
查看是否有SSH公钥后门
首先查看 /home/目录下的账户,发现只有一个zyr,查看ssh的公钥文件的最近更改时间
,确实存在ssh公钥后门!!!
删除公钥后门
rm -f authorized_keys
后门检测工具
Chkrootkit是一种Linux后门入侵检测工具,可以用来检测rootkit后门的工具,可以很好的检测到rootkit程序。
wget ftp://.br/pub/seg/pac/chkrootkit.tar.gztar zxvf chkrootkit.tar.gzcd chkrootkit-0.52make sense./chkrootkit
rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围,除了能够检测各种已知的rootkit特征码以外,还支持端口扫描、常用程序文件的变动情况检查。
Wget https://nchc./project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gztar -zxvf rkhunter-1.4.4.tar.gzcd rkhunter-1.4.4./installer.sh --installrkhunter -c
系统加固
溯源分析
根据文件创建时间
推测入侵事件,然后去/var/log
排查安全日志,通过以下一些命令再结合用户的登录情况和文件创建事件
,总结分析:服务器是被ssh爆破出wxiaoge、zyr账户之后入侵并植入挖矿病毒与ssh公钥后门。
统计登录失败的记录命令grep -o "Failed password" /var/log/auth* |uniq -c查询被爆破的用户名都有哪些以及被爆破的次数grep "Failed password" /var/log/auth*|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr查询用户最近登录情况grep "Accepted " /var/log/auth* | awk '{print $1,$2,$3,$9,$11}'查看 xxx账户的爆破时间段grep "Failed password" /var/log/auth*|grep xxx账号
防护检查
Linux平台下90%的病毒是通过网络传播感染
的,大部分原因也是因为Web安全防护不够。Linux平台下的恶意软件威胁以僵尸网络蠕虫和挖矿病毒为主,由于Linux大多作为服务器暴露在公网,且Web应用的漏洞层出不穷,所以很容易被大范围入侵。
修改ssh弱口令添加命令审计(为历史的命令增加登录的IP地址、执行命令时间等信息)及时打补丁
二、配置漏洞之DNS域传送
windows利用方式:nslookupserver=ls
Linux利用方式:
axfr:完全区域传送ixfr:增量区域传送dig axfr @
漏洞出现的原因:
DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库,目的是为了做冗余备份
,防止主服务器出现故障时dns解析不可用。然而主服务器对来请求的备用服务器未作访问控制
,验证身份就做出相应故而出现这个漏洞。
漏洞造成的影响
DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录
。造成整个网络的拓扑结构
泄露给潜在的攻击者,包括一些安全性较低的内部主机
,如测试服务器。凭借这份网络蓝图,攻击者可以节省很少的扫描时间。
如何修复
修改dns服务器的配置,设置允许域传送服务器的白名单
。EXP:针对bind的服务器,可以编辑/etc/named.conf文件,设置allow-transfer项的参数。
TSIG key生成与配置:
工具:dnssec-keygen
三、内网渗透之内网主机发现技巧
发现内网的IP段和主机IP
查看本机的IP地址
Windows下使用:
ipconfig /all
Linux下使用:
ifconfig -a
查看路由表
Windows下使用:
route print
linux下使用:
route -n
查看本地连接信息
Windows下执行:
netstat -ano
linux下执行:
netstat -anp
如果这台主机是台服务器,那么内网用户访问服务器时必定会有连接出现,这也是我们收集内网IP段信息的一种方式。
利用net命令
在Windows内网环境下
net view
命令用于显示一个计算机上共享资源
的列表。我们从这个资源列表可以获取到一些主机名,然后解析出IP地址
,这样不光收集到了一些存活主机,而且还收集了一些IP段。
我们还可以使用(如果管理员登录在线的情况下)
net session
命令来查看管理员的登录IP,linux下可以使用
who
还可以用工具netsess.exe
netsess.exe -h dc01 或 netsess.exe \dc01
利用dns信息
当我们进入内网的时候,第一时间,我们应该先探测一下内网的dns服务是否存在dns域传送漏洞
如果不存在,在我们收集了一定的主机名之后,我们可以根据主机名的命名规则生成一份主机名字典,然后使用dns解析这些名字,获得IP之后,再根据IP确定IP段。
利用域信息
如果我们已经获取到一台域内的主机权限
,那么我们就可以访问域内的所有信息
,这时就可以通过域控制器查询
加入域中的所有主机信息,可以使用如下命令获取:
dsquery computer 以及 dsquery server
获得主机以及服务器列表后,解析其IP获取IP段信息。
如何扫描IP段发现存活主机
ping扫描
Windows下可以使用:
ping -n 1 127.0.0.1
linux下使用:
ping -c 1 127.0.0.1
知道核心命令之后,我们可以编写一个批量扫描的脚本来完成这个操作。
使用arp命令
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。在解析过IP之后会保存在本地的arp表中,所以使用以下命令可以查看本地的arp缓存表,从中获取到一些IP信息。
arp -a
使用nbtstat
NBTSTAT命令可以用来查询涉及到NetBIOS信息的网络机器。
可以使用如下命令查看缓存信息:
nbtstat -c
查看本地的hosts文件
Windows:
type c:\Windows\system32\drivers\etc\hosts
Linux:
cat /etc/hosts
查看本地dns缓存
dns缓存中存在我们解析过的域名信息,当然,也会存在内网中的域名信息,所以查看这些信息也有助于我们发现内网的IP段。
Windows:
ipconfig /displaydns
Linux下需要安装nscd并且配置它才能缓存dns信息
扫描工具
nbtscannbtscan是一个扫描WINDOWS网络NetBIOS信息的小工具,下载地址:
/tools/nbtscan.html
可以使用以下命令来发现主机:
nbtscan-1.0.35.exe 192.168.188.0/24
netdiscover
netdiscover是基于ARP的网络扫描工具,kali下自带这个工具,可以使用如下命令扫描:
netdiscover -r 192.168.88.0/24
nmap
nmap大家众所周知,非常强大的端口扫描工具,可以使用以下命令扫描存活主机:
nmap -n -Pn -T5 -sS 192.168.88.0/24