常用linux应急

发布时间:2022年07月25日 阅读:526 次

window:

Powershell History,这也是凭据搜集阶段常常会看的东西。它的保存路径如下


%USERPROFILE%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt



火狐

firefox的凭据可以离线解密,详情可以参考这篇文章

https://blog.csdn.net/weixin_46081055/article/details/119413505


查看用户创建时间

awk -F ":" '{print $1, $3}'  /etc/shadow | grep sendmail

sshftp 17311

date -d "1970-01-01 17311 days" "+%Y/%m/%d %H:%M:%S"


ipvsadm -ln  查看负载的真实地址

file查看文件信息

stat filename 查看文件状态   stat -f filename 查看文件系统状态

reset可以去恢复乱码

readelf查看二进制文件信息  查看文件头信息

ldd  查看一个文件包含了哪些调用

iftop


ps -aux 

ps -eaf

ps -ef

netstat -anp 所有监听端口及对应的进程

netstat -tlnp 功能同上

netstat -ntp 查看网络连接状态

netstat -tunpl 网络连接及对应的进程

ss -a


查看该进程启动的完整命令行: ps eho command -p $PID

查看该进程启动时候所在的目录: readlink /proc/$PID/cwd

查看该进程启动时的完整环境变量: strings -f /proc/$PID/environ | cut -f2 -d ' '

列出该进程所打开的所有文件: lsof -p $PID

列出该进程所打开的网络连接: netstat -pan | grep $PID


隐藏进程一般可以通过查看环境变量$LD_PRELOAD是否加载动态库,来隐藏进程

echo $LD_PRELOAD  正常是没有东西的,如果有的话就直接去掉环境变量可以把隐藏进程显示出来

echo $PATH   echo /etc/profile  查看环境变量


grep MemTotal /proc/meminfo    查看系统内存大小


/sbin/service --status-all可以查看服务状态


netstat -an |grep "defunct"


cat /etc/services   查看端口及相应服务


last  查看最近登录

lastlog 所有用户最后一次登录情况


cd /var/log  日志

history 查看历史命令

cat  ~/.bash_history   查看历史命令


ps -aux


find / -perm -4000 -user 0 -ls  查找suid可执行程序,查提权。(suid/sgid的程序运行时将有效用户id改变为该程序所有者的id,达到提权。)

find / -perm -2000 -user 0 -ls



find /home -type f -mtime -2  可以查找 /home下最近两天修改过的文件


find . -type f -mtime -1    查找当前目录下,最近1天内修改过的常规文件。


find . -type f -mtime +1    查找当前目录下,最近1天前(2天内)修改过的常规文件。


find ./ -mtime 0:返回最近24小时内修改过的文件。


find ./ -mtime 1 : 返回的是前48~24小时修改过的文件。而不是48小时以内修改过的文件。


那怎么返回10天内修改过的文件?find还可以支持表达式关系运算,所以可以把最近几天的数据一天天的加起来:


find ./ -mtime 0 -o -mtime 1 -o -mtime 2 ……虽然比较土,但也算是个方法了。9bkcu9



var/adm/sulog查看普通用户尝试su成为其它用户的记录


var/adm/utmpx

var/adm/wmtpx

cd /var/log  日志


history 查看历史命令

cat  ~/.bash_history   查看历史命令



1、查看进程“打开”的文件:

  1)pidof programe-name(获得想了解的进程(programe-name)的PID)

 或ps -aux|grep programe-name(获得想了解的进程(programe-name)的PID)

  找出进程的PID

  2)cd /proc/$PID/fd(会看见文件描述符)

  3)ls -l

     得到文件描述符指向的实际文件,即当前进程打开的文件


2、查看进程“打开”的文件2:

 1)获得想了解的进程的PID方法同上

 2)lsof -c programe-name

     或lsof -p $PID


3、查看文件对应的进程:

 lsof file-name


