Windows
开机启动文件检测
有些病毒木马喜欢藏在一些系统文件里,然后开机后随着系统文件的启动而运行木马程序。
1、查看启动菜单:
C:\Users\leo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
2、运行执行msconfig命令
3、查看注册表自启动配置
Win10自启动注册表如下:
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
win7自启动注册表如下:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Temp临时文件异常
有些PE(exe,dll,sys)文件会隐藏在Temp文件目录里,还有一些比较大的TMP文件,这些都是比较可疑的,然后将可疑的文件发到检测病毒的网站
Temp文件目录如下:
C:\Users\leo\AppData\Local\Temp
可以在运行里搜索%temp%
直接跳转到temp目录
浏览器信息分析
可以通过分析浏览器的一些信息来判断服务器是否被黑客入侵了
1、分析浏览器的浏览记录,可以使用browserhistoryview工具进行查看
2、分析浏览器的下载记录,可以使用browserdownloadview工具进行查看
3、分析浏览器的cookie信息,可以使用IEcookieview工具进行查看
文件时间属性分析
文件的创建时间永远是早于或等于修改时间,如果修改时间早于创建时间,就说明该文件十分可疑,因为一些webshell管理工具是可以修改文件的修改时间的
文件打开时间分析
可以通过最近打开过的文件来分析是否含有病毒或者木马程序,Recent目录里含有最近打开过的文件,目录地址如下
C:\Users\leo\Recent
在cmd使用find命令可以快速查询到含有指定内容的文件
分析可疑进程
如果计算机被种植了木马,那么木马肯定会与外部进行通信,每一次通信都会有不同的端口,所以可以通过网络连接状态来查找到木马的程序,以下是对进程操作的cmd命令。
netstat -ano | find "ESTABLISHED"
查看已建立的网络连接,可以通过非寻常的端口来确认可疑程序,443,80端口大部分都为正常
tasklist /SVC | find "12760"
列出指定pid的任务进程,/svc是列出所有的进程任务

