日常巡检小结

287 阅读7分钟
系统类型项目检测内容工具/命令操作
服务器可疑账号服务器账号net user 查看本机用户,看不到隐藏帐户
隐藏账户删除:删除注册表(先要添加一下权限)
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\下对应帐户的键值(共有两处)
计算机管理 compmgmt.msc 本地用户和组lusrmgr.msc
日志检测应用程序日志Log Parsereventvwr.msc调出事件查看器
安全日志Auto Scan IIS Log(IIS)
系统日志windows 防火墙日志 C:\Windows\System32\LogFiles\Firewall\pfirewall.log
web应用日志(IIS apache等)IIS日志 C:\Windows\System32\LogFiles\Firewall\ 可以利用Auto Scan IIS Log进行自动分析
端口开放情况开放端口netstat -ano 注意ESTABLISHED 建立连接
进程可疑进程Process Explorer熟练使用sysinternals系列软件 
PC hunter查看进程的详细信息包括CPU,GPU,IO,线程,句柄,内存
Process Monitorwindows启动程序管理
Autoruns查看WMI事件实时显示文件系统,注册表,网络活动,进程或线程活动,资料收集事件
查看进程名、远程地址和TCP连接的状态等
开始–运行–输入msinfo32,依次点击“软件环境→正在运行任务”就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间等
启动异常启动项登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此目录在是一个空目录,确认是否有非业务程序在该目录下。
计划任务单击【开始】>【运行】,输入 regedit,打开注册表,查看开机启动项是否正常,特别注意如下注册表项:
服务自启动HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run 这时常规启动项,很多程序会写在这里
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM/Software/Microsoft/Windows/CurrentVersion/Explorer/ShellExecuteHooks 这里是挂钩的地方,正常的程序一般不会写入该地址,恶意软件的几率很大
HKLM/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Windows/Appinit_Dlls 机器狗,蝴蝶机 及其变种可能存在的位置
HKLM/System/CurrentControlSet/Services 灰鸽子 可能存在的位置
需要注意注册表的特殊字符(不可见,或者乱码)
打开计算机配置> windows设置> 脚本
计划任务检查计划路径输入 cmd,然后输入at,检查计算机与网络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。
服务自启动检查services.mscservices.msc,注意服务状态和启动类型,检查是否有异常服务
检查系统相关信息补丁检查脚本systeminfo
github.com/GDSSecurity…    补丁检测Python脚本
github.com/SecWiki/win… 这是提权的exp 地址,也包括 补丁号,但是补丁号不完整
恶意文件查杀病毒 后门 SeqriteC:>dir /S /A:H 隐藏文件
webshell趋势杀毒软件
Bitdefende
Seqrit
卡巴斯基
赛门铁克
D盾(webshell)查看最近修改的文件 dir /a/o-d/p %SystemRoot%System32 (可能出现运行时间过长现象)
安全狗(webshell)运行中输入%UserProfile%\Recent,分析最近打开分析可疑文件。
深信服WebShellKillerTool(webshell)pedump pe文件分析 可以查看输入表看看有没有调用什么奇怪api
linux文件分析敏感目录tmp目录ls –alt /tmp/
开机启动项ls -alt /etc/init.d/
/etc/passwdls -alt /etc/passwd   按时间排序  ls -althead -n 10
新增文件24h内修改文件find ./ -mtime 0 -name "*.jsp" 查找24h内修改的以jsp结尾的文件
查找文件内容未修改权限修改find ./ -ctime 0   
根据确定时间去反推变更的文件   ls -al /tmpgrep "Feb 27"
特殊文件权限777文件find / *.jsp -perm 4777 从根目录查找以jsp结尾的权限为777的文件,4的含义可执行即为文件所有者
隐藏文件以“.”开头文件ls -alt
文件关键字webshell关键字find /var/www/ -name "*.php"xargs egrep 'assertphpspyc99shmilw0rmeval(gunerpress(base64_decoolcodespider_bcshell_execpassthru($_\POST[eval (str_rot13.chr(${"_Peval($_Rfile_put_contents(.*$_base64_decode'
webshell查杀在线查杀webshell1  网站安全狗网马查杀                        download.safedog.cn/download/so…
2  D盾 Web查杀                                   www.d99net.net/down/WebShe…
3  深信服WebShellKillerTool                edr.sangfor.com.cn/tool/WebShe…
4  BugScaner killwebshell                    tools.bugscaner.com/killwebshel…
5  河马专业版查杀Webshell                 n.shellpub.com/
6  OpenRASP WEBDIR+检测引擎      scanner.baidu.com
7  深度学习模型检测PHP Webshell     webshell.cdxy.me/
本地查杀webshell本地使用 github.com/erevus-cn/s…
进程网络连接netstat命令netstat –antlpmore
进程信息ps命令ps auxgrep pidgrep –v grep
lsof命令lsof -i:1677 查看指定端口对应的程序
lsof -p pid 查看打开的文件
lsof来监视文件操作,lsof -i @localhost:20,80 -r 3  列出目前连接主机localhost上端口为:20,80相关的所有文件信息,隔3秒重复执行
系统命令是否被替换ls & stat 命令ls -alt /usr/binhead -10 按时间排序前10个
ls -al /bin /usr/bin /usr/sbin/ /sbin/grep "Jan 15" 列举出文件最后修改时间为 Jan 15 的文件
程序是否被替换strace & ltrace strace -f -F -o ~/straceout.txt myserver
隐藏进程ps & ls 命令ps -efawk '{print}'sort -nuniq >1
ls /procsort -nuniq >2
diff 1 2
系统信息history信息/root/.bash_historycat /root/.bash_history
用户信息useradd & userdelstat 查看
可疑账号查看UID为0的帐号:awk -F: '{if(3==0)print3==0)print 1}' /etc/passwd
查看能够登录的帐号:cat /etc/passwdgrep -E "/bin/bash$"
系统路径环境变量echo $PATH 分析有无敏感可疑信息
启动执行的文件profile 与 .profilecat /etc/profile  cat ~/.profile 在用户登录的时候会被执行的脚本
bashrccat /etc/bashrc 启动 bash 时会使用的脚本,同理还需要检查 .zshrc 等文件,mac下有此文件
rc*.d在各个运行层面上会被启动的脚本,均有可能藏有后门
bash.bashrccat /etc/bash.bashrc ,  ubuntu 下的 bashrc
init.d 与 init用于启动服务的脚本,每当执行 service xxx start 之类的命令时,都会调用这两个目录的脚本,两个目录作用相同, init.d 是旧时代 linux 下的用法, init 是新时代 linux 下的用法,目前仍然在过渡阶段,所以两个目录都可能会使用。
rc.localcat /etc/rc.local  开机启动项
/etc/cron*通过crontabl –l 查看当前的任务计划有哪些,是否有后门木马程序启动相关信息;ls /etc/cron*
日志分析系统登陆信息/var/log/lastlog: 最后一次登录,lastlog
/var/log/btmp: 纪录失败的登录,lastb
使用last命令,用于显示用户最近登录信息(数据源为/var/log/wtmp,var/log/btmp),last root
users: 显示当前登录的用户
登录验证情况记录,例如su、ssh登录失败的时候产生的日志  
/var/log/auth.log
/var/log/secure
ac -d命令显示每个用户的总的连接时间(centos可用)
/var/log/syslog(ubuntu)      /var/log/messages(centos)cat /var/log/sysloggrep CRON 分析一些cron服务,默认RedHat Linux不生成该日志文件
引导信息/var/log/boot.log
邮件信息/var/log/maillog 
http服务/var/log/apache2/access.log1、扫描或攻击特征
/var/log/httpd/access.logegrep '(selectscriptacunetixsqlmap)' /var/log/httpd/access_log
2、访问频率
grep 'POST' /var/log/httpd/access_logawk '{print $1}'sortuniq -csort -nr
3、Content-Length
awk '{if(10>5000000){print 0}}' /var/log/httpd/access_log
ssh服务登陆信息登录成功:grep 'Accepted' /var/log/secureawk '{print $11}'sortuniq -csort -nr
登录失败:grep 'Failed' /var/log/secureawk '{print $11}'sortuniq -csort -nr
检测ssh后门比对版本 ssh -V
查看ssh配置文件和/usr/sbin/sshd的时间
> stat /usr/sbin/sshd
strings检查/usr/sbin/sshd,看是否有邮箱信息
strings可以查看二进制文件中的字符串,在应急响应中是十分有用的。有些sshd后门会通过邮件发送登录信息,通过strings /usr/sbin/sshd可以查看到邮箱信息。
通过strace监控sshd进程读写文件的操作