4、lsof命令用法:

 lsof -c abc 显示abc进程现在打开的文件

  lsof abc 显示开启文件abc的进程

  lsof -i :22 显示22端口现在运行什么程序

  lsof -g gid 显示归属gid的进程情况

  lsof +d /usr/local/ 显示目录下被进程开启的文件

  lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长

  lsof -d 4 显示使用fd为4的进程

  lsof -i 用以显示符合条件的进程情况

  lsof -s 列出打开文件的大小,如果没有大小,则留下空白

  lsof -u username 以UID,列出打开的文件




命令

lsnrctl status 查看listener进程的状态


日志记录var/adm/message文件


var/adm/sulog查看普通用户尝试su成为其它用户的记录


var/adm/utmpx

var/adm/wmtpx


w/who


last


top


netstat -ntlp


ps -ef        ps -aux    ps -eaf服务


(lsof -i:80)


cat ~/.bash_history


cat /etc/passwd  shadow     default


cat /etc/hosts.allow   hosts.deny


svcs -a 查看服务


cat /etc/services


cat /ftpd/ftpusers



/usr/proc/bin/pfiles /proc/*|awk '/^[1-9]/{P=$1$2}/sockname.*port: 32910/{print P;print}'|grep -v awk


查看所有无属主文件脚本

#for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do

find $PART -nouser -o -nogroup -print

done



、7、查看系统是否存在隐藏文件

ls -AF |grep '^\.'     //显示所有隐藏文件

ls -aF的输出:

如果文件的末尾什么都没有表示这是一个普通的文件;

如果文件以"/"结尾,则表示这是一个目录;

如果文件以"@"结尾,则表示这是一个链接文件;

如果文件以“*”结尾,则表示该文件具有可执行的属性;

一个具有可执行属性的软链接目录的结尾是@,@的优先级大于“/”、“*”。

ls -aF /path | grep '^\.'

find / -name ". *"



、9、查看批处理文件是否异常

/etc/init.d

crontab

at


、10、查看tmp文件夹


、11、sql查询记录

log-error=/usr/local/mysql/log/error.log

log=/usr/local/mysql/log/mysql.log


、11、查看无属主文件

stat -c %U filename


、12、查看僵尸进程

ps -ef |grep "defunct"


1、查看进程“打开”的文件:

  1)pidof programe-name(获得想了解的进程(programe-name)的PID)

 或ps -aux|grep programe-name(获得想了解的进程(programe-name)的PID)

  找出进程的PID

  2)cd /proc/$PID/fd(会看见文件描述符)

  3)ls -l

     得到文件描述符指向的实际文件,即当前进程打开的文件


2、查看进程“打开”的文件2:

 1)获得想了解的进程的PID方法同上

 2)lsof -c programe-name

     或lsof -p $PID


3、查看文件对应的进程:

 lsof file-name


4、lsof命令用法:

 lsof -c abc 显示abc进程现在打开的文件

  lsof abc 显示开启文件abc的进程

  lsof -i :22 显示22端口现在运行什么程序

  lsof -g gid 显示归属gid的进程情况

  lsof +d /usr/local/ 显示目录下被进程开启的文件

  lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长

  lsof -d 4 显示使用fd为4的进程

  lsof -i 用以显示符合条件的进程情况

  lsof -s 列出打开文件的大小,如果没有大小,则留下空白

  lsof -u username 以UID,列出打开的文件


ps -eo pid,lstart|grep 1267  查看进程开启时间


5、查看网络状态:

lsof -Pnl +M -i4 显示ipv4服务及监听端情况

netstat -anp 所有监听端口及对应的进程

netstat -tlnp 功能同上


find /home -type f -mtime -2  可以查找 /home下最近两天修改过的文件


find . -type f -mtime -1    查找当前目录下,最近1天内修改过的常规文件。


find . -type f -mtime +1    查找当前目录下,最近1天前(2天内)修改过的常规文件。


find ./ -mtime 0:返回最近24小时内修改过的文件。


find ./ -mtime 1 : 返回的是前48~24小时修改过的文件。而不是48小时以内修改过的文件。


那怎么返回10天内修改过的文件?find还可以支持表达式关系运算,所以可以把最近几天的数据一天天的加起来:


find ./ -mtime 0 -o -mtime 1 -o -mtime 2 ……虽然比较土,但也算是个方法了。



批量杀进程


ps -ef|grep mcfcm_st|grep -v grep|cut -c 9-15|xargs kill -9


 管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的


几个命令:

“ps - ef”是linux 里查看所有进程的命令。这时检索出的进程将作为下一条命令“grep mcfcm_st”的输入。

“grep mcfcm_st”的输出结果是,所有含有关键字“mcfcm_st”的进程,这是Oracle数据库中远程连接进程的共同特点。

“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

“xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该令。   



“kill -9”会强行杀掉指定进程,这样就成功清除了oracle的所有远程连接进程。其它类似的任务,只需要修改“grep mcfcm”中的关键字部分就可以了。




132




安全痕迹检查项:


netstat -an   查看开放端口


cat /etc/passwd


ps -ef  查看uid、pid、ppid、对应cmd(该进程所使用的命令)----与ps -eaf 差不多


netstat -anp 查看所有进出及对应进程-----类似netstat -tlnp


netstat -an |grep "defunct"  僵尸进程


ls -al /tmp 查看临时文件夹


netstat -rn  查看路由


svcs -a  查看服务----类似cat /etc/services ------到/sbin目录,使用service --status-all可以查看服务状态


ls -AF |grep '^\.'   到相应目录下使用该命令,查看该目录的隐藏文件


crontab -l  查看计划任务----类似at命令


cat ~/.bash_history  查看历史命令----类似history


last 查看登录情况


日志目录/var/adm/message  /var/adm/sulog  /var/adm/utmpx 及wmtpx   /var/log



lsnrctl status  查看listener进程的状态 不一定有该命令



ifconfig


grep "PASS_MIN_LEN" /etc/login.defs


grep "PASS_MAX_DAYS" /etc/login.defs


cat /etc/pam.d/system-auth


cat /etc/passwd 


grep "TMOUT" /etc/profile

grep "TIMEOUT" /etc/environment 

cat /etc/security/.profile


cat /etc/passwd | awk -F: '{print $1}'

grep umask /etc/profile

cd /

ls -l



chkconfig --list | grep "启用"

ll /etc/ftpusers /etc/ftpd/ftpusers


cat /etc/securetty 

cat /etc/issue


cat /proc/sys/net/ipv4/ip_forward 


netstat -ntlup


cat ~/.cshrc ~/.bashrc 



ll /etc/shadow /etc/passwd /etc/group /etc/gshadow /etc/inittab /etc/profile /var/log/messages /var/log/messages.*


rpm -qa | more


cat /proc/sys/net/ipv4/icmp_echo_ignore_all /proc/sys/net/ipv4/tcp_syncookies /proc/sys/net/ipv4/icmp_echo_ignore_all /proc/sys/net/ipv4/conf/all/accept_source_route 


uname -an

cat  /etc/syslog.conf


ll /var/log/* /var/log/messages.*

grep "public" /etc/snmp/snmpd.conf

cat /etc/snmp/snmpd.conf





CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下


1、直接关闭防火墙


systemctl stop firewalld.service #停止firewall


systemctl disable firewalld.service #禁止firewall开机启动


2、设置 iptables service


yum -y install iptables-services


如果要修改防火墙配置,如增加防火墙端口3306


vi /etc/sysconfig/iptables 


增加规则


-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT


保存退出后


systemctl restart iptables.service #重启防火墙使配置生效


systemctl enable iptables.service #设置防火墙开机启动


最后重启系统使设置生效即可。


Tag:
相关文章

粤ICP备20011586号-1