taskkill /pid 12760 /F /T
强制终止指定pid进程
分析Windows计划任务
黑客会经常给受害机设置计划任务来维持木马持久化
创建任务计划的命令如下:
schtasks /create /tn test /sc DAILY /st 23:18 /tr C:\\beacon.exe /F
任务计划可以通过at命令进行查询,也可以通过任务计划程序(可视化界面)查看
分析隐藏账户
在计算机建立隐藏账户来维持对其的控制权限,使用net user命令也查询不到隐藏账户,以下是建立隐藏账户的cmd命令,你可以在用户管理界面将隐藏账户进行删除或者修改其权限
net user test$ qQ123456 /add
添加用户
net user localgroup administrators test$ /add
添加管理员
黑客还可以利用注册表新建账户,这种更难被察觉到,以下利用hideadmin工具针对注册表创建隐藏用户。
进入注册表的用户目录(需要给sam目录给予权限),对生成的隐藏账户进行删除
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users
注册表用户所在目录
分析恶意进程
使用process exploer可以对任务管理器进程进行分析,可以将可疑进程发送到病毒检测网站进行检测,随后进行删除操作。
系统更新与补丁
执行cmd命令systeminfo查看系统已安装补丁,也可以查看控制面板程序的已安装更新面板来查看补丁。win10直接在设置里的更新与安全进行查看更新。
Windows审核策略
本地审核策略
若系统出现问题,即可查询到日志信息或追踪入侵者。
Windows日志筛选
通过筛选功能可以更方便查询到指定的事件内容,不同的事件ID对应不同的事件操作
4624 | 4625 | 4634 | 4647 | 4672 |
---|---|---|---|---|
登录成功 | 登录失败 | 注销成功 | 用户启动的注销 | 超级用户(管理员)登录 |
使用管理员账户远程登录主机时,主机会出现以下的事件ID
4776 | 4648 | 4624 | 4672 |
---|---|---|---|
凭据验证 | 凭据登录 | 登录成功 | 超级用户登录 |
在入侵提权过程中,黑客一般都会利用net user或者net localgroup语句创建用户,日志记录的事件ID为:4732,4722,4724
4732 | 4724 | 4722 |
---|---|---|
添加用户 | 重置用户密码 | 启用用户账号 |
LINUX
分析铭感文件或目录
TMP临时目录
tmp目录是一个放置临时文件的目录,普通用户对其目录内的文件都具有读写的操作,因此tmp目录经常被利用至提权
开机自启动文件分析
查看自启动文件:ls -alh /etc/init.d/
(-h显示文件大小)
寻找敏感文件(例如webshell)
以下是常用到的find命令:
find ./ mtime 0 name "*.php" //查找24小时内修改过的指定文件 mtime:修改时间 0:24小时
find ./ ctime -2 name "*.php" //查找72小时内生成的指定文件 ctime:创建时间
find ./ iname "*.php*" -perm 777 //查找权限为777的指定文件 iname:不区分大小写 perm:指定权限
进程分析
分析网络连接
常用命令:netstat -pantl
,列出tcp相关的服务连接。
netstat -pantl | grep "ESTABLISHED"
,查看已建立的tcp服务连接。
以下是netstat的使用参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
若要关闭某个进程,使用命令:kill -9 pid
对进程文件分析
以下是常用到的linux命令:
ps -aux
:列出所有的进程
ps -aux | grep pid
:列出指定pid的进程
lsof -i:端口号
:列出指定端口的进程
下图为使用列子:
登录分析
在linux的操作都会被记录在系统日志中,可以通过日志信息查询是否有异常登录
last -i | grep -v 0.0.0.0
: 查询非本地登录的日志信息,-i显示IP
w
命令,实时查看登录日志
分析异常用户
常用提权root用户的操作
新建用户,随后修改用户uid为0来变成root权限用户
useradd test
passwd test 输入密码
vim /etc/passwd 修改用户uid为0
排查异常用户
grep "0:0" /etc/passwd
ls -l /etc/passwd
查看文件最近修改时间
awk -F: '$3==0 {print $1}' /etc/passwd
awk -F: '$2=="!" {print $1}' /etc/shadow
历史命令history分析
linux系统之前执行的命令会保存在/root/.bash_history文件中,以下是查看history的命令。
cat /root/.bash_history
history
特别注意到的历史命令:wegt(远程下载)、ssh(连接内网)、tar zip(压缩打包)
有些黑客还会修改你的系统命令,例如把netstat命令给改了,之后这命令就无法正常使用了
分析计划任务
使用crontab命令进行排查计划任务
crontab -l //列出计划任务
crontab -r //删除计划任务
crontab -e //编辑计划任务
开机自启动项
设置开机自启动
ls /etc/init.d/
查看开机自启动文件
/etc/init.d/ apache2 status
查看apache2服务状态
/etc/init.d/ apache2 start
设置apache2服务开机自启动
update-rc.d apache2 enable
设置apache2服务开机自启动
关闭开机自启动
update-rc.d apache2 disable
取消apache2服务开机自启动
$PATH变量异常
$PATH就是环境变量,需要去查看$PATH有没有异常的变量
echo $PATH
输出变量
export PATH=$PATH:/usr/lol/theshy
修改变量,临时有效,重启无效
vim /etc/profile
,随后添加export PATH=$PATH:/usr/lol/faker
,再source /etc/profile
。这个方法是永久修改$PATH变量。
后门排查之rkhunter工具使用
安装工具:apt-get install rkhunter
常用命令:rkhunter --check --sk
(--sk表示自动补全)
系统加固
阻止非root用户登录
touch /etc/nologin
给密码文件设置权限
chmod 644 /etc/passwd
chmod 600 /etc/shadow
chmod 644 /etc/group
修改文件默认权限
umask=027
给日志或其他重要文件加固
chattr +a /var/log/messages //设置此文件只能追加数据
chattr +i /var/log/messages.* //设置文件不能被修改且删除
chattr +i /etc/shadow
chattr +i /etc/passwd
chattr +i /etc/group
屏蔽banner信息
vi /etc/ssh/sshd_config 将banner设置成NONE
增强秘钥
authconfig --passalgo=sha512 --update //启用 SHA512 替代 MD5加密
限制登录次数
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=120
//登录三次后锁定账户,普通用户5秒后解锁,root用户120秒后解锁
设置历史命令最大保存条数
vim /etc/profile
,修改HISTSIZE为20(默认是1000)