应急响应之常用命令集合

1.linux下常用命令

1.1查看用户信息

/etc/passwd   查看用户信息文件
/etc/shadow  查看影子文件

awk -F: ‘$3==0{print $1}’ /etc/passwd
(查看系统是否还存在其他的特权账户,uid为0,默认系统只存在root一个特权账户)


who     查看当前登录用户(tty 本地登陆  pts 远程登录)


w       查看系统信息,想知道某一时刻用户的行为


uptime  查看登陆多久、多少用户,负载


passwd  -d username 检查用户是否存在空口令


stat /etc/passwd #查看密码文件上一次修改的时间,如果最近被修改过,那就可能存在问题。


cat /etc/passwd | grep -v nologin #查看除了不可登录以外的用户都有哪些,有没有新增的


cat /etc/passwd | grep x:0 #查看哪些用户为root权限,有没有新增的


cat /etc/passwd | grep /bin/bash #查看哪些用户使用shell


查询可以远程登录的账号:awk  ‘/\$1|\$6/{print $1}’  /etc/shadow
查询具有sudo权限的账号:more /etc/sudoers | grep -v  “^#\|^$”  grep “ALL=(ALL)”

1.2.历史命令

很多的服务器会有存在多用户登陆情况,登陆root用户可查看其他用户的相关账户登录信息,.bash_history保存了用户的登陆所操作的命令信息
home/root/.bash_history
history查看历史命令


cat .bash_history >>history.txt   保存历史命令


1.3.查看端口

netstat –antp


查看对应链接的文件路径
ls -l /proc/pid/exe
ls -l /proc/*/exe | grep xxx  #如果我们知道恶意程序的启动文件大致位置,可以使用这个发现无文件的恶意进程


netstat -antlp | grep 172.16.222.198 | awk ‘{print $7}’ | cut -f1 -d”/”  通过可疑的ip地址获取程序pid

1.4.查看进程

ps   -aux


查看相关pid对应程序
ps –aux | grep pid


监控某一应用线程数(如ssh)
ps -eLf | grep ssh| wc –l
监控网络客户连接数

netstat -n | grep tcp | grep 侦听端口
| wc -l


ps aux –sort=pcpu | head -10   查看cpu占用率前十的进程,有时候可以发现


1.5.开机启动项

启动项文件:
more /etc/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/

1.6.定时任务

crontab  -l


编辑定时任务
crontab –e


crontab -u root –l  查看root用户任务计划
ls /var/spool/cron/  查看每个用户自己的执行计划


#删除计划任务且控制计划任务不能写东西
sed ‘/gcc.sh/d’ /etc/crontab && chmod 0000 /etc/crontab && chattr +i /etc/crontab
常见的定时任务文件:
/var/spool/cron/*  #centos的
/var/spool/cron/crontabs/* #ubuntu的
/var/spool/anacron/*
/etc/crontab
/etc/anacrontab
/etc/cron.hourly/*
/etc/cron.daily/*
/etc/cron.weekly/
/etc/cron.monthly/*

1.7.服务

chkconfig 查看开机启动项目


chkconfig  –list  (systemctl list-unit-files |grep enabled
)查看服务自启状态


1.8.查找文件

find查找指定的文件:find /home1 -name *.php ! -name index.php
find查看最近一天修改的文件: find / -mtime -1 > /etc/aa.txt(查看修改的文件并保存到aa的txt文档)
查找并删除 find . -name .svn | xargs rm –rf
find / -size +10000k -print:查找大于10000k的文件
md5sum -b filename:查看文件的md5值

1.9.top命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
默认top是根据cpu的占用情况进行排序的


可通过按“b”键进行切换,可切换到按照内存使用情况进行排序
top  -p pid  监控指定进程


free 查看当前系统内存使用情况


top -b -n1 | head


1.10.host文件

有一些挖矿程序会修改 /etc/hosts文件


1.11.日志分析

默认日志位置:var/log
1、定位有多少IP在爆破主机的root帐号:

grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

定位有哪些IP在爆破:

grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c

爆破用户名字典是什么?

grep "Failed password" /var/log/secure|perl -e 'while($_=){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

2、登录成功的IP有哪些:

grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

登录成功的日期、用户名、IP:

grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'

Linux中的命令,Diff,可以查看两个文本文件的差异。

1.12.查看命令状态

很多情况下,存在ps、netstat等一些常见命令被替换,可利用stat查看该状态,查看其修改时间
stat /bin/netstat


1.13.文件清除

很多时候会遇到无法查看文件权限或是病毒在一直向某个文件写入程序,可尝试如下命令:
lsattr [恶意文件绝对路径]命令查看权限,
使用chattr -i [恶意文件绝对路径]解除文件锁定后删除。

chmod 0000 /lib/libudev.so && rm -rf /lib/libudev.so && chattr +i /lib/(chattr +i不让lib文件被写入删除)

结束某一进程:
Kill  -9  pid

2.windows下常用命令

2.1账号安全

query user  查看当前登录账户


logoff ID 注销用户id
net  user 查看用户
net user username 查看用户登录情况
lusrmgr.msc 打开本地用户组


regedit注册表查看账户,确认系统是否存在隐藏账户


利用LogParser.exe查看event日志,查询用户登录情况

LogParser.exe -i:EVT "SELECT TimeGenerated,EXTRACT_TOKEN(Strings,5,'|') AS USERNAME,EXTRACT_TOKEN(Strings,5,'|') AS SERVICE_NAME,EXTRACT_TOKEN(Strings,5,'|') AS Client_IP FROM 'C:\Users\haha\Desktop\Security.evtx' WHERE EventID=4624"


LogParser.exe日志分析工具更多用法可参考:
https://wooyun.js.org/drops/windows%E5%AE%89%E5%85%A8%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90%E4%B9%8Blogparser%E7%AF%87.html

2.2检查异常端口进程

查看目前连接:
netstat  -ano
一般是查看已经成功建立的连接:
netstat -ano | findstr “ESTABLISHED”


根据pid定位程序名称
tasklist  | findstr  “pid”


运行中输入msinfo32,可打开系统信息,在“正在运行任务”中可获取进程详细信息,包括进程的开始时间、版本、大小等信息。


根据端口查看pid
netstat -ano | findstr “8080”


利用wmic查看进程执行时的命令

Wmic process where name='irefox.exe' get name,Caption,executablepath,CommandLine ,processid,ParentProcessId  /value


Wmic process where processid='2040' get name,Caption,executablepath,CommandLine ,processid,ParentProcessId  /value


2.3启动项检查

msconfig查看系统启动项


查看注册表是否有异常启动项
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce


2.4查看系统定时任务

Cmd下运行schtasks(win7系统利用at),查看定时任务


C:\Windows\System32\Tasks  查看任务清单


删除任务计划
建议删除任务计划时以管理员登录
SchTasks /Delete /TN  任务计划名称

2.5查看系统服务

Services.msc


删除服务可从任务管理器中手动删除,也可使用命令:
sc stop [服务名称]停止服务后,
sc delete [服务名称]删除服务

2.6文件查看

查看最近打开的文件,运行窗口中输入“ %UserProfile%\Recent


查看C:\Documents and Settings,C:\Users下是否存在可疑用户或文件

Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。
团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室,近三年来在网络安全技术方面开展研发项目60余项,获得各类自主知识产权30余项,省市级科技项目立项20余项,研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。对安全感兴趣的小伙伴可以加入或关注我们。